diff --git a/.github/wiseconnect.yml b/.github/wiseconnect.yml
new file mode 100644
index 000000000..6d19e8bc1
--- /dev/null
+++ b/.github/wiseconnect.yml
@@ -0,0 +1,164 @@
+files:
+ - license.md
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ulpss_clk.c
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_pll.c
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ipmu.c
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_wwdt.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_temp_sensor.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ipmu.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_time_period.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_processor_sensor.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_retention.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_reg_spi.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ulpss_clk.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_power_save.h
+ - components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_pll.h
+ - components/device/silabs/si91x/mcu/drivers/unified_api/src/sl_si91x_driver_gpio.c
+ - components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h
+ - components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/rsi_rng.c
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/clock_update.c
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi_proto.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/clock_update.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_rng.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_gpdma.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_egpio.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma_wrapper.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_timers.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_crc.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_efuse.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_ct.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma.h
+ - components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_pwm.h
+ - components/device/silabs/si91x/mcu/drivers/service/clock_manager/src/sl_si91x_clock_manager.c
+ - components/device/silabs/si91x/mcu/drivers/service/clock_manager/inc/sl_si91x_clock_manager.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/SPI.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SPI.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_USART.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_Common.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SAI.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_I2C.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/UDMA.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/config/RTE_Device_917.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/GSPI.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/I2C.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/USART.h
+ - components/device/silabs/si91x/mcu/drivers/cmsis_driver/SAI.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/src/rsi_rom_table_si91x.c
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma_wrapper.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_table_si91x.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_ulpss_clk.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_egpio.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_power_save.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_packing.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_clks.h
+ - components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_rng.h
+ - components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/src/sl_si91x_peripheral_gpio.c
+ - components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio_common.h
+ - components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio.h
+ - components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_peripheral_gpio.h
+ - components/device/silabs/si91x/mcu/core/chip/src/system_si91x.c
+ - components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/ipmu_apis.c
+ - components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/rsi_system_config_917.c
+ - components/device/silabs/si91x/mcu/core/chip/src/rsi_deepsleep_soc.c
+ - components/device/silabs/si91x/mcu/core/chip/config/sl_board_configuration.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/data_types.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/em_device.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/system_si91x.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/si91x_mvp.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/rsi_ps_ram_func.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/rsi_ccp_common.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/rsi_system_config.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/base_types.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/si91x_device.h
+ - components/device/silabs/si91x/mcu/core/chip/inc/rsi_error.h
+ - components/device/silabs/si91x/mcu/core/config/rsi_ccp_user_config.h
+ - components/device/silabs/si91x/wireless/src/sl_si91x_driver.c
+ - components/device/silabs/si91x/wireless/src/sl_rsi_utility.c
+ - components/device/silabs/si91x/wireless/memory/malloc_buffers.c
+ - components/device/silabs/si91x/wireless/host_mcu/si91x/siwx917_soc_ncp_host.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_ram.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/sl_si91x_bus.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/sli_siwx917_soc.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform_wireless.c
+ - components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_rom.c
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_soc.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_wisemcu_hardware_setup.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/sl_device.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_pkt_mgmt.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_os.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_m4.h
+ - components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_timer.h
+ - components/device/silabs/si91x/wireless/threading/sli_si91x_multithreaded.c
+ - components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_credentials.c
+ - components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_callback_framework.c
+ - components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_integration_handler.c
+ - components/device/silabs/si91x/wireless/sl_net/src/sl_net_rsi_utility.c
+ - components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_internal_stack.c
+ - components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x.h
+ - components/device/silabs/si91x/wireless/sl_net/inc/sl_net_rsi_utility.h
+ - components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x_integration_handler.h
+ - components/device/silabs/si91x/wireless/asynchronous_socket/src/sl_si91x_socket.c
+ - components/device/silabs/si91x/wireless/asynchronous_socket/inc/sl_si91x_socket.h
+ - components/device/silabs/si91x/wireless/socket/src/sl_si91x_socket_utility.c
+ - components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_types.h
+ - components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_constants.h
+ - components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_utility.h
+ - components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_callback_framework.h
+ - components/device/silabs/si91x/wireless/socket/inc/sl_bsd_utility.h
+ - components/device/silabs/si91x/wireless/inc/sl_rsi_utility.h
+ - components/device/silabs/si91x/wireless/inc/sl_wifi_device.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_host_interface.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_core_utilities.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_status.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_types.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_constants.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_protocol_types.h
+ - components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h
+ - components/device/silabs/si91x/wireless/ble/src/rsi_common_apis.c
+ - components/device/silabs/si91x/wireless/ble/src/rsi_bt_ble.c
+ - components/device/silabs/si91x/wireless/ble/src/rsi_utils.c
+ - components/device/silabs/si91x/wireless/ble/src/rsi_bt_ble.c.orig
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_common.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_common_apis.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_utils.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_ble.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_config.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_config.h.orig
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_apis.h
+ - components/device/silabs/si91x/wireless/ble/inc/sl_si91x_ble.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_user.h
+ - components/device/silabs/si91x/wireless/ble/inc/rsi_ble_common_config.h
+ - components/protocol/wifi/src/sl_wifi_basic_credentials.c
+ - components/protocol/wifi/src/sl_wifi_callback_framework.c
+ - components/protocol/wifi/si91x/sl_wifi.c
+ - components/protocol/wifi/inc/sl_wifi_host_interface.h
+ - components/protocol/wifi/inc/sl_wifi.h
+ - components/protocol/wifi/inc/sl_wifi_constants.h
+ - components/protocol/wifi/inc/sl_wifi_types.h
+ - components/protocol/wifi/inc/sl_wifi_callback_framework.h
+ - components/protocol/wifi/inc/sl_wifi_credentials.h
+ - components/service/bsd_socket/si91x_socket/sl_si91x_socket_support.h
+ - components/service/network_manager/src/sl_net.c
+ - components/service/network_manager/src/sl_net_credentials.c
+ - components/service/network_manager/src/sl_net_basic_profiles.c
+ - components/service/network_manager/si91x/sl_net_si91x.c
+ - components/service/network_manager/inc/sl_net_constants.h
+ - components/service/network_manager/inc/sl_net_ip_types.h
+ - components/service/network_manager/inc/sl_net_wifi_types.h
+ - components/service/network_manager/inc/sl_net.h
+ - components/service/network_manager/inc/sl_net_dns.h
+ - components/service/network_manager/inc/sl_net_types.h
+ - components/common/src/sl_utility.c
+ - components/common/inc/sl_additional_status.h
+ - components/common/inc/sl_ieee802_types.h
+ - components/common/inc/sl_utility.h
+ - components/common/inc/sl_ip_types.h
+ - components/common/inc/sl_constants.h
+ - resources/defaults/sl_net_default_values.h
+ - resources/defaults/sl_wifi_region_db_config.h
\ No newline at end of file
diff --git a/.github/workflows/update_wifi_sdk.yml b/.github/workflows/update_wifi_sdk.yml
new file mode 100644
index 000000000..87072d53e
--- /dev/null
+++ b/.github/workflows/update_wifi_sdk.yml
@@ -0,0 +1,109 @@
+name: Update SDK
+
+on:
+ repository_dispatch:
+ types: [update_sdk]
+
+jobs:
+ update_sdk:
+ runs-on: self-hosted
+ name: silabs-internal
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+ with:
+ username: ${{ secrets.REPO_USERNAME }}
+ token: ${{ secrets.REPO_TOKEN }}
+ fetch-depth: 0
+
+ - name: Setup Python
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.10'
+
+ - name: Install dependencies
+ run: |
+ python3 -m pip install --upgrade pip
+ pip install pyyaml
+
+ - name: Create/Update branch for new SDK changes
+ run: |
+ BRANCH_NAME="${{ github.event.client_payload.branch_name }}"
+ if git checkout --track "origin/${BRANCH_NAME}"; then
+ git checkout ${BRANCH_NAME}
+ git pull origin ${BRANCH_NAME}
+ else
+ git checkout -b ${BRANCH_NAME}
+ fi
+
+ - name: Download SDK from Artifactory
+ run: |
+ curl -s -o sdk.zip "${{ github.event.client_payload.artifactory_url }}"
+ unzip sdk.zip -d wiseconnect_updated
+
+ - name: Load files to copy from YAML
+ shell: python
+ run: |
+ import yaml
+ import os
+ from pathlib import Path
+ import shutil
+
+ # Get the list of wiseconnect SDK source files needed for Zephyr
+ with open('.github/wiseconnect.yml', 'r') as file:
+ data = yaml.safe_load(file)
+
+ if data and 'files' in data:
+ files_to_copy = data['files']
+ else:
+ files_to_copy = []
+
+ # Copying wiseconnect SDK source files to respective paths
+ for file in files_to_copy:
+ extracted_file_path = Path("wiseconnect_updated") / file
+ target_file_path = Path("wiseconnect") / file
+
+ if extracted_file_path.exists():
+ print("Copying file "+ str(target_file_path))
+ try:
+ target_dir_path = os.path.dirname(target_file_path)
+ os.makedirs(target_dir_path, exist_ok=True)
+ shutil.copy2(extracted_file_path, target_file_path)
+ except Exception as e:
+ print(f"unexpected error: {e}")
+ else:
+ print(str(target_file_path) + " Not found in the sdk package")
+
+ - name: Remove downloaded artifacts
+ run: |
+ rm -rf wiseconnect_updated sdk.zip
+
+ - name: Configure Git and Publish Changes
+ run: |
+ git config --local user.name "wifi-ci-agent"
+ git config --local user.email "wifi-ci-agent@users.noreply.silabs.com"
+ changed_files=$(git diff --name-status)
+ echo "Changed Files ${changed_files}"
+ # If there are any changed files, push changes to the branch.
+ if [[ -n "$changed_files" ]]; then
+ git add -A
+ git commit -m "Update SDK"
+ git push --set-upstream origin "${{ github.event.client_payload.branch_name }}"
+ UPDATED_COMMIT=$(git rev-parse HEAD)
+ echo "UPDATED_COMMIT=${UPDATED_COMMIT}" >> $GITHUB_ENV
+ echo "COMMIT_CHANGED=true" >> $GITHUB_ENV
+ else
+ echo "WiseConnect SDK has no updates related to zephyr"
+ echo "COMMIT_CHANGED=false" >> $GITHUB_ENV
+ fi
+
+ - name: Trigger webhook to zephyr-silabs repo to test new Wiseconnect SDK changes
+ if: env.COMMIT_CHANGED == 'true'
+ run: |
+ echo "triggering build to zephyr-silabs with commitID: ${UPDATED_COMMIT}"
+ curl -X POST \
+ -H "Accept: application/vnd.github+json" \
+ -H "Authorization: Bearer ${{ secrets.REPO_TOKEN }}" \
+ https://api.github.com/repos/SiliconLabsSoftware/zephyr-silabs/dispatches \
+ -d '{"event_type": "update_project_revision", "client_payload": {"project_name": "hal_silabs", "commit_id": "'$UPDATED_COMMIT'"}}'
diff --git a/gecko/common/inc/sl_bit.h b/gecko/common/inc/sl_bit.h
new file mode 100644
index 000000000..ff15ae1b0
--- /dev/null
+++ b/gecko/common/inc/sl_bit.h
@@ -0,0 +1,189 @@
+/***************************************************************************//**
+ * @file
+ * @brief Implementation of bit operations.
+ *******************************************************************************
+ * # License
+ * Copyright 2019 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_BIT_H
+#define SL_BIT_H
+
+/***************************************************************************//**
+ * @addtogroup bit Bit Manipulation
+ * @brief Bitwise operations
+ * @{
+ ******************************************************************************/
+
+/****************************************************************************************************//**
+ * SL_DEF_BIT()
+ *
+ * @brief Create bit mask with single, specified bit set.
+ *
+ * @param bit Bit number of bit to set.
+ *
+ * @return Bit mask with single, specified bit set.
+ *
+ * @note (1) 'bit' SHOULD be a non-negative integer.
+ *
+ * @note (2) 'bit' values that overflow the target CPU &/or compiler environment (e.g. negative
+ * or greater-than-CPU-data-size values) MAY generate compiler warnings &/or errors.
+ *******************************************************************************************************/
+
+#define SL_DEF_BIT(bit) (1u << (bit))
+
+/****************************************************************************************************//**
+ * SL_SET_BIT()
+ *
+ * @brief Set specified bit(s) in a value.
+ *
+ * @param val Value to modify by setting specified bit(s).
+ *
+ * @param mask Mask of bits to set.
+ *
+ * @return Modified value with specified bit(s) set.
+ *
+ * @note 'val' & 'mask' SHOULD be unsigned integers.
+ *******************************************************************************************************/
+
+#define SL_SET_BIT(val, mask) ((val) = ((val) | (mask)))
+
+/****************************************************************************************************//**
+ * SL_CLEAR_BIT()
+ *
+ * @brief Clear specified bit(s) in a value.
+ *
+ * @param val Value to modify by clearing specified bit(s).
+ *
+ * @param mask Mask of bits to clear.
+ *
+ * @return Modified value with specified bit(s) clear.
+ *
+ * @note 'val' & 'mask' SHOULD be unsigned integers.
+ *
+ * @note 'mask' SHOULD be cast with the same data type than 'val'.
+ *******************************************************************************************************/
+
+#define SL_CLEAR_BIT(val, mask) ((val) = ((val) & (~(mask))))
+
+/****************************************************************************************************//**
+ * SL_IS_BIT_SET()
+ *
+ * @brief Determine whether the specified bit(s) in a value are set.
+ *
+ * @param val Value to check for specified bit(s) set.
+ *
+ * @param mask Mask of bits to check if set.
+ *
+ * @return true, if ALL specified bit(s) are set in value.
+ *
+ * false, if ALL specified bit(s) are NOT set in value.
+ *
+ * @note 'val' & 'mask' SHOULD be unsigned integers.
+ *
+ * @note NULL 'mask' allowed; returns 'false' since NO mask bits specified.
+ *******************************************************************************************************/
+
+#define SL_IS_BIT_SET(val, mask) (((((val) & (mask)) == (mask)) && ((mask) != 0u)) ? (true) : (false))
+
+/****************************************************************************************************//**
+ * SL_IS_BIT_CLEAR()
+ *
+ * @brief Determine whether the specified bit(s) in a value are clear.
+ *
+ * @param val Value to check for specified bit(s) clear.
+ *
+ * @param mask Mask of bits to check if clear.
+ *
+ * @return true, if ALL specified bit(s) are clear in value.
+ *
+ * false, if ALL specified bit(s) are NOT clear in value.
+ *
+ * @note val' & 'mask' SHOULD be unsigned integers.
+ *
+ * @note NULL 'mask' allowed; returns 'false' since NO mask bits specified.
+ *******************************************************************************************************/
+#define SL_IS_BIT_CLEAR(val, mask) (((((val) & (mask)) == 0u) && ((mask) != 0u)) ? (true) : (false))
+
+/****************************************************************************************************//**
+ * SL_IS_ANY_BIT_SET()
+ *
+ * @brief Determine whether any specified bit(s) in a value are set.
+ *
+ * @param val Value to check for specified bit(s) set.
+ *
+ * @param mask Mask of bits to check if set (see Note #2).
+ *
+ * @return true, if ANY specified bit(s) are set in value.
+ *
+ * false, if ALL specified bit(s) are NOT set in value.
+ *
+ * @note 'val' & 'mask' SHOULD be unsigned integers.
+ *
+ * @note NULL 'mask' allowed; returns 'false' since NO mask bits specified.
+ *******************************************************************************************************/
+
+#define SL_IS_ANY_BIT_SET(val, mask) ((((val) & (mask)) == 0u) ? (false) : (true))
+
+/****************************************************************************************************//**
+ * SL_IS_ANY_BIT_CLEAR()
+ *
+ * @brief Determine whether any specified bit(s) in a value are clear.
+ *
+ * @param val Value to check for specified bit(s) clear.
+ *
+ * @param mask Mask of bits to check if clear (see Note #2).
+ *
+ * @return true, if ANY specified bit(s) are clear in value.
+ *
+ * false, if ALL specified bit(s) are NOT clear in value.
+ *
+ * @note 'val' & 'mask' SHOULD be unsigned integers.
+ *
+ * @note NULL 'mask' allowed; returns 'false' since NO mask bits specified.
+ *******************************************************************************************************/
+
+#define SL_IS_ANY_BIT_CLEAR(val, mask) ((((val) & (mask)) == (mask)) ? (false) : (true))
+
+/****************************************************************************************************//**
+ * SL_MATH_IS_PWR2()
+ *
+ * @brief Determine if a value is a power of 2.
+ *
+ * @param val Value.
+ *
+ * @return true, 'val' is a power of 2.
+ * false, 'val' is not a power of 2.
+ *******************************************************************************************************/
+
+#define SL_MATH_IS_PWR2(val) ((((val) != 0u) && (((val) & ((val) - 1u)) == 0u)) ? true : false)
+
+/*******************************************************************************
+ ****************************** DEFINES ************************************
+ ******************************************************************************/
+
+/** @} (end addtogroup bit) */
+
+#endif /* SL_BIT_H */
diff --git a/gecko/common/inc/sl_string.h b/gecko/common/inc/sl_string.h
new file mode 100644
index 000000000..89782a3dc
--- /dev/null
+++ b/gecko/common/inc/sl_string.h
@@ -0,0 +1,155 @@
+/*******************************************************************************
+ * @file
+ * @brief Implementation of safe string functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2019 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_STRING_H
+#define SL_STRING_H
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*******************************************************************************
+ * @addtogroup string String
+ * @brief String module provides APIs to handle string-related operations.
+ * @{
+ ******************************************************************************/
+
+// -----------------------------------------------------------------------------
+// Defines
+
+// -----------------------------------------------------------------------------
+// Prototypes
+
+/*******************************************************************************
+ * @brief
+ * Copy a string into a buffer.
+ * Normally, the complete source string including the '\0' termination will be
+ * copied to the destination.
+ * If the destination buffer doesn't have room to receive the
+ * complete source string, the source string will be truncated and the
+ * destination buffer will be '\0' terminated within the destination buffer.
+ *
+ * @param[in] dst Destination buffer.
+ *
+ * @param[in] dst_size The size of the destination buffer.
+ *
+ * @param[in] src Source string.
+ ******************************************************************************/
+void sl_strcpy_s(char *dst, size_t dst_size, const char *src);
+
+/*******************************************************************************
+ * @brief
+ * Append the source string to the end of destination string.
+ * Normally, the complete source string including the '\0' termination will be
+ * appended to the destination, starting at the source strings '\0' termination.
+ * If the destination buffer has no room to receive the
+ * complete source string, the source string will be truncated and the
+ * destination '\0' terminated within the destination buffer.
+ *
+ * @param[in] dst Destination string.
+ *
+ * @param[in] dst_size The size of the destination string buffer.
+ *
+ * @param[in] src Source string.
+ ******************************************************************************/
+void sl_strcat_s(char *dst, size_t dst_size, const char *src);
+
+/*******************************************************************************
+ * @brief
+ * Get the string length.
+ *
+ * @param[in] str The string to get the length for.
+ *
+ * @return String lenght.
+ ******************************************************************************/
+size_t sl_strlen(char *str);
+
+/*******************************************************************************
+ * @brief
+ * Get the string length, limited to given length.
+ *
+ * @param[in] str The string to get the length for.
+ *
+ * @param[in] max_len The input string is searched for at most max_lencharacters.
+ *
+ * @return String lenght.
+ ******************************************************************************/
+size_t sl_strnlen(char *str, size_t max_len);
+
+/*******************************************************************************
+ * @brief
+ * Check if the string is empty.
+ *
+ * @param[in] str The string to check.
+ *
+ * @return true if string is empty or null, else return false.
+ ******************************************************************************/
+bool sl_str_is_empty(const char *str);
+
+/*******************************************************************************
+ * @brief
+ * Compare two strings, ignoring case.
+ *
+ * @param[in] a String to compare.
+ *
+ * @param[in] b String to compare.
+ *
+ * @return An integer greater than, or less than 0 if the strings
+ * are not equal. 0 if the strings are equal.
+ ******************************************************************************/
+int sl_strcasecmp(char const *a, char const *b);
+
+/*******************************************************************************
+ * @brief
+ * Searches for the character in memory, in reverse order.
+ *
+ * @param[in] buff Address of the memory buffer.
+ *
+ * @param[in] c Character to look for.
+ *
+ * @param[in] buff_len Length of the memory buffer.
+ *
+ * @return The address of the character in the buffer if and only
+ * if it was found.
+ * NULL if no character was found.
+ ******************************************************************************/
+void* sl_memrchr(void const *buff, char c, size_t buff_len);
+
+/** @} (end addtogroup string) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SL_STRING_H */
diff --git a/scripts/.gitignore b/scripts/.gitignore
index 1fcb1529f..1e4ded714 100644
--- a/scripts/.gitignore
+++ b/scripts/.gitignore
@@ -1 +1,2 @@
+cache
out
diff --git a/scripts/gen_acmp.py b/scripts/gen_acmp.py
new file mode 100755
index 000000000..ea0cc298b
--- /dev/null
+++ b/scripts/gen_acmp.py
@@ -0,0 +1,97 @@
+"""
+Copyright (c) 2025 Silicon Laboratories Inc.
+
+SPDX-License-Identifier: Apache-2.0
+"""
+import argparse
+import re
+import datetime
+from pathlib import Path
+
+devices = {
+ "xg21": {
+ "bits": "platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21_acmp.h",
+ },
+ "xg23": {
+ "bits": "platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23_acmp.h",
+ },
+ "xg24": {
+ "bits": "platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24_acmp.h",
+ },
+ "xg27": {
+ "bits": "platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_acmp.h",
+ },
+ "xg29": {
+ "bits": "platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_acmp.h",
+ },
+}
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Generate headers for Comparator for Series 2 "
+ "devices. The headers are used from DeviceTree, and represent "
+ "every ACMP input selection as a DT compatible macro.")
+ parser.add_argument("--out", "-o", type=Path, default=Path(__file__).parent / "out",
+ help="Output directory. Defaults to the directory ./out/ relative to the "
+ "script. Set to $ZEPHYR_BASE/include/zephyr/dt-bindings/comparator/ "
+ "to directly generate output into the expected location within the Zephyr "
+ "main tree.")
+ parser.add_argument("--sdk", "-s", type=Path, default=Path(__file__).parent.parent / "simplicity_sdk",
+ help="Path to Simplicity SDK to extract data from. Defaults to the directory "
+ "../simplicity_sdk relative to the script.")
+ args = parser.parse_args()
+
+ args.out.mkdir(exist_ok=True)
+
+ defines = {}
+ for device, data_sources in devices.items():
+ bits_file = (args.sdk / data_sources["bits"]).resolve()
+ with bits_file.open() as f:
+ for line in f:
+
+ if m := re.match(r"#define (_ACMP_INPUTCTRL_POSSEL_(?!SHIFT)(?!MASK)(?!DEFAULT).*)\s+(\dx[\dABCDEF]+)", line):
+ input_value = hex(int(m.group(2),16))
+ input_name = f"#define ACMP_INPUT_{m.group(1).split('_')[-1]}"
+ # Detect any input definition collisions
+ if (input_value in defines):
+ if ( input_name == defines[input_value] ):
+ print(f"Inputs {input_name} and {defines[input_value]} share the same value {input_value}.")
+ defines.update({input_value : f"{input_name} {input_value}"})
+
+ if m := re.match(r"#define (_ACMP_INPUTCTRL_NEGSEL_(?!SHIFT)(?!MASK)(?!DEFAULT).*)\s+(\dx[\dABCDEF]+)", line):
+ input_value = hex(int(m.group(2),16))
+ input_name = f"#define ACMP_INPUT_{m.group(1).split('_')[-1]}"
+ # Detect any input definition collisions
+ if (input_value in defines):
+ if ( input_name == defines[input_value] ):
+ print(f"Inputs {input_name} and {defines[input_value]} share the same value {input_value}.")
+ defines.update({input_value : f"{input_name} {input_value}"})
+
+ # Sort defines by key
+ defines = dict(sorted(defines.items()))
+
+ file = [
+ "/*",
+ f" * Copyright (c) {datetime.date.today().year} Silicon Laboratories Inc.",
+ " *",
+ " * SPDX-License-Identifier: Apache-2.0",
+ " *",
+ f" * This file was generated by the script {Path(__file__).name} in the hal_silabs module.",
+ " * Do not manually edit.",
+ " */",
+ "",
+ f"#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_SILABS_ACMP_H_",
+ f"#define ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_SILABS_ACMP_H_",
+ "",
+ f"/* ACMP Input Aliases */",
+ f"#define ACMP_INPUT_VDACOUT0 ACMP_INPUT_VDAC0OUT0",
+ f"#define ACMP_INPUT_VDACOUT1 ACMP_INPUT_VDAC0OUT1",
+ "",
+ f"/* ACMP Input Definitions */",
+ ] + list(defines.values()) + [
+ "",
+ f"#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_COMPARATOR_SILABS_ACMP_H_ */",
+ "",
+ ]
+
+ outfile = args.out / f"silabs-acmp.h"
+ outfile.write_text("\n".join(file))
diff --git a/scripts/gen_adc.py b/scripts/gen_adc.py
new file mode 100755
index 000000000..5035840ed
--- /dev/null
+++ b/scripts/gen_adc.py
@@ -0,0 +1,158 @@
+#!/usr/bin/env python
+
+"""
+Copyright (c) 2025 Silicon Laboratories Inc.
+
+SPDX-License-Identifier: Apache-2.0
+"""
+import argparse
+import datetime
+import re
+from pathlib import Path
+
+devices = {
+ "xg21": {
+ "bits": "platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ },
+ "xg22": {
+ "bits": "platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ },
+ "xg23": {
+ "bits": "platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ },
+ "xg24": {
+ "bits": "platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ },
+ "xg27": {
+ "bits": "platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 2: "VBAT",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ },
+ "xg29": {
+ "bits": "platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_iadc.h",
+ "values": {
+ "SUPPLY": {
+ 0: "AVDD",
+ 1: "IOVDD",
+ 2: "VBAT",
+ 4: "DVDD",
+ 7: "DECOUPLE"
+ }
+ }
+ }
+}
+
+alias = {
+ "PADANA0": "AIN0",
+ "PADANA1": "AIN1",
+ "PADANA2": "AIN2",
+ "PADANA3": "AIN3",
+}
+
+def insert(values, key, val):
+ if key in values:
+ assert values[key] == val, f"{key} = {values[key]} from a previous device, new value = {val}"
+ else:
+ values[key] = val
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Generate headers for ADC for Series 2 "
+ "devices. The headers are used from DeviceTree, and represent "
+ "every ADC input as a DT compatible macro.")
+ parser.add_argument("--out", "-o", type=Path, default=Path(__file__).parent / "out",
+ help="Output directory. Defaults to the directory ./out/ relative to the "
+ "script. Set to $ZEPHYR_BASE/include/zephyr/dt-bindings/adc/ "
+ "to directly generate output into the expected location within the Zephyr "
+ "main tree.")
+ parser.add_argument("--sdk", "-s", type=Path, default=Path(__file__).parent.parent / "simplicity_sdk",
+ help="Path to Simplicity SDK to extract data from. Defaults to the directory "
+ "../simplicity_sdk relative to the script.")
+ args = parser.parse_args()
+
+ args.out.mkdir(exist_ok=True)
+
+ values = {}
+ for device, data_source in devices.items():
+ print(f"Parse ADC data for {device}")
+
+ with (args.sdk / data_source["bits"]).open() as f:
+ for line in f:
+ if m := re.match(r"#define _IADC_SINGLE_PORT(POS|NEG)_([^\s]+)\s+(0x[0-9A-F]*)UL", line):
+ port = m.group(2)
+ port_base = int(m.group(3), base=16) * 16
+ if port in ["MASK", "DEFAULT"]:
+ continue
+ if port in data_source["values"]:
+ for value, key in data_source["values"][port].items():
+ insert(values, key, port_base + value)
+ elif port.startswith("PORT"):
+ for pin in range(16):
+ insert(values, f"P{port[4]}{pin}", port_base + pin)
+ else:
+ insert(values, alias.get(port,port), port_base)
+
+ file = [
+ "/*",
+ f" * Copyright (c) {datetime.date.today().year} Silicon Laboratories Inc.",
+ " *",
+ " * SPDX-License-Identifier: Apache-2.0",
+ " *",
+ f" * This file was generated by the script {Path(__file__).name} in the hal_silabs module.",
+ " * Do not manually edit.",
+ " */",
+ "",
+ f"#ifndef ZEPHYR_INCLUDE_DT_BINDINGS_ADC_SILABS_ADC_H_",
+ f"#define ZEPHYR_INCLUDE_DT_BINDINGS_ADC_SILABS_ADC_H_",
+ "",
+ ]
+
+ max_key = max(len(k) for k in values)
+ for k, v in sorted(values.items(), key=lambda i: (i[1],i[0])):
+ file.append(f"#define IADC_INPUT_{k}{' ' * (max_key - len(k) + 1)}0x{v:x}")
+
+ file.append("")
+ file.append(f"#endif /* ZEPHYR_INCLUDE_DT_BINDINGS_ADC_SILABS_ADC_H_ */")
+ file.append("")
+
+ outfile = args.out / f"silabs-adc.h"
+ outfile.write_text("\n".join(file))
diff --git a/scripts/gen_clock_control.py b/scripts/gen_clock_control.py
index bee5c8f31..affbb4f5e 100755
--- a/scripts/gen_clock_control.py
+++ b/scripts/gen_clock_control.py
@@ -28,6 +28,10 @@
"xg27": {
"bits": "platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_cmu.h",
"nodes": "platform/service/device_manager/clocks/sl_device_clock_efr32xg27.c"
+ },
+ "xg29": {
+ "bits": "platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_cmu.h",
+ "nodes": "platform/service/device_manager/clocks/sl_device_clock_efr32xg29.c"
},
}
@@ -55,6 +59,7 @@
args.out.mkdir(exist_ok=True)
for device, data_sources in devices.items():
+ print(f"Generate clock control binding for {device}")
bits_file = (args.sdk / data_sources["bits"]).resolve()
bits = {}
with bits_file.open() as f:
@@ -68,11 +73,14 @@
with node_file.open() as f:
for line in f:
if m := re.match(r".*uint32_t SL_BUS_(.*)_VALUE = \(([^\s]+).*(_CMU[^\s]+SHIFT)", line):
- nodes.append(f"#define {m.group(1)}"
- f"{' ' * (20 - len(m.group(1)))}"
- f"(FIELD_PREP(CLOCK_REG_MASK, {clocks[m.group(2)]}) | "
- f"FIELD_PREP(CLOCK_BIT_MASK, {bits[m.group(3)]}))"
- )
+ try:
+ nodes.append(f"#define {m.group(1)}"
+ f"{' ' * (20 - len(m.group(1)))}"
+ f"(FIELD_PREP(CLOCK_REG_MASK, {clocks[m.group(2)]}) | "
+ f"FIELD_PREP(CLOCK_BIT_MASK, {bits[m.group(3)]}))"
+ )
+ except KeyError as e:
+ print(f"WARN: Failed to emit clock node: {e}")
else:
# xg21 has on-demand automatic clock requests, there are no enable bits
nodes.append("#define CLOCK_AUTO 0xFFFFFFFFUL")
diff --git a/scripts/gen_pinctrl.py b/scripts/gen_pinctrl.py
new file mode 100755
index 000000000..7867fecef
--- /dev/null
+++ b/scripts/gen_pinctrl.py
@@ -0,0 +1,373 @@
+#!/usr/bin/env python
+
+"""
+Copyright (c) 2024 Silicon Laboratories Inc.
+
+SPDX-License-Identifier: Apache-2.0
+"""
+
+import argparse
+import cmsis_svd
+import datetime
+import lxml
+import re
+import shutil
+import tempfile
+import urllib.request
+import zipfile
+
+from pathlib import Path
+
+import cmsis_svd.parser
+
+PIN_TOOL_URL = "https://github.com/SiliconLabs/simplicity_sdk/releases/download/v2024.6.2/pintool.zip"
+CMSIS_PACK_URL = "https://www.silabs.com/documents/public/cmsis-packs/SiliconLabs.GeckoPlatform_FAMILY_DFP.2024.6.0.pack"
+
+# Families to parse to produce generic pinout header
+FAMILIES = {
+ "xg21": ["efr32mg21", "efr32bg21", "mgm21", "bgm21"],
+ "xg22": ["efr32mg22", "efr32bg22", "efr32fg22", "mgm22", "bgm22", "efm32pg22"],
+ "xg23": ["efr32fg23", "efr32sg23", "efr32zg23", "zgm23", "efm32pg23"], # "fgm23",
+ "xg24": ["efr32mg24", "efr32bg24", "mgm24", "bgm24"],
+ "xg25": ["efr32fg25"],
+ "xg26": ["efr32mg26", "efr32bg26"],
+ "xg27": ["efr32mg27", "efr32bg27"],
+ "xg28": ["efr32fg28", "efr32sg28", "efr32zg28", "efm32pg28"],
+ "xg29": ["efr32bg29"],
+}
+ABUSES = {
+ "xg21": "platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21_gpio.h",
+ "xg22": "platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22_gpio.h",
+ "xg23": "platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23_gpio.h",
+ "xg24": "platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24_gpio.h",
+ "xg25": "platform/Device/SiliconLabs/EFR32FG25/Include/efr32fg25_gpio.h",
+ "xg26": "platform/Device/SiliconLabs/EFR32MG26/Include/efr32mg26_gpio.h",
+ "xg27": "platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_gpio.h",
+ "xg28": "platform/Device/SiliconLabs/EFR32FG28/Include/efr32fg28_gpio.h",
+ "xg29": "platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio.h",
+}
+
+# Certain peripherals have different names in SVD and Pin Tool data; rename the SVD peripheral
+PERIPHERAL_ALIAS = {
+ "FRC": "PTI",
+ "LETIMER": "LETIMER0",
+ "SYXO0": "HFXO0",
+}
+
+# Certain signals have different names in SVD and Pin Tool data; rename the SVD signal
+SIGNAL_ALIAS = {
+ "CCC0": "CDTI0",
+ "CCC1": "CDTI1",
+ "CCC2": "CDTI2",
+ "CCC3": "CDTI3",
+ "USART1::SCLK": "CLK",
+}
+
+# Certain signals have different names in SVD and Pin Tool data; rename the Pin Tool signal
+PT_SIGNAL_ALIAS = {
+ "ACMPOUT": "DIGOUT",
+ "COLOUT0": "COL_OUT_0",
+ "COLOUT1": "COL_OUT_1",
+ "COLOUT2": "COL_OUT_2",
+ "COLOUT3": "COL_OUT_3",
+ "COLOUT4": "COL_OUT_4",
+ "COLOUT5": "COL_OUT_5",
+ "COLOUT6": "COL_OUT_6",
+ "COLOUT7": "COL_OUT_7",
+ "ROWSENSE0": "ROW_SENSE_0",
+ "ROWSENSE1": "ROW_SENSE_1",
+ "ROWSENSE2": "ROW_SENSE_2",
+ "ROWSENSE3": "ROW_SENSE_3",
+ "ROWSENSE4": "ROW_SENSE_4",
+ "ROWSENSE5": "ROW_SENSE_5",
+ "ANTROLLOVER": "ANT_ROLL_OVER",
+ "ANTRR0": "ANT_RR0",
+ "ANTRR1": "ANT_RR1",
+ "ANTRR2": "ANT_RR2",
+ "ANTRR3": "ANT_RR3",
+ "ANTRR4": "ANT_RR4",
+ "ANTRR5": "ANT_RR5",
+ "ANTSWEN": "ANT_SW_EN",
+ "ANTSWUS": "ANT_SW_US",
+ "ANTTRIG": "ANT_TRIG",
+ "ANTTRIGSTOP": "ANT_TRIG_STOP",
+ "BUFOUTREQINASYNC": "BUFOUT_REQ_IN_ASYNC",
+ "USBVBUSSENSE": "USB_VBUS_SENSE",
+}
+
+# Expected offset of DBGROUTEPEN register across all of Series 2.
+# Used as base address of pinctrl device tree node.
+PINCTRL_GPIO_OFFSET = 1088
+
+
+class Peripheral:
+ def __init__(self, name, offset):
+ self.name = name
+ self.offset = offset
+ self.signals = []
+
+ def max_signal_len(self):
+ return max(len(s.name) for s in self.signals)
+
+ def set_signal_enable(self, name, bit):
+ for signal in self.signals:
+ if signal.name == name:
+ break
+ else:
+ signal = Signal(name, self)
+ self.signals.append(signal)
+
+ signal.have_enable = True
+ signal.enable = bit
+
+ def set_signal_route(self, name, offset):
+ for signal in self.signals:
+ if signal.name == name:
+ break
+ else:
+ signal = Signal(name, self)
+ self.signals.append(signal)
+
+ signal.route = offset - self.offset
+
+
+class Signal:
+ def __init__(self, name, peripheral):
+ self.peripheral = peripheral
+ self.name = name
+ self.route = None
+ self.have_enable = False
+ self.enable = 0
+ self.pinout = {}
+
+ def display_name(self):
+ return f"{self.peripheral.name}_{self.name}"
+
+
+def download_pin_tool_data(path: Path) -> None:
+ """
+ Download Pin Tool zip file from SiSDK release artifact
+ """
+ dst = path / "pin_tool"
+ if dst.exists():
+ print("Skipping download of Pin Tool data, already exists")
+ return
+ print("Downloading Pin Tool data")
+ with urllib.request.urlopen(PIN_TOOL_URL) as response:
+ with tempfile.NamedTemporaryFile() as tmp_file:
+ shutil.copyfileobj(response, tmp_file)
+
+ with zipfile.ZipFile(tmp_file, 'r') as zip:
+ zip.extractall(dst)
+
+
+def download_cmsis_pack(path: Path, family: str) -> None:
+ """
+ Download CMSIS Pack containing SVD files for a given family
+ """
+ dst = path / "pack" / family
+ if dst.exists():
+ print(f"Skipping download of CMSIS Pack for {family}, already exists")
+ return
+ print(f"Downloading CMSIS Pack for {family}")
+ with urllib.request.urlopen(CMSIS_PACK_URL.replace("FAMILY", family.upper())) as response:
+ with tempfile.NamedTemporaryFile() as tmp_file:
+ shutil.copyfileobj(response, tmp_file)
+
+ with zipfile.ZipFile(tmp_file, 'r') as zip:
+ zip.extractall(dst)
+
+
+def parse_svd(peripherals, path: Path, family: str) -> None:
+ for svd_path in (path / "pack" / family / "SVD" / family.upper()).glob("*.svd"):
+ print(f"Parsing SVD for {svd_path.stem}")
+ parser = cmsis_svd.parser.SVDParser.for_xml_file(svd_path)
+ gpio: cmsis_svd.parser.SVDPeripheral = next(filter(lambda p: p.name == "GPIO_NS", parser.get_device().peripherals))
+ for reg in gpio.registers:
+ if reg.name == "DBGROUTEPEN":
+ assert PINCTRL_GPIO_OFFSET == reg.address_offset
+
+ reg_offset_word = (reg.address_offset - PINCTRL_GPIO_OFFSET) // 4
+
+ if reg.name.endswith("_ROUTEEN"):
+ peripheral = reg.name[:-8]
+ peripheral = PERIPHERAL_ALIAS.get(peripheral, peripheral)
+ if peripheral not in peripherals:
+ peripherals[peripheral] = Peripheral(peripheral, reg_offset_word)
+
+ for field in reg.fields:
+ if field.name.endswith("PEN"):
+ signal = field.name[:-3]
+ signal = SIGNAL_ALIAS.get(signal, signal)
+ signal = SIGNAL_ALIAS.get(f"{peripheral}::{signal}", signal)
+ peripherals[peripheral].set_signal_enable(signal, field.bit_offset)
+
+ if reg.name.endswith("ROUTE"):
+ peripheral, signal = reg.name.split("_", 1)
+ peripheral = PERIPHERAL_ALIAS.get(peripheral, peripheral)
+ signal = signal[:-5]
+ signal = SIGNAL_ALIAS.get(signal, signal)
+ signal = SIGNAL_ALIAS.get(f"{peripheral}::{signal}", signal)
+
+ if peripheral not in peripherals:
+ peripherals[peripheral] = Peripheral(peripheral, reg_offset_word)
+
+ peripherals[peripheral].set_signal_route(signal, reg_offset_word)
+
+
+def parse_pin_tool(peripherals, path: Path, family: str):
+ for pin_tool in (path / "pin_tool" / "platform" / "hwconf_data" / "pin_tool" / family).glob("*/PORTIO.portio"):
+ print(f"Parsing Pin Tool for {pin_tool.parent.stem}")
+ with open(pin_tool, 'r') as f:
+ tree = lxml.etree.parse(f)
+
+ for peripheral in peripherals.values():
+ for signal in peripheral.signals:
+ pt_signal = PT_SIGNAL_ALIAS.get(signal.name, signal.name)
+
+ if peripheral.name == "PRS0":
+ pt_peripheral = f"PRS.{signal.name}"
+ pt_signal_prefix = "PRS"
+ else:
+ pt_peripheral = peripheral.name
+ pt_signal_prefix = peripheral.name
+
+ for node in tree.getroot().xpath(f'portIo/pinRoutes/module[@name="{pt_peripheral}"]/selector[@name="{pt_signal_prefix}_{pt_signal}"]'):
+ for loc in node.xpath(f'route[@name="{pt_signal}"]/location'):
+ port = int(loc.attrib["portBankIndex"])
+ pin = int(loc.attrib["pinIndex"])
+ if port not in signal.pinout:
+ signal.pinout[port] = set()
+ signal.pinout[port].add(pin)
+
+ break
+ else:
+ print(f"WARN: No Pin Tool match for {signal.display_name()} for {pin_tool.parent.stem}")
+
+
+def write_header(path: Path, family, peripherals: dict, abuses: list) -> None:
+ """
+ Write DT binding header containing DBUS routing data for pinctrl use
+ """
+ lines = [
+ "/*",
+ f" * Copyright (c) {datetime.date.today().year} Silicon Laboratories Inc.",
+ " * SPDX-License-Identifier: Apache-2.0",
+ " *",
+ f" * Pin Control for Silicon Labs {family.upper()} devices",
+ " *",
+ f" * This file was generated by the script {Path(__file__).name} in the hal_silabs module.",
+ " * Do not manually edit.",
+ " */",
+ "",
+ f"#ifndef ZEPHYR_DT_BINDINGS_PINCTRL_SILABS_{family.upper()}_PINCTRL_H_",
+ f"#define ZEPHYR_DT_BINDINGS_PINCTRL_SILABS_{family.upper()}_PINCTRL_H_",
+ "",
+ "#include ",
+ "",
+ ]
+
+ # Emit generic peripheral macros
+ for peripheral in peripherals.values():
+ have_content = False
+ for signal in peripheral.signals:
+ if signal.route is not None:
+ pad = peripheral.max_signal_len() - len(signal.name) + 1
+ lines.append(f"#define SILABS_DBUS_{signal.display_name()}(port, pin){' ' * pad}"
+ f"SILABS_DBUS(port, pin, {peripheral.offset}, {int(signal.have_enable)}, "
+ f"{signal.enable}, {signal.route})")
+ have_content = True
+ else:
+ print(f"WARN: No route register for {signal.display_name()}")
+ if have_content:
+ lines.append("")
+
+ # Emit pin-specific macros using peripheral macros
+ for peripheral in peripherals.values():
+ have_content = False
+ for signal in peripheral.signals:
+ for port, pins in signal.pinout.items():
+ for pin in sorted(pins):
+ pad = peripheral.max_signal_len() - len(signal.name) + 1
+ lines.append(f"#define {signal.display_name()}_P{chr(65 + port)}{pin}{' ' * pad}"
+ f"SILABS_DBUS_{signal.display_name()}(0x{port:x}, 0x{pin:x})")
+ have_content = True
+ if have_content:
+ lines.append("")
+
+ # Emit analog buses
+ max_len = 0
+ for abus in abuses:
+ curr_len = len(abus["bus_name"]) + len(abus["peripheral"])
+ if curr_len > max_len:
+ max_len = curr_len
+ for abus in abuses:
+ curr_len = len(abus["bus_name"]) + len(abus["peripheral"])
+ lines.append(f"#define ABUS_{abus["bus_name"]}_{abus["peripheral"]}{' ' * (max_len - curr_len + 1)}"
+ f"SILABS_ABUS(0x{abus["base_offset"]:x}, 0x{abus["parity"]:x}, 0x{abus["value"]:x})")
+ lines.append("")
+
+ lines.append(f"#endif /* ZEPHYR_DT_BINDINGS_PINCTRL_SILABS_{family.upper()}_PINCTRL_H_ */")
+ lines.append("")
+ path.mkdir(parents=True, exist_ok=True)
+ (path / f"{family}-pinctrl.h").write_text("\n".join(lines))
+
+def parse_abus(file: Path) -> list:
+ offset_map = {
+ "EVEN0": 0,
+ "EVEN1": 1,
+ "ODD0": 2,
+ "ODD1": 3,
+ }
+ peripheral_map = {
+ "ADC0": "IADC0",
+ }
+ abuses = []
+ with file.open() as f:
+ for line in f:
+ if m := re.match(r"#define _GPIO_([A-Z])[A-Z]?BUSALLOC_([A-Z]+(EVEN\d|ODD\d))_([^\s]+)\s+0x(.+)UL", line):
+ if m.group(4) not in ["DEFAULT", "TRISTATE", "MASK"]:
+ abuses.append({
+ "base_offset": ord(m.group(1)) - 65,
+ "bus_name": m.group(2),
+ "parity": offset_map[m.group(3)],
+ "peripheral": peripheral_map.get(m.group(4), m.group(4)),
+ "value": int(m.group(5), base=16),
+ })
+
+ return abuses
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description="Generate headers for Pinctrl for Series 2 devices. "
+ "The headers are used from DeviceTree, and represent every "
+ "allowed pin selection for every digital bus signal as a DT "
+ "compatible macro.")
+ parser.add_argument("--workdir", "-w", default=Path(__file__).parent.absolute() / "cache",
+ type=Path, help="Working directory to store downloaded Pin Tool and "
+ "CMSIS-Pack artifacts.")
+ parser.add_argument("--sdk", "-s", default=Path(__file__).parent.parent.absolute() / "simplicity_sdk",
+ type=Path, help="SDK directory.")
+ parser.add_argument("--out", "-o", default=(Path(__file__).parent.absolute() / "out"), type=Path,
+ help="Output directory for generated bindings. Defaults to the directory "
+ "./out relative to the script. Set to $ZEPHYR_BASE/include/zephyr/"
+ "dt-bindings/pinctrl/silabs/ to directly generate output into the expected "
+ "location within the Zephyr main tree.")
+ parser.add_argument("--family", "-f", default="xg24", choices=FAMILIES.keys(),
+ help="Device family to generate pinctrl bindings for. Defaults to xg24 if "
+ "not set.")
+ args = parser.parse_args()
+
+ download_pin_tool_data(args.workdir)
+
+ peripherals = {}
+
+ for family in FAMILIES[args.family]:
+ download_cmsis_pack(args.workdir, family)
+ # Find DBUS register offsets for all peripheral signals from SVD
+ parse_svd(peripherals, args.workdir, family)
+ # Add available pins for all peripheral signals from Pin Tool data
+ parse_pin_tool(peripherals, args.workdir, family)
+
+ abuses = parse_abus(args.sdk / ABUSES[args.family])
+
+ write_header(args.out, args.family, peripherals, abuses)
diff --git a/scripts/import_simplicity_sdk.py b/scripts/import_simplicity_sdk.py
index 78f511d39..d6413c1c5 100755
--- a/scripts/import_simplicity_sdk.py
+++ b/scripts/import_simplicity_sdk.py
@@ -7,8 +7,11 @@
"""
import argparse
+import re
import shutil
+import subprocess
from pathlib import Path
+from ruamel.yaml import YAML
paths = [
"License.txt",
@@ -17,12 +20,21 @@
"platform/common/src/sl_assert.c",
"platform/common/src/sl_core_cortexm.c",
"platform/common/src/sl_slist.c",
- "platform/Device/SiliconLabs/EFR32BG2[27]/Include/*.h",
- "platform/Device/SiliconLabs/EFR32BG2[27]/Source/system_*.c",
+ "platform/Device/SiliconLabs/EFR32BG2[279]/Include/*.h",
+ "platform/Device/SiliconLabs/EFR32BG2[279]/Source/system_*.c",
"platform/Device/SiliconLabs/EFR32FG2[3]/Include/*.h",
"platform/Device/SiliconLabs/EFR32FG2[3]/Source/system_*.c",
- "platform/Device/SiliconLabs/EFR32MG2[14]/Include/*.h",
- "platform/Device/SiliconLabs/EFR32MG2[14]/Source/system_*.c",
+ "platform/Device/SiliconLabs/EFR32MG2[149]/Include/*.h",
+ "platform/Device/SiliconLabs/EFR32MG2[149]/Source/system_*.c",
+ "platform/Device/SiliconLabs/EFR32ZG2[3]/Include/*.h",
+ "platform/Device/SiliconLabs/EFR32ZG2[3]/Source/system_*.c",
+ "platform/driver/gpio/inc/*.h",
+ "platform/driver/gpio/src/*.c",
+ "platform/emdrv/common/inc/*.h",
+ "platform/emdrv/dmadrv/config/s2_8ch/*.h",
+ "platform/emdrv/dmadrv/inc/*.h",
+ "platform/emdrv/dmadrv/inc/s2_signals/.h",
+ "platform/emdrv/dmadrv/src/*.c",
"platform/emlib/inc/*.h",
"platform/emlib/src/*.c",
"platform/peripheral/inc/*.h",
@@ -33,7 +45,13 @@
"platform/radio/rail_lib/plugin/rail_util_protocol/**/*.[ch]",
"platform/radio/rail_lib/protocol/**/*.[ch]",
"platform/security/sl_component/se_manager/**/*.[ch]",
+ "platform/security/sl_component/sl_mbedtls_support/config/*.[ch]",
+ "platform/security/sl_component/sl_mbedtls_support/inc/*.[ch]",
+ "platform/security/sl_component/sl_mbedtls_support/src/*.[ch]",
"platform/security/sl_component/sl_protocol_crypto/**/*.[ch]",
+ "platform/security/sl_component/sl_psa_driver/*/*.[ch]",
+ "platform/security/sl_component/sli_crypto/**/*.[ch]",
+ "platform/security/sl_component/sli_psec_osal/**/*.[ch]",
"platform/service/clock_manager/config/**/*.h", # TODO
"platform/service/clock_manager/inc/*.h",
"platform/service/clock_manager/src/*.[ch]",
@@ -44,6 +62,7 @@
"platform/service/hfxo_manager/config/**/*.h", # TODO
"platform/service/hfxo_manager/inc/*.h",
"platform/service/hfxo_manager/src/*.[ch]",
+ "platform/service/interrupt_manager/inc/*.h",
"platform/service/memory_manager/config/*.h", # TODO
"platform/service/memory_manager/inc/*.h",
"platform/service/memory_manager/src/*.[ch]",
@@ -52,7 +71,7 @@
"platform/service/memory_manager/profiler/src/*.c",
"platform/service/power_manager/config/**/*.h", # TODO
"platform/service/power_manager/inc/*.h",
- "platform/service/power_manager/src/*.[ch]",
+ "platform/service/power_manager/src/*/*.[ch]",
"platform/service/sleeptimer/config/**/*.h", # TODO
"platform/service/sleeptimer/inc/*.h",
"platform/service/sleeptimer/src/*.[ch]",
@@ -71,18 +90,55 @@ def copy_files(src: Path, dst: Path, paths: list[str]) -> None:
shutil.copy(f, destfile)
+def update_blobs(mod: Path, sdk: Path) -> None:
+ y = YAML(typ='rt')
+ y.default_flow_style = False
+ y.indent(mapping=2, sequence=4, offset=2)
+ y.preserve_quotes = True
+ y.width = 1024
+ y.boolean_representation = ['False', 'True']
+
+ slcs = y.load(sdk / "simplicity_sdk.slcs")
+
+ data = y.load(mod)
+ for blob in data.get('blobs'):
+ path = Path(blob["path"])
+ if not path.is_relative_to(Path("simplicity_sdk")):
+ continue
+
+ path = path.relative_to(Path("simplicity_sdk"))
+ lfs = subprocess.check_output(["git", "show", f"HEAD:{str(path)}"], cwd=sdk).decode()
+ sha = re.search(r"sha256:([0-9a-f]{64})\s", lfs).group(1)
+
+ blob["sha256"] = sha
+ blob["url"] = f"https://artifacts.silabs.net/artifactory/gsdk/objects/{sha[0:2]}/{sha[2:4]}/{sha}"
+ blob["version"] = slcs["sdk_version"]
+
+ y.dump(data, mod)
+
+
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--sdk", "-s", type=Path)
+ parser.add_argument("--blobs", "-b", action='store_true')
args = parser.parse_args()
dst = (Path(__file__).parent.parent / "simplicity_sdk").resolve()
if args.sdk is not None:
src = args.sdk.resolve(strict=True)
+
print(f"Import SDK from {src}")
for dir in dst.iterdir():
if dir.is_dir():
shutil.rmtree(dir, ignore_errors=True)
copy_files(src, dst, paths)
+
+ print(f"Update module.yml with blobs from {src}")
+ mod = Path(__file__).parent.parent / "zephyr" / "module.yml"
+ update_blobs(mod, src)
+
+ print("Done")
+ else:
+ print("No SDK to import from")
diff --git a/scripts/import_wiseconnect.py b/scripts/import_wiseconnect.py
new file mode 100755
index 000000000..b0c784f21
--- /dev/null
+++ b/scripts/import_wiseconnect.py
@@ -0,0 +1,213 @@
+#!/usr/bin/env python3
+
+"""
+Copyright (c) 2024 Silicon Laboratories Inc.
+
+SPDX-License-Identifier: Apache-2.0
+"""
+
+import argparse
+import os
+import shutil
+import tempfile
+import subprocess
+from pathlib import Path
+
+
+paths = [
+ "components/common/inc/sl_additional_status.h",
+ "components/common/inc/sl_constants.h",
+ "components/common/inc/sl_ieee802_types.h",
+ "components/common/inc/sl_ip_types.h",
+ "components/common/inc/sl_utility.h",
+ "components/common/src/sl_utility.c",
+ "components/device/silabs/si91x/mcu/core/chip/config/sl_board_configuration.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/base_types.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/data_types.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/em_device.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/rsi_ccp_common.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/rsi_error.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/rsi_ps_ram_func.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/rsi_system_config.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/si91x_device.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/si91x_mvp.h",
+ "components/device/silabs/si91x/mcu/core/chip/inc/system_si91x.h",
+ "components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/ipmu_apis.c",
+ "components/device/silabs/si91x/mcu/core/chip/src/iPMU_prog/iPMU_dotc/rsi_system_config_917.c",
+ "components/device/silabs/si91x/mcu/core/chip/src/rsi_deepsleep_soc.c",
+ "components/device/silabs/si91x/mcu/core/chip/src/system_si91x.c",
+ "components/device/silabs/si91x/mcu/core/config/rsi_ccp_user_config.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_Common.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_I2C.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SAI.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_SPI.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/CMSIS/Driver/Include/Driver_USART.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/config/RTE_Device_917.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/GSPI.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/I2C.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/SAI.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/SPI.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/UDMA.h",
+ "components/device/silabs/si91x/mcu/drivers/cmsis_driver/USART.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_crc.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_ct.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_efuse.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_egpio.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_gpdma.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_pwm.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_qspi_proto.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_rng.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_timers.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/inc/rsi_udma_wrapper.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/clock_update.c",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/clock_update.h",
+ "components/device/silabs/si91x/mcu/drivers/peripheral_drivers/src/rsi_rng.c",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_packing.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_clks.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_egpio.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_power_save.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_rng.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_table_si91x.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_udma_wrapper.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/inc/rsi_rom_ulpss_clk.h",
+ "components/device/silabs/si91x/mcu/drivers/rom_driver/src/rsi_rom_table_si91x.c",
+ "components/device/silabs/si91x/mcu/drivers/service/clock_manager/inc/sl_si91x_clock_manager.h",
+ "components/device/silabs/si91x/mcu/drivers/service/clock_manager/src/sl_si91x_clock_manager.c",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ipmu.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_pll.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_power_save.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_processor_sensor.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_reg_spi.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_retention.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_temp_sensor.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_time_period.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_ulpss_clk.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/inc/rsi_wwdt.h",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ipmu.c",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_pll.c",
+ "components/device/silabs/si91x/mcu/drivers/systemlevel/src/rsi_ulpss_clk.c",
+ "components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_driver_gpio.h",
+ "components/device/silabs/si91x/mcu/drivers/unified_api/inc/sl_si91x_driver_gpio.h",
+ "components/device/silabs/si91x/mcu/drivers/unified_api/src/sl_si91x_driver_gpio.c",
+ "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio_common.h",
+ "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_gpio.h",
+ "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/inc/sl_si91x_peripheral_gpio.h",
+ "components/device/silabs/si91x/mcu/drivers/unified_peripheral_drivers/src/sl_si91x_peripheral_gpio.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_m4.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_os.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_pkt_mgmt.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/rsi_wisemcu_hardware_setup.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/sl_device.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_soc.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/inc/sli_siwx917_timer.h",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_ram.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/rsi_hal_mcu_m4_rom.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/sli_siwx917_soc.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/sl_platform_wireless.c",
+ "components/device/silabs/si91x/wireless/ahb_interface/src/sl_si91x_bus.c",
+ "components/device/silabs/si91x/wireless/asynchronous_socket/inc/sl_si91x_socket.h",
+ "components/device/silabs/si91x/wireless/asynchronous_socket/src/sl_si91x_socket.c",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_ble_apis.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_ble_common_config.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_ble.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_apis.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common_config.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_bt_common.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_common_apis.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_common.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_user.h",
+ "components/device/silabs/si91x/wireless/ble/inc/rsi_utils.h",
+ "components/device/silabs/si91x/wireless/ble/inc/sl_si91x_ble.h",
+ "components/device/silabs/si91x/wireless/ble/src/rsi_bt_ble.c",
+ "components/device/silabs/si91x/wireless/ble/src/rsi_common_apis.c",
+ "components/device/silabs/si91x/wireless/ble/src/rsi_utils.c",
+ "components/device/silabs/si91x/wireless/host_mcu/si91x/siwx917_soc_ncp_host.c",
+ "components/device/silabs/si91x/wireless/inc/sl_rsi_utility.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_constants.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_core_utilities.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_driver.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_host_interface.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_protocol_types.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_status.h",
+ "components/device/silabs/si91x/wireless/inc/sl_si91x_types.h",
+ "components/device/silabs/si91x/wireless/inc/sl_wifi_device.h",
+ "components/device/silabs/si91x/wireless/memory/malloc_buffers.c",
+ "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_rsi_utility.h",
+ "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x.h",
+ "components/device/silabs/si91x/wireless/sl_net/inc/sl_net_si91x_integration_handler.h",
+ "components/device/silabs/si91x/wireless/sl_net/src/sl_net_rsi_utility.c",
+ "components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_callback_framework.c",
+ "components/device/silabs/si91x/wireless/sl_net/src/sl_net_si91x_integration_handler.c",
+ "components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_credentials.c",
+ "components/device/silabs/si91x/wireless/sl_net/src/sl_si91x_net_internal_stack.c",
+ "components/device/silabs/si91x/wireless/socket/inc/sl_bsd_utility.h",
+ "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_callback_framework.h",
+ "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_constants.h",
+ "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_types.h",
+ "components/device/silabs/si91x/wireless/socket/inc/sl_si91x_socket_utility.h",
+ "components/device/silabs/si91x/wireless/socket/src/sl_si91x_socket_utility.c",
+ "components/device/silabs/si91x/wireless/src/sl_rsi_utility.c",
+ "components/device/silabs/si91x/wireless/src/sl_si91x_callback_framework.c",
+ "components/device/silabs/si91x/wireless/src/sl_si91x_driver.c",
+ "components/device/silabs/si91x/wireless/threading/sli_si91x_multithreaded.c",
+ "components/protocol/wifi/inc/sl_wifi_callback_framework.h",
+ "components/protocol/wifi/inc/sl_wifi_constants.h",
+ "components/protocol/wifi/inc/sl_wifi_credentials.h",
+ "components/protocol/wifi/inc/sl_wifi.h",
+ "components/protocol/wifi/inc/sl_wifi_host_interface.h",
+ "components/protocol/wifi/inc/sl_wifi_types.h",
+ "components/protocol/wifi/si91x/sl_wifi.c",
+ "components/protocol/wifi/src/sl_wifi_basic_credentials.c",
+ "components/protocol/wifi/src/sl_wifi_callback_framework.c",
+ "components/service/bsd_socket/si91x_socket/sl_si91x_socket_support.h",
+ "components/service/network_manager/inc/sl_net_constants.h",
+ "components/service/network_manager/inc/sl_net_dns.h",
+ "components/service/network_manager/inc/sl_net.h",
+ "components/service/network_manager/inc/sl_net_ip_types.h",
+ "components/service/network_manager/inc/sl_net_types.h",
+ "components/service/network_manager/inc/sl_net_wifi_types.h",
+ "components/service/network_manager/si91x/sl_net_si91x.c",
+ "components/service/network_manager/src/sl_net_basic_credentials.c",
+ "components/service/network_manager/src/sl_net_basic_profiles.c",
+ "components/service/network_manager/src/sl_net.c",
+ "components/service/network_manager/src/sl_net_credentials.c",
+ "resources/defaults/sl_net_default_values.h",
+ "resources/defaults/sl_wifi_region_db_config.h",
+]
+
+def copy_files(src: Path, dst: Path, paths: list[str]) -> None:
+ for path in paths:
+ for f in src.glob(path):
+ if not os.path.exists(f):
+ print(f"Invalid path: {f}")
+ continue
+ destfile = dst / f.relative_to(src)
+ if os.path.exists(destfile):
+ continue
+ print(f"Import {f.relative_to(src)}")
+ destfile.parent.mkdir(parents=True, exist_ok=True)
+ shutil.copy(f, destfile)
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser()
+ parser.add_argument("sdk", type=Path,
+ help="Source WiseConnect directory")
+ parser.add_argument("--dest", "-d", type=Path,
+ help="store the result somewhere else than \"wiseconnect/\" directory")
+ parser.add_argument("--overwrite", "-f", action="store_true",
+ help="Remove DEST before to continue")
+ args = parser.parse_args()
+
+ if args.dest:
+ dst = args.dest
+ else:
+ dst = (Path(__file__).parent.parent / "wiseconnect").resolve()
+
+ if args.overwrite:
+ shutil.rmtree(dst)
+ copy_files(args.sdk, dst, paths)
+
diff --git a/scripts/patch_simplicity_sdk.sh b/scripts/patch_simplicity_sdk.sh
index 181e34632..91b242530 100755
--- a/scripts/patch_simplicity_sdk.sh
+++ b/scripts/patch_simplicity_sdk.sh
@@ -1,4 +1,19 @@
#!/bin/sh
+# Copyright (c) 2025 Silicon Laboratories Inc.
+# SPDX-License-Identifier: Apache-2.0
# Add missing SecureFault interrupt number to device headers
sed -i '' "s/\(UsageFault_IRQn.*\)/\1\n#if defined(CONFIG_ARM_SECURE_FIRMWARE)\n SecureFault_IRQn = -9,\n#endif/" simplicity_sdk/platform/Device/SiliconLabs/*/Include/*.h
+
+# Rename CONCAT macros conflicting with Zephyr macros
+sed -i '' "s/ _CONCAT_/ _SL_CONCAT_/" simplicity_sdk/platform/common/inc/sl_common.h
+sed -i '' "s/ first/first/" simplicity_sdk/platform/common/inc/sl_common.h
+
+# Replace legacy Kconfig option name
+sed -i '' "s/CONFIG_SOC_FAMILY_EXX32/__ZEPHYR__/" simplicity_sdk/platform/emlib/inc/em_ramfunc.h
+
+# Rename MAX macro conflicting with Zephyr macro
+sed -i '' "s/MAX(/_SL_MAX(/" simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c
+
+# Add Zephyr OS abstraction for crypto
+sed -i '' "s/#\(if defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT)\)/#if defined(__ZEPHYR__)\n #include \"sli_psec_osal_zephyr.h\"\n #define SLI_PSEC_THREADING\n#el\1/" simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal.h
diff --git a/scripts/requirements.txt b/scripts/requirements.txt
new file mode 100644
index 000000000..06dbe209c
--- /dev/null
+++ b/scripts/requirements.txt
@@ -0,0 +1 @@
+git+https://github.com/cmsis-svd/cmsis-svd.git#egg=cmsis-svd&subdirectory=python
diff --git a/simplicity_sdk/License.txt b/simplicity_sdk/License.txt
index 8c3bc83be..b47373c39 100644
--- a/simplicity_sdk/License.txt
+++ b/simplicity_sdk/License.txt
@@ -1,6 +1,9 @@
# Simplicity SDK Licensing terms
-Source code in this SDK is covered by one of several different licenses.
+Source code in this SDK is licensed to you under the terms of a default license
+from Silicon Laboratories Inc. This default license and exceptions to this
+default licensing are set forth below.
+
The default license is the Master Software License Agreement (MSLA)
(https://www.silabs.com/about-us/legal/master-software-license-agreement),
which applies unless otherwise noted.
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm32.h
index 04e91addf..a6b12850b 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm40.h
index 85ca47f34..578900dcb 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c112f352gm40.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm32.h
index 7f40de9e4..acd1be784 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm40.h
index dc0616b10..ec34e07b8 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gm40.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gn32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gn32.h
index 0ea06379e..5cdf550e8 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gn32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c222f352gn32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm32.h
index fdef00fd0..624f71171 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm40.h
index 967f4e977..08c8749a9 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gm40.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gn32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gn32.h
index 5976fae60..f8eb0f241 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gn32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512gn32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im32.h
index be9018d73..a8a2994c5 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im40.h
index f5f9da30f..05bb143b4 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22c224f512im40.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im32.h
index 889c19810..7480f160e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im32.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im40.h
index 8a25eec0a..3eedce469 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/efr32bg22e224f512im40.h
@@ -135,6 +135,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h
index 94706b09f..e971fcb7c 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Include/system_efr32bg22.h
@@ -36,6 +36,7 @@ extern "C" {
#endif
#include
+#include "sl_code_classification.h"
/***************************************************************************//**
* @addtogroup Parts
@@ -165,6 +166,7 @@ void EUART0_TX_IRQHandler(void); /**< EUART0_TX IRQ Handler */
void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
#endif
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHCLKGet(void);
/**************************************************************************//**
@@ -181,6 +183,7 @@ uint32_t SystemHCLKGet(void);
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE uint32_t SystemCoreClockGet(void)
{
return SystemHCLKGet();
@@ -200,23 +203,33 @@ static __INLINE uint32_t SystemCoreClockGet(void)
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE void SystemCoreClockUpdate(void)
{
SystemHCLKGet();
}
void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCODPLLClockGet(void);
void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFXOClockGet(void);
void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFXOClockGet(void);
void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemULFRCOClockGet(void);
/** @} End of group */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c
index ab43f8bc3..e7273d112 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG22/Source/system_efr32bg22.c
@@ -31,6 +31,15 @@
#include
#include "em_device.h"
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
/*******************************************************************************
****************************** DEFINES ************************************
******************************************************************************/
@@ -64,7 +73,10 @@
#endif
// CLKIN0 input
-#if !defined(CLKIN0_FREQ)
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
#define CLKIN0_FREQ (0UL)
#endif
@@ -204,12 +216,11 @@ void SystemInit(void)
*****************************************************************************/
uint32_t SystemHFRCODPLLClockGet(void)
{
-#if defined(BOOTLOADER_SYSTEM_NO_STATIC_MEMORY)
- return HFRCODPLL_STARTUP_FREQ;
-#elif !defined(SYSTEM_NO_STATIC_MEMORY)
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
return SystemHFRCODPLLClock;
#else
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
// Get oscillator frequency band
switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_syscfg.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_syscfg.h
index 5401dc23d..dcedb2df3 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_syscfg.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27_syscfg.h
@@ -361,7 +361,7 @@ typedef struct syscfg_typedef{
#define SYSCFG_IEN_FRCRAMERR2B_DEFAULT (_SYSCFG_IEN_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IEN */
/* Bit fields for SYSCFG CHIPREVHW */
-#define _SYSCFG_CHIPREVHW_RESETVALUE 0x00010011UL /**< Default value for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_RESETVALUE 0x00011011UL /**< Default value for SYSCFG_CHIPREVHW */
#define _SYSCFG_CHIPREVHW_MASK 0xFF0FFFFFUL /**< Mask for SYSCFG_CHIPREVHW */
#define _SYSCFG_CHIPREVHW_PARTNUMBER_SHIFT 0 /**< Shift value for SYSCFG_PARTNUMBER */
#define _SYSCFG_CHIPREVHW_PARTNUMBER_MASK 0xFFFUL /**< Bit mask for SYSCFG_PARTNUMBER */
@@ -369,7 +369,7 @@ typedef struct syscfg_typedef{
#define SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT (_SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
#define _SYSCFG_CHIPREVHW_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
#define _SYSCFG_CHIPREVHW_MINOR_MASK 0xF000UL /**< Bit mask for SYSCFG_MINOR */
-#define _SYSCFG_CHIPREVHW_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MINOR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
#define SYSCFG_CHIPREVHW_MINOR_DEFAULT (_SYSCFG_CHIPREVHW_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
#define _SYSCFG_CHIPREVHW_MAJOR_SHIFT 16 /**< Shift value for SYSCFG_MAJOR */
#define _SYSCFG_CHIPREVHW_MAJOR_MASK 0xF0000UL /**< Bit mask for SYSCFG_MAJOR */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im32.h
index be40709cc..753ba9fc4 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im32.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im40.h
index 31a495b02..60268a531 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c140f768im40.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im32.h
index 3c6adbd85..abbe0bb82 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im32.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im40.h
index 9f105c510..e80d77df2 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c230f768im40.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768gj39.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768gj39.h
index 6ff48232d..132fc7e22 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768gj39.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768gj39.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768ij39.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768ij39.h
index 670d436c4..c3aa69368 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768ij39.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/efr32bg27c320f768ij39.h
@@ -138,6 +138,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h
index cd86a7dc9..e5a853d99 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Include/system_efr32bg27.h
@@ -36,6 +36,7 @@ extern "C" {
#endif
#include
+#include "sl_code_classification.h"
/***************************************************************************//**
* @addtogroup Parts
@@ -168,6 +169,7 @@ void FPUEXH_IRQHandler(void); /**< FPUEXH IRQ Handler */
void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
#endif
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHCLKGet(void);
/**************************************************************************//**
@@ -184,6 +186,7 @@ uint32_t SystemHCLKGet(void);
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE uint32_t SystemCoreClockGet(void)
{
return SystemHCLKGet();
@@ -203,23 +206,33 @@ static __INLINE uint32_t SystemCoreClockGet(void)
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE void SystemCoreClockUpdate(void)
{
SystemHCLKGet();
}
void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCODPLLClockGet(void);
void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFXOClockGet(void);
void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFXOClockGet(void);
void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemULFRCOClockGet(void);
/** @} End of group */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c
index 0d493dd5c..59f7e551a 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG27/Source/system_efr32bg27.c
@@ -31,6 +31,15 @@
#include
#include "em_device.h"
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
/*******************************************************************************
****************************** DEFINES ************************************
******************************************************************************/
@@ -64,7 +73,10 @@
#endif
// CLKIN0 input
-#if !defined(CLKIN0_FREQ)
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
#define CLKIN0_FREQ (0UL)
#endif
@@ -204,12 +216,11 @@ void SystemInit(void)
*****************************************************************************/
uint32_t SystemHFRCODPLLClockGet(void)
{
-#if defined(BOOTLOADER_SYSTEM_NO_STATIC_MEMORY)
- return HFRCODPLL_STARTUP_FREQ;
-#elif !defined(SYSTEM_NO_STATIC_MEMORY)
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
return SystemHFRCODPLLClock;
#else
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
// Get oscillator frequency band
switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_acmp.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_acmp.h
new file mode 100644
index 000000000..dcf6e0f95
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_acmp.h
@@ -0,0 +1,650 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 ACMP register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_ACMP_H
+#define EFR32BG29_ACMP_H
+#define ACMP_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_ACMP ACMP
+ * @{
+ * @brief EFR32BG29 ACMP Register Declaration.
+ *****************************************************************************/
+
+/** ACMP Register Declaration. */
+typedef struct acmp_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< ACMP enable */
+ __IOM uint32_t SWRST; /**< Software reset */
+ __IOM uint32_t CFG; /**< Configuration register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL; /**< Input Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< ACMP enable */
+ __IOM uint32_t SWRST_SET; /**< Software reset */
+ __IOM uint32_t CFG_SET; /**< Configuration register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_SET; /**< Input Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< ACMP enable */
+ __IOM uint32_t SWRST_CLR; /**< Software reset */
+ __IOM uint32_t CFG_CLR; /**< Configuration register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_CLR; /**< Input Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< ACMP enable */
+ __IOM uint32_t SWRST_TGL; /**< Software reset */
+ __IOM uint32_t CFG_TGL; /**< Configuration register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_TGL; /**< Input Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy */
+} ACMP_TypeDef;
+/** @} End of group EFR32BG29_ACMP */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_ACMP
+ * @{
+ * @defgroup EFR32BG29_ACMP_BitFields ACMP Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ACMP IPVERSION */
+#define _ACMP_IPVERSION_RESETVALUE 0x00000006UL /**< Default value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_DEFAULT 0x00000006UL /**< Mode DEFAULT for ACMP_IPVERSION */
+#define ACMP_IPVERSION_IPVERSION_DEFAULT (_ACMP_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IPVERSION */
+
+/* Bit fields for ACMP EN */
+#define _ACMP_EN_RESETVALUE 0x00000000UL /**< Default value for ACMP_EN */
+#define _ACMP_EN_MASK 0x00000003UL /**< Mask for ACMP_EN */
+#define ACMP_EN_EN (0x1UL << 0) /**< Module enable */
+#define _ACMP_EN_EN_SHIFT 0 /**< Shift value for ACMP_EN */
+#define _ACMP_EN_EN_MASK 0x1UL /**< Bit mask for ACMP_EN */
+#define _ACMP_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_EN_DEFAULT (_ACMP_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _ACMP_EN_DISABLING_SHIFT 1 /**< Shift value for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_MASK 0x2UL /**< Bit mask for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING_DEFAULT (_ACMP_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_EN */
+
+/* Bit fields for ACMP SWRST */
+#define _ACMP_SWRST_RESETVALUE 0x00000000UL /**< Default value for ACMP_SWRST */
+#define _ACMP_SWRST_MASK 0x00000003UL /**< Mask for ACMP_SWRST */
+#define ACMP_SWRST_SWRST (0x1UL << 0) /**< Software reset */
+#define _ACMP_SWRST_SWRST_SHIFT 0 /**< Shift value for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_MASK 0x1UL /**< Bit mask for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_SWRST_DEFAULT (_ACMP_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _ACMP_SWRST_RESETTING_SHIFT 1 /**< Shift value for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING_DEFAULT (_ACMP_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_SWRST */
+
+/* Bit fields for ACMP CFG */
+#define _ACMP_CFG_RESETVALUE 0x00000004UL /**< Default value for ACMP_CFG */
+#define _ACMP_CFG_MASK 0x00030F07UL /**< Mask for ACMP_CFG */
+#define _ACMP_CFG_BIAS_SHIFT 0 /**< Shift value for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_MASK 0x7UL /**< Bit mask for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_DEFAULT 0x00000004UL /**< Mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_BIAS_DEFAULT (_ACMP_CFG_BIAS_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_SHIFT 8 /**< Shift value for ACMP_HYST */
+#define _ACMP_CFG_HYST_MASK 0xF00UL /**< Bit mask for ACMP_HYST */
+#define _ACMP_CFG_HYST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_DISABLED 0x00000000UL /**< Mode DISABLED for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM10MV 0x00000001UL /**< Mode SYM10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM20MV 0x00000002UL /**< Mode SYM20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM30MV 0x00000003UL /**< Mode SYM30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS10MV 0x00000004UL /**< Mode POS10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS20MV 0x00000005UL /**< Mode POS20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS30MV 0x00000006UL /**< Mode POS30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG10MV 0x00000008UL /**< Mode NEG10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG20MV 0x00000009UL /**< Mode NEG20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG30MV 0x0000000AUL /**< Mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_DEFAULT (_ACMP_CFG_HYST_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_HYST_DISABLED (_ACMP_CFG_HYST_DISABLED << 8) /**< Shifted mode DISABLED for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM10MV (_ACMP_CFG_HYST_SYM10MV << 8) /**< Shifted mode SYM10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM20MV (_ACMP_CFG_HYST_SYM20MV << 8) /**< Shifted mode SYM20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM30MV (_ACMP_CFG_HYST_SYM30MV << 8) /**< Shifted mode SYM30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS10MV (_ACMP_CFG_HYST_POS10MV << 8) /**< Shifted mode POS10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS20MV (_ACMP_CFG_HYST_POS20MV << 8) /**< Shifted mode POS20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS30MV (_ACMP_CFG_HYST_POS30MV << 8) /**< Shifted mode POS30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG10MV (_ACMP_CFG_HYST_NEG10MV << 8) /**< Shifted mode NEG10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG20MV (_ACMP_CFG_HYST_NEG20MV << 8) /**< Shifted mode NEG20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG30MV (_ACMP_CFG_HYST_NEG30MV << 8) /**< Shifted mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE (0x1UL << 16) /**< Input Range */
+#define _ACMP_CFG_INPUTRANGE_SHIFT 16 /**< Shift value for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_MASK 0x10000UL /**< Bit mask for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_FULL 0x00000000UL /**< Mode FULL for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_REDUCED 0x00000001UL /**< Mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_DEFAULT (_ACMP_CFG_INPUTRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_FULL (_ACMP_CFG_INPUTRANGE_FULL << 16) /**< Shifted mode FULL for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_REDUCED (_ACMP_CFG_INPUTRANGE_REDUCED << 16) /**< Shifted mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_ACCURACY (0x1UL << 17) /**< ACMP accuracy mode */
+#define _ACMP_CFG_ACCURACY_SHIFT 17 /**< Shift value for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_MASK 0x20000UL /**< Bit mask for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_LOW 0x00000000UL /**< Mode LOW for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_DEFAULT (_ACMP_CFG_ACCURACY_DEFAULT << 17) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_LOW (_ACMP_CFG_ACCURACY_LOW << 17) /**< Shifted mode LOW for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_HIGH (_ACMP_CFG_ACCURACY_HIGH << 17) /**< Shifted mode HIGH for ACMP_CFG */
+
+/* Bit fields for ACMP CTRL */
+#define _ACMP_CTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_CTRL */
+#define _ACMP_CTRL_MASK 0x00000003UL /**< Mask for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL (0x1UL << 0) /**< Not Ready Value */
+#define _ACMP_CTRL_NOTRDYVAL_SHIFT 0 /**< Shift value for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_MASK 0x1UL /**< Bit mask for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_LOW 0x00000000UL /**< Mode LOW for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_DEFAULT (_ACMP_CTRL_NOTRDYVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_LOW (_ACMP_CTRL_NOTRDYVAL_LOW << 0) /**< Shifted mode LOW for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_HIGH (_ACMP_CTRL_NOTRDYVAL_HIGH << 0) /**< Shifted mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV (0x1UL << 1) /**< Comparator GPIO Output Invert */
+#define _ACMP_CTRL_GPIOINV_SHIFT 1 /**< Shift value for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_MASK 0x2UL /**< Bit mask for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_NOTINV 0x00000000UL /**< Mode NOTINV for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_INV 0x00000001UL /**< Mode INV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_DEFAULT (_ACMP_CTRL_GPIOINV_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_NOTINV (_ACMP_CTRL_GPIOINV_NOTINV << 1) /**< Shifted mode NOTINV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_INV (_ACMP_CTRL_GPIOINV_INV << 1) /**< Shifted mode INV for ACMP_CTRL */
+
+/* Bit fields for ACMP INPUTCTRL */
+#define _ACMP_INPUTCTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_MASK 0x703FFFFFUL /**< Mask for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_SHIFT 0 /**< Shift value for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_MASK 0xFFUL /**< Bit mask for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPA 0x00000050UL /**< Mode EXTPA for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPB 0x00000051UL /**< Mode EXTPB for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPC 0x00000052UL /**< Mode EXTPC for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPD 0x00000053UL /**< Mode EXTPD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_DEFAULT (_ACMP_INPUTCTRL_POSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VSS (_ACMP_INPUTCTRL_POSSEL_VSS << 0) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD << 0) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP << 0) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 << 0) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP << 0) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 << 0) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP << 0) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 << 0) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP << 0) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 << 0) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP << 0) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_EXTPA (_ACMP_INPUTCTRL_POSSEL_EXTPA << 0) /**< Shifted mode EXTPA for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPB (_ACMP_INPUTCTRL_POSSEL_EXTPB << 0) /**< Shifted mode EXTPB for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPC (_ACMP_INPUTCTRL_POSSEL_EXTPC << 0) /**< Shifted mode EXTPC for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPD (_ACMP_INPUTCTRL_POSSEL_EXTPD << 0) /**< Shifted mode EXTPD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA0 (_ACMP_INPUTCTRL_POSSEL_PA0 << 0) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA1 (_ACMP_INPUTCTRL_POSSEL_PA1 << 0) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA2 (_ACMP_INPUTCTRL_POSSEL_PA2 << 0) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA3 (_ACMP_INPUTCTRL_POSSEL_PA3 << 0) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA4 (_ACMP_INPUTCTRL_POSSEL_PA4 << 0) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA5 (_ACMP_INPUTCTRL_POSSEL_PA5 << 0) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA6 (_ACMP_INPUTCTRL_POSSEL_PA6 << 0) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA7 (_ACMP_INPUTCTRL_POSSEL_PA7 << 0) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA8 (_ACMP_INPUTCTRL_POSSEL_PA8 << 0) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA9 (_ACMP_INPUTCTRL_POSSEL_PA9 << 0) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA10 (_ACMP_INPUTCTRL_POSSEL_PA10 << 0) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA11 (_ACMP_INPUTCTRL_POSSEL_PA11 << 0) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA12 (_ACMP_INPUTCTRL_POSSEL_PA12 << 0) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA13 (_ACMP_INPUTCTRL_POSSEL_PA13 << 0) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA14 (_ACMP_INPUTCTRL_POSSEL_PA14 << 0) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA15 (_ACMP_INPUTCTRL_POSSEL_PA15 << 0) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB0 (_ACMP_INPUTCTRL_POSSEL_PB0 << 0) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB1 (_ACMP_INPUTCTRL_POSSEL_PB1 << 0) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB2 (_ACMP_INPUTCTRL_POSSEL_PB2 << 0) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB3 (_ACMP_INPUTCTRL_POSSEL_PB3 << 0) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB4 (_ACMP_INPUTCTRL_POSSEL_PB4 << 0) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB5 (_ACMP_INPUTCTRL_POSSEL_PB5 << 0) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB6 (_ACMP_INPUTCTRL_POSSEL_PB6 << 0) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB7 (_ACMP_INPUTCTRL_POSSEL_PB7 << 0) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB8 (_ACMP_INPUTCTRL_POSSEL_PB8 << 0) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB9 (_ACMP_INPUTCTRL_POSSEL_PB9 << 0) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB10 (_ACMP_INPUTCTRL_POSSEL_PB10 << 0) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB11 (_ACMP_INPUTCTRL_POSSEL_PB11 << 0) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB12 (_ACMP_INPUTCTRL_POSSEL_PB12 << 0) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB13 (_ACMP_INPUTCTRL_POSSEL_PB13 << 0) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB14 (_ACMP_INPUTCTRL_POSSEL_PB14 << 0) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB15 (_ACMP_INPUTCTRL_POSSEL_PB15 << 0) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC0 (_ACMP_INPUTCTRL_POSSEL_PC0 << 0) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC1 (_ACMP_INPUTCTRL_POSSEL_PC1 << 0) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC2 (_ACMP_INPUTCTRL_POSSEL_PC2 << 0) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC3 (_ACMP_INPUTCTRL_POSSEL_PC3 << 0) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC4 (_ACMP_INPUTCTRL_POSSEL_PC4 << 0) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC5 (_ACMP_INPUTCTRL_POSSEL_PC5 << 0) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC6 (_ACMP_INPUTCTRL_POSSEL_PC6 << 0) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC7 (_ACMP_INPUTCTRL_POSSEL_PC7 << 0) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC8 (_ACMP_INPUTCTRL_POSSEL_PC8 << 0) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC9 (_ACMP_INPUTCTRL_POSSEL_PC9 << 0) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC10 (_ACMP_INPUTCTRL_POSSEL_PC10 << 0) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC11 (_ACMP_INPUTCTRL_POSSEL_PC11 << 0) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC12 (_ACMP_INPUTCTRL_POSSEL_PC12 << 0) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC13 (_ACMP_INPUTCTRL_POSSEL_PC13 << 0) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC14 (_ACMP_INPUTCTRL_POSSEL_PC14 << 0) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC15 (_ACMP_INPUTCTRL_POSSEL_PC15 << 0) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD0 (_ACMP_INPUTCTRL_POSSEL_PD0 << 0) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD1 (_ACMP_INPUTCTRL_POSSEL_PD1 << 0) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD2 (_ACMP_INPUTCTRL_POSSEL_PD2 << 0) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD3 (_ACMP_INPUTCTRL_POSSEL_PD3 << 0) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD4 (_ACMP_INPUTCTRL_POSSEL_PD4 << 0) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD5 (_ACMP_INPUTCTRL_POSSEL_PD5 << 0) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD6 (_ACMP_INPUTCTRL_POSSEL_PD6 << 0) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD7 (_ACMP_INPUTCTRL_POSSEL_PD7 << 0) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD8 (_ACMP_INPUTCTRL_POSSEL_PD8 << 0) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD9 (_ACMP_INPUTCTRL_POSSEL_PD9 << 0) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD10 (_ACMP_INPUTCTRL_POSSEL_PD10 << 0) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD11 (_ACMP_INPUTCTRL_POSSEL_PD11 << 0) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD12 (_ACMP_INPUTCTRL_POSSEL_PD12 << 0) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD13 (_ACMP_INPUTCTRL_POSSEL_PD13 << 0) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD14 (_ACMP_INPUTCTRL_POSSEL_PD14 << 0) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD15 (_ACMP_INPUTCTRL_POSSEL_PD15 << 0) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_SHIFT 8 /**< Shift value for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_MASK 0xFF00UL /**< Bit mask for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_CAPSENSE 0x00000030UL /**< Mode CAPSENSE for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 0x00000040UL /**< Mode VDAC0OUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 0x00000042UL /**< Mode VDAC1OUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_DEFAULT (_ACMP_INPUTCTRL_NEGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VSS (_ACMP_INPUTCTRL_NEGSEL_VSS << 8) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD << 8) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP << 8) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 << 8) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP << 8) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 << 8) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP << 8) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 << 8) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP << 8) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 << 8) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP << 8) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_CAPSENSE (_ACMP_INPUTCTRL_NEGSEL_CAPSENSE << 8) /**< Shifted mode CAPSENSE for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 (_ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 << 8) /**< Shifted mode VDAC0OUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 (_ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 << 8) /**< Shifted mode VDAC1OUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA0 (_ACMP_INPUTCTRL_NEGSEL_PA0 << 8) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA1 (_ACMP_INPUTCTRL_NEGSEL_PA1 << 8) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA2 (_ACMP_INPUTCTRL_NEGSEL_PA2 << 8) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA3 (_ACMP_INPUTCTRL_NEGSEL_PA3 << 8) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA4 (_ACMP_INPUTCTRL_NEGSEL_PA4 << 8) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA5 (_ACMP_INPUTCTRL_NEGSEL_PA5 << 8) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA6 (_ACMP_INPUTCTRL_NEGSEL_PA6 << 8) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA7 (_ACMP_INPUTCTRL_NEGSEL_PA7 << 8) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA8 (_ACMP_INPUTCTRL_NEGSEL_PA8 << 8) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA9 (_ACMP_INPUTCTRL_NEGSEL_PA9 << 8) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA10 (_ACMP_INPUTCTRL_NEGSEL_PA10 << 8) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA11 (_ACMP_INPUTCTRL_NEGSEL_PA11 << 8) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA12 (_ACMP_INPUTCTRL_NEGSEL_PA12 << 8) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA13 (_ACMP_INPUTCTRL_NEGSEL_PA13 << 8) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA14 (_ACMP_INPUTCTRL_NEGSEL_PA14 << 8) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA15 (_ACMP_INPUTCTRL_NEGSEL_PA15 << 8) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB0 (_ACMP_INPUTCTRL_NEGSEL_PB0 << 8) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB1 (_ACMP_INPUTCTRL_NEGSEL_PB1 << 8) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB2 (_ACMP_INPUTCTRL_NEGSEL_PB2 << 8) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB3 (_ACMP_INPUTCTRL_NEGSEL_PB3 << 8) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB4 (_ACMP_INPUTCTRL_NEGSEL_PB4 << 8) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB5 (_ACMP_INPUTCTRL_NEGSEL_PB5 << 8) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB6 (_ACMP_INPUTCTRL_NEGSEL_PB6 << 8) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB7 (_ACMP_INPUTCTRL_NEGSEL_PB7 << 8) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB8 (_ACMP_INPUTCTRL_NEGSEL_PB8 << 8) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB9 (_ACMP_INPUTCTRL_NEGSEL_PB9 << 8) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB10 (_ACMP_INPUTCTRL_NEGSEL_PB10 << 8) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB11 (_ACMP_INPUTCTRL_NEGSEL_PB11 << 8) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB12 (_ACMP_INPUTCTRL_NEGSEL_PB12 << 8) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB13 (_ACMP_INPUTCTRL_NEGSEL_PB13 << 8) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB14 (_ACMP_INPUTCTRL_NEGSEL_PB14 << 8) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB15 (_ACMP_INPUTCTRL_NEGSEL_PB15 << 8) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC0 (_ACMP_INPUTCTRL_NEGSEL_PC0 << 8) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC1 (_ACMP_INPUTCTRL_NEGSEL_PC1 << 8) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC2 (_ACMP_INPUTCTRL_NEGSEL_PC2 << 8) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC3 (_ACMP_INPUTCTRL_NEGSEL_PC3 << 8) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC4 (_ACMP_INPUTCTRL_NEGSEL_PC4 << 8) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC5 (_ACMP_INPUTCTRL_NEGSEL_PC5 << 8) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC6 (_ACMP_INPUTCTRL_NEGSEL_PC6 << 8) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC7 (_ACMP_INPUTCTRL_NEGSEL_PC7 << 8) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC8 (_ACMP_INPUTCTRL_NEGSEL_PC8 << 8) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC9 (_ACMP_INPUTCTRL_NEGSEL_PC9 << 8) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC10 (_ACMP_INPUTCTRL_NEGSEL_PC10 << 8) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC11 (_ACMP_INPUTCTRL_NEGSEL_PC11 << 8) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC12 (_ACMP_INPUTCTRL_NEGSEL_PC12 << 8) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC13 (_ACMP_INPUTCTRL_NEGSEL_PC13 << 8) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC14 (_ACMP_INPUTCTRL_NEGSEL_PC14 << 8) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC15 (_ACMP_INPUTCTRL_NEGSEL_PC15 << 8) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD0 (_ACMP_INPUTCTRL_NEGSEL_PD0 << 8) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD1 (_ACMP_INPUTCTRL_NEGSEL_PD1 << 8) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD2 (_ACMP_INPUTCTRL_NEGSEL_PD2 << 8) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD3 (_ACMP_INPUTCTRL_NEGSEL_PD3 << 8) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD4 (_ACMP_INPUTCTRL_NEGSEL_PD4 << 8) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD5 (_ACMP_INPUTCTRL_NEGSEL_PD5 << 8) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD6 (_ACMP_INPUTCTRL_NEGSEL_PD6 << 8) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD7 (_ACMP_INPUTCTRL_NEGSEL_PD7 << 8) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD8 (_ACMP_INPUTCTRL_NEGSEL_PD8 << 8) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD9 (_ACMP_INPUTCTRL_NEGSEL_PD9 << 8) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD10 (_ACMP_INPUTCTRL_NEGSEL_PD10 << 8) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD11 (_ACMP_INPUTCTRL_NEGSEL_PD11 << 8) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD12 (_ACMP_INPUTCTRL_NEGSEL_PD12 << 8) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD13 (_ACMP_INPUTCTRL_NEGSEL_PD13 << 8) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD14 (_ACMP_INPUTCTRL_NEGSEL_PD14 << 8) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD15 (_ACMP_INPUTCTRL_NEGSEL_PD15 << 8) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_VREFDIV_SHIFT 16 /**< Shift value for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_MASK 0x3F0000UL /**< Bit mask for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_VREFDIV_DEFAULT (_ACMP_INPUTCTRL_VREFDIV_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_SHIFT 28 /**< Shift value for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_MASK 0x70000000UL /**< Bit mask for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES0 0x00000000UL /**< Mode RES0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES1 0x00000001UL /**< Mode RES1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES2 0x00000002UL /**< Mode RES2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES3 0x00000003UL /**< Mode RES3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES4 0x00000004UL /**< Mode RES4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES5 0x00000005UL /**< Mode RES5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES6 0x00000006UL /**< Mode RES6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_DEFAULT (_ACMP_INPUTCTRL_CSRESSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES0 (_ACMP_INPUTCTRL_CSRESSEL_RES0 << 28) /**< Shifted mode RES0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES1 (_ACMP_INPUTCTRL_CSRESSEL_RES1 << 28) /**< Shifted mode RES1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES2 (_ACMP_INPUTCTRL_CSRESSEL_RES2 << 28) /**< Shifted mode RES2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES3 (_ACMP_INPUTCTRL_CSRESSEL_RES3 << 28) /**< Shifted mode RES3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES4 (_ACMP_INPUTCTRL_CSRESSEL_RES4 << 28) /**< Shifted mode RES4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES5 (_ACMP_INPUTCTRL_CSRESSEL_RES5 << 28) /**< Shifted mode RES5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES6 (_ACMP_INPUTCTRL_CSRESSEL_RES6 << 28) /**< Shifted mode RES6 for ACMP_INPUTCTRL */
+
+/* Bit fields for ACMP STATUS */
+#define _ACMP_STATUS_RESETVALUE 0x00000000UL /**< Default value for ACMP_STATUS */
+#define _ACMP_STATUS_MASK 0x0000001DUL /**< Mask for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT (0x1UL << 0) /**< Analog Comparator Output */
+#define _ACMP_STATUS_ACMPOUT_SHIFT 0 /**< Shift value for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_MASK 0x1UL /**< Bit mask for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT_DEFAULT (_ACMP_STATUS_ACMPOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY (0x1UL << 2) /**< Analog Comparator Ready */
+#define _ACMP_STATUS_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY_DEFAULT (_ACMP_STATUS_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT (0x1UL << 3) /**< INPUT conflict */
+#define _ACMP_STATUS_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT_DEFAULT (_ACMP_STATUS_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_STATUS_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR_DEFAULT (_ACMP_STATUS_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_STATUS */
+
+/* Bit fields for ACMP IF */
+#define _ACMP_IF_RESETVALUE 0x00000000UL /**< Default value for ACMP_IF */
+#define _ACMP_IF_MASK 0x0000001FUL /**< Mask for ACMP_IF */
+#define ACMP_IF_RISE (0x1UL << 0) /**< Rising Edge Triggered Interrupt Flag */
+#define _ACMP_IF_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IF_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IF_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_RISE_DEFAULT (_ACMP_IF_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL (0x1UL << 1) /**< Falling Edge Triggered Interrupt Flag */
+#define _ACMP_IF_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IF_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IF_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL_DEFAULT (_ACMP_IF_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY (0x1UL << 2) /**< ACMP ready Interrupt flag */
+#define _ACMP_IF_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY_DEFAULT (_ACMP_IF_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT (0x1UL << 3) /**< Input conflict */
+#define _ACMP_IF_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT_DEFAULT (_ACMP_IF_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_IF_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR_DEFAULT (_ACMP_IF_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IF */
+
+/* Bit fields for ACMP IEN */
+#define _ACMP_IEN_RESETVALUE 0x00000000UL /**< Default value for ACMP_IEN */
+#define _ACMP_IEN_MASK 0x0000001FUL /**< Mask for ACMP_IEN */
+#define ACMP_IEN_RISE (0x1UL << 0) /**< Rising edge interrupt enable */
+#define _ACMP_IEN_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IEN_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IEN_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_RISE_DEFAULT (_ACMP_IEN_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL (0x1UL << 1) /**< Falling edge interrupt enable */
+#define _ACMP_IEN_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IEN_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IEN_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL_DEFAULT (_ACMP_IEN_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY (0x1UL << 2) /**< ACMP ready interrupt enable */
+#define _ACMP_IEN_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY_DEFAULT (_ACMP_IEN_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT (0x1UL << 3) /**< Input conflict interrupt enable */
+#define _ACMP_IEN_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT_DEFAULT (_ACMP_IEN_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR (0x1UL << 4) /**< Port allocation error interrupt enable */
+#define _ACMP_IEN_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR_DEFAULT (_ACMP_IEN_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IEN */
+
+/* Bit fields for ACMP SYNCBUSY */
+#define _ACMP_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for ACMP_SYNCBUSY */
+#define _ACMP_SYNCBUSY_MASK 0x00000001UL /**< Mask for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL (0x1UL << 0) /**< Syncbusy for INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_SHIFT 0 /**< Shift value for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_MASK 0x1UL /**< Bit mask for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL_DEFAULT (_ACMP_SYNCBUSY_INPUTCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SYNCBUSY */
+
+/** @} End of group EFR32BG29_ACMP_BitFields */
+/** @} End of group EFR32BG29_ACMP */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_ACMP_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_aes.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_aes.h
new file mode 100644
index 000000000..8f973136a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_aes.h
@@ -0,0 +1,453 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 AES register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_AES_H
+#define EFR32BG29_AES_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_AES AES
+ * @{
+ * @brief EFR32BG29 AES Register Declaration.
+ *****************************************************************************/
+
+/** AES Register Declaration. */
+typedef struct aes_typedef{
+ __IOM uint32_t FETCHADDR; /**< Fetcher Address */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t FETCHLEN; /**< Fetcher Length */
+ __IOM uint32_t FETCHTAG; /**< Fetcher Tag */
+ __IOM uint32_t PUSHADDR; /**< Pusher Address */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t PUSHLEN; /**< Pusher Length */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IM uint32_t IF; /**< Interrupt Flags */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt status clear */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IOM uint32_t CMD; /**< Command register */
+ __IM uint32_t STATUS; /**< Status register */
+ uint32_t RESERVED4[240U]; /**< Reserved for future use */
+ __IM uint32_t INCL_IPS_HW_CFG; /**< INCL_IPS_HW_CFG */
+ __IM uint32_t BA411E_HW_CFG_1; /**< BA411E_HW_CFG_1 */
+ __IM uint32_t BA411E_HW_CFG_2; /**< BA411E_HW_CFG_2 */
+ __IM uint32_t BA413_HW_CFG; /**< BA413_HW_CFG */
+ __IM uint32_t BA418_HW_CFG; /**< BA418_HW_CFG */
+ __IM uint32_t BA419_HW_CFG; /**< BA419_HW_CFG */
+} AES_TypeDef;
+/** @} End of group EFR32BG29_AES */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_AES
+ * @{
+ * @defgroup EFR32BG29_AES_BitFields AES Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for AES FETCHADDR */
+#define _AES_FETCHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHADDR */
+#define _AES_FETCHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHADDR */
+#define _AES_FETCHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHADDR */
+#define AES_FETCHADDR_ADDR_DEFAULT (_AES_FETCHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHADDR */
+
+/* Bit fields for AES FETCHLEN */
+#define _AES_FETCHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHLEN */
+#define _AES_FETCHLEN_MASK 0x3FFFFFFFUL /**< Mask for AES_FETCHLEN */
+#define _AES_FETCHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_LENGTH_DEFAULT (_AES_FETCHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_FETCHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR_DEFAULT (_AES_FETCHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN (0x1UL << 29) /**< Realign lengh */
+#define _AES_FETCHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN_DEFAULT (_AES_FETCHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+
+/* Bit fields for AES FETCHTAG */
+#define _AES_FETCHTAG_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHTAG */
+#define _AES_FETCHTAG_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHTAG */
+#define _AES_FETCHTAG_TAG_SHIFT 0 /**< Shift value for AES_TAG */
+#define _AES_FETCHTAG_TAG_MASK 0xFFFFFFFFUL /**< Bit mask for AES_TAG */
+#define _AES_FETCHTAG_TAG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHTAG */
+#define AES_FETCHTAG_TAG_DEFAULT (_AES_FETCHTAG_TAG_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHTAG */
+
+/* Bit fields for AES PUSHADDR */
+#define _AES_PUSHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHADDR */
+#define _AES_PUSHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_PUSHADDR */
+#define _AES_PUSHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHADDR */
+#define AES_PUSHADDR_ADDR_DEFAULT (_AES_PUSHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHADDR */
+
+/* Bit fields for AES PUSHLEN */
+#define _AES_PUSHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHLEN */
+#define _AES_PUSHLEN_MASK 0x7FFFFFFFUL /**< Mask for AES_PUSHLEN */
+#define _AES_PUSHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_LENGTH_DEFAULT (_AES_PUSHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_PUSHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR_DEFAULT (_AES_PUSHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN (0x1UL << 29) /**< Realign length */
+#define _AES_PUSHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN_DEFAULT (_AES_PUSHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD (0x1UL << 30) /**< Discard data */
+#define _AES_PUSHLEN_DISCARD_SHIFT 30 /**< Shift value for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_MASK 0x40000000UL /**< Bit mask for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD_DEFAULT (_AES_PUSHLEN_DISCARD_DEFAULT << 30) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+
+/* Bit fields for AES IEN */
+#define _AES_IEN_RESETVALUE 0x00000000UL /**< Default value for AES_IEN */
+#define _AES_IEN_MASK 0x0000003FUL /**< Mask for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt enable */
+#define _AES_IEN_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK_DEFAULT (_AES_IEN_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt enable */
+#define _AES_IEN_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED_DEFAULT (_AES_IEN_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR (0x1UL << 2) /**< Error interrupt enable */
+#define _AES_IEN_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR_DEFAULT (_AES_IEN_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt enable */
+#define _AES_IEN_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK_DEFAULT (_AES_IEN_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt enable */
+#define _AES_IEN_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED_DEFAULT (_AES_IEN_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR (0x1UL << 5) /**< Error interrupt enable */
+#define _AES_IEN_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR_DEFAULT (_AES_IEN_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IEN */
+
+/* Bit fields for AES IF */
+#define _AES_IF_RESETVALUE 0x00000000UL /**< Default value for AES_IF */
+#define _AES_IF_MASK 0x0000003FUL /**< Mask for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag */
+#define _AES_IF_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag */
+#define _AES_IF_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED_DEFAULT (_AES_IF_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag */
+#define _AES_IF_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR_DEFAULT (_AES_IF_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt flag */
+#define _AES_IF_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt flag */
+#define _AES_IF_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED_DEFAULT (_AES_IF_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR (0x1UL << 5) /**< Error interrupt flag */
+#define _AES_IF_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR_DEFAULT (_AES_IF_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF */
+
+/* Bit fields for AES IF_CLR */
+#define _AES_IF_CLR_RESETVALUE 0x00000000UL /**< Default value for AES_IF_CLR */
+#define _AES_IF_CLR_MASK 0x0000003FUL /**< Mask for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag clear */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag clear */
+#define _AES_IF_CLR_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED_DEFAULT (_AES_IF_CLR_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag clear */
+#define _AES_IF_CLR_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR_DEFAULT (_AES_IF_CLR_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK (0x1UL << 3) /**< FETCHERENDOFBLOCKIFC */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED (0x1UL << 4) /**< FETCHERSTOPPEDIFC */
+#define _AES_IF_CLR_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED_DEFAULT (_AES_IF_CLR_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR (0x1UL << 5) /**< FETCHERERRORIFC */
+#define _AES_IF_CLR_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR_DEFAULT (_AES_IF_CLR_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF_CLR */
+
+/* Bit fields for AES CTRL */
+#define _AES_CTRL_RESETVALUE 0x00000000UL /**< Default value for AES_CTRL */
+#define _AES_CTRL_MASK 0x0000001FUL /**< Mask for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER (0x1UL << 0) /**< Fetcher scatter/gather */
+#define _AES_CTRL_FETCHERSCATTERGATHER_SHIFT 0 /**< Shift value for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_MASK 0x1UL /**< Bit mask for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER_DEFAULT (_AES_CTRL_FETCHERSCATTERGATHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER (0x1UL << 1) /**< Pusher scatter/gather */
+#define _AES_CTRL_PUSHERSCATTERGATHER_SHIFT 1 /**< Shift value for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_MASK 0x2UL /**< Bit mask for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER_DEFAULT (_AES_CTRL_PUSHERSCATTERGATHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER (0x1UL << 2) /**< Stop fetcher */
+#define _AES_CTRL_STOPFETCHER_SHIFT 2 /**< Shift value for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_MASK 0x4UL /**< Bit mask for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER_DEFAULT (_AES_CTRL_STOPFETCHER_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER (0x1UL << 3) /**< Stop pusher */
+#define _AES_CTRL_STOPPUSHER_SHIFT 3 /**< Shift value for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_MASK 0x8UL /**< Bit mask for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER_DEFAULT (_AES_CTRL_STOPPUSHER_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET (0x1UL << 4) /**< Software reset */
+#define _AES_CTRL_SWRESET_SHIFT 4 /**< Shift value for AES_SWRESET */
+#define _AES_CTRL_SWRESET_MASK 0x10UL /**< Bit mask for AES_SWRESET */
+#define _AES_CTRL_SWRESET_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET_DEFAULT (_AES_CTRL_SWRESET_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_CTRL */
+
+/* Bit fields for AES CMD */
+#define _AES_CMD_RESETVALUE 0x00000000UL /**< Default value for AES_CMD */
+#define _AES_CMD_MASK 0x00000003UL /**< Mask for AES_CMD */
+#define AES_CMD_STARTFETCHER (0x1UL << 0) /**< Start fetch */
+#define _AES_CMD_STARTFETCHER_SHIFT 0 /**< Shift value for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_MASK 0x1UL /**< Bit mask for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTFETCHER_DEFAULT (_AES_CMD_STARTFETCHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER (0x1UL << 1) /**< Start push */
+#define _AES_CMD_STARTPUSHER_SHIFT 1 /**< Shift value for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_MASK 0x2UL /**< Bit mask for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER_DEFAULT (_AES_CMD_STARTPUSHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CMD */
+
+/* Bit fields for AES STATUS */
+#define _AES_STATUS_RESETVALUE 0x00000000UL /**< Default value for AES_STATUS */
+#define _AES_STATUS_MASK 0xFFFF0073UL /**< Mask for AES_STATUS */
+#define AES_STATUS_FETCHERBSY (0x1UL << 0) /**< Fetcher busy */
+#define _AES_STATUS_FETCHERBSY_SHIFT 0 /**< Shift value for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_MASK 0x1UL /**< Bit mask for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FETCHERBSY_DEFAULT (_AES_STATUS_FETCHERBSY_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY (0x1UL << 1) /**< Pusher busy */
+#define _AES_STATUS_PUSHERBSY_SHIFT 1 /**< Shift value for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_MASK 0x2UL /**< Bit mask for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY_DEFAULT (_AES_STATUS_PUSHERBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY (0x1UL << 4) /**< Not empty flag from input FIFO (fetcher) */
+#define _AES_STATUS_NOTEMPTY_SHIFT 4 /**< Shift value for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_MASK 0x10UL /**< Bit mask for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY_DEFAULT (_AES_STATUS_NOTEMPTY_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING (0x1UL << 5) /**< Pusher waiting for FIFO */
+#define _AES_STATUS_WAITING_SHIFT 5 /**< Shift value for AES_WAITING */
+#define _AES_STATUS_WAITING_MASK 0x20UL /**< Bit mask for AES_WAITING */
+#define _AES_STATUS_WAITING_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING_DEFAULT (_AES_STATUS_WAITING_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY (0x1UL << 6) /**< Software reset busy */
+#define _AES_STATUS_SOFTRSTBSY_SHIFT 6 /**< Shift value for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_MASK 0x40UL /**< Bit mask for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY_DEFAULT (_AES_STATUS_SOFTRSTBSY_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_STATUS */
+#define _AES_STATUS_FIFODATANUM_SHIFT 16 /**< Shift value for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_MASK 0xFFFF0000UL /**< Bit mask for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FIFODATANUM_DEFAULT (_AES_STATUS_FIFODATANUM_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_STATUS */
+
+/* Bit fields for AES INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_MASK 0x000007FFUL /**< Mask for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES (0x1UL << 0) /**< Generic g_IncludeAES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_SHIFT 0 /**< Shift value for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_MASK 0x1UL /**< Bit mask for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM (0x1UL << 1) /**< Generic g_IncludeAESGCM value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_SHIFT 1 /**< Shift value for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_MASK 0x2UL /**< Bit mask for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS (0x1UL << 2) /**< Generic g_IncludeAESXTS value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_SHIFT 2 /**< Shift value for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_MASK 0x4UL /**< Bit mask for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES (0x1UL << 3) /**< Generic g_IncludeDES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_SHIFT 3 /**< Shift value for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_MASK 0x8UL /**< Bit mask for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH (0x1UL << 4) /**< Generic g_IncludeHASH value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_SHIFT 4 /**< Shift value for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_MASK 0x10UL /**< Bit mask for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly (0x1UL << 5) /**< Generic g_IncludeChachaPoly value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_SHIFT 5 /**< Shift value for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_MASK 0x20UL /**< Bit mask for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3 (0x1UL << 6) /**< Generic g_IncludeSHA3 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_SHIFT 6 /**< Shift value for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_MASK 0x40UL /**< Bit mask for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC (0x1UL << 7) /**< Generic g_IncludeZUC value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_SHIFT 7 /**< Shift value for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_MASK 0x80UL /**< Bit mask for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT << 7) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4 (0x1UL << 8) /**< Generic g_IncludeSM4 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_SHIFT 8 /**< Shift value for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_MASK 0x100UL /**< Bit mask for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT << 8) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE (0x1UL << 9) /**< Generic g_IncludePKE value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_SHIFT 9 /**< Shift value for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_MASK 0x200UL /**< Bit mask for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT << 9) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG (0x1UL << 10) /**< Generic g_IncludeNDRNG value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_SHIFT 10 /**< Shift value for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_MASK 0x400UL /**< Bit mask for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT << 10) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+
+/* Bit fields for AES BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_RESETVALUE 0x05010127UL /**< Default value for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_MASK 0x070301FFUL /**< Mask for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_SHIFT 0 /**< Shift value for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_MASK 0x1FFUL /**< Bit mask for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT 0x00000127UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT (_AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_CS (0x1UL << 16) /**< Generic g_CS value */
+#define _AES_BA411E_HW_CFG_1_g_CS_SHIFT 16 /**< Shift value for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_MASK 0x10000UL /**< Bit mask for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_CS_DEFAULT (_AES_BA411E_HW_CFG_1_g_CS_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_UseMasking (0x1UL << 17) /**< Generic g_UseMasking value */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_SHIFT 17 /**< Shift value for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_MASK 0x20000UL /**< Bit mask for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT (_AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define _AES_BA411E_HW_CFG_1_g_Keysize_SHIFT 24 /**< Shift value for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_MASK 0x7000000UL /**< Bit mask for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT 0x00000005UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT (_AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT << 24) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+
+/* Bit fields for AES BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_RESETVALUE 0x00000080UL /**< Default value for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_MASK 0x0000FFFFUL /**< Mask for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_SHIFT 0 /**< Shift value for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_MASK 0xFFFFUL /**< Bit mask for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT 0x00000080UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_2 */
+#define AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT (_AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_2*/
+
+/* Bit fields for AES BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_MASK 0x0007007FUL /**< Mask for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_SHIFT 0 /**< Shift value for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_MASK 0x7FUL /**< Bit mask for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT (_AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding (0x1UL << 16) /**< Generic g_HashPadding value */
+#define _AES_BA413_HW_CFG_g_HashPadding_SHIFT 16 /**< Shift value for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_MASK 0x10000UL /**< Bit mask for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding_DEFAULT (_AES_BA413_HW_CFG_g_HashPadding_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled (0x1UL << 17) /**< Generic g_HMAC_enabled value */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_SHIFT 17 /**< Shift value for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_MASK 0x20000UL /**< Bit mask for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT (_AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest (0x1UL << 18) /**< Generic g_HashVerifyDigest value */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_SHIFT 18 /**< Shift value for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_MASK 0x40000UL /**< Bit mask for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT (_AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT << 18) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+
+/* Bit fields for AES BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_MASK 0x00000001UL /**< Mask for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn (0x1UL << 0) /**< Generic g_Sha3CtxtEn value */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_SHIFT 0 /**< Shift value for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_MASK 0x1UL /**< Bit mask for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT (_AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA418_HW_CFG */
+
+/* Bit fields for AES BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_MASK 0x0000007FUL /**< Mask for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_SHIFT 0 /**< Shift value for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_MASK 0x7FUL /**< Bit mask for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA419_HW_CFG */
+#define AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT (_AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA419_HW_CFG */
+
+/** @} End of group EFR32BG29_AES_BitFields */
+/** @} End of group EFR32BG29_AES */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_AES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_buram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_buram.h
new file mode 100644
index 000000000..9a9f287e6
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_buram.h
@@ -0,0 +1,80 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 BURAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_BURAM_H
+#define EFR32BG29_BURAM_H
+#define BURAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_BURAM BURAM
+ * @{
+ * @brief EFR32BG29 BURAM Register Declaration.
+ *****************************************************************************/
+
+/** BURAM RET Register Group Declaration. */
+typedef struct buram_ret_typedef{
+ __IOM uint32_t REG; /**< Retention Register */
+} BURAM_RET_TypeDef;
+
+/** BURAM Register Declaration. */
+typedef struct buram_typedef{
+ BURAM_RET_TypeDef RET[32U]; /**< RetentionReg */
+ uint32_t RESERVED0[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_SET[32U]; /**< RetentionReg */
+ uint32_t RESERVED1[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_CLR[32U]; /**< RetentionReg */
+ uint32_t RESERVED2[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_TGL[32U]; /**< RetentionReg */
+} BURAM_TypeDef;
+/** @} End of group EFR32BG29_BURAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_BURAM
+ * @{
+ * @defgroup EFR32BG29_BURAM_BitFields BURAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURAM RET_REG */
+#define _BURAM_RET_REG_RESETVALUE 0x00000000UL /**< Default value for BURAM_RET_REG */
+#define _BURAM_RET_REG_MASK 0xFFFFFFFFUL /**< Mask for BURAM_RET_REG */
+#define _BURAM_RET_REG_RETREG_SHIFT 0 /**< Shift value for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_MASK 0xFFFFFFFFUL /**< Bit mask for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURAM_RET_REG */
+#define BURAM_RET_REG_RETREG_DEFAULT (_BURAM_RET_REG_RETREG_DEFAULT << 0) /**< Shifted mode DEFAULT for BURAM_RET_REG */
+
+/** @} End of group EFR32BG29_BURAM_BitFields */
+/** @} End of group EFR32BG29_BURAM */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_BURAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_burtc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_burtc.h
new file mode 100644
index 000000000..17dbf0dd0
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_burtc.h
@@ -0,0 +1,332 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 BURTC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_BURTC_H
+#define EFR32BG29_BURTC_H
+#define BURTC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_BURTC BURTC
+ * @{
+ * @brief EFR32BG29 BURTC Register Declaration.
+ *****************************************************************************/
+
+/** BURTC Register Declaration. */
+typedef struct burtc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t COMP; /**< Compare Value Register */
+ uint32_t RESERVED0[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_SET; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_SET; /**< Compare Value Register */
+ uint32_t RESERVED1[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_CLR; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_CLR; /**< Compare Value Register */
+ uint32_t RESERVED2[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_TGL; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_TGL; /**< Compare Value Register */
+} BURTC_TypeDef;
+/** @} End of group EFR32BG29_BURTC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_BURTC
+ * @{
+ * @defgroup EFR32BG29_BURTC_BitFields BURTC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURTC IPVERSION */
+#define _BURTC_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IPVERSION */
+#define BURTC_IPVERSION_IPVERSION_DEFAULT (_BURTC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IPVERSION */
+
+/* Bit fields for BURTC EN */
+#define _BURTC_EN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EN */
+#define _BURTC_EN_MASK 0x00000001UL /**< Mask for BURTC_EN */
+#define BURTC_EN_EN (0x1UL << 0) /**< BURTC Enable */
+#define _BURTC_EN_EN_SHIFT 0 /**< Shift value for BURTC_EN */
+#define _BURTC_EN_EN_MASK 0x1UL /**< Bit mask for BURTC_EN */
+#define _BURTC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EN */
+#define BURTC_EN_EN_DEFAULT (_BURTC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EN */
+
+/* Bit fields for BURTC CFG */
+#define _BURTC_CFG_RESETVALUE 0x00000000UL /**< Default value for BURTC_CFG */
+#define _BURTC_CFG_MASK 0x000000F3UL /**< Mask for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _BURTC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_DEFAULT (_BURTC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_DISABLE (_BURTC_CFG_DEBUGRUN_DISABLE << 0) /**< Shifted mode DISABLE for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_ENABLE (_BURTC_CFG_DEBUGRUN_ENABLE << 0) /**< Shifted mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP (0x1UL << 1) /**< Compare Channel is Top Value */
+#define _BURTC_CFG_COMPTOP_SHIFT 1 /**< Shift value for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_MASK 0x2UL /**< Bit mask for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_DISABLE 0x00000000UL /**< Mode DISABLE for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_ENABLE 0x00000001UL /**< Mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DEFAULT (_BURTC_CFG_COMPTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DISABLE (_BURTC_CFG_COMPTOP_DISABLE << 1) /**< Shifted mode DISABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_ENABLE (_BURTC_CFG_COMPTOP_ENABLE << 1) /**< Shifted mode ENABLE for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_SHIFT 4 /**< Shift value for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_MASK 0xF0UL /**< Bit mask for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV512 0x00000009UL /**< Mode DIV512 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1024 0x0000000AUL /**< Mode DIV1024 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2048 0x0000000BUL /**< Mode DIV2048 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4096 0x0000000CUL /**< Mode DIV4096 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8192 0x0000000DUL /**< Mode DIV8192 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16384 0x0000000EUL /**< Mode DIV16384 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32768 0x0000000FUL /**< Mode DIV32768 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DEFAULT (_BURTC_CFG_CNTPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1 (_BURTC_CFG_CNTPRESC_DIV1 << 4) /**< Shifted mode DIV1 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2 (_BURTC_CFG_CNTPRESC_DIV2 << 4) /**< Shifted mode DIV2 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4 (_BURTC_CFG_CNTPRESC_DIV4 << 4) /**< Shifted mode DIV4 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8 (_BURTC_CFG_CNTPRESC_DIV8 << 4) /**< Shifted mode DIV8 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16 (_BURTC_CFG_CNTPRESC_DIV16 << 4) /**< Shifted mode DIV16 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32 (_BURTC_CFG_CNTPRESC_DIV32 << 4) /**< Shifted mode DIV32 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV64 (_BURTC_CFG_CNTPRESC_DIV64 << 4) /**< Shifted mode DIV64 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV128 (_BURTC_CFG_CNTPRESC_DIV128 << 4) /**< Shifted mode DIV128 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV256 (_BURTC_CFG_CNTPRESC_DIV256 << 4) /**< Shifted mode DIV256 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV512 (_BURTC_CFG_CNTPRESC_DIV512 << 4) /**< Shifted mode DIV512 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1024 (_BURTC_CFG_CNTPRESC_DIV1024 << 4) /**< Shifted mode DIV1024 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2048 (_BURTC_CFG_CNTPRESC_DIV2048 << 4) /**< Shifted mode DIV2048 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4096 (_BURTC_CFG_CNTPRESC_DIV4096 << 4) /**< Shifted mode DIV4096 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8192 (_BURTC_CFG_CNTPRESC_DIV8192 << 4) /**< Shifted mode DIV8192 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16384 (_BURTC_CFG_CNTPRESC_DIV16384 << 4) /**< Shifted mode DIV16384 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32768 (_BURTC_CFG_CNTPRESC_DIV32768 << 4) /**< Shifted mode DIV32768 for BURTC_CFG */
+
+/* Bit fields for BURTC CMD */
+#define _BURTC_CMD_RESETVALUE 0x00000000UL /**< Default value for BURTC_CMD */
+#define _BURTC_CMD_MASK 0x00000003UL /**< Mask for BURTC_CMD */
+#define BURTC_CMD_START (0x1UL << 0) /**< Start BURTC counter */
+#define _BURTC_CMD_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_CMD_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_START_DEFAULT (_BURTC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP (0x1UL << 1) /**< Stop BURTC counter */
+#define _BURTC_CMD_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_CMD_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP_DEFAULT (_BURTC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CMD */
+
+/* Bit fields for BURTC STATUS */
+#define _BURTC_STATUS_RESETVALUE 0x00000000UL /**< Default value for BURTC_STATUS */
+#define _BURTC_STATUS_MASK 0x00000003UL /**< Mask for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING (0x1UL << 0) /**< BURTC running status */
+#define _BURTC_STATUS_RUNNING_SHIFT 0 /**< Shift value for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING_DEFAULT (_BURTC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK (0x1UL << 1) /**< Configuration Lock Status */
+#define _BURTC_STATUS_LOCK_SHIFT 1 /**< Shift value for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_MASK 0x2UL /**< Bit mask for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_DEFAULT (_BURTC_STATUS_LOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_UNLOCKED (_BURTC_STATUS_LOCK_UNLOCKED << 1) /**< Shifted mode UNLOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_LOCKED (_BURTC_STATUS_LOCK_LOCKED << 1) /**< Shifted mode LOCKED for BURTC_STATUS */
+
+/* Bit fields for BURTC IF */
+#define _BURTC_IF_RESETVALUE 0x00000000UL /**< Default value for BURTC_IF */
+#define _BURTC_IF_MASK 0x00000003UL /**< Mask for BURTC_IF */
+#define BURTC_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IF_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IF_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_OF_DEFAULT (_BURTC_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IF_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IF_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IF_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP_DEFAULT (_BURTC_IF_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IF */
+
+/* Bit fields for BURTC IEN */
+#define _BURTC_IEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_IEN */
+#define _BURTC_IEN_MASK 0x00000003UL /**< Mask for BURTC_IEN */
+#define BURTC_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IEN_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IEN_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_OF_DEFAULT (_BURTC_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IEN_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IEN_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IEN_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP_DEFAULT (_BURTC_IEN_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IEN */
+
+/* Bit fields for BURTC PRECNT */
+#define _BURTC_PRECNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_PRECNT */
+#define _BURTC_PRECNT_MASK 0x00007FFFUL /**< Mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_SHIFT 0 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_PRECNT */
+#define BURTC_PRECNT_PRECNT_DEFAULT (_BURTC_PRECNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_PRECNT */
+
+/* Bit fields for BURTC CNT */
+#define _BURTC_CNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_CNT */
+#define _BURTC_CNT_MASK 0xFFFFFFFFUL /**< Mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_SHIFT 0 /**< Shift value for BURTC_CNT */
+#define _BURTC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CNT */
+#define BURTC_CNT_CNT_DEFAULT (_BURTC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CNT */
+
+/* Bit fields for BURTC EM4WUEN */
+#define _BURTC_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EM4WUEN */
+#define _BURTC_EM4WUEN_MASK 0x00000003UL /**< Mask for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN (0x1UL << 0) /**< Overflow EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_OFEM4WUEN_SHIFT 0 /**< Shift value for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_MASK 0x1UL /**< Bit mask for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN_DEFAULT (_BURTC_EM4WUEN_OFEM4WUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN (0x1UL << 1) /**< Compare Match EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_SHIFT 1 /**< Shift value for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_MASK 0x2UL /**< Bit mask for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT (_BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+
+/* Bit fields for BURTC SYNCBUSY */
+#define _BURTC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for BURTC_SYNCBUSY */
+#define _BURTC_SYNCBUSY_MASK 0x0000003FUL /**< Mask for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START */
+#define _BURTC_SYNCBUSY_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START_DEFAULT (_BURTC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP */
+#define _BURTC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP_DEFAULT (_BURTC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT (0x1UL << 2) /**< Sync busy for PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_SHIFT 2 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_MASK 0x4UL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT_DEFAULT (_BURTC_SYNCBUSY_PRECNT_DEFAULT << 2) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT (0x1UL << 3) /**< Sync busy for CNT */
+#define _BURTC_SYNCBUSY_CNT_SHIFT 3 /**< Shift value for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_MASK 0x8UL /**< Bit mask for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT_DEFAULT (_BURTC_SYNCBUSY_CNT_DEFAULT << 3) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP (0x1UL << 4) /**< Sync busy for COMP */
+#define _BURTC_SYNCBUSY_COMP_SHIFT 4 /**< Shift value for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_MASK 0x10UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP_DEFAULT (_BURTC_SYNCBUSY_COMP_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_EN (0x1UL << 5) /**< Sync busy for EN */
+#define _BURTC_SYNCBUSY_EN_SHIFT 5 /**< Shift value for BURTC_EN */
+#define _BURTC_SYNCBUSY_EN_MASK 0x20UL /**< Bit mask for BURTC_EN */
+#define _BURTC_SYNCBUSY_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_EN_DEFAULT (_BURTC_SYNCBUSY_EN_DEFAULT << 5) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+
+/* Bit fields for BURTC LOCK */
+#define _BURTC_LOCK_RESETVALUE 0x0000AEE8UL /**< Default value for BURTC_LOCK */
+#define _BURTC_LOCK_MASK 0x0000FFFFUL /**< Mask for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_DEFAULT 0x0000AEE8UL /**< Mode DEFAULT for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_DEFAULT (_BURTC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_UNLOCK (_BURTC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for BURTC_LOCK */
+
+/* Bit fields for BURTC COMP */
+#define _BURTC_COMP_RESETVALUE 0x00000000UL /**< Default value for BURTC_COMP */
+#define _BURTC_COMP_MASK 0xFFFFFFFFUL /**< Mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_SHIFT 0 /**< Shift value for BURTC_COMP */
+#define _BURTC_COMP_COMP_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_COMP */
+#define BURTC_COMP_COMP_DEFAULT (_BURTC_COMP_COMP_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_COMP */
+
+/** @} End of group EFR32BG29_BURTC_BitFields */
+/** @} End of group EFR32BG29_BURTC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_BURTC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_cmu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_cmu.h
new file mode 100644
index 000000000..ee643125a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_cmu.h
@@ -0,0 +1,1017 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 CMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_CMU_H
+#define EFR32BG29_CMU_H
+#define CMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_CMU CMU
+ * @{
+ * @brief EFR32BG29 CMU Register Declaration.
+ *****************************************************************************/
+
+/** CMU Register Declaration. */
+typedef struct cmu_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED3[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT; /**< Calibration Result Counter Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1; /**< Clock Enable Register 1 */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL; /**< System Clock Control */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL; /**< Export Clock Control */
+ uint32_t RESERVED8[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED10[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED11[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL; /**< IADC Clock Control */
+ uint32_t RESERVED13[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED14[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL; /**< RTCC Clock Control */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED16[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_SET; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED22[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED23[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_SET; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_SET; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_SET; /**< Calibration Result Counter Register */
+ uint32_t RESERVED24[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_SET; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_SET; /**< Clock Enable Register 1 */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_SET; /**< System Clock Control */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_SET; /**< Debug Trace Clock Control */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_SET; /**< Export Clock Control */
+ uint32_t RESERVED28[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_SET; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED29[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_SET; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_SET; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_SET; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED30[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_SET; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED31[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_SET; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED32[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_SET; /**< IADC Clock Control */
+ uint32_t RESERVED33[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_SET; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED34[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_SET; /**< RTCC Clock Control */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_SET; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED36[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_SET; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_SET; /**< EUSART0 Clock Control */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ uint32_t RESERVED39[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED41[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_CLR; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED43[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_CLR; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_CLR; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_CLR; /**< Calibration Result Counter Register */
+ uint32_t RESERVED44[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_CLR; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_CLR; /**< Clock Enable Register 1 */
+ uint32_t RESERVED45[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_CLR; /**< System Clock Control */
+ uint32_t RESERVED46[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_CLR; /**< Debug Trace Clock Control */
+ uint32_t RESERVED47[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_CLR; /**< Export Clock Control */
+ uint32_t RESERVED48[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_CLR; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED49[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_CLR; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_CLR; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_CLR; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED50[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_CLR; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED51[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_CLR; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED52[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_CLR; /**< IADC Clock Control */
+ uint32_t RESERVED53[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_CLR; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED54[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_CLR; /**< RTCC Clock Control */
+ uint32_t RESERVED55[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_CLR; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED56[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_CLR; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_CLR; /**< EUSART0 Clock Control */
+ uint32_t RESERVED57[1U]; /**< Reserved for future use */
+ uint32_t RESERVED58[1U]; /**< Reserved for future use */
+ uint32_t RESERVED59[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED60[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED61[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_TGL; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED62[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED63[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_TGL; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_TGL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_TGL; /**< Calibration Result Counter Register */
+ uint32_t RESERVED64[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_TGL; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_TGL; /**< Clock Enable Register 1 */
+ uint32_t RESERVED65[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_TGL; /**< System Clock Control */
+ uint32_t RESERVED66[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_TGL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED67[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_TGL; /**< Export Clock Control */
+ uint32_t RESERVED68[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_TGL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED69[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_TGL; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_TGL; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_TGL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED70[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_TGL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED71[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_TGL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED72[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_TGL; /**< IADC Clock Control */
+ uint32_t RESERVED73[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_TGL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED74[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_TGL; /**< RTCC Clock Control */
+ uint32_t RESERVED75[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_TGL; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED76[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_TGL; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_TGL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED77[1U]; /**< Reserved for future use */
+ uint32_t RESERVED78[1U]; /**< Reserved for future use */
+} CMU_TypeDef;
+/** @} End of group EFR32BG29_CMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_CMU
+ * @{
+ * @defgroup EFR32BG29_CMU_BitFields CMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for CMU IPVERSION */
+#define _CMU_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for CMU_IPVERSION */
+#define _CMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for CMU_IPVERSION */
+#define CMU_IPVERSION_IPVERSION_DEFAULT (_CMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IPVERSION */
+
+/* Bit fields for CMU STATUS */
+#define _CMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for CMU_STATUS */
+#define _CMU_STATUS_MASK 0xC0030001UL /**< Mask for CMU_STATUS */
+#define CMU_STATUS_CALRDY (0x1UL << 0) /**< Calibration Ready */
+#define _CMU_STATUS_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_CALRDY_DEFAULT (_CMU_STATUS_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK (0x1UL << 30) /**< Configuration Lock Status for WDOG */
+#define _CMU_STATUS_WDOGLOCK_SHIFT 30 /**< Shift value for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_MASK 0x40000000UL /**< Bit mask for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_DEFAULT (_CMU_STATUS_WDOGLOCK_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_UNLOCKED (_CMU_STATUS_WDOGLOCK_UNLOCKED << 30) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_LOCKED (_CMU_STATUS_WDOGLOCK_LOCKED << 30) /**< Shifted mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _CMU_STATUS_LOCK_SHIFT 31 /**< Shift value for CMU_LOCK */
+#define _CMU_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for CMU_LOCK */
+#define _CMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_DEFAULT (_CMU_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_LOCK_UNLOCKED (_CMU_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_LOCKED (_CMU_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for CMU_STATUS */
+
+/* Bit fields for CMU LOCK */
+#define _CMU_LOCK_RESETVALUE 0x000093F7UL /**< Default value for CMU_LOCK */
+#define _CMU_LOCK_MASK 0x0000FFFFUL /**< Mask for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_DEFAULT 0x000093F7UL /**< Mode DEFAULT for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_DEFAULT (_CMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_UNLOCK (_CMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_LOCK */
+
+/* Bit fields for CMU WDOGLOCK */
+#define _CMU_WDOGLOCK_RESETVALUE 0x00005257UL /**< Default value for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_MASK 0x0000FFFFUL /**< Mask for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_DEFAULT 0x00005257UL /**< Mode DEFAULT for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_DEFAULT (_CMU_WDOGLOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_UNLOCK (_CMU_WDOGLOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_WDOGLOCK */
+
+/* Bit fields for CMU IF */
+#define _CMU_IF_RESETVALUE 0x00000000UL /**< Default value for CMU_IF */
+#define _CMU_IF_MASK 0x00000003UL /**< Mask for CMU_IF */
+#define CMU_IF_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Flag */
+#define _CMU_IF_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IF_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IF_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALRDY_DEFAULT (_CMU_IF_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Flag */
+#define _CMU_IF_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IF_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IF_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF_DEFAULT (_CMU_IF_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IF */
+
+/* Bit fields for CMU IEN */
+#define _CMU_IEN_RESETVALUE 0x00000000UL /**< Default value for CMU_IEN */
+#define _CMU_IEN_MASK 0x00000003UL /**< Mask for CMU_IEN */
+#define CMU_IEN_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Enable */
+#define _CMU_IEN_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALRDY_DEFAULT (_CMU_IEN_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Enable */
+#define _CMU_IEN_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IEN_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IEN_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF_DEFAULT (_CMU_IEN_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IEN */
+
+/* Bit fields for CMU CALCMD */
+#define _CMU_CALCMD_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCMD */
+#define _CMU_CALCMD_MASK 0x00000003UL /**< Mask for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART (0x1UL << 0) /**< Calibration Start */
+#define _CMU_CALCMD_CALSTART_SHIFT 0 /**< Shift value for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_MASK 0x1UL /**< Bit mask for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART_DEFAULT (_CMU_CALCMD_CALSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP (0x1UL << 1) /**< Calibration Stop */
+#define _CMU_CALCMD_CALSTOP_SHIFT 1 /**< Shift value for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_MASK 0x2UL /**< Bit mask for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP_DEFAULT (_CMU_CALCMD_CALSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CALCMD */
+
+/* Bit fields for CMU CALCTRL */
+#define _CMU_CALCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCTRL */
+#define _CMU_CALCTRL_MASK 0xFF8FFFFFUL /**< Mask for CMU_CALCTRL */
+#define _CMU_CALCTRL_CALTOP_SHIFT 0 /**< Shift value for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_MASK 0xFFFFFUL /**< Bit mask for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CALTOP_DEFAULT (_CMU_CALCTRL_CALTOP_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT (0x1UL << 23) /**< Continuous Calibration */
+#define _CMU_CALCTRL_CONT_SHIFT 23 /**< Shift value for CMU_CONT */
+#define _CMU_CALCTRL_CONT_MASK 0x800000UL /**< Bit mask for CMU_CONT */
+#define _CMU_CALCTRL_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT_DEFAULT (_CMU_CALCTRL_CONT_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_SHIFT 24 /**< Shift value for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_MASK 0xF000000UL /**< Bit mask for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_PRS 0x00000001UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFXO 0x00000003UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFRCODPLL 0x00000004UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFRCO 0x00000009UL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_ULFRCO 0x0000000AUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DEFAULT (_CMU_CALCTRL_UPSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DISABLED (_CMU_CALCTRL_UPSEL_DISABLED << 24) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_PRS (_CMU_CALCTRL_UPSEL_PRS << 24) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFXO (_CMU_CALCTRL_UPSEL_HFXO << 24) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFXO (_CMU_CALCTRL_UPSEL_LFXO << 24) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFRCODPLL (_CMU_CALCTRL_UPSEL_HFRCODPLL << 24) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_FSRCO (_CMU_CALCTRL_UPSEL_FSRCO << 24) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFRCO (_CMU_CALCTRL_UPSEL_LFRCO << 24) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_ULFRCO (_CMU_CALCTRL_UPSEL_ULFRCO << 24) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_SHIFT 28 /**< Shift value for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_MASK 0xF0000000UL /**< Bit mask for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HCLK 0x00000001UL /**< Mode HCLK for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_PRS 0x00000002UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFXO 0x00000004UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFRCODPLL 0x00000005UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_FSRCO 0x00000009UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFRCO 0x0000000AUL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_ULFRCO 0x0000000BUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DEFAULT (_CMU_CALCTRL_DOWNSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DISABLED (_CMU_CALCTRL_DOWNSEL_DISABLED << 28) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HCLK (_CMU_CALCTRL_DOWNSEL_HCLK << 28) /**< Shifted mode HCLK for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_PRS (_CMU_CALCTRL_DOWNSEL_PRS << 28) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFXO (_CMU_CALCTRL_DOWNSEL_HFXO << 28) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFXO (_CMU_CALCTRL_DOWNSEL_LFXO << 28) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFRCODPLL (_CMU_CALCTRL_DOWNSEL_HFRCODPLL << 28) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_FSRCO (_CMU_CALCTRL_DOWNSEL_FSRCO << 28) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFRCO (_CMU_CALCTRL_DOWNSEL_LFRCO << 28) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_ULFRCO (_CMU_CALCTRL_DOWNSEL_ULFRCO << 28) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+
+/* Bit fields for CMU CALCNT */
+#define _CMU_CALCNT_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCNT */
+#define _CMU_CALCNT_MASK 0x000FFFFFUL /**< Mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_SHIFT 0 /**< Shift value for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_MASK 0xFFFFFUL /**< Bit mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCNT */
+#define CMU_CALCNT_CALCNT_DEFAULT (_CMU_CALCNT_CALCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCNT */
+
+/* Bit fields for CMU CLKEN0 */
+#define _CMU_CLKEN0_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN0 */
+#define _CMU_CLKEN0_MASK 0xFEFFFFFFUL /**< Mask for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMA_SHIFT 0 /**< Shift value for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_MASK 0x1UL /**< Bit mask for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA_DEFAULT (_CMU_CLKEN0_LDMA_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMAXBAR_SHIFT 1 /**< Shift value for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_MASK 0x2UL /**< Bit mask for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR_DEFAULT (_CMU_CLKEN0_LDMAXBAR_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_RADIOAES_SHIFT 2 /**< Shift value for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_MASK 0x4UL /**< Bit mask for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES_DEFAULT (_CMU_CLKEN0_RADIOAES_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPCRC_SHIFT 3 /**< Shift value for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_MASK 0x8UL /**< Bit mask for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC_DEFAULT (_CMU_CLKEN0_GPCRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0 (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER0_SHIFT 4 /**< Shift value for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_MASK 0x10UL /**< Bit mask for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0_DEFAULT (_CMU_CLKEN0_TIMER0_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1 (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER1_SHIFT 5 /**< Shift value for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_MASK 0x20UL /**< Bit mask for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1_DEFAULT (_CMU_CLKEN0_TIMER1_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2 (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER2_SHIFT 6 /**< Shift value for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_MASK 0x40UL /**< Bit mask for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2_DEFAULT (_CMU_CLKEN0_TIMER2_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3 (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER3_SHIFT 7 /**< Shift value for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_MASK 0x80UL /**< Bit mask for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3_DEFAULT (_CMU_CLKEN0_TIMER3_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0 (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_USART0_SHIFT 8 /**< Shift value for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_MASK 0x100UL /**< Bit mask for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0_DEFAULT (_CMU_CLKEN0_USART0_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART1 (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_USART1_SHIFT 9 /**< Shift value for CMU_USART1 */
+#define _CMU_CLKEN0_USART1_MASK 0x200UL /**< Bit mask for CMU_USART1 */
+#define _CMU_CLKEN0_USART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART1_DEFAULT (_CMU_CLKEN0_USART1_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0 (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_IADC0_SHIFT 10 /**< Shift value for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_MASK 0x400UL /**< Bit mask for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0_DEFAULT (_CMU_CLKEN0_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0 (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_AMUXCP0_SHIFT 11 /**< Shift value for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_MASK 0x800UL /**< Bit mask for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0_DEFAULT (_CMU_CLKEN0_AMUXCP0_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0 (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LETIMER0_SHIFT 12 /**< Shift value for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_MASK 0x1000UL /**< Bit mask for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0_DEFAULT (_CMU_CLKEN0_LETIMER0_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0 (0x1UL << 13) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_WDOG0_SHIFT 13 /**< Shift value for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_MASK 0x2000UL /**< Bit mask for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0_DEFAULT (_CMU_CLKEN0_WDOG0_DEFAULT << 13) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0 (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C0_SHIFT 14 /**< Shift value for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_MASK 0x4000UL /**< Bit mask for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0_DEFAULT (_CMU_CLKEN0_I2C0_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1 (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C1_SHIFT 15 /**< Shift value for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_MASK 0x8000UL /**< Bit mask for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1_DEFAULT (_CMU_CLKEN0_I2C1_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_SYSCFG_SHIFT 16 /**< Shift value for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_MASK 0x10000UL /**< Bit mask for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG_DEFAULT (_CMU_CLKEN0_SYSCFG_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0 (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DPLL0_SHIFT 17 /**< Shift value for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_MASK 0x20000UL /**< Bit mask for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0_DEFAULT (_CMU_CLKEN0_DPLL0_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFRCO0_SHIFT 18 /**< Shift value for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_MASK 0x40000UL /**< Bit mask for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0_DEFAULT (_CMU_CLKEN0_HFRCO0_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFXO0_SHIFT 19 /**< Shift value for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_MASK 0x80000UL /**< Bit mask for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0_DEFAULT (_CMU_CLKEN0_HFXO0_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_FSRCO_SHIFT 20 /**< Shift value for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_MASK 0x100000UL /**< Bit mask for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO_DEFAULT (_CMU_CLKEN0_FSRCO_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFRCO_SHIFT 21 /**< Shift value for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_MASK 0x200000UL /**< Bit mask for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO_DEFAULT (_CMU_CLKEN0_LFRCO_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFXO_SHIFT 22 /**< Shift value for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_MASK 0x400000UL /**< Bit mask for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO_DEFAULT (_CMU_CLKEN0_LFXO_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_ULFRCO_SHIFT 23 /**< Shift value for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_MASK 0x800000UL /**< Bit mask for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO_DEFAULT (_CMU_CLKEN0_ULFRCO_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PDM (0x1UL << 25) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_PDM_SHIFT 25 /**< Shift value for CMU_PDM */
+#define _CMU_CLKEN0_PDM_MASK 0x2000000UL /**< Bit mask for CMU_PDM */
+#define _CMU_CLKEN0_PDM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PDM_DEFAULT (_CMU_CLKEN0_PDM_DEFAULT << 25) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO (0x1UL << 26) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPIO_SHIFT 26 /**< Shift value for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_MASK 0x4000000UL /**< Bit mask for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO_DEFAULT (_CMU_CLKEN0_GPIO_DEFAULT << 26) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS (0x1UL << 27) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_PRS_SHIFT 27 /**< Shift value for CMU_PRS */
+#define _CMU_CLKEN0_PRS_MASK 0x8000000UL /**< Bit mask for CMU_PRS */
+#define _CMU_CLKEN0_PRS_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS_DEFAULT (_CMU_CLKEN0_PRS_DEFAULT << 27) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURAM_SHIFT 28 /**< Shift value for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_MASK 0x10000000UL /**< Bit mask for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM_DEFAULT (_CMU_CLKEN0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC (0x1UL << 29) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURTC_SHIFT 29 /**< Shift value for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_MASK 0x20000000UL /**< Bit mask for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC_DEFAULT (_CMU_CLKEN0_BURTC_DEFAULT << 29) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RTCC (0x1UL << 30) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_RTCC_SHIFT 30 /**< Shift value for CMU_RTCC */
+#define _CMU_CLKEN0_RTCC_MASK 0x40000000UL /**< Bit mask for CMU_RTCC */
+#define _CMU_CLKEN0_RTCC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RTCC_DEFAULT (_CMU_CLKEN0_RTCC_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC (0x1UL << 31) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DCDC_SHIFT 31 /**< Shift value for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_MASK 0x80000000UL /**< Bit mask for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC_DEFAULT (_CMU_CLKEN0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+
+/* Bit fields for CMU CLKEN1 */
+#define _CMU_CLKEN1_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN1 */
+#define _CMU_CLKEN1_MASK 0x10FFDFFFUL /**< Mask for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_AGC_SHIFT 0 /**< Shift value for CMU_AGC */
+#define _CMU_CLKEN1_AGC_MASK 0x1UL /**< Bit mask for CMU_AGC */
+#define _CMU_CLKEN1_AGC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC_DEFAULT (_CMU_CLKEN1_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MODEM_SHIFT 1 /**< Shift value for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_MASK 0x2UL /**< Bit mask for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM_DEFAULT (_CMU_CLKEN1_MODEM_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFCRC_SHIFT 2 /**< Shift value for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_MASK 0x4UL /**< Bit mask for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC_DEFAULT (_CMU_CLKEN1_RFCRC_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_FRC_SHIFT 3 /**< Shift value for CMU_FRC */
+#define _CMU_CLKEN1_FRC_MASK 0x8UL /**< Bit mask for CMU_FRC */
+#define _CMU_CLKEN1_FRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC_DEFAULT (_CMU_CLKEN1_FRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PROTIMER_SHIFT 4 /**< Shift value for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_MASK 0x10UL /**< Bit mask for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER_DEFAULT (_CMU_CLKEN1_PROTIMER_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RAC_SHIFT 5 /**< Shift value for CMU_RAC */
+#define _CMU_CLKEN1_RAC_MASK 0x20UL /**< Bit mask for CMU_RAC */
+#define _CMU_CLKEN1_RAC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC_DEFAULT (_CMU_CLKEN1_RAC_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SYNTH_SHIFT 6 /**< Shift value for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_MASK 0x40UL /**< Bit mask for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH_DEFAULT (_CMU_CLKEN1_SYNTH_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDSCRATCHPAD (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDSCRATCHPAD_SHIFT 7 /**< Shift value for CMU_RDSCRATCHPAD */
+#define _CMU_CLKEN1_RDSCRATCHPAD_MASK 0x80UL /**< Bit mask for CMU_RDSCRATCHPAD */
+#define _CMU_CLKEN1_RDSCRATCHPAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDSCRATCHPAD_DEFAULT (_CMU_CLKEN1_RDSCRATCHPAD_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX0 (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDMAILBOX0_SHIFT 8 /**< Shift value for CMU_RDMAILBOX0 */
+#define _CMU_CLKEN1_RDMAILBOX0_MASK 0x100UL /**< Bit mask for CMU_RDMAILBOX0 */
+#define _CMU_CLKEN1_RDMAILBOX0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX0_DEFAULT (_CMU_CLKEN1_RDMAILBOX0_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX1 (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDMAILBOX1_SHIFT 9 /**< Shift value for CMU_RDMAILBOX1 */
+#define _CMU_CLKEN1_RDMAILBOX1_MASK 0x200UL /**< Bit mask for CMU_RDMAILBOX1 */
+#define _CMU_CLKEN1_RDMAILBOX1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX1_DEFAULT (_CMU_CLKEN1_RDMAILBOX1_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PRORTC (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PRORTC_SHIFT 10 /**< Shift value for CMU_PRORTC */
+#define _CMU_CLKEN1_PRORTC_MASK 0x400UL /**< Bit mask for CMU_PRORTC */
+#define _CMU_CLKEN1_PRORTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PRORTC_DEFAULT (_CMU_CLKEN1_PRORTC_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_BUFC_SHIFT 11 /**< Shift value for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_MASK 0x800UL /**< Bit mask for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC_DEFAULT (_CMU_CLKEN1_BUFC_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_IFADCDEBUG (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_IFADCDEBUG_SHIFT 12 /**< Shift value for CMU_IFADCDEBUG */
+#define _CMU_CLKEN1_IFADCDEBUG_MASK 0x1000UL /**< Bit mask for CMU_IFADCDEBUG */
+#define _CMU_CLKEN1_IFADCDEBUG_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_IFADCDEBUG_DEFAULT (_CMU_CLKEN1_IFADCDEBUG_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSENSE (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFSENSE_SHIFT 14 /**< Shift value for CMU_RFSENSE */
+#define _CMU_CLKEN1_RFSENSE_MASK 0x4000UL /**< Bit mask for CMU_RFSENSE */
+#define _CMU_CLKEN1_RFSENSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSENSE_DEFAULT (_CMU_CLKEN1_RFSENSE_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SMU_SHIFT 15 /**< Shift value for CMU_SMU */
+#define _CMU_CLKEN1_SMU_MASK 0x8000UL /**< Bit mask for CMU_SMU */
+#define _CMU_CLKEN1_SMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU_DEFAULT (_CMU_CLKEN1_SMU_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0 (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ICACHE0_SHIFT 16 /**< Shift value for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_MASK 0x10000UL /**< Bit mask for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0_DEFAULT (_CMU_CLKEN1_ICACHE0_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MSC_SHIFT 17 /**< Shift value for CMU_MSC */
+#define _CMU_CLKEN1_MSC_MASK 0x20000UL /**< Bit mask for CMU_MSC */
+#define _CMU_CLKEN1_MSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC_DEFAULT (_CMU_CLKEN1_MSC_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_TIMER4 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_TIMER4_SHIFT 18 /**< Shift value for CMU_TIMER4 */
+#define _CMU_CLKEN1_TIMER4_MASK 0x40000UL /**< Bit mask for CMU_TIMER4 */
+#define _CMU_CLKEN1_TIMER4_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_TIMER4_DEFAULT (_CMU_CLKEN1_TIMER4_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ACMP0_SHIFT 19 /**< Shift value for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_MASK 0x80000UL /**< Bit mask for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0_DEFAULT (_CMU_CLKEN1_ACMP0_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0 (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART0_SHIFT 20 /**< Shift value for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_MASK 0x100000UL /**< Bit mask for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0_DEFAULT (_CMU_CLKEN1_EUSART0_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SEMAILBOXHOST_SHIFT 21 /**< Shift value for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_MASK 0x200000UL /**< Bit mask for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST_DEFAULT (_CMU_CLKEN1_SEMAILBOXHOST_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_DMEM_SHIFT 22 /**< Shift value for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_MASK 0x400000UL /**< Bit mask for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM_DEFAULT (_CMU_CLKEN1_DMEM_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1 (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART1_SHIFT 23 /**< Shift value for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_MASK 0x800000UL /**< Bit mask for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1_DEFAULT (_CMU_CLKEN1_EUSART1_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ETAMPDET (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ETAMPDET_SHIFT 28 /**< Shift value for CMU_ETAMPDET */
+#define _CMU_CLKEN1_ETAMPDET_MASK 0x10000000UL /**< Bit mask for CMU_ETAMPDET */
+#define _CMU_CLKEN1_ETAMPDET_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ETAMPDET_DEFAULT (_CMU_CLKEN1_ETAMPDET_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+
+/* Bit fields for CMU SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_MASK 0x0001F507UL /**< Mask for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_FSRCO 0x00000001UL /**< Mode FSRCO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL 0x00000002UL /**< Mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_CLKIN0 0x00000004UL /**< Mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_DEFAULT (_CMU_SYSCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_FSRCO (_CMU_SYSCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL (_CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFXO (_CMU_SYSCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_CLKIN0 (_CMU_SYSCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC (0x1UL << 10) /**< PCLK Prescaler */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_SHIFT 10 /**< Shift value for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_MASK 0x400UL /**< Bit mask for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV1 << 10) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV2 << 10) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT 12 /**< Shift value for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_MASK 0xF000UL /**< Bit mask for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV8 0x00000007UL /**< Mode DIV8 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV16 0x0000000FUL /**< Mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV1 << 12) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV2 << 12) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV4 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV4 << 12) /**< Shifted mode DIV4 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV8 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV8 << 12) /**< Shifted mode DIV8 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV16 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV16 << 12) /**< Shifted mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC (0x1UL << 16) /**< Radio HCLK Prescaler */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_SHIFT 16 /**< Shift value for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_MASK 0x10000UL /**< Bit mask for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 << 16) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 << 16) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+
+/* Bit fields for CMU TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_MASK 0x00000033UL /**< Mask for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_TRACECLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_TRACECLKCTRL_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_SYSCLK 0x00000001UL /**< Mode SYSCLK for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT 0x00000002UL /**< Mode HFRCODPLLRT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_DEFAULT (_CMU_TRACECLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_DISABLED (_CMU_TRACECLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_SYSCLK (_CMU_TRACECLKCTRL_CLKSEL_SYSCLK << 0) /**< Shifted mode SYSCLK for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_TRACECLKCTRL*/
+#define _CMU_TRACECLKCTRL_PRESC_SHIFT 4 /**< Shift value for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_MASK 0x30UL /**< Bit mask for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV3 0x00000002UL /**< Mode DIV3 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DEFAULT (_CMU_TRACECLKCTRL_PRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV1 (_CMU_TRACECLKCTRL_PRESC_DIV1 << 4) /**< Shifted mode DIV1 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV2 (_CMU_TRACECLKCTRL_PRESC_DIV2 << 4) /**< Shifted mode DIV2 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV3 (_CMU_TRACECLKCTRL_PRESC_DIV3 << 4) /**< Shifted mode DIV3 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV4 (_CMU_TRACECLKCTRL_PRESC_DIV4 << 4) /**< Shifted mode DIV4 for CMU_TRACECLKCTRL */
+
+/* Bit fields for CMU EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_MASK 0x1F0F0F0FUL /**< Mask for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_SHIFT 0 /**< Shift value for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_MASK 0xFUL /**< Bit mask for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK << 0) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK << 0) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO << 0) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO << 0) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_SHIFT 8 /**< Shift value for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_MASK 0xF00UL /**< Bit mask for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED << 8) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK << 8) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK << 8) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO << 8) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO << 8) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO << 8) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL << 8) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO << 8) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO << 8) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_SHIFT 16 /**< Shift value for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_MASK 0xF0000UL /**< Bit mask for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED << 16) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK << 16) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK << 16) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO << 16) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO << 16) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO << 16) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL << 16) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO << 16) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO << 16) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_PRESC_SHIFT 24 /**< Shift value for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_MASK 0x1F000000UL /**< Bit mask for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_PRESC_DEFAULT (_CMU_EXPORTCLKCTRL_PRESC_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+
+/* Bit fields for CMU DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_HFXO 0x00000001UL /**< Mode HFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 0x00000003UL /**< Mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT (_CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED (_CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_DPLLREFCLKCTRL*/
+#define CMU_DPLLREFCLKCTRL_CLKSEL_HFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_LFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 (_CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+
+/* Bit fields for CMU EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPACLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPACLKCTRL */
+
+/* Bit fields for CMU EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_MASK 0x00000007UL /**< Mask for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 0x00000004UL /**< Mode CLKIN0 for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT 0x00000005UL /**< Mode HFRCODPLLRT for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT 0x00000006UL /**< Mode HFXORT for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 (_CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT << 0) /**< Shifted mode HFXORT for CMU_EM01GRPBCLKCTRL */
+
+/* Bit fields for CMU EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPCCLKCTRL */
+
+/* Bit fields for CMU EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM23GRPACLKCTRL*/
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM23GRPACLKCTRL */
+
+/* Bit fields for CMU EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM4GRPACLKCTRL */
+
+/* Bit fields for CMU IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_FSRCO 0x00000002UL /**< Mode FSRCO for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_DEFAULT (_CMU_IADCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK (_CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_IADCCLKCTRL*/
+#define CMU_IADCCLKCTRL_CLKSEL_FSRCO (_CMU_IADCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_IADCCLKCTRL */
+
+/* Bit fields for CMU WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 0x00000004UL /**< Mode HCLKDIV1024 for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT (_CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFXO (_CMU_WDOG0CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 (_CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 << 0) /**< Shifted mode HCLKDIV1024 for CMU_WDOG0CLKCTRL*/
+
+/* Bit fields for CMU RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_DEFAULT (_CMU_RTCCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_LFRCO (_CMU_RTCCCLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_LFXO (_CMU_RTCCCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_ULFRCO (_CMU_RTCCCLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_RTCCCLKCTRL */
+
+/* Bit fields for CMU PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT (_CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_LFRCO (_CMU_PRORTCCLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_LFXO (_CMU_PRORTCCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO (_CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_PRORTCCLKCTRL */
+
+/* Bit fields for CMU RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_MASK 0x80000003UL /**< Mask for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN (0x1UL << 0) /**< Enable */
+#define _CMU_RADIOCLKCTRL_EN_SHIFT 0 /**< Shift value for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_MASK 0x1UL /**< Bit mask for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN_DEFAULT (_CMU_RADIOCLKCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_FORCECLKENRADIO (0x1UL << 1) /**< Force Radio Clock Enable in EM1P */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_SHIFT 1 /**< Shift value for CMU_FORCECLKENRADIO */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_MASK 0x2UL /**< Bit mask for CMU_FORCECLKENRADIO */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT (_CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK (0x1UL << 31) /**< Enable Clock for Debugger */
+#define _CMU_RADIOCLKCTRL_DBGCLK_SHIFT 31 /**< Shift value for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_MASK 0x80000000UL /**< Bit mask for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK_DEFAULT (_CMU_RADIOCLKCTRL_DBGCLK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+
+/* Bit fields for CMU EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK 0x00000002UL /**< Mode EM23GRPACLK for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT (_CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DISABLED (_CMU_EUSART0CLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK (_CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK (_CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK << 0) /**< Shifted mode EM23GRPACLK for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_FSRCO (_CMU_EUSART0CLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EUSART0CLKCTRL */
+
+/** @} End of group EFR32BG29_CMU_BitFields */
+/** @} End of group EFR32BG29_CMU */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_CMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dcdc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dcdc.h
new file mode 100644
index 000000000..09dffc9a5
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dcdc.h
@@ -0,0 +1,718 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 DCDC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_DCDC_H
+#define EFR32BG29_DCDC_H
+#define DCDC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_DCDC DCDC
+ * @{
+ * @brief EFR32BG29 DCDC Register Declaration.
+ *****************************************************************************/
+
+/** DCDC Register Declaration. */
+typedef struct dcdc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t CTRL; /**< Control */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0; /**< EM23 Control */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL; /**< Boost Control Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL; /**< EM23 Boost Control */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy Status Register */
+ uint32_t RESERVED4[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS; /**< Coulomb Counter Status */
+ uint32_t RESERVED5[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS; /**< Lock Status Register */
+ uint32_t RESERVED6[2U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[7U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_SET; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_SET; /**< EM23 Control */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_SET; /**< Boost Control Register */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_SET; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_SET; /**< EM23 Boost Control */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy Status Register */
+ uint32_t RESERVED17[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_SET; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_SET; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_SET; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_SET; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_SET; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_SET; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_SET; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_SET; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_SET; /**< Coulomb Counter Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_SET; /**< Lock Status Register */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[7U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[7U]; /**< Reserved for future use */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_CLR; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_CLR; /**< EM23 Control */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_CLR; /**< Boost Control Register */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_CLR; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_CLR; /**< EM23 Boost Control */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy Status Register */
+ uint32_t RESERVED30[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_CLR; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_CLR; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_CLR; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_CLR; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_CLR; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_CLR; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_CLR; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_CLR; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_CLR; /**< Coulomb Counter Status */
+ uint32_t RESERVED31[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_CLR; /**< Lock Status Register */
+ uint32_t RESERVED32[2U]; /**< Reserved for future use */
+ uint32_t RESERVED33[1U]; /**< Reserved for future use */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ uint32_t RESERVED36[7U]; /**< Reserved for future use */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_TGL; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_TGL; /**< EM23 Control */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_TGL; /**< Boost Control Register */
+ uint32_t RESERVED41[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_TGL; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_TGL; /**< EM23 Boost Control */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy Status Register */
+ uint32_t RESERVED43[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_TGL; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_TGL; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_TGL; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_TGL; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_TGL; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_TGL; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_TGL; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_TGL; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_TGL; /**< Coulomb Counter Status */
+ uint32_t RESERVED44[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_TGL; /**< Lock Status Register */
+ uint32_t RESERVED45[2U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+ uint32_t RESERVED47[7U]; /**< Reserved for future use */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ uint32_t RESERVED49[7U]; /**< Reserved for future use */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+} DCDC_TypeDef;
+/** @} End of group EFR32BG29_DCDC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_DCDC
+ * @{
+ * @defgroup EFR32BG29_DCDC_BitFields DCDC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DCDC IPVERSION */
+#define _DCDC_IPVERSION_RESETVALUE 0x00000006UL /**< Default value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_DEFAULT 0x00000006UL /**< Mode DEFAULT for DCDC_IPVERSION */
+#define DCDC_IPVERSION_IPVERSION_DEFAULT (_DCDC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IPVERSION */
+
+/* Bit fields for DCDC CTRL */
+#define _DCDC_CTRL_RESETVALUE 0x00000040UL /**< Default value for DCDC_CTRL */
+#define _DCDC_CTRL_MASK 0x0000CF71UL /**< Mask for DCDC_CTRL */
+#define DCDC_CTRL_MODE (0x1UL << 0) /**< DCDC/Bypass Mode Control */
+#define _DCDC_CTRL_MODE_SHIFT 0 /**< Shift value for DCDC_MODE */
+#define _DCDC_CTRL_MODE_MASK 0x1UL /**< Bit mask for DCDC_MODE */
+#define _DCDC_CTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_BYPASS 0x00000000UL /**< Mode BYPASS for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_DCDCREGULATION 0x00000001UL /**< Mode DCDCREGULATION for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DEFAULT (_DCDC_CTRL_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_MODE_BYPASS (_DCDC_CTRL_MODE_BYPASS << 0) /**< Shifted mode BYPASS for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DCDCREGULATION (_DCDC_CTRL_MODE_DCDCREGULATION << 0) /**< Shifted mode DCDCREGULATION for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_SHIFT 4 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_MASK 0x70UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_DEFAULT 0x00000004UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_OFF 0x00000000UL /**< Mode OFF for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_DEFAULT (_DCDC_CTRL_IPKTMAXCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_OFF (_DCDC_CTRL_IPKTMAXCTRL_OFF << 4) /**< Shifted mode OFF for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us << 4) /**< Shifted mode TMAX_0P35us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us << 4) /**< Shifted mode TMAX_0P63us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us << 4) /**< Shifted mode TMAX_0P91us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us << 4) /**< Shifted mode TMAX_1P19us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us << 4) /**< Shifted mode TMAX_1P47us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us << 4) /**< Shifted mode TMAX_1P75us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us << 4) /**< Shifted mode TMAX_2P03us for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_SHIFT 8 /**< Shift value for DCDC_DVDDBSTPRG */
+#define _DCDC_CTRL_DVDDBSTPRG_MASK 0xF00UL /**< Bit mask for DCDC_DVDDBSTPRG */
+#define _DCDC_CTRL_DVDDBSTPRG_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 0x00000000UL /**< Mode BOOST_1V8 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 0x00000001UL /**< Mode BOOST_1V9 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V 0x00000002UL /**< Mode BOOST_2V for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 0x00000003UL /**< Mode BOOST_2V1 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 0x00000004UL /**< Mode BOOST_2V2 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 0x00000005UL /**< Mode BOOST_2V3 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 0x00000006UL /**< Mode BOOST_2V4 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_DEFAULT (_DCDC_CTRL_DVDDBSTPRG_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 (_DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 << 8) /**< Shifted mode BOOST_1V8 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 (_DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 << 8) /**< Shifted mode BOOST_1V9 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V << 8) /**< Shifted mode BOOST_2V for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 << 8) /**< Shifted mode BOOST_2V1 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 << 8) /**< Shifted mode BOOST_2V2 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 << 8) /**< Shifted mode BOOST_2V3 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 << 8) /**< Shifted mode BOOST_2V4 for DCDC_CTRL */
+#define DCDC_CTRL_FORCEBIAS (0x1UL << 14) /**< Force Comparators to be biased */
+#define _DCDC_CTRL_FORCEBIAS_SHIFT 14 /**< Shift value for DCDC_FORCEBIAS */
+#define _DCDC_CTRL_FORCEBIAS_MASK 0x4000UL /**< Bit mask for DCDC_FORCEBIAS */
+#define _DCDC_CTRL_FORCEBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FORCEBIAS_DEFAULT (_DCDC_CTRL_FORCEBIAS_DEFAULT << 14) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FIXEDEMBIAS (0x1UL << 15) /**< Force EM2 config settings */
+#define _DCDC_CTRL_FIXEDEMBIAS_SHIFT 15 /**< Shift value for DCDC_FIXEDEMBIAS */
+#define _DCDC_CTRL_FIXEDEMBIAS_MASK 0x8000UL /**< Bit mask for DCDC_FIXEDEMBIAS */
+#define _DCDC_CTRL_FIXEDEMBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FIXEDEMBIAS_DEFAULT (_DCDC_CTRL_FIXEDEMBIAS_DEFAULT << 15) /**< Shifted mode DEFAULT for DCDC_CTRL */
+
+/* Bit fields for DCDC EM01CTRL0 */
+#define _DCDC_EM01CTRL0_RESETVALUE 0x00000109UL /**< Default value for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_DEFAULT 0x00000009UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load36mA 0x00000003UL /**< Mode Load36mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load40mA 0x00000004UL /**< Mode Load40mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load44mA 0x00000005UL /**< Mode Load44mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load48mA 0x00000006UL /**< Mode Load48mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load52mA 0x00000007UL /**< Mode Load52mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load56mA 0x00000008UL /**< Mode Load56mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load60mA 0x00000009UL /**< Mode Load60mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_DEFAULT (_DCDC_EM01CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load36mA (_DCDC_EM01CTRL0_IPKVAL_Load36mA << 0) /**< Shifted mode Load36mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load40mA (_DCDC_EM01CTRL0_IPKVAL_Load40mA << 0) /**< Shifted mode Load40mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load44mA (_DCDC_EM01CTRL0_IPKVAL_Load44mA << 0) /**< Shifted mode Load44mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load48mA (_DCDC_EM01CTRL0_IPKVAL_Load48mA << 0) /**< Shifted mode Load48mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load52mA (_DCDC_EM01CTRL0_IPKVAL_Load52mA << 0) /**< Shifted mode Load52mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load56mA (_DCDC_EM01CTRL0_IPKVAL_Load56mA << 0) /**< Shifted mode Load56mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load60mA (_DCDC_EM01CTRL0_IPKVAL_Load60mA << 0) /**< Shifted mode Load60mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM01CTRL0*/
+
+/* Bit fields for DCDC EM23CTRL0 */
+#define _DCDC_EM23CTRL0_RESETVALUE 0x00000103UL /**< Default value for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_DEFAULT 0x00000003UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load5mA 0x00000003UL /**< Mode Load5mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load10mA 0x00000009UL /**< Mode Load10mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_DEFAULT (_DCDC_EM23CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load5mA (_DCDC_EM23CTRL0_IPKVAL_Load5mA << 0) /**< Shifted mode Load5mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load10mA (_DCDC_EM23CTRL0_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM23CTRL0*/
+
+/* Bit fields for DCDC BSTCTRL */
+#define _DCDC_BSTCTRL_RESETVALUE 0x00000047UL /**< Default value for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_MASK 0x00000077UL /**< Mask for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_SHIFT 0 /**< Shift value for DCDC_BSTTOFFMAX */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_MASK 0x7UL /**< Bit mask for DCDC_BSTTOFFMAX */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT 0x00000007UL /**< Mode DEFAULT for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_OFF 0x00000000UL /**< Mode OFF for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT (_DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_OFF (_DCDC_BSTCTRL_BSTTOFFMAX_OFF << 0) /**< Shifted mode OFF for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us << 0) /**< Shifted mode TMAX_0P35us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us << 0) /**< Shifted mode TMAX_0P63us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us << 0) /**< Shifted mode TMAX_0P91us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us << 0) /**< Shifted mode TMAX_1P19us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us << 0) /**< Shifted mode TMAX_1P47us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us << 0) /**< Shifted mode TMAX_1P75us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us << 0) /**< Shifted mode TMAX_2P03us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_SHIFT 4 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_MASK 0x70UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT 0x00000004UL /**< Mode DEFAULT for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_OFF 0x00000000UL /**< Mode OFF for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT (_DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_OFF (_DCDC_BSTCTRL_IPKTMAXCTRL_OFF << 4) /**< Shifted mode OFF for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us << 4) /**< Shifted mode TMAX_0P35us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us << 4) /**< Shifted mode TMAX_0P63us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us << 4) /**< Shifted mode TMAX_0P91us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us << 4) /**< Shifted mode TMAX_1P19us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us << 4) /**< Shifted mode TMAX_1P47us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us << 4) /**< Shifted mode TMAX_1P75us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us << 4) /**< Shifted mode TMAX_2P03us for DCDC_BSTCTRL */
+
+/* Bit fields for DCDC BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_RESETVALUE 0x0000010DUL /**< Default value for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_MASK 0x0000030FUL /**< Mask for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_DEFAULT 0x0000000DUL /**< Mode DEFAULT for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load10mA 0x00000004UL /**< Mode Load10mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load11mA 0x00000005UL /**< Mode Load11mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load13mA 0x00000006UL /**< Mode Load13mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load15mA 0x00000007UL /**< Mode Load15mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load16mA 0x00000008UL /**< Mode Load16mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load18mA 0x00000009UL /**< Mode Load18mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load20mA 0x0000000AUL /**< Mode Load20mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load21mA 0x0000000BUL /**< Mode Load21mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load23mA 0x0000000CUL /**< Mode Load23mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load25mA 0x0000000DUL /**< Mode Load25mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load26mA 0x0000000EUL /**< Mode Load26mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_DEFAULT (_DCDC_BSTEM01CTRL_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load10mA (_DCDC_BSTEM01CTRL_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load11mA (_DCDC_BSTEM01CTRL_IPKVAL_Load11mA << 0) /**< Shifted mode Load11mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load13mA (_DCDC_BSTEM01CTRL_IPKVAL_Load13mA << 0) /**< Shifted mode Load13mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load15mA (_DCDC_BSTEM01CTRL_IPKVAL_Load15mA << 0) /**< Shifted mode Load15mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load16mA (_DCDC_BSTEM01CTRL_IPKVAL_Load16mA << 0) /**< Shifted mode Load16mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load18mA (_DCDC_BSTEM01CTRL_IPKVAL_Load18mA << 0) /**< Shifted mode Load18mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load20mA (_DCDC_BSTEM01CTRL_IPKVAL_Load20mA << 0) /**< Shifted mode Load20mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load21mA (_DCDC_BSTEM01CTRL_IPKVAL_Load21mA << 0) /**< Shifted mode Load21mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load23mA (_DCDC_BSTEM01CTRL_IPKVAL_Load23mA << 0) /**< Shifted mode Load23mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load25mA (_DCDC_BSTEM01CTRL_IPKVAL_Load25mA << 0) /**< Shifted mode Load25mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load26mA (_DCDC_BSTEM01CTRL_IPKVAL_Load26mA << 0) /**< Shifted mode Load26mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT (_DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING (_DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_BSTEM01CTRL*/
+
+/* Bit fields for DCDC BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_RESETVALUE 0x0000010AUL /**< Default value for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_MASK 0x0000030FUL /**< Mask for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_DEFAULT 0x0000000AUL /**< Mode DEFAULT for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_Load5mA 0x00000004UL /**< Mode Load5mA for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_Load10mA 0x0000000AUL /**< Mode Load10mA for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_DEFAULT (_DCDC_BSTEM23CTRL_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_Load5mA (_DCDC_BSTEM23CTRL_IPKVAL_Load5mA << 0) /**< Shifted mode Load5mA for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_Load10mA (_DCDC_BSTEM23CTRL_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT (_DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING (_DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_BSTEM23CTRL*/
+
+/* Bit fields for DCDC IF */
+#define _DCDC_IF_RESETVALUE 0x00000000UL /**< Default value for DCDC_IF */
+#define _DCDC_IF_MASK 0x000000FFUL /**< Mask for DCDC_IF */
+#define DCDC_IF_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled */
+#define _DCDC_IF_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_BYPSW_DEFAULT (_DCDC_IF_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM (0x1UL << 1) /**< DCDC Warmup Time Done */
+#define _DCDC_IF_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IF_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IF_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM_DEFAULT (_DCDC_IF_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING (0x1UL << 2) /**< DCDC Running */
+#define _DCDC_IF_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING_DEFAULT (_DCDC_IF_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW (0x1UL << 3) /**< VREGVDD below threshold */
+#define _DCDC_IF_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW_DEFAULT (_DCDC_IF_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH (0x1UL << 4) /**< VREGVDD above threshold */
+#define _DCDC_IF_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH_DEFAULT (_DCDC_IF_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION (0x1UL << 5) /**< DCDC in regulation */
+#define _DCDC_IF_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION_DEFAULT (_DCDC_IF_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX (0x1UL << 6) /**< Buck Max Ton/Boost Max Toff reached */
+#define _DCDC_IF_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IF_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IF_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX_DEFAULT (_DCDC_IF_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR (0x1UL << 7) /**< EM4 Entry Request Error */
+#define _DCDC_IF_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR_DEFAULT (_DCDC_IF_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IF */
+
+/* Bit fields for DCDC IEN */
+#define _DCDC_IEN_RESETVALUE 0x00000000UL /**< Default value for DCDC_IEN */
+#define _DCDC_IEN_MASK 0x000000FFUL /**< Mask for DCDC_IEN */
+#define DCDC_IEN_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled Interrupt Enable */
+#define _DCDC_IEN_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_BYPSW_DEFAULT (_DCDC_IEN_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM (0x1UL << 1) /**< DCDC Warmup Time Done Interrupt Enable */
+#define _DCDC_IEN_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IEN_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IEN_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM_DEFAULT (_DCDC_IEN_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING (0x1UL << 2) /**< DCDC Running Interrupt Enable */
+#define _DCDC_IEN_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING_DEFAULT (_DCDC_IEN_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW (0x1UL << 3) /**< VREGVDD below threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW_DEFAULT (_DCDC_IEN_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH (0x1UL << 4) /**< VREGVDD above threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH_DEFAULT (_DCDC_IEN_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION (0x1UL << 5) /**< DCDC in Regulation Interrupt Enable */
+#define _DCDC_IEN_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION_DEFAULT (_DCDC_IEN_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX (0x1UL << 6) /**< Ton_max Timeout Interrupt Enable */
+#define _DCDC_IEN_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX_DEFAULT (_DCDC_IEN_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR (0x1UL << 7) /**< EM4 Entry Req Interrupt Enable */
+#define _DCDC_IEN_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR_DEFAULT (_DCDC_IEN_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IEN */
+
+/* Bit fields for DCDC STATUS */
+#define _DCDC_STATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_STATUS */
+#define _DCDC_STATUS_MASK 0x0000001FUL /**< Mask for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW (0x1UL << 0) /**< Bypass Switch is currently enabled */
+#define _DCDC_STATUS_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW_DEFAULT (_DCDC_STATUS_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM (0x1UL << 1) /**< DCDC Warmup Done */
+#define _DCDC_STATUS_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_STATUS_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_STATUS_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM_DEFAULT (_DCDC_STATUS_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING (0x1UL << 2) /**< DCDC is running */
+#define _DCDC_STATUS_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING_DEFAULT (_DCDC_STATUS_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN (0x1UL << 3) /**< VREGVDD comparator status */
+#define _DCDC_STATUS_VREGIN_SHIFT 3 /**< Shift value for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_MASK 0x8UL /**< Bit mask for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN_DEFAULT (_DCDC_STATUS_VREGIN_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT (0x1UL << 4) /**< Bypass Comparator Output */
+#define _DCDC_STATUS_BYPCMPOUT_SHIFT 4 /**< Shift value for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_MASK 0x10UL /**< Bit mask for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT_DEFAULT (_DCDC_STATUS_BYPCMPOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_STATUS */
+
+/* Bit fields for DCDC SYNCBUSY */
+#define _DCDC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_MASK 0x00000001UL /**< Mask for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_SYNCBUSY (0x1UL << 0) /**< Combined Sync Busy Status */
+#define _DCDC_SYNCBUSY_SYNCBUSY_SHIFT 0 /**< Shift value for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_SYNCBUSY_MASK 0x1UL /**< Bit mask for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_SYNCBUSY_DEFAULT (_DCDC_SYNCBUSY_SYNCBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+
+/* Bit fields for DCDC CCCTRL */
+#define _DCDC_CCCTRL_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCTRL */
+#define _DCDC_CCCTRL_MASK 0x00000001UL /**< Mask for DCDC_CCCTRL */
+#define DCDC_CCCTRL_CCEN (0x1UL << 0) /**< Coulomb Counter Enable */
+#define _DCDC_CCCTRL_CCEN_SHIFT 0 /**< Shift value for DCDC_CCEN */
+#define _DCDC_CCCTRL_CCEN_MASK 0x1UL /**< Bit mask for DCDC_CCEN */
+#define _DCDC_CCCTRL_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCTRL */
+#define DCDC_CCCTRL_CCEN_DEFAULT (_DCDC_CCCTRL_CCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCTRL */
+
+/* Bit fields for DCDC CCCALCTRL */
+#define _DCDC_CCCALCTRL_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_MASK 0x0000030FUL /**< Mask for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLOADEN (0x1UL << 0) /**< CC Load Circuit Enable */
+#define _DCDC_CCCALCTRL_CCLOADEN_SHIFT 0 /**< Shift value for DCDC_CCLOADEN */
+#define _DCDC_CCCALCTRL_CCLOADEN_MASK 0x1UL /**< Bit mask for DCDC_CCLOADEN */
+#define _DCDC_CCCALCTRL_CCLOADEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLOADEN_DEFAULT (_DCDC_CCCALCTRL_CCLOADEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_SHIFT 1 /**< Shift value for DCDC_CCLVL */
+#define _DCDC_CCCALCTRL_CCLVL_MASK 0xEUL /**< Bit mask for DCDC_CCLVL */
+#define _DCDC_CCCALCTRL_CCLVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD0 0x00000000UL /**< Mode LOAD0 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD1 0x00000001UL /**< Mode LOAD1 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD2 0x00000002UL /**< Mode LOAD2 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD3 0x00000003UL /**< Mode LOAD3 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD4 0x00000004UL /**< Mode LOAD4 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD5 0x00000005UL /**< Mode LOAD5 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD6 0x00000006UL /**< Mode LOAD6 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD7 0x00000007UL /**< Mode LOAD7 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_DEFAULT (_DCDC_CCCALCTRL_CCLVL_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD0 (_DCDC_CCCALCTRL_CCLVL_LOAD0 << 1) /**< Shifted mode LOAD0 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD1 (_DCDC_CCCALCTRL_CCLVL_LOAD1 << 1) /**< Shifted mode LOAD1 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD2 (_DCDC_CCCALCTRL_CCLVL_LOAD2 << 1) /**< Shifted mode LOAD2 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD3 (_DCDC_CCCALCTRL_CCLVL_LOAD3 << 1) /**< Shifted mode LOAD3 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD4 (_DCDC_CCCALCTRL_CCLVL_LOAD4 << 1) /**< Shifted mode LOAD4 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD5 (_DCDC_CCCALCTRL_CCLVL_LOAD5 << 1) /**< Shifted mode LOAD5 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD6 (_DCDC_CCCALCTRL_CCLVL_LOAD6 << 1) /**< Shifted mode LOAD6 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD7 (_DCDC_CCCALCTRL_CCLVL_LOAD7 << 1) /**< Shifted mode LOAD7 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALEM2 (0x1UL << 8) /**< CC Calibrate EM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_SHIFT 8 /**< Shift value for DCDC_CCCALEM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_MASK 0x100UL /**< Bit mask for DCDC_CCCALEM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALEM2_DEFAULT (_DCDC_CCCALCTRL_CCCALEM2_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALHALT (0x1UL << 9) /**< CC Calibration Halt Req */
+#define _DCDC_CCCALCTRL_CCCALHALT_SHIFT 9 /**< Shift value for DCDC_CCCALHALT */
+#define _DCDC_CCCALCTRL_CCCALHALT_MASK 0x200UL /**< Bit mask for DCDC_CCCALHALT */
+#define _DCDC_CCCALCTRL_CCCALHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALHALT_DEFAULT (_DCDC_CCCALCTRL_CCCALHALT_DEFAULT << 9) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+
+/* Bit fields for DCDC CCCMD */
+#define _DCDC_CCCMD_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCMD */
+#define _DCDC_CCCMD_MASK 0x00000007UL /**< Mask for DCDC_CCCMD */
+#define DCDC_CCCMD_START (0x1UL << 0) /**< Start CC */
+#define _DCDC_CCCMD_START_SHIFT 0 /**< Shift value for DCDC_START */
+#define _DCDC_CCCMD_START_MASK 0x1UL /**< Bit mask for DCDC_START */
+#define _DCDC_CCCMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_START_DEFAULT (_DCDC_CCCMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_STOP (0x1UL << 1) /**< Stop CC */
+#define _DCDC_CCCMD_STOP_SHIFT 1 /**< Shift value for DCDC_STOP */
+#define _DCDC_CCCMD_STOP_MASK 0x2UL /**< Bit mask for DCDC_STOP */
+#define _DCDC_CCCMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_STOP_DEFAULT (_DCDC_CCCMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_CLR (0x1UL << 2) /**< Clear CC */
+#define _DCDC_CCCMD_CLR_SHIFT 2 /**< Shift value for DCDC_CLR */
+#define _DCDC_CCCMD_CLR_MASK 0x4UL /**< Bit mask for DCDC_CLR */
+#define _DCDC_CCCMD_CLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_CLR_DEFAULT (_DCDC_CCCMD_CLR_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+
+/* Bit fields for DCDC CCEM0CNT */
+#define _DCDC_CCEM0CNT_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCEM0CNT */
+#define _DCDC_CCEM0CNT_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCEM0CNT */
+#define _DCDC_CCEM0CNT_CCCNT_SHIFT 0 /**< Shift value for DCDC_CCCNT */
+#define _DCDC_CCEM0CNT_CCCNT_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_CCCNT */
+#define _DCDC_CCEM0CNT_CCCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCEM0CNT */
+#define DCDC_CCEM0CNT_CCCNT_DEFAULT (_DCDC_CCEM0CNT_CCCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCEM0CNT */
+
+/* Bit fields for DCDC CCEM2CNT */
+#define _DCDC_CCEM2CNT_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCEM2CNT */
+#define _DCDC_CCEM2CNT_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCEM2CNT */
+#define _DCDC_CCEM2CNT_CCCNT_SHIFT 0 /**< Shift value for DCDC_CCCNT */
+#define _DCDC_CCEM2CNT_CCCNT_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_CCCNT */
+#define _DCDC_CCEM2CNT_CCCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCEM2CNT */
+#define DCDC_CCEM2CNT_CCCNT_DEFAULT (_DCDC_CCEM2CNT_CCCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCEM2CNT */
+
+/* Bit fields for DCDC CCTHR */
+#define _DCDC_CCTHR_RESETVALUE 0x00010001UL /**< Default value for DCDC_CCTHR */
+#define _DCDC_CCTHR_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCTHR */
+#define _DCDC_CCTHR_EM0CNT_SHIFT 0 /**< Shift value for DCDC_EM0CNT */
+#define _DCDC_CCTHR_EM0CNT_MASK 0xFFFFUL /**< Bit mask for DCDC_EM0CNT */
+#define _DCDC_CCTHR_EM0CNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_CCTHR */
+#define DCDC_CCTHR_EM0CNT_DEFAULT (_DCDC_CCTHR_EM0CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCTHR */
+#define _DCDC_CCTHR_EM2CNT_SHIFT 16 /**< Shift value for DCDC_EM2CNT */
+#define _DCDC_CCTHR_EM2CNT_MASK 0xFFFF0000UL /**< Bit mask for DCDC_EM2CNT */
+#define _DCDC_CCTHR_EM2CNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_CCTHR */
+#define DCDC_CCTHR_EM2CNT_DEFAULT (_DCDC_CCTHR_EM2CNT_DEFAULT << 16) /**< Shifted mode DEFAULT for DCDC_CCTHR */
+
+/* Bit fields for DCDC CCIF */
+#define _DCDC_CCIF_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCIF */
+#define _DCDC_CCIF_MASK 0x0000000FUL /**< Mask for DCDC_CCIF */
+#define DCDC_CCIF_EM0OF (0x1UL << 0) /**< EM0 Counter Overflow */
+#define _DCDC_CCIF_EM0OF_SHIFT 0 /**< Shift value for DCDC_EM0OF */
+#define _DCDC_CCIF_EM0OF_MASK 0x1UL /**< Bit mask for DCDC_EM0OF */
+#define _DCDC_CCIF_EM0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0OF_DEFAULT (_DCDC_CCIF_EM0OF_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2OF (0x1UL << 1) /**< EM2 Counter Overflow */
+#define _DCDC_CCIF_EM2OF_SHIFT 1 /**< Shift value for DCDC_EM2OF */
+#define _DCDC_CCIF_EM2OF_MASK 0x2UL /**< Bit mask for DCDC_EM2OF */
+#define _DCDC_CCIF_EM2OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2OF_DEFAULT (_DCDC_CCIF_EM2OF_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0CMP (0x1UL << 2) /**< EM0 Counter Compare Match */
+#define _DCDC_CCIF_EM0CMP_SHIFT 2 /**< Shift value for DCDC_EM0CMP */
+#define _DCDC_CCIF_EM0CMP_MASK 0x4UL /**< Bit mask for DCDC_EM0CMP */
+#define _DCDC_CCIF_EM0CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0CMP_DEFAULT (_DCDC_CCIF_EM0CMP_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2CMP (0x1UL << 3) /**< EM2 Counter Compare Match */
+#define _DCDC_CCIF_EM2CMP_SHIFT 3 /**< Shift value for DCDC_EM2CMP */
+#define _DCDC_CCIF_EM2CMP_MASK 0x8UL /**< Bit mask for DCDC_EM2CMP */
+#define _DCDC_CCIF_EM2CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2CMP_DEFAULT (_DCDC_CCIF_EM2CMP_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_CCIF */
+
+/* Bit fields for DCDC CCIEN */
+#define _DCDC_CCIEN_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCIEN */
+#define _DCDC_CCIEN_MASK 0x0000000FUL /**< Mask for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0OF (0x1UL << 0) /**< Clmb Cntr EM0 Overflow Interrupt Enable */
+#define _DCDC_CCIEN_EM0OF_SHIFT 0 /**< Shift value for DCDC_EM0OF */
+#define _DCDC_CCIEN_EM0OF_MASK 0x1UL /**< Bit mask for DCDC_EM0OF */
+#define _DCDC_CCIEN_EM0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0OF_DEFAULT (_DCDC_CCIEN_EM0OF_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2OF (0x1UL << 1) /**< Clmb Cntr EM2 Overflow Interrupt Enable */
+#define _DCDC_CCIEN_EM2OF_SHIFT 1 /**< Shift value for DCDC_EM2OF */
+#define _DCDC_CCIEN_EM2OF_MASK 0x2UL /**< Bit mask for DCDC_EM2OF */
+#define _DCDC_CCIEN_EM2OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2OF_DEFAULT (_DCDC_CCIEN_EM2OF_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0CMP (0x1UL << 2) /**< Clmb Cntr EM0 Cmp Match Interrupt Enable */
+#define _DCDC_CCIEN_EM0CMP_SHIFT 2 /**< Shift value for DCDC_EM0CMP */
+#define _DCDC_CCIEN_EM0CMP_MASK 0x4UL /**< Bit mask for DCDC_EM0CMP */
+#define _DCDC_CCIEN_EM0CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0CMP_DEFAULT (_DCDC_CCIEN_EM0CMP_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2CMP (0x1UL << 3) /**< Clmb Cntr EM2 Cmp Match Interrupt Enable */
+#define _DCDC_CCIEN_EM2CMP_SHIFT 3 /**< Shift value for DCDC_EM2CMP */
+#define _DCDC_CCIEN_EM2CMP_MASK 0x8UL /**< Bit mask for DCDC_EM2CMP */
+#define _DCDC_CCIEN_EM2CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2CMP_DEFAULT (_DCDC_CCIEN_EM2CMP_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+
+/* Bit fields for DCDC CCSTATUS */
+#define _DCDC_CCSTATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCSTATUS */
+#define _DCDC_CCSTATUS_MASK 0x00000003UL /**< Mask for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CLRBSY (0x1UL << 0) /**< Coulomb Counter Clear Busy */
+#define _DCDC_CCSTATUS_CLRBSY_SHIFT 0 /**< Shift value for DCDC_CLRBSY */
+#define _DCDC_CCSTATUS_CLRBSY_MASK 0x1UL /**< Bit mask for DCDC_CLRBSY */
+#define _DCDC_CCSTATUS_CLRBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CLRBSY_DEFAULT (_DCDC_CCSTATUS_CLRBSY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CCRUNNING (0x1UL << 1) /**< Coulomb Counter Running */
+#define _DCDC_CCSTATUS_CCRUNNING_SHIFT 1 /**< Shift value for DCDC_CCRUNNING */
+#define _DCDC_CCSTATUS_CCRUNNING_MASK 0x2UL /**< Bit mask for DCDC_CCRUNNING */
+#define _DCDC_CCSTATUS_CCRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CCRUNNING_DEFAULT (_DCDC_CCSTATUS_CCRUNNING_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCSTATUS */
+
+/* Bit fields for DCDC LOCK */
+#define _DCDC_LOCK_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCK */
+#define _DCDC_LOCK_MASK 0x0000FFFFUL /**< Mask for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_UNLOCKKEY 0x0000ABCDUL /**< Mode UNLOCKKEY for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_DEFAULT (_DCDC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_UNLOCKKEY (_DCDC_LOCK_LOCKKEY_UNLOCKKEY << 0) /**< Shifted mode UNLOCKKEY for DCDC_LOCK */
+
+/* Bit fields for DCDC LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_MASK 0x00000001UL /**< Mask for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK (0x1UL << 0) /**< Lock Status */
+#define _DCDC_LOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_DEFAULT (_DCDC_LOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_UNLOCKED (_DCDC_LOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_LOCKED (_DCDC_LOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for DCDC_LOCKSTATUS */
+
+/** @} End of group EFR32BG29_DCDC_BitFields */
+/** @} End of group EFR32BG29_DCDC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_DCDC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_devinfo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_devinfo.h
new file mode 100644
index 000000000..6bbfdaedc
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_devinfo.h
@@ -0,0 +1,954 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 DEVINFO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_DEVINFO_H
+#define EFR32BG29_DEVINFO_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_DEVINFO DEVINFO
+ * @{
+ * @brief EFR32BG29 DEVINFO Register Declaration.
+ *****************************************************************************/
+
+/** DEVINFO HFRCODPLLCAL Register Group Declaration. */
+typedef struct devinfo_hfrcodpllcal_typedef{
+ __IM uint32_t HFRCODPLLCAL; /**< HFRCODPLL Calibration */
+} DEVINFO_HFRCODPLLCAL_TypeDef;
+
+/** DEVINFO HFRCOEM23CAL Register Group Declaration. */
+typedef struct devinfo_hfrcoem23cal_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} DEVINFO_HFRCOEM23CAL_TypeDef;
+
+/** DEVINFO HFRCOSECAL Register Group Declaration. */
+typedef struct devinfo_hfrcosecal_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} DEVINFO_HFRCOSECAL_TypeDef;
+
+/** DEVINFO Register Declaration. */
+typedef struct devinfo_typedef{
+ __IM uint32_t INFO; /**< DI Information */
+ __IM uint32_t PART; /**< Part Info */
+ __IM uint32_t MEMINFO; /**< Memory Info */
+ __IM uint32_t MSIZE; /**< Memory Size */
+ __IM uint32_t PKGINFO; /**< Misc Device Info */
+ __IM uint32_t CUSTOMINFO; /**< Custom Part Info */
+ __IM uint32_t SWFIX; /**< SW Fix Register */
+ __IM uint32_t SWCAPA0; /**< Software Restriction */
+ __IM uint32_t SWCAPA1; /**< Software Restriction */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t EXTINFO; /**< External Component Info */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t EUI48L; /**< EUI 48 Low */
+ __IM uint32_t EUI48H; /**< EUI 48 High */
+ __IM uint32_t EUI64L; /**< EUI64 Low */
+ __IM uint32_t EUI64H; /**< EUI64 High */
+ __IM uint32_t CALTEMP; /**< Calibration temperature Information */
+ __IM uint32_t EMUTEMP; /**< EMU Temperature Sensor Calibration Information */
+ DEVINFO_HFRCODPLLCAL_TypeDef HFRCODPLLCAL[18U]; /**< */
+ DEVINFO_HFRCOEM23CAL_TypeDef HFRCOEM23CAL[18U]; /**< */
+ DEVINFO_HFRCOSECAL_TypeDef HFRCOSECAL[18U]; /**< */
+ __IM uint32_t MODULENAME0; /**< Module Name Information */
+ __IM uint32_t MODULENAME1; /**< Module Name Information */
+ __IM uint32_t MODULENAME2; /**< Module Name Information */
+ __IM uint32_t MODULENAME3; /**< Module Name Information */
+ __IM uint32_t MODULENAME4; /**< Module Name Information */
+ __IM uint32_t MODULENAME5; /**< Module Name Information */
+ __IM uint32_t MODULENAME6; /**< Module Name Information */
+ __IM uint32_t MODULEINFO; /**< Module Information */
+ __IM uint32_t MODXOCAL; /**< Module External Oscillator Calibration Information */
+ uint32_t RESERVED3[11U]; /**< Reserved for future use */
+ __IM uint32_t IADC0GAIN0; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0GAIN1; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0OFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL1; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL1; /**< IADC Offset Calibration */
+ uint32_t RESERVED4[24U]; /**< Reserved for future use */
+ __IM uint32_t LEGACY; /**< Legacy Device Info */
+ uint32_t RESERVED5[23U]; /**< Reserved for future use */
+ __IM uint32_t RTHERM; /**< Thermistor Calibration */
+ uint32_t RESERVED6[40U]; /**< Reserved for future use */
+ __IM uint32_t CCLOAD10; /**< Current level 1 and 0 */
+ __IM uint32_t CCLOAD32; /**< Current level 3 and 2 */
+ __IM uint32_t CCLOAD54; /**< Current level 5 and 4 */
+ __IM uint32_t CCLOAD76; /**< Current level 7 and 6 */
+ uint32_t RESERVED7[36U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+} DEVINFO_TypeDef;
+/** @} End of group EFR32BG29_DEVINFO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_DEVINFO
+ * @{
+ * @defgroup EFR32BG29_DEVINFO_BitFields DEVINFO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DEVINFO INFO */
+#define _DEVINFO_INFO_RESETVALUE 0x14000000UL /**< Default value for DEVINFO_INFO */
+#define _DEVINFO_INFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_INFO */
+#define _DEVINFO_INFO_CRC_SHIFT 0 /**< Shift value for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_CRC_DEFAULT (_DEVINFO_INFO_CRC_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_PRODREV_SHIFT 16 /**< Shift value for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_PRODREV_DEFAULT (_DEVINFO_INFO_PRODREV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_DEVINFOREV_SHIFT 24 /**< Shift value for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_MASK 0xFF000000UL /**< Bit mask for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_DEFAULT 0x00000014UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_DEVINFOREV_DEFAULT (_DEVINFO_INFO_DEVINFOREV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+
+/* Bit fields for DEVINFO PART */
+#define _DEVINFO_PART_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PART */
+#define _DEVINFO_PART_MASK 0x3F3FFFFFUL /**< Mask for DEVINFO_PART */
+#define _DEVINFO_PART_DEVICENUM_SHIFT 0 /**< Shift value for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_DEVICENUM_DEFAULT (_DEVINFO_PART_DEVICENUM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILYNUM_SHIFT 16 /**< Shift value for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_MASK 0x3F0000UL /**< Bit mask for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILYNUM_DEFAULT (_DEVINFO_PART_FAMILYNUM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_SHIFT 24 /**< Shift value for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_MASK 0x3F000000UL /**< Bit mask for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_MG 0x00000001UL /**< Mode MG for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_BG 0x00000002UL /**< Mode BG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_DEFAULT (_DEVINFO_PART_FAMILY_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_MG (_DEVINFO_PART_FAMILY_MG << 24) /**< Shifted mode MG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_BG (_DEVINFO_PART_FAMILY_BG << 24) /**< Shifted mode BG for DEVINFO_PART */
+
+/* Bit fields for DEVINFO MEMINFO */
+#define _DEVINFO_MEMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_SHIFT 0 /**< Shift value for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_MASK 0xFFUL /**< Bit mask for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_SHIFT 8 /**< Shift value for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_MASK 0xFF00UL /**< Bit mask for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_DILEN_SHIFT 16 /**< Shift value for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_DILEN_DEFAULT (_DEVINFO_MEMINFO_DILEN_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+
+/* Bit fields for DEVINFO MSIZE */
+#define _DEVINFO_MSIZE_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_MASK 0x07FFFFFFUL /**< Mask for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_FLASH_SHIFT 0 /**< Shift value for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_MASK 0xFFFFUL /**< Bit mask for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_FLASH_DEFAULT (_DEVINFO_MSIZE_FLASH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_SRAM_SHIFT 16 /**< Shift value for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_MASK 0x7FF0000UL /**< Bit mask for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_SRAM_DEFAULT (_DEVINFO_MSIZE_SRAM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+
+/* Bit fields for DEVINFO PKGINFO */
+#define _DEVINFO_PKGINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_SHIFT 0 /**< Shift value for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO85 0x00000000UL /**< Mode N40TO85 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO125 0x00000001UL /**< Mode N40TO125 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO105 0x00000002UL /**< Mode N40TO105 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N0TO70 0x00000003UL /**< Mode N0TO70 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N20TO55 0x00000004UL /**< Mode N20TO55 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_DEFAULT (_DEVINFO_PKGINFO_TEMPGRADE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO85 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO85 << 0) /**< Shifted mode N40TO85 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO125 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO125 << 0) /**< Shifted mode N40TO125 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO105 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO105 << 0) /**< Shifted mode N40TO105 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N0TO70 (_DEVINFO_PKGINFO_TEMPGRADE_N0TO70 << 0) /**< Shifted mode N0TO70 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N20TO55 (_DEVINFO_PKGINFO_TEMPGRADE_N20TO55 << 0) /**< Shifted mode N20TO55 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_SHIFT 8 /**< Shift value for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_MASK 0xFF00UL /**< Bit mask for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_WLCSP 0x0000004AUL /**< Mode WLCSP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_BGA 0x0000004CUL /**< Mode BGA for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFN 0x0000004DUL /**< Mode QFN for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFP 0x00000051UL /**< Mode QFP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_DEFAULT (_DEVINFO_PKGINFO_PKGTYPE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_WLCSP (_DEVINFO_PKGINFO_PKGTYPE_WLCSP << 8) /**< Shifted mode WLCSP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_BGA (_DEVINFO_PKGINFO_PKGTYPE_BGA << 8) /**< Shifted mode BGA for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFN (_DEVINFO_PKGINFO_PKGTYPE_QFN << 8) /**< Shifted mode QFN for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFP (_DEVINFO_PKGINFO_PKGTYPE_QFP << 8) /**< Shifted mode QFP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PINCOUNT_SHIFT 16 /**< Shift value for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PINCOUNT_DEFAULT (_DEVINFO_PKGINFO_PINCOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+
+/* Bit fields for DEVINFO CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_MASK 0xFFFF0000UL /**< Mask for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_SHIFT 16 /**< Shift value for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CUSTOMINFO */
+#define DEVINFO_CUSTOMINFO_PARTNO_DEFAULT (_DEVINFO_CUSTOMINFO_PARTNO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CUSTOMINFO */
+
+/* Bit fields for DEVINFO SWFIX */
+#define _DEVINFO_SWFIX_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_RSV_SHIFT 0 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_DEFAULT 0xFFFFFFFFUL /**< Mode DEFAULT for DEVINFO_SWFIX */
+#define DEVINFO_SWFIX_RSV_DEFAULT (_DEVINFO_SWFIX_RSV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWFIX */
+
+/* Bit fields for DEVINFO SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_MASK 0x00333333UL /**< Mask for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_SHIFT 0 /**< Shift value for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_MASK 0x3UL /**< Bit mask for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_DEFAULT (_DEVINFO_SWCAPA0_ZIGBEE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 << 0) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 << 0) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 << 0) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 << 0) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_SHIFT 4 /**< Shift value for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_MASK 0x30UL /**< Bit mask for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_DEFAULT (_DEVINFO_SWCAPA0_THREAD_DEFAULT << 4) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL0 (_DEVINFO_SWCAPA0_THREAD_LEVEL0 << 4) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL1 (_DEVINFO_SWCAPA0_THREAD_LEVEL1 << 4) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL2 (_DEVINFO_SWCAPA0_THREAD_LEVEL2 << 4) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL3 (_DEVINFO_SWCAPA0_THREAD_LEVEL3 << 4) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_SHIFT 8 /**< Shift value for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_MASK 0x300UL /**< Bit mask for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_DEFAULT (_DEVINFO_SWCAPA0_RF4CE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL0 (_DEVINFO_SWCAPA0_RF4CE_LEVEL0 << 8) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL1 (_DEVINFO_SWCAPA0_RF4CE_LEVEL1 << 8) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL2 (_DEVINFO_SWCAPA0_RF4CE_LEVEL2 << 8) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL3 (_DEVINFO_SWCAPA0_RF4CE_LEVEL3 << 8) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_SHIFT 12 /**< Shift value for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_MASK 0x3000UL /**< Bit mask for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_DEFAULT (_DEVINFO_SWCAPA0_BTSMART_DEFAULT << 12) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL0 (_DEVINFO_SWCAPA0_BTSMART_LEVEL0 << 12) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL1 (_DEVINFO_SWCAPA0_BTSMART_LEVEL1 << 12) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL2 (_DEVINFO_SWCAPA0_BTSMART_LEVEL2 << 12) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL3 (_DEVINFO_SWCAPA0_BTSMART_LEVEL3 << 12) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_SHIFT 16 /**< Shift value for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_MASK 0x30000UL /**< Bit mask for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_DEFAULT (_DEVINFO_SWCAPA0_CONNECT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL0 (_DEVINFO_SWCAPA0_CONNECT_LEVEL0 << 16) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL1 (_DEVINFO_SWCAPA0_CONNECT_LEVEL1 << 16) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL2 (_DEVINFO_SWCAPA0_CONNECT_LEVEL2 << 16) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL3 (_DEVINFO_SWCAPA0_CONNECT_LEVEL3 << 16) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_SHIFT 20 /**< Shift value for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_MASK 0x300000UL /**< Bit mask for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_DEFAULT (_DEVINFO_SWCAPA0_SRI_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL0 (_DEVINFO_SWCAPA0_SRI_LEVEL0 << 20) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL1 (_DEVINFO_SWCAPA0_SRI_LEVEL1 << 20) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL2 (_DEVINFO_SWCAPA0_SRI_LEVEL2 << 20) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL3 (_DEVINFO_SWCAPA0_SRI_LEVEL3 << 20) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+
+/* Bit fields for DEVINFO SWCAPA1 */
+#define _DEVINFO_SWCAPA1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA1 */
+#define _DEVINFO_SWCAPA1_MASK 0x00000007UL /**< Mask for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN (0x1UL << 0) /**< RF-MCU */
+#define _DEVINFO_SWCAPA1_RFMCUEN_SHIFT 0 /**< Shift value for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_MASK 0x1UL /**< Bit mask for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN_DEFAULT (_DEVINFO_SWCAPA1_RFMCUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN (0x1UL << 1) /**< NCP */
+#define _DEVINFO_SWCAPA1_NCPEN_SHIFT 1 /**< Shift value for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_MASK 0x2UL /**< Bit mask for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN_DEFAULT (_DEVINFO_SWCAPA1_NCPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN (0x1UL << 2) /**< Gateway */
+#define _DEVINFO_SWCAPA1_GWEN_SHIFT 2 /**< Shift value for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_MASK 0x4UL /**< Bit mask for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN_DEFAULT (_DEVINFO_SWCAPA1_GWEN_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+
+/* Bit fields for DEVINFO EXTINFO */
+#define _DEVINFO_EXTINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_SHIFT 0 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_MASK 0xFFUL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_DEFAULT (_DEVINFO_EXTINFO_TYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_NONE (_DEVINFO_EXTINFO_TYPE_NONE << 0) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SHIFT 8 /**< Shift value for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_MASK 0xFF00UL /**< Bit mask for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SPI 0x00000000UL /**< Mode SPI for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_DEFAULT (_DEVINFO_EXTINFO_CONNECTION_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_SPI (_DEVINFO_EXTINFO_CONNECTION_SPI << 8) /**< Shifted mode SPI for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_NONE (_DEVINFO_EXTINFO_CONNECTION_NONE << 8) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_REV_SHIFT 16 /**< Shift value for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_REV_DEFAULT (_DEVINFO_EXTINFO_REV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+
+/* Bit fields for DEVINFO EUI48L */
+#define _DEVINFO_EUI48L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_UNIQUEID_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_MASK 0xFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_UNIQUEID_DEFAULT (_DEVINFO_EUI48L_UNIQUEID_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_OUI48L_SHIFT 24 /**< Shift value for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_MASK 0xFF000000UL /**< Bit mask for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_OUI48L_DEFAULT (_DEVINFO_EUI48L_OUI48L_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+
+/* Bit fields for DEVINFO EUI48H */
+#define _DEVINFO_EUI48H_RESETVALUE 0xFFFF0000UL /**< Default value for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_OUI48H_SHIFT 0 /**< Shift value for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_OUI48H_DEFAULT (_DEVINFO_EUI48H_OUI48H_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_RESERVED_SHIFT 16 /**< Shift value for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_RESERVED_DEFAULT (_DEVINFO_EUI48H_RESERVED_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+
+/* Bit fields for DEVINFO EUI64L */
+#define _DEVINFO_EUI64L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_UNIQUEL_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64L */
+#define DEVINFO_EUI64L_UNIQUEL_DEFAULT (_DEVINFO_EUI64L_UNIQUEL_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64L */
+
+/* Bit fields for DEVINFO EUI64H */
+#define _DEVINFO_EUI64H_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_UNIQUEH_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_MASK 0xFFUL /**< Bit mask for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_UNIQUEH_DEFAULT (_DEVINFO_EUI64H_UNIQUEH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_OUI64_SHIFT 8 /**< Shift value for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_MASK 0xFFFFFF00UL /**< Bit mask for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_OUI64_DEFAULT (_DEVINFO_EUI64H_OUI64_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+
+/* Bit fields for DEVINFO CALTEMP */
+#define _DEVINFO_CALTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_MASK 0x000000FFUL /**< Mask for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_TEMP_SHIFT 0 /**< Shift value for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CALTEMP */
+#define DEVINFO_CALTEMP_TEMP_DEFAULT (_DEVINFO_CALTEMP_TEMP_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CALTEMP */
+
+/* Bit fields for DEVINFO EMUTEMP */
+#define _DEVINFO_EMUTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_MASK 0x1FFF07FCUL /**< Mask for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_SHIFT 2 /**< Shift value for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_MASK 0x7FCUL /**< Bit mask for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EMUTEMP */
+#define DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT (_DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_EMUTEMP */
+
+/* Bit fields for DEVINFO HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_MASK 0xFFFFBF7FUL /**< Mask for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_SHIFT 0 /**< Shift value for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_MASK 0x7FUL /**< Bit mask for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_SHIFT 8 /**< Shift value for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define DEVINFO_HFRCODPLLCAL_LDOHP (0x1UL << 15) /**< */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_SHIFT 15 /**< Shift value for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_MASK 0x8000UL /**< Bit mask for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT (_DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_SHIFT 16 /**< Shift value for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT (_DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_SHIFT 21 /**< Shift value for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_SHIFT 24 /**< Shift value for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT (_DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_SHIFT 26 /**< Shift value for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_SHIFT 28 /**< Shift value for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT (_DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+
+/* Bit fields for DEVINFO MODULENAME0 */
+#define _DEVINFO_MODULENAME0_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR1_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR2_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR2_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR2_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR3_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR3_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR3_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR4_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR4_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR4_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+
+/* Bit fields for DEVINFO MODULENAME1 */
+#define _DEVINFO_MODULENAME1_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR5_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR5_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR6_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR6_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR6_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR7_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR7_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR7_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR8_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR8_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR8_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+
+/* Bit fields for DEVINFO MODULENAME2 */
+#define _DEVINFO_MODULENAME2_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR9_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR9_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR10_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR10_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR10_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR11_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR11_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR11_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR12_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR12_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR12_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+
+/* Bit fields for DEVINFO MODULENAME3 */
+#define _DEVINFO_MODULENAME3_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR13_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR13_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR14_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR14_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR14_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR15_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR15_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR15_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR16_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR16_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR16_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+
+/* Bit fields for DEVINFO MODULENAME4 */
+#define _DEVINFO_MODULENAME4_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR17_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR17_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR18_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR18_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR18_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR19_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR19_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR19_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR20_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR20_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR20_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+
+/* Bit fields for DEVINFO MODULENAME5 */
+#define _DEVINFO_MODULENAME5_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR21_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR21_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR22_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR22_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR22_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR23_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR23_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR23_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR24_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR24_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR24_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+
+/* Bit fields for DEVINFO MODULENAME6 */
+#define _DEVINFO_MODULENAME6_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR25_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR25_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_MODCHAR26_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR26_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR26_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_RSV_SHIFT 16 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_RSV_DEFAULT (_DEVINFO_MODULENAME6_RSV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+
+/* Bit fields for DEVINFO MODULEINFO */
+#define _DEVINFO_MODULEINFO_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HWREV_SHIFT 0 /**< Shift value for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_MASK 0x1FUL /**< Bit mask for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_DEFAULT 0x0000001FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HWREV_DEFAULT (_DEVINFO_MODULEINFO_HWREV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_SHIFT 5 /**< Shift value for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_MASK 0xE0UL /**< Bit mask for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_DEFAULT 0x00000007UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_BUILTIN 0x00000000UL /**< Mode BUILTIN for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_CONNECTOR 0x00000001UL /**< Mode CONNECTOR for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_RFPAD 0x00000002UL /**< Mode RFPAD for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_INVERTEDF 0x00000003UL /**< Mode INVERTEDF for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_DEFAULT (_DEVINFO_MODULEINFO_ANTENNA_DEFAULT << 5) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_BUILTIN (_DEVINFO_MODULEINFO_ANTENNA_BUILTIN << 5) /**< Shifted mode BUILTIN for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_CONNECTOR (_DEVINFO_MODULEINFO_ANTENNA_CONNECTOR << 5) /**< Shifted mode CONNECTOR for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_ANTENNA_RFPAD (_DEVINFO_MODULEINFO_ANTENNA_RFPAD << 5) /**< Shifted mode RFPAD for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_INVERTEDF (_DEVINFO_MODULEINFO_ANTENNA_INVERTEDF << 5) /**< Shifted mode INVERTEDF for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBER_SHIFT 8 /**< Shift value for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_MASK 0x7F00UL /**< Bit mask for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBER_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBER_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE (0x1UL << 15) /**< */
+#define _DEVINFO_MODULEINFO_TYPE_SHIFT 15 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_MASK 0x8000UL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_PCB 0x00000000UL /**< Mode PCB for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_SIP 0x00000001UL /**< Mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_DEFAULT (_DEVINFO_MODULEINFO_TYPE_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_PCB (_DEVINFO_MODULEINFO_TYPE_PCB << 15) /**< Shifted mode PCB for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_SIP (_DEVINFO_MODULEINFO_TYPE_SIP << 15) /**< Shifted mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO (0x1UL << 16) /**< */
+#define _DEVINFO_MODULEINFO_LFXO_SHIFT 16 /**< Shift value for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_MASK 0x10000UL /**< Bit mask for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_NONE 0x00000000UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_PRESENT 0x00000001UL /**< Mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_DEFAULT (_DEVINFO_MODULEINFO_LFXO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_NONE (_DEVINFO_MODULEINFO_LFXO_NONE << 16) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_PRESENT (_DEVINFO_MODULEINFO_LFXO_PRESENT << 16) /**< Shifted mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS (0x1UL << 17) /**< */
+#define _DEVINFO_MODULEINFO_EXPRESS_SHIFT 17 /**< Shift value for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_MASK 0x20000UL /**< Bit mask for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_SUPPORTED 0x00000000UL /**< Mode SUPPORTED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_NONE 0x00000001UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_DEFAULT (_DEVINFO_MODULEINFO_EXPRESS_DEFAULT << 17) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_SUPPORTED (_DEVINFO_MODULEINFO_EXPRESS_SUPPORTED << 17) /**< Shifted mode SUPPORTED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXPRESS_NONE (_DEVINFO_MODULEINFO_EXPRESS_NONE << 17) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL (0x1UL << 18) /**< */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_SHIFT 18 /**< Shift value for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_MASK 0x40000UL /**< Bit mask for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT << 18) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_VALID (_DEVINFO_MODULEINFO_LFXOCALVAL_VALID << 18) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID << 18) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_HFXOCALVAL (0x1UL << 19) /**< */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_SHIFT 19 /**< Shift value for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_MASK 0x80000UL /**< Bit mask for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT << 19) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_VALID (_DEVINFO_MODULEINFO_HFXOCALVAL_VALID << 19) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID << 19) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_SHIFT 20 /**< Shift value for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_MASK 0x1FF00000UL /**< Bit mask for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT 0x000001FFUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC (0x1UL << 29) /**< */
+#define _DEVINFO_MODULEINFO_PADCDC_SHIFT 29 /**< Shift value for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_MASK 0x20000000UL /**< Bit mask for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_VDCDC 0x00000000UL /**< Mode VDCDC for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_OTHER 0x00000001UL /**< Mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_DEFAULT (_DEVINFO_MODULEINFO_PADCDC_DEFAULT << 29) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_VDCDC (_DEVINFO_MODULEINFO_PADCDC_VDCDC << 29) /**< Shifted mode VDCDC for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_OTHER (_DEVINFO_MODULEINFO_PADCDC_OTHER << 29) /**< Shifted mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED (0x1UL << 30) /**< */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_SHIFT 30 /**< Shift value for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_MASK 0x40000000UL /**< Bit mask for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_LIMITED 0x00000000UL /**< Mode LIMITED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED 0x00000001UL /**< Mode UNLIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT (_DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT << 30) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_LIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_LIMITED << 30) /**< Shifted mode LIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED << 30) /**< Shifted mode UNLIMITED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXTVALID (0x1UL << 31) /**< */
+#define _DEVINFO_MODULEINFO_EXTVALID_SHIFT 31 /**< Shift value for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_MASK 0x80000000UL /**< Bit mask for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUSED 0x00000000UL /**< Mode EXTUSED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED 0x00000001UL /**< Mode EXTUNUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_DEFAULT (_DEVINFO_MODULEINFO_EXTVALID_DEFAULT << 31) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUSED << 31) /**< Shifted mode EXTUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED << 31) /**< Shifted mode EXTUNUSED for DEVINFO_MODULEINFO*/
+
+/* Bit fields for DEVINFO MODXOCAL */
+#define _DEVINFO_MODXOCAL_RESETVALUE 0x007FFFFFUL /**< Default value for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_MASK 0x007FFFFFUL /**< Mask for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_SHIFT 0 /**< Shift value for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_MASK 0xFFUL /**< Bit mask for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_SHIFT 8 /**< Shift value for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_MASK 0xFF00UL /**< Bit mask for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_SHIFT 16 /**< Shift value for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_MASK 0x7F0000UL /**< Bit mask for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT (_DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+
+/* Bit fields for DEVINFO IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+
+/* Bit fields for DEVINFO IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+
+/* Bit fields for DEVINFO IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+
+/* Bit fields for DEVINFO LEGACY */
+#define _DEVINFO_LEGACY_RESETVALUE 0x00800000UL /**< Default value for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_MASK 0x00FF0000UL /**< Mask for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SHIFT 16 /**< Shift value for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_MASK 0xFF0000UL /**< Bit mask for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT 0x00000080UL /**< Mode DEFAULT for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P 0x00000010UL /**< Mode EFR32MG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B 0x00000011UL /**< Mode EFR32MG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V 0x00000012UL /**< Mode EFR32MG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P 0x00000013UL /**< Mode EFR32BG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B 0x00000014UL /**< Mode EFR32BG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V 0x00000015UL /**< Mode EFR32BG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P 0x00000019UL /**< Mode EFR32FG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B 0x0000001AUL /**< Mode EFR32FG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V 0x0000001BUL /**< Mode EFR32FG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P 0x0000001CUL /**< Mode EFR32MG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B 0x0000001DUL /**< Mode EFR32MG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V 0x0000001EUL /**< Mode EFR32MG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P 0x0000001FUL /**< Mode EFR32BG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B 0x00000020UL /**< Mode EFR32BG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V 0x00000021UL /**< Mode EFR32BG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P 0x00000025UL /**< Mode EFR32FG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B 0x00000026UL /**< Mode EFR32FG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V 0x00000027UL /**< Mode EFR32FG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P 0x00000028UL /**< Mode EFR32MG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B 0x00000029UL /**< Mode EFR32MG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V 0x0000002AUL /**< Mode EFR32MG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P 0x0000002BUL /**< Mode EFR32BG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B 0x0000002CUL /**< Mode EFR32BG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V 0x0000002DUL /**< Mode EFR32BG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P 0x00000031UL /**< Mode EFR32FG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B 0x00000032UL /**< Mode EFR32FG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V 0x00000033UL /**< Mode EFR32FG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P 0x00000034UL /**< Mode EFR32MG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B 0x00000035UL /**< Mode EFR32MG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V 0x00000036UL /**< Mode EFR32MG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P 0x00000037UL /**< Mode EFR32BG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B 0x00000038UL /**< Mode EFR32BG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V 0x00000039UL /**< Mode EFR32BG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P 0x0000003DUL /**< Mode EFR32FG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B 0x0000003EUL /**< Mode EFR32FG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V 0x0000003FUL /**< Mode EFR32FG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32G 0x00000047UL /**< Mode EFM32G for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG 0x00000048UL /**< Mode EFM32GG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG 0x00000049UL /**< Mode EFM32TG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG 0x0000004AUL /**< Mode EFM32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG 0x0000004BUL /**< Mode EFM32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG 0x0000004CUL /**< Mode EFM32ZG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG 0x0000004DUL /**< Mode EFM32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B 0x00000051UL /**< Mode EFM32PG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B 0x00000053UL /**< Mode EFM32JG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B 0x00000055UL /**< Mode EFM32PG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B 0x00000057UL /**< Mode EFM32JG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B 0x00000059UL /**< Mode EFM32PG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B 0x0000005BUL /**< Mode EFM32JG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B 0x00000064UL /**< Mode EFM32GG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B 0x00000067UL /**< Mode EFM32TG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG 0x00000078UL /**< Mode EZR32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG 0x00000079UL /**< Mode EZR32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG 0x0000007AUL /**< Mode EZR32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 0x00000080UL /**< Mode SERIES2V0 for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT (_DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P << 16) /**< Shifted mode EFR32MG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B << 16) /**< Shifted mode EFR32MG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V << 16) /**< Shifted mode EFR32MG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P << 16) /**< Shifted mode EFR32BG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B << 16) /**< Shifted mode EFR32BG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V << 16) /**< Shifted mode EFR32BG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P << 16) /**< Shifted mode EFR32FG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B << 16) /**< Shifted mode EFR32FG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V << 16) /**< Shifted mode EFR32FG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P << 16) /**< Shifted mode EFR32MG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B << 16) /**< Shifted mode EFR32MG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V << 16) /**< Shifted mode EFR32MG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P << 16) /**< Shifted mode EFR32BG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B << 16) /**< Shifted mode EFR32BG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V << 16) /**< Shifted mode EFR32BG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P << 16) /**< Shifted mode EFR32FG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B << 16) /**< Shifted mode EFR32FG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V << 16) /**< Shifted mode EFR32FG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P << 16) /**< Shifted mode EFR32MG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B << 16) /**< Shifted mode EFR32MG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V << 16) /**< Shifted mode EFR32MG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P << 16) /**< Shifted mode EFR32BG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B << 16) /**< Shifted mode EFR32BG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V << 16) /**< Shifted mode EFR32BG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P << 16) /**< Shifted mode EFR32FG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B << 16) /**< Shifted mode EFR32FG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V << 16) /**< Shifted mode EFR32FG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P << 16) /**< Shifted mode EFR32MG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B << 16) /**< Shifted mode EFR32MG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V << 16) /**< Shifted mode EFR32MG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P << 16) /**< Shifted mode EFR32BG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B << 16) /**< Shifted mode EFR32BG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V << 16) /**< Shifted mode EFR32BG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P << 16) /**< Shifted mode EFR32FG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B << 16) /**< Shifted mode EFR32FG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V << 16) /**< Shifted mode EFR32FG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32G (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32G << 16) /**< Shifted mode EFM32G for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG << 16) /**< Shifted mode EFM32GG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG << 16) /**< Shifted mode EFM32TG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG << 16) /**< Shifted mode EFM32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG << 16) /**< Shifted mode EFM32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG << 16) /**< Shifted mode EFM32ZG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG << 16) /**< Shifted mode EFM32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B << 16) /**< Shifted mode EFM32PG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B << 16) /**< Shifted mode EFM32JG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B << 16) /**< Shifted mode EFM32PG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B << 16) /**< Shifted mode EFM32JG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B << 16) /**< Shifted mode EFM32PG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B << 16) /**< Shifted mode EFM32JG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B << 16) /**< Shifted mode EFM32GG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B << 16) /**< Shifted mode EFM32TG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG << 16) /**< Shifted mode EZR32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG << 16) /**< Shifted mode EZR32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG << 16) /**< Shifted mode EZR32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 (_DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 << 16) /**< Shifted mode SERIES2V0 for DEVINFO_LEGACY */
+
+/* Bit fields for DEVINFO RTHERM */
+#define _DEVINFO_RTHERM_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_MASK 0x0000FFFFUL /**< Mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_SHIFT 0 /**< Shift value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_RTHERM */
+#define DEVINFO_RTHERM_RTHERM_DEFAULT (_DEVINFO_RTHERM_RTHERM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_RTHERM */
+
+/* Bit fields for DEVINFO CCLOAD10 */
+#define _DEVINFO_CCLOAD10_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD0 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD0 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD10 */
+#define DEVINFO_CCLOAD10_CCLOAD0_DEFAULT (_DEVINFO_CCLOAD10_CCLOAD0_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD1 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD1 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD10 */
+#define DEVINFO_CCLOAD10_CCLOAD1_DEFAULT (_DEVINFO_CCLOAD10_CCLOAD1_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD10 */
+
+/* Bit fields for DEVINFO CCLOAD32 */
+#define _DEVINFO_CCLOAD32_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD2 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD2 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD32 */
+#define DEVINFO_CCLOAD32_CCLOAD2_DEFAULT (_DEVINFO_CCLOAD32_CCLOAD2_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD3 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD3 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD32 */
+#define DEVINFO_CCLOAD32_CCLOAD3_DEFAULT (_DEVINFO_CCLOAD32_CCLOAD3_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD32 */
+
+/* Bit fields for DEVINFO CCLOAD54 */
+#define _DEVINFO_CCLOAD54_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD4 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD4 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD54 */
+#define DEVINFO_CCLOAD54_CCLOAD4_DEFAULT (_DEVINFO_CCLOAD54_CCLOAD4_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD5 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD5 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD54 */
+#define DEVINFO_CCLOAD54_CCLOAD5_DEFAULT (_DEVINFO_CCLOAD54_CCLOAD5_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD54 */
+
+/* Bit fields for DEVINFO CCLOAD76 */
+#define _DEVINFO_CCLOAD76_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD6 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD6 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD76 */
+#define DEVINFO_CCLOAD76_CCLOAD6_DEFAULT (_DEVINFO_CCLOAD76_CCLOAD6_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD7 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD7 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD76 */
+#define DEVINFO_CCLOAD76_CCLOAD7_DEFAULT (_DEVINFO_CCLOAD76_CCLOAD7_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD76 */
+
+/** @} End of group EFR32BG29_DEVINFO_BitFields */
+/** @} End of group EFR32BG29_DEVINFO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_DEVINFO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dma_descriptor.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dma_descriptor.h
new file mode 100644
index 000000000..2d825bb0b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dma_descriptor.h
@@ -0,0 +1,59 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 DMA descriptor bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_DMA_DESCRIPTOR_H
+#define EFR32BG29_DMA_DESCRIPTOR_H
+
+#if defined(__ICCARM__)
+#pragma system_include /* Treat file as system include file. */
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+#pragma clang system_header /* Treat file as system include file. */
+#endif
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup DMA_DESCRIPTOR DMA Descriptor
+ * @{
+ *****************************************************************************/
+/** DMA_DESCRIPTOR Register Declaration */
+typedef struct {
+ /* Note! Use of double __IOM (volatile) qualifier to ensure that both */
+ /* pointer and referenced memory are declared volatile. */
+ __IOM uint32_t CTRL; /**< DMA control register */
+ __IOM void * __IOM SRC; /**< DMA source address */
+ __IOM void * __IOM DST; /**< DMA destination address */
+ __IOM void * __IOM LINK; /**< DMA link address */
+} DMA_DESCRIPTOR_TypeDef; /**< @} */
+
+/** @} End of group Parts */
+
+#endif // EFR32BG29_DMA_DESCRIPTOR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dpll.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dpll.h
new file mode 100644
index 000000000..244dbc362
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_dpll.h
@@ -0,0 +1,232 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 DPLL register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_DPLL_H
+#define EFR32BG29_DPLL_H
+#define DPLL_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_DPLL DPLL
+ * @{
+ * @brief EFR32BG29 DPLL Register Declaration.
+ *****************************************************************************/
+
+/** DPLL Register Declaration. */
+typedef struct dpll_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CFG; /**< Config */
+ __IOM uint32_t CFG1; /**< Config1 */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CFG_SET; /**< Config */
+ __IOM uint32_t CFG1_SET; /**< Config1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CFG_CLR; /**< Config */
+ __IOM uint32_t CFG1_CLR; /**< Config1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CFG_TGL; /**< Config */
+ __IOM uint32_t CFG1_TGL; /**< Config1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ uint32_t RESERVED6[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock */
+} DPLL_TypeDef;
+/** @} End of group EFR32BG29_DPLL */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_DPLL
+ * @{
+ * @defgroup EFR32BG29_DPLL_BitFields DPLL Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DPLL IPVERSION */
+#define _DPLL_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for DPLL_IPVERSION */
+#define DPLL_IPVERSION_IPVERSION_DEFAULT (_DPLL_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IPVERSION */
+
+/* Bit fields for DPLL EN */
+#define _DPLL_EN_RESETVALUE 0x00000000UL /**< Default value for DPLL_EN */
+#define _DPLL_EN_MASK 0x00000003UL /**< Mask for DPLL_EN */
+#define DPLL_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _DPLL_EN_EN_SHIFT 0 /**< Shift value for DPLL_EN */
+#define _DPLL_EN_EN_MASK 0x1UL /**< Bit mask for DPLL_EN */
+#define _DPLL_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_EN_DEFAULT (_DPLL_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING (0x1UL << 1) /**< Disablement Busy Status */
+#define _DPLL_EN_DISABLING_SHIFT 1 /**< Shift value for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_MASK 0x2UL /**< Bit mask for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING_DEFAULT (_DPLL_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_EN */
+
+/* Bit fields for DPLL CFG */
+#define _DPLL_CFG_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG */
+#define _DPLL_CFG_MASK 0x00000047UL /**< Mask for DPLL_CFG */
+#define DPLL_CFG_MODE (0x1UL << 0) /**< Operating Mode Control */
+#define _DPLL_CFG_MODE_SHIFT 0 /**< Shift value for DPLL_MODE */
+#define _DPLL_CFG_MODE_MASK 0x1UL /**< Bit mask for DPLL_MODE */
+#define _DPLL_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define _DPLL_CFG_MODE_FLL 0x00000000UL /**< Mode FLL for DPLL_CFG */
+#define _DPLL_CFG_MODE_PLL 0x00000001UL /**< Mode PLL for DPLL_CFG */
+#define DPLL_CFG_MODE_DEFAULT (_DPLL_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_MODE_FLL (_DPLL_CFG_MODE_FLL << 0) /**< Shifted mode FLL for DPLL_CFG */
+#define DPLL_CFG_MODE_PLL (_DPLL_CFG_MODE_PLL << 0) /**< Shifted mode PLL for DPLL_CFG */
+#define DPLL_CFG_EDGESEL (0x1UL << 1) /**< Reference Edge Select */
+#define _DPLL_CFG_EDGESEL_SHIFT 1 /**< Shift value for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_MASK 0x2UL /**< Bit mask for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_EDGESEL_DEFAULT (_DPLL_CFG_EDGESEL_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER (0x1UL << 2) /**< Automatic Recovery Control */
+#define _DPLL_CFG_AUTORECOVER_SHIFT 2 /**< Shift value for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_MASK 0x4UL /**< Bit mask for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER_DEFAULT (_DPLL_CFG_AUTORECOVER_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN (0x1UL << 6) /**< Dither Enable Control */
+#define _DPLL_CFG_DITHEN_SHIFT 6 /**< Shift value for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_MASK 0x40UL /**< Bit mask for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN_DEFAULT (_DPLL_CFG_DITHEN_DEFAULT << 6) /**< Shifted mode DEFAULT for DPLL_CFG */
+
+/* Bit fields for DPLL CFG1 */
+#define _DPLL_CFG1_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG1 */
+#define _DPLL_CFG1_MASK 0x0FFF0FFFUL /**< Mask for DPLL_CFG1 */
+#define _DPLL_CFG1_M_SHIFT 0 /**< Shift value for DPLL_M */
+#define _DPLL_CFG1_M_MASK 0xFFFUL /**< Bit mask for DPLL_M */
+#define _DPLL_CFG1_M_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_M_DEFAULT (_DPLL_CFG1_M_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+#define _DPLL_CFG1_N_SHIFT 16 /**< Shift value for DPLL_N */
+#define _DPLL_CFG1_N_MASK 0xFFF0000UL /**< Bit mask for DPLL_N */
+#define _DPLL_CFG1_N_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_N_DEFAULT (_DPLL_CFG1_N_DEFAULT << 16) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+
+/* Bit fields for DPLL IF */
+#define _DPLL_IF_RESETVALUE 0x00000000UL /**< Default value for DPLL_IF */
+#define _DPLL_IF_MASK 0x00000007UL /**< Mask for DPLL_IF */
+#define DPLL_IF_LOCK (0x1UL << 0) /**< Lock Interrupt Flag */
+#define _DPLL_IF_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IF_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IF_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCK_DEFAULT (_DPLL_IF_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW (0x1UL << 1) /**< Lock Failure Low Interrupt Flag */
+#define _DPLL_IF_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW_DEFAULT (_DPLL_IF_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH (0x1UL << 2) /**< Lock Failure High Interrupt Flag */
+#define _DPLL_IF_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH_DEFAULT (_DPLL_IF_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IF */
+
+/* Bit fields for DPLL IEN */
+#define _DPLL_IEN_RESETVALUE 0x00000000UL /**< Default value for DPLL_IEN */
+#define _DPLL_IEN_MASK 0x00000007UL /**< Mask for DPLL_IEN */
+#define DPLL_IEN_LOCK (0x1UL << 0) /**< LOCK interrupt Enable */
+#define _DPLL_IEN_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCK_DEFAULT (_DPLL_IEN_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW (0x1UL << 1) /**< LOCKFAILLOW Interrupe Enable */
+#define _DPLL_IEN_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW_DEFAULT (_DPLL_IEN_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH (0x1UL << 2) /**< LOCKFAILHIGH Interrupt Enable */
+#define _DPLL_IEN_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH_DEFAULT (_DPLL_IEN_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IEN */
+
+/* Bit fields for DPLL STATUS */
+#define _DPLL_STATUS_RESETVALUE 0x00000000UL /**< Default value for DPLL_STATUS */
+#define _DPLL_STATUS_MASK 0x80000003UL /**< Mask for DPLL_STATUS */
+#define DPLL_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _DPLL_STATUS_RDY_SHIFT 0 /**< Shift value for DPLL_RDY */
+#define _DPLL_STATUS_RDY_MASK 0x1UL /**< Bit mask for DPLL_RDY */
+#define _DPLL_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_RDY_DEFAULT (_DPLL_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS (0x1UL << 1) /**< Enable Status */
+#define _DPLL_STATUS_ENS_SHIFT 1 /**< Shift value for DPLL_ENS */
+#define _DPLL_STATUS_ENS_MASK 0x2UL /**< Bit mask for DPLL_ENS */
+#define _DPLL_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS_DEFAULT (_DPLL_STATUS_ENS_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _DPLL_STATUS_LOCK_SHIFT 31 /**< Shift value for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_DEFAULT (_DPLL_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_UNLOCKED (_DPLL_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_LOCKED (_DPLL_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for DPLL_STATUS */
+
+/* Bit fields for DPLL LOCK */
+#define _DPLL_LOCK_RESETVALUE 0x00007102UL /**< Default value for DPLL_LOCK */
+#define _DPLL_LOCK_MASK 0x0000FFFFUL /**< Mask for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_DEFAULT 0x00007102UL /**< Mode DEFAULT for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_UNLOCK 0x00007102UL /**< Mode UNLOCK for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_DEFAULT (_DPLL_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_UNLOCK (_DPLL_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for DPLL_LOCK */
+
+/** @} End of group EFR32BG29_DPLL_BitFields */
+/** @} End of group EFR32BG29_DPLL */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_DPLL_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_emu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_emu.h
new file mode 100644
index 000000000..96d0c3812
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_emu.h
@@ -0,0 +1,862 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 EMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_EMU_H
+#define EFR32BG29_EMU_H
+#define EMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_EMU EMU
+ * @{
+ * @brief EFR32BG29 EMU Register Declaration.
+ *****************************************************************************/
+
+/** EMU Register Declaration. */
+typedef struct emu_typedef{
+ uint32_t RESERVED0[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE; /**< BOD3SENSE Control register */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED3[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t LOCK; /**< EMU Configuration lock register */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL; /**< EM4 Control */
+ __IOM uint32_t CMD; /**< EMU Command register */
+ __IOM uint32_t CTRL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS; /**< EMU Temperature thresholds */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< EMU Status register */
+ __IM uint32_t TEMP; /**< Temperature */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE; /**< Tamper Reset cause */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN; /**< Interrupt Enables Debug */
+ uint32_t RESERVED7[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL; /**< Boost Enable Control */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED10[2U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[27U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ uint32_t RESERVED15[926U]; /**< Reserved for future use */
+ uint32_t RESERVED16[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_SET; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED17[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_SET; /**< BOD3SENSE Control register */
+ uint32_t RESERVED18[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_SET; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_SET; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED19[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t LOCK_SET; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_SET; /**< EM4 Control */
+ __IOM uint32_t CMD_SET; /**< EMU Command register */
+ __IOM uint32_t CTRL_SET; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_SET; /**< EMU Temperature thresholds */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< EMU Status register */
+ __IM uint32_t TEMP_SET; /**< Temperature */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_SET; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_SET; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_SET; /**< Tamper Reset cause */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_SET; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_SET; /**< Interrupt Enables Debug */
+ uint32_t RESERVED23[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_SET; /**< Boost Enable Control */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_SET; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_SET; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED26[2U]; /**< Reserved for future use */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[27U]; /**< Reserved for future use */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ uint32_t RESERVED31[926U]; /**< Reserved for future use */
+ uint32_t RESERVED32[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_CLR; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_CLR; /**< BOD3SENSE Control register */
+ uint32_t RESERVED34[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_CLR; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_CLR; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED35[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t LOCK_CLR; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_CLR; /**< EM4 Control */
+ __IOM uint32_t CMD_CLR; /**< EMU Command register */
+ __IOM uint32_t CTRL_CLR; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_CLR; /**< EMU Temperature thresholds */
+ uint32_t RESERVED36[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< EMU Status register */
+ __IM uint32_t TEMP_CLR; /**< Temperature */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_CLR; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_CLR; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_CLR; /**< Tamper Reset cause */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_CLR; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_CLR; /**< Interrupt Enables Debug */
+ uint32_t RESERVED39[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_CLR; /**< Boost Enable Control */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ uint32_t RESERVED41[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_CLR; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_CLR; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ uint32_t RESERVED43[1U]; /**< Reserved for future use */
+ uint32_t RESERVED44[27U]; /**< Reserved for future use */
+ uint32_t RESERVED45[1U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+ uint32_t RESERVED47[926U]; /**< Reserved for future use */
+ uint32_t RESERVED48[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_TGL; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED49[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_TGL; /**< BOD3SENSE Control register */
+ uint32_t RESERVED50[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_TGL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_TGL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED51[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t LOCK_TGL; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_TGL; /**< EM4 Control */
+ __IOM uint32_t CMD_TGL; /**< EMU Command register */
+ __IOM uint32_t CTRL_TGL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_TGL; /**< EMU Temperature thresholds */
+ uint32_t RESERVED52[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< EMU Status register */
+ __IM uint32_t TEMP_TGL; /**< Temperature */
+ uint32_t RESERVED53[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_TGL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_TGL; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_TGL; /**< Tamper Reset cause */
+ uint32_t RESERVED54[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_TGL; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_TGL; /**< Interrupt Enables Debug */
+ uint32_t RESERVED55[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_TGL; /**< Boost Enable Control */
+ uint32_t RESERVED56[1U]; /**< Reserved for future use */
+ uint32_t RESERVED57[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_TGL; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_TGL; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED58[2U]; /**< Reserved for future use */
+ uint32_t RESERVED59[1U]; /**< Reserved for future use */
+ uint32_t RESERVED60[27U]; /**< Reserved for future use */
+ uint32_t RESERVED61[1U]; /**< Reserved for future use */
+ uint32_t RESERVED62[1U]; /**< Reserved for future use */
+} EMU_TypeDef;
+/** @} End of group EFR32BG29_EMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_EMU
+ * @{
+ * @defgroup EFR32BG29_EMU_BitFields EMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EMU DECBOD */
+#define _EMU_DECBOD_RESETVALUE 0x00000022UL /**< Default value for EMU_DECBOD */
+#define _EMU_DECBOD_MASK 0x00000033UL /**< Mask for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN (0x1UL << 0) /**< DECBOD enable */
+#define _EMU_DECBOD_DECBODEN_SHIFT 0 /**< Shift value for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_MASK 0x1UL /**< Bit mask for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN_DEFAULT (_EMU_DECBOD_DECBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK (0x1UL << 1) /**< DECBOD Mask */
+#define _EMU_DECBOD_DECBODMASK_SHIFT 1 /**< Shift value for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_MASK 0x2UL /**< Bit mask for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK_DEFAULT (_EMU_DECBOD_DECBODMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN (0x1UL << 4) /**< Over Voltage Monitor enable */
+#define _EMU_DECBOD_DECOVMBODEN_SHIFT 4 /**< Shift value for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_MASK 0x10UL /**< Bit mask for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN_DEFAULT (_EMU_DECBOD_DECOVMBODEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK (0x1UL << 5) /**< Over Voltage Monitor Mask */
+#define _EMU_DECBOD_DECOVMBODMASK_SHIFT 5 /**< Shift value for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_MASK 0x20UL /**< Bit mask for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK_DEFAULT (_EMU_DECBOD_DECOVMBODMASK_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_DECBOD */
+
+/* Bit fields for EMU BOD3SENSE */
+#define _EMU_BOD3SENSE_RESETVALUE 0x00000000UL /**< Default value for EMU_BOD3SENSE */
+#define _EMU_BOD3SENSE_MASK 0x00000077UL /**< Mask for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN (0x1UL << 0) /**< AVDD BOD enable */
+#define _EMU_BOD3SENSE_AVDDBODEN_SHIFT 0 /**< Shift value for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_MASK 0x1UL /**< Bit mask for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN_DEFAULT (_EMU_BOD3SENSE_AVDDBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN (0x1UL << 1) /**< VDDIO0 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_SHIFT 1 /**< Shift value for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_MASK 0x2UL /**< Bit mask for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN (0x1UL << 2) /**< VDDIO1 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_SHIFT 2 /**< Shift value for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_MASK 0x4UL /**< Bit mask for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+
+/* Bit fields for EMU VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_RESETVALUE 0x00000006UL /**< Default value for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_MASK 0x00000007UL /**< Mask for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN (0x1UL << 0) /**< VREGVDD comparator enable */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_SHIFT 0 /**< Shift value for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_MASK 0x1UL /**< Bit mask for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT (_EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_SHIFT 1 /**< Shift value for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_MASK 0x6UL /**< Bit mask for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT (_EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+
+/* Bit fields for EMU PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_MASK 0x0000FFFFUL /**< Mask for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_SHIFT 0 /**< Shift value for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_MASK 0xFFFFUL /**< Bit mask for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN 0x00000000UL /**< Mode RETAIN for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN 0x00000001UL /**< Mode PERIPHNORETAIN for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN 0x00000002UL /**< Mode RADIONORETAIN for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT (_EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN << 0) /**< Shifted mode RETAIN for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN << 0) /**< Shifted mode PERIPHNORETAIN for EMU_PD1PARETCTRL*/
+#define EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN << 0) /**< Shifted mode RADIONORETAIN for EMU_PD1PARETCTRL*/
+
+/* Bit fields for EMU IPVERSION */
+#define _EMU_IPVERSION_RESETVALUE 0x0000000AUL /**< Default value for EMU_IPVERSION */
+#define _EMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_DEFAULT 0x0000000AUL /**< Mode DEFAULT for EMU_IPVERSION */
+#define EMU_IPVERSION_IPVERSION_DEFAULT (_EMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_IPVERSION */
+
+/* Bit fields for EMU LOCK */
+#define _EMU_LOCK_RESETVALUE 0x0000ADE8UL /**< Default value for EMU_LOCK */
+#define _EMU_LOCK_MASK 0x0000FFFFUL /**< Mask for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_DEFAULT 0x0000ADE8UL /**< Mode DEFAULT for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_UNLOCK 0x0000ADE8UL /**< Mode UNLOCK for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_DEFAULT (_EMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_UNLOCK (_EMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for EMU_LOCK */
+
+/* Bit fields for EMU IF */
+#define _EMU_IF_RESETVALUE 0x00000000UL /**< Default value for EMU_IF */
+#define _EMU_IF_MASK 0xEB370000UL /**< Mask for EMU_IF */
+#define EMU_IF_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt flag */
+#define _EMU_IF_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_AVDDBOD_DEFAULT (_EMU_IF_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt flag */
+#define _EMU_IF_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD_DEFAULT (_EMU_IF_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTPOSEDGE (0x1UL << 20) /**< BOOST_EN Rising Edge Interrupt flag */
+#define _EMU_IF_BOOSTPOSEDGE_SHIFT 20 /**< Shift value for EMU_BOOSTPOSEDGE */
+#define _EMU_IF_BOOSTPOSEDGE_MASK 0x100000UL /**< Bit mask for EMU_BOOSTPOSEDGE */
+#define _EMU_IF_BOOSTPOSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTPOSEDGE_DEFAULT (_EMU_IF_BOOSTPOSEDGE_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTNEGEDGE (0x1UL << 21) /**< BOOST_EN Falling Edge Interrupt flag */
+#define _EMU_IF_BOOSTNEGEDGE_SHIFT 21 /**< Shift value for EMU_BOOSTNEGEDGE */
+#define _EMU_IF_BOOSTNEGEDGE_MASK 0x200000UL /**< Bit mask for EMU_BOOSTNEGEDGE */
+#define _EMU_IF_BOOSTNEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTNEGEDGE_DEFAULT (_EMU_IF_BOOSTNEGEDGE_DEFAULT << 21) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_IF_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP_DEFAULT (_EMU_IF_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt flag */
+#define _EMU_IF_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE_DEFAULT (_EMU_IF_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG (0x1UL << 27) /**< Temperature Average Interrupt flag */
+#define _EMU_IF_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG_DEFAULT (_EMU_IF_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_IF_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IF_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IF_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP_DEFAULT (_EMU_IF_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_IF_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW_DEFAULT (_EMU_IF_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_IF_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH_DEFAULT (_EMU_IF_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IF */
+
+/* Bit fields for EMU IEN */
+#define _EMU_IEN_RESETVALUE 0x00000000UL /**< Default value for EMU_IEN */
+#define _EMU_IEN_MASK 0xEB370000UL /**< Mask for EMU_IEN */
+#define EMU_IEN_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt enable */
+#define _EMU_IEN_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_AVDDBOD_DEFAULT (_EMU_IEN_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt enable */
+#define _EMU_IEN_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD_DEFAULT (_EMU_IEN_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTPOSEDGE (0x1UL << 20) /**< BOOST_EN Rising edge Interrupt enable */
+#define _EMU_IEN_BOOSTPOSEDGE_SHIFT 20 /**< Shift value for EMU_BOOSTPOSEDGE */
+#define _EMU_IEN_BOOSTPOSEDGE_MASK 0x100000UL /**< Bit mask for EMU_BOOSTPOSEDGE */
+#define _EMU_IEN_BOOSTPOSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTPOSEDGE_DEFAULT (_EMU_IEN_BOOSTPOSEDGE_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTNEGEDGE (0x1UL << 21) /**< BOOST_EN Falling edge Interrupt enable */
+#define _EMU_IEN_BOOSTNEGEDGE_SHIFT 21 /**< Shift value for EMU_BOOSTNEGEDGE */
+#define _EMU_IEN_BOOSTNEGEDGE_MASK 0x200000UL /**< Bit mask for EMU_BOOSTNEGEDGE */
+#define _EMU_IEN_BOOSTNEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTNEGEDGE_DEFAULT (_EMU_IEN_BOOSTNEGEDGE_DEFAULT << 21) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_IEN_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP_DEFAULT (_EMU_IEN_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt enable */
+#define _EMU_IEN_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE_DEFAULT (_EMU_IEN_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG (0x1UL << 27) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG_DEFAULT (_EMU_IEN_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IEN_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IEN_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP_DEFAULT (_EMU_IEN_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_IEN_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW_DEFAULT (_EMU_IEN_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_IEN_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH_DEFAULT (_EMU_IEN_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IEN */
+
+/* Bit fields for EMU EM4CTRL */
+#define _EMU_EM4CTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_MASK 0x00000133UL /**< Mask for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4ENTRY_SHIFT 0 /**< Shift value for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_MASK 0x3UL /**< Bit mask for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4ENTRY_DEFAULT (_EMU_EM4CTRL_EM4ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SHIFT 4 /**< Shift value for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_MASK 0x30UL /**< Bit mask for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_DISABLE 0x00000000UL /**< Mode DISABLE for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_EM4EXIT 0x00000001UL /**< Mode EM4EXIT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH 0x00000002UL /**< Mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DEFAULT (_EMU_EM4CTRL_EM4IORETMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DISABLE (_EMU_EM4CTRL_EM4IORETMODE_DISABLE << 4) /**< Shifted mode DISABLE for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_EM4EXIT (_EMU_EM4CTRL_EM4IORETMODE_EM4EXIT << 4) /**< Shifted mode EM4EXIT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH (_EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH << 4) /**< Shifted mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU (0x1UL << 8) /**< Set BOD3SENSE as EM4 wakeup */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_SHIFT 8 /**< Shift value for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_MASK 0x100UL /**< Bit mask for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT (_EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+
+/* Bit fields for EMU CMD */
+#define _EMU_CMD_RESETVALUE 0x00000000UL /**< Default value for EMU_CMD */
+#define _EMU_CMD_MASK 0x00060E12UL /**< Mask for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH (0x1UL << 1) /**< EM4 unlatch */
+#define _EMU_CMD_EM4UNLATCH_SHIFT 1 /**< Shift value for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_MASK 0x2UL /**< Bit mask for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH_DEFAULT (_EMU_CMD_EM4UNLATCH_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ (0x1UL << 4) /**< Temperature Average Request */
+#define _EMU_CMD_TEMPAVGREQ_SHIFT 4 /**< Shift value for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_MASK 0x10UL /**< Bit mask for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ_DEFAULT (_EMU_CMD_TEMPAVGREQ_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1 (0x1UL << 10) /**< Scale voltage to Vscale1 */
+#define _EMU_CMD_EM01VSCALE1_SHIFT 10 /**< Shift value for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_MASK 0x400UL /**< Bit mask for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1_DEFAULT (_EMU_CMD_EM01VSCALE1_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2 (0x1UL << 11) /**< Scale voltage to Vscale2 */
+#define _EMU_CMD_EM01VSCALE2_SHIFT 11 /**< Shift value for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_MASK 0x800UL /**< Bit mask for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2_DEFAULT (_EMU_CMD_EM01VSCALE2_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR (0x1UL << 17) /**< Reset Cause Clear */
+#define _EMU_CMD_RSTCAUSECLR_SHIFT 17 /**< Shift value for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_MASK 0x20000UL /**< Bit mask for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR_DEFAULT (_EMU_CMD_RSTCAUSECLR_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR (0x1UL << 18) /**< Tamper Reset Cause Clear */
+#define _EMU_CMD_TAMPERRCCLR_SHIFT 18 /**< Shift value for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_MASK 0x40000UL /**< Bit mask for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR_DEFAULT (_EMU_CMD_TAMPERRCCLR_DEFAULT << 18) /**< Shifted mode DEFAULT for EMU_CMD */
+
+/* Bit fields for EMU CTRL */
+#define _EMU_CTRL_RESETVALUE 0x00007200UL /**< Default value for EMU_CTRL */
+#define _EMU_CTRL_MASK 0xE0017B09UL /**< Mask for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN (0x1UL << 0) /**< Enable debugging in EM2 */
+#define _EMU_CTRL_EM2DBGEN_SHIFT 0 /**< Shift value for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_MASK 0x1UL /**< Bit mask for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN_DEFAULT (_EMU_CTRL_EM2DBGEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM (0x1UL << 3) /**< Averaged Temperature samples num */
+#define _EMU_CTRL_TEMPAVGNUM_SHIFT 3 /**< Shift value for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N16 0x00000000UL /**< Mode N16 for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N64 0x00000001UL /**< Mode N64 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_DEFAULT (_EMU_CTRL_TEMPAVGNUM_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N16 (_EMU_CTRL_TEMPAVGNUM_N16 << 3) /**< Shifted mode N16 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N64 (_EMU_CTRL_TEMPAVGNUM_N64 << 3) /**< Shifted mode N64 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_SHIFT 8 /**< Shift value for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_MASK 0x300UL /**< Bit mask for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_DEFAULT (_EMU_CTRL_EM23VSCALE_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE0 (_EMU_CTRL_EM23VSCALE_VSCALE0 << 8) /**< Shifted mode VSCALE0 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE1 (_EMU_CTRL_EM23VSCALE_VSCALE1 << 8) /**< Shifted mode VSCALE1 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE2 (_EMU_CTRL_EM23VSCALE_VSCALE2 << 8) /**< Shifted mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_HDREGEM2EXITCLIM (0x1UL << 11) /**< HDREG EM2 Exit current limit */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_SHIFT 11 /**< Shift value for EMU_HDREGEM2EXITCLIM */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_MASK 0x800UL /**< Bit mask for EMU_HDREGEM2EXITCLIM */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT (_EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_SHIFT 12 /**< Shift value for EMU_HDREGSTOPGEAR */
+#define _EMU_CTRL_HDREGSTOPGEAR_MASK 0x7000UL /**< Bit mask for EMU_HDREGSTOPGEAR */
+#define _EMU_CTRL_HDREGSTOPGEAR_DEFAULT 0x00000007UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA 0x00000000UL /**< Mode ILMT_4MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA 0x00000001UL /**< Mode ILMT_8MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA 0x00000002UL /**< Mode ILMT_12MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA 0x00000003UL /**< Mode ILMT_16MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA 0x00000004UL /**< Mode ILMT_24MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA 0x00000005UL /**< Mode ILMT_48MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA 0x00000006UL /**< Mode ILMT_64MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX 0x00000007UL /**< Mode ILMT_MAX for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_DEFAULT (_EMU_CTRL_HDREGSTOPGEAR_DEFAULT << 12) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA << 12) /**< Shifted mode ILMT_4MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA << 12) /**< Shifted mode ILMT_8MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA << 12) /**< Shifted mode ILMT_12MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA << 12) /**< Shifted mode ILMT_16MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA << 12) /**< Shifted mode ILMT_24MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA << 12) /**< Shifted mode ILMT_48MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA << 12) /**< Shifted mode ILMT_64MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX (_EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX << 12) /**< Shifted mode ILMT_MAX for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND (0x1UL << 16) /**< Enable flash on demand wakeup */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_SHIFT 16 /**< Shift value for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_MASK 0x10000UL /**< Bit mask for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT (_EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN (0x1UL << 29) /**< EFP Direct Mode Enable */
+#define _EMU_CTRL_EFPDIRECTMODEEN_SHIFT 29 /**< Shift value for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_MASK 0x20000000UL /**< Bit mask for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN_DEFAULT (_EMU_CTRL_EFPDIRECTMODEEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE (0x1UL << 30) /**< EFP drives DECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_SHIFT 30 /**< Shift value for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_MASK 0x40000000UL /**< Bit mask for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE_DEFAULT (_EMU_CTRL_EFPDRVDECOUPLE_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD (0x1UL << 31) /**< EFP drives DVDD */
+#define _EMU_CTRL_EFPDRVDVDD_SHIFT 31 /**< Shift value for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_MASK 0x80000000UL /**< Bit mask for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD_DEFAULT (_EMU_CTRL_EFPDRVDVDD_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_CTRL */
+
+/* Bit fields for EMU TEMPLIMITS */
+#define _EMU_TEMPLIMITS_RESETVALUE 0x01FF0000UL /**< Default value for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_MASK 0x01FF01FFUL /**< Mask for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPLOW_SHIFT 0 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_MASK 0x1FFUL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPLOW_DEFAULT (_EMU_TEMPLIMITS_TEMPLOW_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPHIGH_SHIFT 16 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_MASK 0x1FF0000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_DEFAULT 0x000001FFUL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPHIGH_DEFAULT (_EMU_TEMPLIMITS_TEMPHIGH_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+
+/* Bit fields for EMU STATUS */
+#define _EMU_STATUS_RESETVALUE 0x00000080UL /**< Default value for EMU_STATUS */
+#define _EMU_STATUS_MASK 0xFFE154FFUL /**< Mask for EMU_STATUS */
+#define EMU_STATUS_LOCK (0x1UL << 0) /**< Lock status */
+#define _EMU_STATUS_LOCK_SHIFT 0 /**< Shift value for EMU_LOCK */
+#define _EMU_STATUS_LOCK_MASK 0x1UL /**< Bit mask for EMU_LOCK */
+#define _EMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for EMU_STATUS */
+#define _EMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_DEFAULT (_EMU_STATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_LOCK_UNLOCKED (_EMU_STATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_LOCKED (_EMU_STATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE (0x1UL << 1) /**< First Temp done */
+#define _EMU_STATUS_FIRSTTEMPDONE_SHIFT 1 /**< Shift value for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_MASK 0x2UL /**< Bit mask for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE_DEFAULT (_EMU_STATUS_FIRSTTEMPDONE_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE (0x1UL << 2) /**< Temp active */
+#define _EMU_STATUS_TEMPACTIVE_SHIFT 2 /**< Shift value for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_MASK 0x4UL /**< Bit mask for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE_DEFAULT (_EMU_STATUS_TEMPACTIVE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE (0x1UL << 3) /**< Temp Average active */
+#define _EMU_STATUS_TEMPAVGACTIVE_SHIFT 3 /**< Shift value for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE_DEFAULT (_EMU_STATUS_TEMPAVGACTIVE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY (0x1UL << 4) /**< Vscale busy */
+#define _EMU_STATUS_VSCALEBUSY_SHIFT 4 /**< Shift value for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_MASK 0x10UL /**< Bit mask for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY_DEFAULT (_EMU_STATUS_VSCALEBUSY_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED (0x1UL << 5) /**< Vscale failed */
+#define _EMU_STATUS_VSCALEFAILED_SHIFT 5 /**< Shift value for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_MASK 0x20UL /**< Bit mask for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED_DEFAULT (_EMU_STATUS_VSCALEFAILED_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_SHIFT 6 /**< Shift value for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_MASK 0xC0UL /**< Bit mask for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_DEFAULT (_EMU_STATUS_VSCALE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE0 (_EMU_STATUS_VSCALE_VSCALE0 << 6) /**< Shifted mode VSCALE0 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE1 (_EMU_STATUS_VSCALE_VSCALE1 << 6) /**< Shifted mode VSCALE1 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE2 (_EMU_STATUS_VSCALE_VSCALE2 << 6) /**< Shifted mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE (0x1UL << 10) /**< RAC active */
+#define _EMU_STATUS_RACACTIVE_SHIFT 10 /**< Shift value for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_MASK 0x400UL /**< Bit mask for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE_DEFAULT (_EMU_STATUS_RACACTIVE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET (0x1UL << 12) /**< EM4 IO retention status */
+#define _EMU_STATUS_EM4IORET_SHIFT 12 /**< Shift value for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_MASK 0x1000UL /**< Bit mask for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET_DEFAULT (_EMU_STATUS_EM4IORET_DEFAULT << 12) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED (0x1UL << 14) /**< EM2 entered */
+#define _EMU_STATUS_EM2ENTERED_SHIFT 14 /**< Shift value for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_MASK 0x4000UL /**< Bit mask for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED_DEFAULT (_EMU_STATUS_EM2ENTERED_DEFAULT << 14) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_BOOSTENPIN (0x1UL << 16) /**< BOOST_EN pin status */
+#define _EMU_STATUS_BOOSTENPIN_SHIFT 16 /**< Shift value for EMU_BOOSTENPIN */
+#define _EMU_STATUS_BOOSTENPIN_MASK 0x10000UL /**< Bit mask for EMU_BOOSTENPIN */
+#define _EMU_STATUS_BOOSTENPIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_BOOSTENPIN_DEFAULT (_EMU_STATUS_BOOSTENPIN_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_STATUS */
+
+/* Bit fields for EMU TEMP */
+#define _EMU_TEMP_RESETVALUE 0x00000000UL /**< Default value for EMU_TEMP */
+#define _EMU_TEMP_MASK 0x07FF07FFUL /**< Mask for EMU_TEMP */
+#define _EMU_TEMP_TEMPLSB_SHIFT 0 /**< Shift value for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_MASK 0x3UL /**< Bit mask for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPLSB_DEFAULT (_EMU_TEMP_TEMPLSB_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMP_SHIFT 2 /**< Shift value for EMU_TEMP */
+#define _EMU_TEMP_TEMP_MASK 0x7FCUL /**< Bit mask for EMU_TEMP */
+#define _EMU_TEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMP_DEFAULT (_EMU_TEMP_TEMP_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMPAVG_SHIFT 16 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_MASK 0x7FF0000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPAVG_DEFAULT (_EMU_TEMP_TEMPAVG_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMP */
+
+/* Bit fields for EMU RSTCTRL */
+#define _EMU_RSTCTRL_RESETVALUE 0x00070407UL /**< Default value for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_MASK 0xC007C5CFUL /**< Mask for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE (0x1UL << 0) /**< Enable WDOG0 reset */
+#define _EMU_RSTCTRL_WDOG0RMODE_SHIFT 0 /**< Shift value for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_MASK 0x1UL /**< Bit mask for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DEFAULT (_EMU_RSTCTRL_WDOG0RMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DISABLED (_EMU_RSTCTRL_WDOG0RMODE_DISABLED << 0) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_ENABLED (_EMU_RSTCTRL_WDOG0RMODE_ENABLED << 0) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE (0x1UL << 2) /**< Enable M33 System reset */
+#define _EMU_RSTCTRL_SYSRMODE_SHIFT 2 /**< Shift value for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_MASK 0x4UL /**< Bit mask for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DEFAULT (_EMU_RSTCTRL_SYSRMODE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DISABLED (_EMU_RSTCTRL_SYSRMODE_DISABLED << 2) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_ENABLED (_EMU_RSTCTRL_SYSRMODE_ENABLED << 2) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE (0x1UL << 3) /**< Enable M33 Lockup reset */
+#define _EMU_RSTCTRL_LOCKUPRMODE_SHIFT 3 /**< Shift value for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_MASK 0x8UL /**< Bit mask for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DEFAULT (_EMU_RSTCTRL_LOCKUPRMODE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DISABLED (_EMU_RSTCTRL_LOCKUPRMODE_DISABLED << 3) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_ENABLED (_EMU_RSTCTRL_LOCKUPRMODE_ENABLED << 3) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE (0x1UL << 6) /**< Enable AVDD BOD reset */
+#define _EMU_RSTCTRL_AVDDBODRMODE_SHIFT 6 /**< Shift value for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_MASK 0x40UL /**< Bit mask for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DEFAULT (_EMU_RSTCTRL_AVDDBODRMODE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DISABLED (_EMU_RSTCTRL_AVDDBODRMODE_DISABLED << 6) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_ENABLED (_EMU_RSTCTRL_AVDDBODRMODE_ENABLED << 6) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE (0x1UL << 7) /**< Enable VDDIO0 BOD reset */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_SHIFT 7 /**< Shift value for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_MASK 0x80UL /**< Bit mask for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT (_EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED << 7) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED << 7) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE (0x1UL << 10) /**< Enable DECBOD reset */
+#define _EMU_RSTCTRL_DECBODRMODE_SHIFT 10 /**< Shift value for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_MASK 0x400UL /**< Bit mask for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DEFAULT (_EMU_RSTCTRL_DECBODRMODE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DISABLED (_EMU_RSTCTRL_DECBODRMODE_DISABLED << 10) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_ENABLED (_EMU_RSTCTRL_DECBODRMODE_ENABLED << 10) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE (0x1UL << 16) /**< DCI System reset */
+#define _EMU_RSTCTRL_DCIRMODE_SHIFT 16 /**< Shift value for EMU_DCIRMODE */
+#define _EMU_RSTCTRL_DCIRMODE_MASK 0x10000UL /**< Bit mask for EMU_DCIRMODE */
+#define _EMU_RSTCTRL_DCIRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DCIRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DCIRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_DEFAULT (_EMU_RSTCTRL_DCIRMODE_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_DISABLED (_EMU_RSTCTRL_DCIRMODE_DISABLED << 16) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_ENABLED (_EMU_RSTCTRL_DCIRMODE_ENABLED << 16) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+
+/* Bit fields for EMU RSTCAUSE */
+#define _EMU_RSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_RSTCAUSE */
+#define _EMU_RSTCAUSE_MASK 0x8017FFFFUL /**< Mask for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR (0x1UL << 0) /**< Power On Reset */
+#define _EMU_RSTCAUSE_POR_SHIFT 0 /**< Shift value for EMU_POR */
+#define _EMU_RSTCAUSE_POR_MASK 0x1UL /**< Bit mask for EMU_POR */
+#define _EMU_RSTCAUSE_POR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR_DEFAULT (_EMU_RSTCAUSE_POR_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN (0x1UL << 1) /**< Pin Reset */
+#define _EMU_RSTCAUSE_PIN_SHIFT 1 /**< Shift value for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_MASK 0x2UL /**< Bit mask for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN_DEFAULT (_EMU_RSTCAUSE_PIN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4 (0x1UL << 2) /**< EM4 Wakeup Reset */
+#define _EMU_RSTCAUSE_EM4_SHIFT 2 /**< Shift value for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_MASK 0x4UL /**< Bit mask for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4_DEFAULT (_EMU_RSTCAUSE_EM4_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0 (0x1UL << 3) /**< Watchdog 0 Reset */
+#define _EMU_RSTCAUSE_WDOG0_SHIFT 3 /**< Shift value for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_MASK 0x8UL /**< Bit mask for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0_DEFAULT (_EMU_RSTCAUSE_WDOG0_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP (0x1UL << 5) /**< M33 Core Lockup Reset */
+#define _EMU_RSTCAUSE_LOCKUP_SHIFT 5 /**< Shift value for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_MASK 0x20UL /**< Bit mask for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP_DEFAULT (_EMU_RSTCAUSE_LOCKUP_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ (0x1UL << 6) /**< M33 Core Sys Reset */
+#define _EMU_RSTCAUSE_SYSREQ_SHIFT 6 /**< Shift value for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_MASK 0x40UL /**< Bit mask for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ_DEFAULT (_EMU_RSTCAUSE_SYSREQ_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD (0x1UL << 7) /**< HVBOD Reset */
+#define _EMU_RSTCAUSE_DVDDBOD_SHIFT 7 /**< Shift value for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_MASK 0x80UL /**< Bit mask for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD_DEFAULT (_EMU_RSTCAUSE_DVDDBOD_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD (0x1UL << 8) /**< LEBOD Reset */
+#define _EMU_RSTCAUSE_DVDDLEBOD_SHIFT 8 /**< Shift value for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_MASK 0x100UL /**< Bit mask for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD_DEFAULT (_EMU_RSTCAUSE_DVDDLEBOD_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD (0x1UL << 9) /**< LVBOD Reset */
+#define _EMU_RSTCAUSE_DECBOD_SHIFT 9 /**< Shift value for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_MASK 0x200UL /**< Bit mask for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD_DEFAULT (_EMU_RSTCAUSE_DECBOD_DEFAULT << 9) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD (0x1UL << 10) /**< LEBOD1 Reset */
+#define _EMU_RSTCAUSE_AVDDBOD_SHIFT 10 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_MASK 0x400UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD_DEFAULT (_EMU_RSTCAUSE_AVDDBOD_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD (0x1UL << 11) /**< LEBOD2 Reset */
+#define _EMU_RSTCAUSE_IOVDD0BOD_SHIFT 11 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_MASK 0x800UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD_DEFAULT (_EMU_RSTCAUSE_IOVDD0BOD_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER (0x1UL << 13) /**< SE Tamper event Reset */
+#define _EMU_RSTCAUSE_SETAMPER_SHIFT 13 /**< Shift value for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_MASK 0x2000UL /**< Bit mask for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER_DEFAULT (_EMU_RSTCAUSE_SETAMPER_DEFAULT << 13) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DCI (0x1UL << 16) /**< DCI reset */
+#define _EMU_RSTCAUSE_DCI_SHIFT 16 /**< Shift value for EMU_DCI */
+#define _EMU_RSTCAUSE_DCI_MASK 0x10000UL /**< Bit mask for EMU_DCI */
+#define _EMU_RSTCAUSE_DCI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DCI_DEFAULT (_EMU_RSTCAUSE_DCI_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_BOOSTON (0x1UL << 20) /**< BOOST_EN pin reset */
+#define _EMU_RSTCAUSE_BOOSTON_SHIFT 20 /**< Shift value for EMU_BOOSTON */
+#define _EMU_RSTCAUSE_BOOSTON_MASK 0x100000UL /**< Bit mask for EMU_BOOSTON */
+#define _EMU_RSTCAUSE_BOOSTON_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_BOOSTON_DEFAULT (_EMU_RSTCAUSE_BOOSTON_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN (0x1UL << 31) /**< DCDC VREGIN comparator */
+#define _EMU_RSTCAUSE_VREGIN_SHIFT 31 /**< Shift value for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_MASK 0x80000000UL /**< Bit mask for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN_DEFAULT (_EMU_RSTCAUSE_VREGIN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+
+/* Bit fields for EMU TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_MASK 0xFFFFFFFFUL /**< Mask for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_SHIFT 0 /**< Shift value for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TAMPERRSTCAUSE */
+#define EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT (_EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TAMPERRSTCAUSE */
+
+/* Bit fields for EMU DGIF */
+#define _EMU_DGIF_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIF */
+#define _EMU_DGIF_MASK 0xE1000000UL /**< Mask for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_DGIF_EM23WAKEUPDGIF_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF_DEFAULT (_EMU_DGIF_EM23WAKEUPDGIF_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_DGIF_TEMPDGIF_SHIFT 29 /**< Shift value for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF_DEFAULT (_EMU_DGIF_TEMPDGIF_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_DGIF_TEMPLOWDGIF_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF_DEFAULT (_EMU_DGIF_TEMPLOWDGIF_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_DGIF_TEMPHIGHDGIF_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF_DEFAULT (_EMU_DGIF_TEMPHIGHDGIF_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIF */
+
+/* Bit fields for EMU DGIEN */
+#define _EMU_DGIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIEN */
+#define _EMU_DGIEN_MASK 0xE1000000UL /**< Mask for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT (_EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_DGIEN_TEMPDGIEN_SHIFT 29 /**< Shift value for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN_DEFAULT (_EMU_DGIEN_TEMPDGIEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_DGIEN_TEMPLOWDGIEN_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN_DEFAULT (_EMU_DGIEN_TEMPLOWDGIEN_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT (_EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIEN */
+
+/* Bit fields for EMU BOOSTCTRL */
+#define _EMU_BOOSTCTRL_RESETVALUE 0x00000001UL /**< Default value for EMU_BOOSTCTRL */
+#define _EMU_BOOSTCTRL_MASK 0x00000001UL /**< Mask for EMU_BOOSTCTRL */
+#define EMU_BOOSTCTRL_BOOSTENCTRL (0x1UL << 0) /**< BOOST_EN Control */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_SHIFT 0 /**< Shift value for EMU_BOOSTENCTRL */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_MASK 0x1UL /**< Bit mask for EMU_BOOSTENCTRL */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_BOOSTCTRL */
+#define EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT (_EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_BOOSTCTRL */
+
+/* Bit fields for EMU EFPIF */
+#define _EMU_EFPIF_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIF */
+#define _EMU_EFPIF_MASK 0x00000001UL /**< Mask for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF (0x1UL << 0) /**< EFP Interrupt Flag */
+#define _EMU_EFPIF_EFPIF_SHIFT 0 /**< Shift value for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_MASK 0x1UL /**< Bit mask for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF_DEFAULT (_EMU_EFPIF_EFPIF_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIF */
+
+/* Bit fields for EMU EFPIEN */
+#define _EMU_EFPIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIEN */
+#define _EMU_EFPIEN_MASK 0x00000001UL /**< Mask for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN (0x1UL << 0) /**< EFP Interrupt enable */
+#define _EMU_EFPIEN_EFPIEN_SHIFT 0 /**< Shift value for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_MASK 0x1UL /**< Bit mask for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN_DEFAULT (_EMU_EFPIEN_EFPIEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIEN */
+
+/** @} End of group EFR32BG29_EMU_BitFields */
+/** @} End of group EFR32BG29_EMU */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_EMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_etampdet.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_etampdet.h
new file mode 100644
index 000000000..f456676a0
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_etampdet.h
@@ -0,0 +1,646 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 ETAMPDET register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_ETAMPDET_H
+#define EFR32BG29_ETAMPDET_H
+#define ETAMPDET_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_ETAMPDET ETAMPDET
+ * @{
+ * @brief EFR32BG29 ETAMPDET Register Declaration.
+ *****************************************************************************/
+
+/** ETAMPDET Register Declaration. */
+typedef struct etampdet_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE; /**< Filter moving window size Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED2[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_SET; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_SET; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_SET; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_SET; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_SET; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_CLR; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_CLR; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_CLR; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_CLR; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_CLR; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED8[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_TGL; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_TGL; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_TGL; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_TGL; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_TGL; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} ETAMPDET_TypeDef;
+/** @} End of group EFR32BG29_ETAMPDET */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_ETAMPDET
+ * @{
+ * @defgroup EFR32BG29_ETAMPDET_BitFields ETAMPDET Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ETAMPDET IPVERSION */
+#define _ETAMPDET_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for ETAMPDET_IPVERSION */
+#define ETAMPDET_IPVERSION_IPVERSION_DEFAULT (_ETAMPDET_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IPVERSION */
+
+/* Bit fields for ETAMPDET EN */
+#define _ETAMPDET_EN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_EN */
+#define _ETAMPDET_EN_MASK 0x00000001UL /**< Mask for ETAMPDET_EN */
+#define ETAMPDET_EN_EN (0x1UL << 0) /**< ETAMPDET Enable */
+#define _ETAMPDET_EN_EN_SHIFT 0 /**< Shift value for ETAMPDET_EN */
+#define _ETAMPDET_EN_EN_MASK 0x1UL /**< Bit mask for ETAMPDET_EN */
+#define _ETAMPDET_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EN */
+#define ETAMPDET_EN_EN_DEFAULT (_ETAMPDET_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_EN */
+
+/* Bit fields for ETAMPDET CFG */
+#define _ETAMPDET_CFG_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_MASK 0x0000003FUL /**< Mask for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0 (0x1UL << 0) /**< enable delay for comparison */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLCMPDLYEN0 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLCMPDLYEN0 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_X0 0x00000000UL /**< Mode X0 for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_X1 0x00000001UL /**< Mode X1 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT (_ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_X0 (_ETAMPDET_CFG_CHNLCMPDLYEN0_X0 << 0) /**< Shifted mode X0 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_X1 (_ETAMPDET_CFG_CHNLCMPDLYEN0_X1 << 0) /**< Shifted mode X1 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0 (0x1UL << 1) /**< enable detect filtering */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLTAMPDETFILTEN0 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLTAMPDETFILTEN0 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE << 1) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE << 1) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0 (0x1UL << 2) /**< enable driving pad */
+#define _ETAMPDET_CFG_CHNLPADEN0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLPADEN0 */
+#define _ETAMPDET_CFG_CHNLPADEN0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLPADEN0 */
+#define _ETAMPDET_CFG_CHNLPADEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN0_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN0_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_DEFAULT (_ETAMPDET_CFG_CHNLPADEN0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_DISABLE (_ETAMPDET_CFG_CHNLPADEN0_DISABLE << 2) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_ENABLE (_ETAMPDET_CFG_CHNLPADEN0_ENABLE << 2) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1 (0x1UL << 3) /**< enable delay for comparison */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLCMPDLYEN1 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLCMPDLYEN1 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT (_ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE (_ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE << 3) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE (_ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE << 3) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1 (0x1UL << 4) /**< enable detect filtering */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLTAMPDETFILTEN1 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLTAMPDETFILTEN1 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE << 4) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE << 4) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1 (0x1UL << 5) /**< enable driving pad */
+#define _ETAMPDET_CFG_CHNLPADEN1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLPADEN1 */
+#define _ETAMPDET_CFG_CHNLPADEN1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLPADEN1 */
+#define _ETAMPDET_CFG_CHNLPADEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_DEFAULT (_ETAMPDET_CFG_CHNLPADEN1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_DISABLE (_ETAMPDET_CFG_CHNLPADEN1_DISABLE << 5) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_ENABLE (_ETAMPDET_CFG_CHNLPADEN1_ENABLE << 5) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+
+/* Bit fields for ETAMPDET CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_MASK 0x0000003FUL /**< Mask for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLCNTMISMATCHMAX0*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_MASK 0x7UL /**< Bit mask for ETAMPDET_CHNLCNTMISMATCHMAX0 */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 0x00000000UL /**< Mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 0x00000001UL /**< Mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 0x00000002UL /**< Mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 0x00000003UL /**< Mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 0x00000004UL /**< Mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 0x00000005UL /**< Mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 0x00000006UL /**< Mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 0x00000007UL /**< Mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 << 0) /**< Shifted mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 << 0) /**< Shifted mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 << 0) /**< Shifted mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 << 0) /**< Shifted mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 << 0) /**< Shifted mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 << 0) /**< Shifted mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 << 0) /**< Shifted mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 << 0) /**< Shifted mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLCNTMISMATCHMAX1*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_MASK 0x38UL /**< Bit mask for ETAMPDET_CHNLCNTMISMATCHMAX1 */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 0x00000000UL /**< Mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 0x00000001UL /**< Mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 0x00000002UL /**< Mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 0x00000003UL /**< Mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 0x00000004UL /**< Mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 0x00000005UL /**< Mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 0x00000006UL /**< Mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 0x00000007UL /**< Mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 << 3) /**< Shifted mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 << 3) /**< Shifted mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 << 3) /**< Shifted mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 << 3) /**< Shifted mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 << 3) /**< Shifted mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 << 3) /**< Shifted mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 << 3) /**< Shifted mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 << 3) /**< Shifted mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+
+/* Bit fields for ETAMPDET CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_MASK 0x000000FFUL /**< Mask for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLFILTWINSIZE0 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_MASK 0xFUL /**< Bit mask for ETAMPDET_CHNLFILTWINSIZE0 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved 0x00000000UL /**< Mode Reserved for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 0x00000001UL /**< Mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 0x00000002UL /**< Mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 0x00000003UL /**< Mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 0x00000004UL /**< Mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 0x00000005UL /**< Mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 0x00000006UL /**< Mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 0x00000007UL /**< Mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 0x00000008UL /**< Mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 0x00000009UL /**< Mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 0x0000000AUL /**< Mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 0x0000000BUL /**< Mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 0x0000000CUL /**< Mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 0x0000000DUL /**< Mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 0x0000000EUL /**< Mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 0x0000000FUL /**< Mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved << 0) /**< Shifted mode Reserved for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 << 0) /**< Shifted mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 << 0) /**< Shifted mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 << 0) /**< Shifted mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 << 0) /**< Shifted mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 << 0) /**< Shifted mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 << 0) /**< Shifted mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 << 0) /**< Shifted mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 << 0) /**< Shifted mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 << 0) /**< Shifted mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 << 0) /**< Shifted mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 << 0) /**< Shifted mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 << 0) /**< Shifted mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 << 0) /**< Shifted mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 << 0) /**< Shifted mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 << 0) /**< Shifted mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLFILTWINSIZE1 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_MASK 0xF0UL /**< Bit mask for ETAMPDET_CHNLFILTWINSIZE1 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved 0x00000000UL /**< Mode Reserved for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 0x00000001UL /**< Mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 0x00000002UL /**< Mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 0x00000003UL /**< Mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 0x00000004UL /**< Mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 0x00000005UL /**< Mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 0x00000006UL /**< Mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 0x00000007UL /**< Mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 0x00000008UL /**< Mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 0x00000009UL /**< Mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 0x0000000AUL /**< Mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 0x0000000BUL /**< Mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 0x0000000CUL /**< Mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 0x0000000DUL /**< Mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 0x0000000EUL /**< Mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 0x0000000FUL /**< Mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved << 4) /**< Shifted mode Reserved for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 << 4) /**< Shifted mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 << 4) /**< Shifted mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 << 4) /**< Shifted mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 << 4) /**< Shifted mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 << 4) /**< Shifted mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 << 4) /**< Shifted mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 << 4) /**< Shifted mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 << 4) /**< Shifted mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 << 4) /**< Shifted mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 << 4) /**< Shifted mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 << 4) /**< Shifted mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 << 4) /**< Shifted mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 << 4) /**< Shifted mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 << 4) /**< Shifted mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 << 4) /**< Shifted mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+
+/* Bit fields for ETAMPDET CMD */
+#define _ETAMPDET_CMD_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CMD */
+#define _ETAMPDET_CMD_MASK 0x0000003FUL /**< Mask for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART0 (0x1UL << 0) /**< Start channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTART0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_CMD_CHNLSTART0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_CMD_CHNLSTART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART0_DEFAULT (_ETAMPDET_CMD_CHNLSTART0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP0 (0x1UL << 1) /**< Stop channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTOP0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_CMD_CHNLSTOP0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_CMD_CHNLSTOP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP0_DEFAULT (_ETAMPDET_CMD_CHNLSTOP0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD0 (0x1UL << 2) /**< Start channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLLOAD0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_CMD_CHNLLOAD0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_CMD_CHNLLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD0_DEFAULT (_ETAMPDET_CMD_CHNLLOAD0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART1 (0x1UL << 3) /**< Start channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTART1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_CMD_CHNLSTART1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_CMD_CHNLSTART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART1_DEFAULT (_ETAMPDET_CMD_CHNLSTART1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP1 (0x1UL << 4) /**< Stop channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTOP1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_CMD_CHNLSTOP1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_CMD_CHNLSTOP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP1_DEFAULT (_ETAMPDET_CMD_CHNLSTOP1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD1 (0x1UL << 5) /**< Start channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLLOAD1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_CMD_CHNLLOAD1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_CMD_CHNLLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD1_DEFAULT (_ETAMPDET_CMD_CHNLLOAD1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+
+/* Bit fields for ETAMPDET SYNCBUSY */
+#define _ETAMPDET_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_SYNCBUSY */
+#define _ETAMPDET_SYNCBUSY_MASK 0x0000007FUL /**< Mask for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART0 (0x1UL << 0) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP0 (0x1UL << 1) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD0 (0x1UL << 2) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART1 (0x1UL << 3) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP1 (0x1UL << 4) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD1 (0x1UL << 5) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_EN (0x1UL << 6) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_EN_SHIFT 6 /**< Shift value for ETAMPDET_EN */
+#define _ETAMPDET_SYNCBUSY_EN_MASK 0x40UL /**< Bit mask for ETAMPDET_EN */
+#define _ETAMPDET_SYNCBUSY_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_EN_DEFAULT (_ETAMPDET_SYNCBUSY_EN_DEFAULT << 6) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+
+/* Bit fields for ETAMPDET IEN */
+#define _ETAMPDET_IEN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_IEN */
+#define _ETAMPDET_IEN_MASK 0x00000003UL /**< Mask for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET0 (0x1UL << 0) /**< TAMPDET0 interrupt enable */
+#define _ETAMPDET_IEN_TAMPDET0_SHIFT 0 /**< Shift value for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IEN_TAMPDET0_MASK 0x1UL /**< Bit mask for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IEN_TAMPDET0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET0_DEFAULT (_ETAMPDET_IEN_TAMPDET0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET1 (0x1UL << 1) /**< TAMPDET1 interrupt enable */
+#define _ETAMPDET_IEN_TAMPDET1_SHIFT 1 /**< Shift value for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IEN_TAMPDET1_MASK 0x2UL /**< Bit mask for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IEN_TAMPDET1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET1_DEFAULT (_ETAMPDET_IEN_TAMPDET1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_IEN */
+
+/* Bit fields for ETAMPDET IF */
+#define _ETAMPDET_IF_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_IF */
+#define _ETAMPDET_IF_MASK 0x00000003UL /**< Mask for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET0 (0x1UL << 0) /**< Tamper0 Detect Flag */
+#define _ETAMPDET_IF_TAMPDET0_SHIFT 0 /**< Shift value for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IF_TAMPDET0_MASK 0x1UL /**< Bit mask for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IF_TAMPDET0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET0_DEFAULT (_ETAMPDET_IF_TAMPDET0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET1 (0x1UL << 1) /**< Tamper1 Detect Flag */
+#define _ETAMPDET_IF_TAMPDET1_SHIFT 1 /**< Shift value for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IF_TAMPDET1_MASK 0x2UL /**< Bit mask for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IF_TAMPDET1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET1_DEFAULT (_ETAMPDET_IF_TAMPDET1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_IF */
+
+/* Bit fields for ETAMPDET STATUS */
+#define _ETAMPDET_STATUS_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_MASK 0x80000003UL /**< Mask for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING0 (0x1UL << 0) /**< Channel0 Running Status */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLRUNNING0 */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLRUNNING0 */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT (_ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING1 (0x1UL << 1) /**< Channel1 Running Status */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_SHIFT 1 /**< Shift value for ETAMPDET_CHNLRUNNING1 */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLRUNNING1 */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT (_ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS (0x1UL << 31) /**< Lock Status */
+#define _ETAMPDET_STATUS_LOCKSTATUS_SHIFT 31 /**< Shift value for ETAMPDET_LOCKSTATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_MASK 0x80000000UL /**< Bit mask for ETAMPDET_LOCKSTATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_DEFAULT (_ETAMPDET_STATUS_LOCKSTATUS_DEFAULT << 31) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED (_ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED << 31) /**< Shifted mode UNLOCKED for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_LOCKED (_ETAMPDET_STATUS_LOCKSTATUS_LOCKED << 31) /**< Shifted mode LOCKED for ETAMPDET_STATUS */
+
+/* Bit fields for ETAMPDET EM4WUEN */
+#define _ETAMPDET_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_EM4WUEN */
+#define _ETAMPDET_EM4WUEN_MASK 0x00000003UL /**< Mask for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN0 (0x1UL << 0) /**< Channel0 Tampdet EM4 Wakeup Enable */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLEM4WUEN0 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLEM4WUEN0 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT (_ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN1 (0x1UL << 1) /**< Channel1 Tampdet EM4 Wakeup Enable */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_SHIFT 1 /**< Shift value for ETAMPDET_CHNLEM4WUEN1 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLEM4WUEN1 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT (_ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_EM4WUEN */
+
+/* Bit fields for ETAMPDET CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLSEEDVAL0 */
+#define ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT (_ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLSEEDVAL0*/
+
+/* Bit fields for ETAMPDET CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLSEEDVAL1 */
+#define ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT (_ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLSEEDVAL1*/
+
+/* Bit fields for ETAMPDET CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_MASK 0x0000073FUL /**< Mask for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_SHIFT 0 /**< Shift value for ETAMPDET_LOWERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_MASK 0x3FUL /**< Bit mask for ETAMPDET_LOWERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass 0x00000000UL /**< Mode Bypass for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 0x00000001UL /**< Mode DivideBy2 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 0x00000002UL /**< Mode DivideBy3 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 0x00000003UL /**< Mode DivideBy4 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 0x00000004UL /**< Mode DivideBy5 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 0x00000005UL /**< Mode DivideBy6 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 0x00000006UL /**< Mode DivideBy7 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 0x00000007UL /**< Mode DivideBy8 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 0x00000008UL /**< Mode DivideBy9 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 0x00000009UL /**< Mode DivideBy10 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 0x0000000AUL /**< Mode DivideBy11 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 0x0000000BUL /**< Mode DivideBy12 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 0x0000000CUL /**< Mode DivideBy13 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 0x0000000DUL /**< Mode DivideBy14 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 0x0000000EUL /**< Mode DivideBy15 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 0x0000000FUL /**< Mode DivideBy16 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 0x00000010UL /**< Mode DivideBy17 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 0x00000011UL /**< Mode DivideBy18 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 0x00000012UL /**< Mode DivideBy19 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 0x00000013UL /**< Mode DivideBy20 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 0x00000014UL /**< Mode DivideBy21 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 0x00000015UL /**< Mode DivideBy22 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 0x00000016UL /**< Mode DivideBy23 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 0x00000017UL /**< Mode DivideBy24 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 0x00000018UL /**< Mode DivideBy25 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 0x00000019UL /**< Mode DivideBy26 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 0x0000001AUL /**< Mode DivideBy27 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 0x0000001BUL /**< Mode DivideBy28 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 0x0000001CUL /**< Mode DivideBy29 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 0x0000001DUL /**< Mode DivideBy30 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 0x0000001EUL /**< Mode DivideBy31 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 0x0000001FUL /**< Mode DivideBy32 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 0x00000020UL /**< Mode DivideBy33 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 0x00000021UL /**< Mode DivideBy34 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 0x00000022UL /**< Mode DivideBy35 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 0x00000023UL /**< Mode DivideBy36 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 0x00000024UL /**< Mode DivideBy37 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 0x00000025UL /**< Mode DivideBy38 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 0x00000026UL /**< Mode DivideBy39 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 0x00000027UL /**< Mode DivideBy40 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 0x00000028UL /**< Mode DivideBy41 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 0x00000029UL /**< Mode DivideBy42 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 0x0000002AUL /**< Mode DivideBy43 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 0x0000002BUL /**< Mode DivideBy44 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 0x0000002CUL /**< Mode DivideBy45 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 0x0000002DUL /**< Mode DivideBy46 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 0x0000002EUL /**< Mode DivideBy47 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 0x0000002FUL /**< Mode DivideBy48 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 0x00000030UL /**< Mode DivideBy49 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 0x00000031UL /**< Mode DivideBy50 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 0x00000032UL /**< Mode DivideBy51 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 0x00000033UL /**< Mode DivideBy52 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 0x00000034UL /**< Mode DivideBy53 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 0x00000035UL /**< Mode DivideBy54 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 0x00000036UL /**< Mode DivideBy55 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 0x00000037UL /**< Mode DivideBy56 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 0x00000038UL /**< Mode DivideBy57 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 0x00000039UL /**< Mode DivideBy58 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 0x0000003AUL /**< Mode DivideBy59 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 0x0000003BUL /**< Mode DivideBy60 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 0x0000003CUL /**< Mode DivideBy61 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 0x0000003DUL /**< Mode DivideBy62 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 0x0000003EUL /**< Mode DivideBy63 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 0x0000003FUL /**< Mode DivideBy64 for ETAMPDET_CLKPRESCVAL */
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass << 0) /**< Shifted mode Bypass for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 << 0) /**< Shifted mode DivideBy2 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 << 0) /**< Shifted mode DivideBy3 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 << 0) /**< Shifted mode DivideBy4 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 << 0) /**< Shifted mode DivideBy5 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 << 0) /**< Shifted mode DivideBy6 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 << 0) /**< Shifted mode DivideBy7 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 << 0) /**< Shifted mode DivideBy8 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 << 0) /**< Shifted mode DivideBy9 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 << 0) /**< Shifted mode DivideBy10 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 << 0) /**< Shifted mode DivideBy11 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 << 0) /**< Shifted mode DivideBy12 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 << 0) /**< Shifted mode DivideBy13 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 << 0) /**< Shifted mode DivideBy14 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 << 0) /**< Shifted mode DivideBy15 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 << 0) /**< Shifted mode DivideBy16 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 << 0) /**< Shifted mode DivideBy17 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 << 0) /**< Shifted mode DivideBy18 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 << 0) /**< Shifted mode DivideBy19 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 << 0) /**< Shifted mode DivideBy20 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 << 0) /**< Shifted mode DivideBy21 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 << 0) /**< Shifted mode DivideBy22 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 << 0) /**< Shifted mode DivideBy23 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 << 0) /**< Shifted mode DivideBy24 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 << 0) /**< Shifted mode DivideBy25 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 << 0) /**< Shifted mode DivideBy26 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 << 0) /**< Shifted mode DivideBy27 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 << 0) /**< Shifted mode DivideBy28 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 << 0) /**< Shifted mode DivideBy29 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 << 0) /**< Shifted mode DivideBy30 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 << 0) /**< Shifted mode DivideBy31 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 << 0) /**< Shifted mode DivideBy32 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 << 0) /**< Shifted mode DivideBy33 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 << 0) /**< Shifted mode DivideBy34 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 << 0) /**< Shifted mode DivideBy35 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 << 0) /**< Shifted mode DivideBy36 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 << 0) /**< Shifted mode DivideBy37 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 << 0) /**< Shifted mode DivideBy38 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 << 0) /**< Shifted mode DivideBy39 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 << 0) /**< Shifted mode DivideBy40 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 << 0) /**< Shifted mode DivideBy41 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 << 0) /**< Shifted mode DivideBy42 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 << 0) /**< Shifted mode DivideBy43 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 << 0) /**< Shifted mode DivideBy44 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 << 0) /**< Shifted mode DivideBy45 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 << 0) /**< Shifted mode DivideBy46 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 << 0) /**< Shifted mode DivideBy47 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 << 0) /**< Shifted mode DivideBy48 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 << 0) /**< Shifted mode DivideBy49 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 << 0) /**< Shifted mode DivideBy50 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 << 0) /**< Shifted mode DivideBy51 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 << 0) /**< Shifted mode DivideBy52 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 << 0) /**< Shifted mode DivideBy53 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 << 0) /**< Shifted mode DivideBy54 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 << 0) /**< Shifted mode DivideBy55 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 << 0) /**< Shifted mode DivideBy56 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 << 0) /**< Shifted mode DivideBy57 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 << 0) /**< Shifted mode DivideBy58 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 << 0) /**< Shifted mode DivideBy59 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 << 0) /**< Shifted mode DivideBy60 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 << 0) /**< Shifted mode DivideBy61 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 << 0) /**< Shifted mode DivideBy62 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 << 0) /**< Shifted mode DivideBy63 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 << 0) /**< Shifted mode DivideBy64 for ETAMPDET_CLKPRESCVAL*/
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_SHIFT 8 /**< Shift value for ETAMPDET_UPPERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_MASK 0x700UL /**< Bit mask for ETAMPDET_UPPERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass 0x00000000UL /**< Mode Bypass for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 0x00000001UL /**< Mode DivideBy2 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 0x00000002UL /**< Mode DivideBy4 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 0x00000003UL /**< Mode DivideBy8 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 0x00000004UL /**< Mode DivideBy16 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 0x00000005UL /**< Mode DivideBy32 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 0x00000006UL /**< Mode DivideBy64 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved 0x00000007UL /**< Mode Reserved for ETAMPDET_CLKPRESCVAL */
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT << 8) /**< Shifted mode DEFAULT for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass << 8) /**< Shifted mode Bypass for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 << 8) /**< Shifted mode DivideBy2 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 << 8) /**< Shifted mode DivideBy4 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 << 8) /**< Shifted mode DivideBy8 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 << 8) /**< Shifted mode DivideBy16 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 << 8) /**< Shifted mode DivideBy32 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 << 8) /**< Shifted mode DivideBy64 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved << 8) /**< Shifted mode Reserved for ETAMPDET_CLKPRESCVAL*/
+
+/* Bit fields for ETAMPDET LOCK */
+#define _ETAMPDET_LOCK_RESETVALUE 0x0000AEE8UL /**< Default value for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_MASK 0x0000FFFFUL /**< Mask for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for ETAMPDET_LOCKKEY */
+#define _ETAMPDET_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for ETAMPDET_LOCKKEY */
+#define _ETAMPDET_LOCK_LOCKKEY_DEFAULT 0x0000AEE8UL /**< Mode DEFAULT for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for ETAMPDET_LOCK */
+#define ETAMPDET_LOCK_LOCKKEY_DEFAULT (_ETAMPDET_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_LOCK */
+#define ETAMPDET_LOCK_LOCKKEY_UNLOCK (_ETAMPDET_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for ETAMPDET_LOCK */
+
+/** @} End of group EFR32BG29_ETAMPDET_BitFields */
+/** @} End of group EFR32BG29_ETAMPDET */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_ETAMPDET_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_eusart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_eusart.h
new file mode 100644
index 000000000..1858d7394
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_eusart.h
@@ -0,0 +1,1193 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 EUSART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_EUSART_H
+#define EFR32BG29_EUSART_H
+#define EUSART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_EUSART EUSART
+ * @{
+ * @brief EFR32BG29 EUSART Register Declaration.
+ *****************************************************************************/
+
+/** EUSART Register Declaration. */
+typedef struct eusart_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG0; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL; /**< Trigger Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t RXDATA; /**< RX Data Register */
+ __IM uint32_t RXDATAP; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA; /**< TX Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED0[42U]; /**< Reserved for future use */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ uint32_t RESERVED2[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG0_SET; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_SET; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_SET; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_SET; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_SET; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_SET; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_SET; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_SET; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_SET; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_SET; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< Trigger Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t RXDATA_SET; /**< RX Data Register */
+ __IM uint32_t RXDATAP_SET; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[42U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ uint32_t RESERVED5[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG0_CLR; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_CLR; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_CLR; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_CLR; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_CLR; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_CLR; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_CLR; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_CLR; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_CLR; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_CLR; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< Trigger Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[42U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG0_TGL; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_TGL; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_TGL; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_TGL; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_TGL; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_TGL; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_TGL; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_TGL; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_TGL; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_TGL; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< Trigger Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED9[42U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+} EUSART_TypeDef;
+/** @} End of group EFR32BG29_EUSART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_EUSART
+ * @{
+ * @defgroup EFR32BG29_EUSART_BitFields EUSART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EUSART IPVERSION */
+#define _EUSART_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for EUSART_IPVERSION */
+#define EUSART_IPVERSION_IPVERSION_DEFAULT (_EUSART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IPVERSION */
+
+/* Bit fields for EUSART EN */
+#define _EUSART_EN_RESETVALUE 0x00000000UL /**< Default value for EUSART_EN */
+#define _EUSART_EN_MASK 0x00000003UL /**< Mask for EUSART_EN */
+#define EUSART_EN_EN (0x1UL << 0) /**< Module enable */
+#define _EUSART_EN_EN_SHIFT 0 /**< Shift value for EUSART_EN */
+#define _EUSART_EN_EN_MASK 0x1UL /**< Bit mask for EUSART_EN */
+#define _EUSART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_EN_DEFAULT (_EUSART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _EUSART_EN_DISABLING_SHIFT 1 /**< Shift value for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_MASK 0x2UL /**< Bit mask for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING_DEFAULT (_EUSART_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_EN */
+
+/* Bit fields for EUSART CFG0 */
+#define _EUSART_CFG0_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG0 */
+#define _EUSART_CFG0_MASK 0xC1D264FFUL /**< Mask for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC (0x1UL << 0) /**< Synchronous Mode */
+#define _EUSART_CFG0_SYNC_SHIFT 0 /**< Shift value for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_MASK 0x1UL /**< Bit mask for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_ASYNC 0x00000000UL /**< Mode ASYNC for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_SYNC 0x00000001UL /**< Mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_DEFAULT (_EUSART_CFG0_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_ASYNC (_EUSART_CFG0_SYNC_ASYNC << 0) /**< Shifted mode ASYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_SYNC (_EUSART_CFG0_SYNC_SYNC << 0) /**< Shifted mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _EUSART_CFG0_LOOPBK_SHIFT 1 /**< Shift value for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_MASK 0x2UL /**< Bit mask for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DEFAULT (_EUSART_CFG0_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DISABLE (_EUSART_CFG0_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_ENABLE (_EUSART_CFG0_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _EUSART_CFG0_CCEN_SHIFT 2 /**< Shift value for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_MASK 0x4UL /**< Bit mask for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DEFAULT (_EUSART_CFG0_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DISABLE (_EUSART_CFG0_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_ENABLE (_EUSART_CFG0_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _EUSART_CFG0_MPM_SHIFT 3 /**< Shift value for EUSART_MPM */
+#define _EUSART_CFG0_MPM_MASK 0x8UL /**< Bit mask for EUSART_MPM */
+#define _EUSART_CFG0_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DEFAULT (_EUSART_CFG0_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DISABLE (_EUSART_CFG0_MPM_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_ENABLE (_EUSART_CFG0_MPM_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _EUSART_CFG0_MPAB_SHIFT 4 /**< Shift value for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_MASK 0x10UL /**< Bit mask for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB_DEFAULT (_EUSART_CFG0_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_SHIFT 5 /**< Shift value for EUSART_OVS */
+#define _EUSART_CFG0_OVS_MASK 0xE0UL /**< Bit mask for EUSART_OVS */
+#define _EUSART_CFG0_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X16 0x00000000UL /**< Mode X16 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X8 0x00000001UL /**< Mode X8 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X6 0x00000002UL /**< Mode X6 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X4 0x00000003UL /**< Mode X4 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_DISABLE 0x00000004UL /**< Mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DEFAULT (_EUSART_CFG0_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X16 (_EUSART_CFG0_OVS_X16 << 5) /**< Shifted mode X16 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X8 (_EUSART_CFG0_OVS_X8 << 5) /**< Shifted mode X8 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X6 (_EUSART_CFG0_OVS_X6 << 5) /**< Shifted mode X6 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X4 (_EUSART_CFG0_OVS_X4 << 5) /**< Shifted mode X4 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DISABLE (_EUSART_CFG0_OVS_DISABLE << 5) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _EUSART_CFG0_MSBF_SHIFT 10 /**< Shift value for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_MASK 0x400UL /**< Bit mask for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DEFAULT (_EUSART_CFG0_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DISABLE (_EUSART_CFG0_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_ENABLE (_EUSART_CFG0_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _EUSART_CFG0_RXINV_SHIFT 13 /**< Shift value for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_MASK 0x2000UL /**< Bit mask for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DEFAULT (_EUSART_CFG0_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DISABLE (_EUSART_CFG0_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_ENABLE (_EUSART_CFG0_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _EUSART_CFG0_TXINV_SHIFT 14 /**< Shift value for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_MASK 0x4000UL /**< Bit mask for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DEFAULT (_EUSART_CFG0_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DISABLE (_EUSART_CFG0_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_ENABLE (_EUSART_CFG0_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _EUSART_CFG0_AUTOTRI_SHIFT 17 /**< Shift value for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_MASK 0x20000UL /**< Bit mask for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DEFAULT (_EUSART_CFG0_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DISABLE (_EUSART_CFG0_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_ENABLE (_EUSART_CFG0_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _EUSART_CFG0_SKIPPERRF_SHIFT 20 /**< Shift value for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_MASK 0x100000UL /**< Bit mask for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF_DEFAULT (_EUSART_CFG0_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA (0x1UL << 22) /**< Halt DMA Read On Error */
+#define _EUSART_CFG0_ERRSDMA_SHIFT 22 /**< Shift value for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_MASK 0x400000UL /**< Bit mask for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DEFAULT (_EUSART_CFG0_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DISABLE (_EUSART_CFG0_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_ENABLE (_EUSART_CFG0_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _EUSART_CFG0_ERRSRX_SHIFT 23 /**< Shift value for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_MASK 0x800000UL /**< Bit mask for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DEFAULT (_EUSART_CFG0_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DISABLE (_EUSART_CFG0_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_ENABLE (_EUSART_CFG0_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _EUSART_CFG0_ERRSTX_SHIFT 24 /**< Shift value for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_MASK 0x1000000UL /**< Bit mask for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DEFAULT (_EUSART_CFG0_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DISABLE (_EUSART_CFG0_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_ENABLE (_EUSART_CFG0_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _EUSART_CFG0_MVDIS_SHIFT 30 /**< Shift value for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_MASK 0x40000000UL /**< Bit mask for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS_DEFAULT (_EUSART_CFG0_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _EUSART_CFG0_AUTOBAUDEN_SHIFT 31 /**< Shift value for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN_DEFAULT (_EUSART_CFG0_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+
+/* Bit fields for EUSART CFG1 */
+#define _EUSART_CFG1_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG1 */
+#define _EUSART_CFG1_MASK 0x7BCF8E7FUL /**< Mask for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _EUSART_CFG1_DBGHALT_SHIFT 0 /**< Shift value for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_MASK 0x1UL /**< Bit mask for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DEFAULT (_EUSART_CFG1_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DISABLE (_EUSART_CFG1_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_ENABLE (_EUSART_CFG1_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV (0x1UL << 1) /**< Clear-to-send Invert Enable */
+#define _EUSART_CFG1_CTSINV_SHIFT 1 /**< Shift value for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_MASK 0x2UL /**< Bit mask for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DEFAULT (_EUSART_CFG1_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DISABLE (_EUSART_CFG1_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_ENABLE (_EUSART_CFG1_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN (0x1UL << 2) /**< Clear-to-send Enable */
+#define _EUSART_CFG1_CTSEN_SHIFT 2 /**< Shift value for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_MASK 0x4UL /**< Bit mask for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DEFAULT (_EUSART_CFG1_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DISABLE (_EUSART_CFG1_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_ENABLE (_EUSART_CFG1_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV (0x1UL << 3) /**< Request-to-send Invert Enable */
+#define _EUSART_CFG1_RTSINV_SHIFT 3 /**< Shift value for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_MASK 0x8UL /**< Bit mask for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DEFAULT (_EUSART_CFG1_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DISABLE (_EUSART_CFG1_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_ENABLE (_EUSART_CFG1_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SHIFT 4 /**< Shift value for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_MASK 0x70UL /**< Bit mask for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_DISABLED 0x00000000UL /**< Mode DISABLED for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_ONEFRAME 0x00000001UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_TWOFRAMES 0x00000002UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_THREEFRAMES 0x00000003UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FOURFRAMES 0x00000004UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FIVEFRAMES 0x00000005UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SIXFRAMES 0x00000006UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SEVENFRAMES 0x00000007UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DEFAULT (_EUSART_CFG1_RXTIMEOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DISABLED (_EUSART_CFG1_RXTIMEOUT_DISABLED << 4) /**< Shifted mode DISABLED for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_ONEFRAME (_EUSART_CFG1_RXTIMEOUT_ONEFRAME << 4) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_TWOFRAMES (_EUSART_CFG1_RXTIMEOUT_TWOFRAMES << 4) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_THREEFRAMES (_EUSART_CFG1_RXTIMEOUT_THREEFRAMES << 4) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FOURFRAMES (_EUSART_CFG1_RXTIMEOUT_FOURFRAMES << 4) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FIVEFRAMES (_EUSART_CFG1_RXTIMEOUT_FIVEFRAMES << 4) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SIXFRAMES (_EUSART_CFG1_RXTIMEOUT_SIXFRAMES << 4) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SEVENFRAMES (_EUSART_CFG1_RXTIMEOUT_SEVENFRAMES << 4) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU (0x1UL << 9) /**< Transmitter DMA Wakeup */
+#define _EUSART_CFG1_TXDMAWU_SHIFT 9 /**< Shift value for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_MASK 0x200UL /**< Bit mask for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU_DEFAULT (_EUSART_CFG1_TXDMAWU_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU (0x1UL << 10) /**< Receiver DMA Wakeup */
+#define _EUSART_CFG1_RXDMAWU_SHIFT 10 /**< Shift value for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_MASK 0x400UL /**< Bit mask for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU_DEFAULT (_EUSART_CFG1_RXDMAWU_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX (0x1UL << 11) /**< Start Frame Unblock Receiver */
+#define _EUSART_CFG1_SFUBRX_SHIFT 11 /**< Shift value for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_MASK 0x800UL /**< Bit mask for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX_DEFAULT (_EUSART_CFG1_SFUBRX_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN (0x1UL << 15) /**< PRS RX Enable */
+#define _EUSART_CFG1_RXPRSEN_SHIFT 15 /**< Shift value for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_MASK 0x8000UL /**< Bit mask for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN_DEFAULT (_EUSART_CFG1_RXPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SHIFT 16 /**< Shift value for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_MASK 0xF0000UL /**< Bit mask for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_DEFAULT (_EUSART_CFG1_TXFIW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ONEFRAME (_EUSART_CFG1_TXFIW_ONEFRAME << 16) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWOFRAMES (_EUSART_CFG1_TXFIW_TWOFRAMES << 16) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THREEFRAMES (_EUSART_CFG1_TXFIW_THREEFRAMES << 16) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURFRAMES (_EUSART_CFG1_TXFIW_FOURFRAMES << 16) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIVEFRAMES (_EUSART_CFG1_TXFIW_FIVEFRAMES << 16) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXFRAMES (_EUSART_CFG1_TXFIW_SIXFRAMES << 16) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SEVENFRAMES (_EUSART_CFG1_TXFIW_SEVENFRAMES << 16) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_EIGHTFRAMES (_EUSART_CFG1_TXFIW_EIGHTFRAMES << 16) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_NINEFRAMES (_EUSART_CFG1_TXFIW_NINEFRAMES << 16) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TENFRAMES (_EUSART_CFG1_TXFIW_TENFRAMES << 16) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ELEVENFRAMES (_EUSART_CFG1_TXFIW_ELEVENFRAMES << 16) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWELVEFRAMES (_EUSART_CFG1_TXFIW_TWELVEFRAMES << 16) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THIRTEENFRAMES (_EUSART_CFG1_TXFIW_THIRTEENFRAMES << 16) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURTEENFRAMES (_EUSART_CFG1_TXFIW_FOURTEENFRAMES << 16) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIFTEENFRAMES (_EUSART_CFG1_TXFIW_FIFTEENFRAMES << 16) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXTEENFRAMES (_EUSART_CFG1_TXFIW_SIXTEENFRAMES << 16) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SHIFT 22 /**< Shift value for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_MASK 0x3C00000UL /**< Bit mask for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_DEFAULT (_EUSART_CFG1_RTSRXFW_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ONEFRAME (_EUSART_CFG1_RTSRXFW_ONEFRAME << 22) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWOFRAMES (_EUSART_CFG1_RTSRXFW_TWOFRAMES << 22) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THREEFRAMES (_EUSART_CFG1_RTSRXFW_THREEFRAMES << 22) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURFRAMES (_EUSART_CFG1_RTSRXFW_FOURFRAMES << 22) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIVEFRAMES (_EUSART_CFG1_RTSRXFW_FIVEFRAMES << 22) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXFRAMES (_EUSART_CFG1_RTSRXFW_SIXFRAMES << 22) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SEVENFRAMES (_EUSART_CFG1_RTSRXFW_SEVENFRAMES << 22) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_EIGHTFRAMES (_EUSART_CFG1_RTSRXFW_EIGHTFRAMES << 22) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_NINEFRAMES (_EUSART_CFG1_RTSRXFW_NINEFRAMES << 22) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TENFRAMES (_EUSART_CFG1_RTSRXFW_TENFRAMES << 22) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ELEVENFRAMES (_EUSART_CFG1_RTSRXFW_ELEVENFRAMES << 22) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWELVEFRAMES (_EUSART_CFG1_RTSRXFW_TWELVEFRAMES << 22) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THIRTEENFRAMES (_EUSART_CFG1_RTSRXFW_THIRTEENFRAMES << 22) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURTEENFRAMES (_EUSART_CFG1_RTSRXFW_FOURTEENFRAMES << 22) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIFTEENFRAMES (_EUSART_CFG1_RTSRXFW_FIFTEENFRAMES << 22) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXTEENFRAMES (_EUSART_CFG1_RTSRXFW_SIXTEENFRAMES << 22) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SHIFT 27 /**< Shift value for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_MASK 0x78000000UL /**< Bit mask for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_DEFAULT (_EUSART_CFG1_RXFIW_DEFAULT << 27) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ONEFRAME (_EUSART_CFG1_RXFIW_ONEFRAME << 27) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWOFRAMES (_EUSART_CFG1_RXFIW_TWOFRAMES << 27) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THREEFRAMES (_EUSART_CFG1_RXFIW_THREEFRAMES << 27) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURFRAMES (_EUSART_CFG1_RXFIW_FOURFRAMES << 27) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIVEFRAMES (_EUSART_CFG1_RXFIW_FIVEFRAMES << 27) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXFRAMES (_EUSART_CFG1_RXFIW_SIXFRAMES << 27) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SEVENFRAMES (_EUSART_CFG1_RXFIW_SEVENFRAMES << 27) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_EIGHTFRAMES (_EUSART_CFG1_RXFIW_EIGHTFRAMES << 27) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_NINEFRAMES (_EUSART_CFG1_RXFIW_NINEFRAMES << 27) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TENFRAMES (_EUSART_CFG1_RXFIW_TENFRAMES << 27) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ELEVENFRAMES (_EUSART_CFG1_RXFIW_ELEVENFRAMES << 27) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWELVEFRAMES (_EUSART_CFG1_RXFIW_TWELVEFRAMES << 27) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THIRTEENFRAMES (_EUSART_CFG1_RXFIW_THIRTEENFRAMES << 27) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURTEENFRAMES (_EUSART_CFG1_RXFIW_FOURTEENFRAMES << 27) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIFTEENFRAMES (_EUSART_CFG1_RXFIW_FIFTEENFRAMES << 27) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXTEENFRAMES (_EUSART_CFG1_RXFIW_SIXTEENFRAMES << 27) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+
+/* Bit fields for EUSART CFG2 */
+#define _EUSART_CFG2_RESETVALUE 0x00000020UL /**< Default value for EUSART_CFG2 */
+#define _EUSART_CFG2_MASK 0xFF0000FFUL /**< Mask for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER (0x1UL << 0) /**< Master mode */
+#define _EUSART_CFG2_MASTER_SHIFT 0 /**< Shift value for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_MASK 0x1UL /**< Bit mask for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_SLAVE 0x00000000UL /**< Mode SLAVE for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_MASTER 0x00000001UL /**< Mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_DEFAULT (_EUSART_CFG2_MASTER_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_SLAVE (_EUSART_CFG2_MASTER_SLAVE << 0) /**< Shifted mode SLAVE for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_MASTER (_EUSART_CFG2_MASTER_MASTER << 0) /**< Shifted mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL (0x1UL << 1) /**< Clock Polarity */
+#define _EUSART_CFG2_CLKPOL_SHIFT 1 /**< Shift value for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_MASK 0x2UL /**< Bit mask for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_DEFAULT (_EUSART_CFG2_CLKPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLELOW (_EUSART_CFG2_CLKPOL_IDLELOW << 1) /**< Shifted mode IDLELOW for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLEHIGH (_EUSART_CFG2_CLKPOL_IDLEHIGH << 1) /**< Shifted mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA (0x1UL << 2) /**< Clock Edge for Setup/Sample */
+#define _EUSART_CFG2_CLKPHA_SHIFT 2 /**< Shift value for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_MASK 0x4UL /**< Bit mask for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_DEFAULT (_EUSART_CFG2_CLKPHA_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLELEADING (_EUSART_CFG2_CLKPHA_SAMPLELEADING << 2) /**< Shifted mode SAMPLELEADING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLETRAILING (_EUSART_CFG2_CLKPHA_SAMPLETRAILING << 2) /**< Shifted mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV (0x1UL << 3) /**< Chip Select Invert */
+#define _EUSART_CFG2_CSINV_SHIFT 3 /**< Shift value for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_MASK 0x8UL /**< Bit mask for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AL 0x00000000UL /**< Mode AL for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AH 0x00000001UL /**< Mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_DEFAULT (_EUSART_CFG2_CSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AL (_EUSART_CFG2_CSINV_AL << 3) /**< Shifted mode AL for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AH (_EUSART_CFG2_CSINV_AH << 3) /**< Shifted mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX (0x1UL << 4) /**< Always Transmit When RXFIFO Not Full */
+#define _EUSART_CFG2_AUTOTX_SHIFT 4 /**< Shift value for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_MASK 0x10UL /**< Bit mask for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX_DEFAULT (_EUSART_CFG2_AUTOTX_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS (0x1UL << 5) /**< Automatic Chip Select */
+#define _EUSART_CFG2_AUTOCS_SHIFT 5 /**< Shift value for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_MASK 0x20UL /**< Bit mask for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS_DEFAULT (_EUSART_CFG2_AUTOCS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN (0x1UL << 6) /**< PRS CLK Enable */
+#define _EUSART_CFG2_CLKPRSEN_SHIFT 6 /**< Shift value for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_MASK 0x40UL /**< Bit mask for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN_DEFAULT (_EUSART_CFG2_CLKPRSEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD (0x1UL << 7) /**< Force Load to Shift Register */
+#define _EUSART_CFG2_FORCELOAD_SHIFT 7 /**< Shift value for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_MASK 0x80UL /**< Bit mask for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD_DEFAULT (_EUSART_CFG2_FORCELOAD_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_SDIV_SHIFT 24 /**< Shift value for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_MASK 0xFF000000UL /**< Bit mask for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_SDIV_DEFAULT (_EUSART_CFG2_SDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+
+/* Bit fields for EUSART FRAMECFG */
+#define _EUSART_FRAMECFG_RESETVALUE 0x00001002UL /**< Default value for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_MASK 0x0000330FUL /**< Mask for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SHIFT 0 /**< Shift value for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_MASK 0xFUL /**< Bit mask for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_DEFAULT 0x00000002UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SEVEN 0x00000001UL /**< Mode SEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_EIGHT 0x00000002UL /**< Mode EIGHT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_NINE 0x00000003UL /**< Mode NINE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TEN 0x00000004UL /**< Mode TEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_ELEVEN 0x00000005UL /**< Mode ELEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TWELVE 0x00000006UL /**< Mode TWELVE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_THIRTEEN 0x00000007UL /**< Mode THIRTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FOURTEEN 0x00000008UL /**< Mode FOURTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FIFTEEN 0x00000009UL /**< Mode FIFTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SIXTEEN 0x0000000AUL /**< Mode SIXTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_DEFAULT (_EUSART_FRAMECFG_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SEVEN (_EUSART_FRAMECFG_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_EIGHT (_EUSART_FRAMECFG_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_NINE (_EUSART_FRAMECFG_DATABITS_NINE << 0) /**< Shifted mode NINE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TEN (_EUSART_FRAMECFG_DATABITS_TEN << 0) /**< Shifted mode TEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_ELEVEN (_EUSART_FRAMECFG_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TWELVE (_EUSART_FRAMECFG_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_THIRTEEN (_EUSART_FRAMECFG_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FOURTEEN (_EUSART_FRAMECFG_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FIFTEEN (_EUSART_FRAMECFG_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SIXTEEN (_EUSART_FRAMECFG_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_SHIFT 8 /**< Shift value for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_MASK 0x300UL /**< Bit mask for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_NONE 0x00000000UL /**< Mode NONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_EVEN 0x00000002UL /**< Mode EVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_ODD 0x00000003UL /**< Mode ODD for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_DEFAULT (_EUSART_FRAMECFG_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_NONE (_EUSART_FRAMECFG_PARITY_NONE << 8) /**< Shifted mode NONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_EVEN (_EUSART_FRAMECFG_PARITY_EVEN << 8) /**< Shifted mode EVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_ODD (_EUSART_FRAMECFG_PARITY_ODD << 8) /**< Shifted mode ODD for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_SHIFT 12 /**< Shift value for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_MASK 0x3000UL /**< Bit mask for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_HALF 0x00000000UL /**< Mode HALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONE 0x00000001UL /**< Mode ONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_TWO 0x00000003UL /**< Mode TWO for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_DEFAULT (_EUSART_FRAMECFG_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_HALF (_EUSART_FRAMECFG_STOPBITS_HALF << 12) /**< Shifted mode HALF for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONE (_EUSART_FRAMECFG_STOPBITS_ONE << 12) /**< Shifted mode ONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONEANDAHALF (_EUSART_FRAMECFG_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for EUSART_FRAMECFG*/
+#define EUSART_FRAMECFG_STOPBITS_TWO (_EUSART_FRAMECFG_STOPBITS_TWO << 12) /**< Shifted mode TWO for EUSART_FRAMECFG */
+
+/* Bit fields for EUSART DTXDATCFG */
+#define _EUSART_DTXDATCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_MASK 0x0000FFFFUL /**< Mask for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_DTXDAT_SHIFT 0 /**< Shift value for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_MASK 0xFFFFUL /**< Bit mask for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_DTXDATCFG */
+#define EUSART_DTXDATCFG_DTXDAT_DEFAULT (_EUSART_DTXDATCFG_DTXDAT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_DTXDATCFG */
+
+/* Bit fields for EUSART IRHFCFG */
+#define _EUSART_IRHFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_MASK 0x0000000FUL /**< Mask for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN (0x1UL << 0) /**< Enable IrDA Module */
+#define _EUSART_IRHFCFG_IRHFEN_SHIFT 0 /**< Shift value for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_MASK 0x1UL /**< Bit mask for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN_DEFAULT (_EUSART_IRHFCFG_IRHFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_SHIFT 1 /**< Shift value for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_MASK 0x6UL /**< Bit mask for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_ONE 0x00000000UL /**< Mode ONE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_TWO 0x00000001UL /**< Mode TWO for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_THREE 0x00000002UL /**< Mode THREE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_FOUR 0x00000003UL /**< Mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_DEFAULT (_EUSART_IRHFCFG_IRHFPW_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_ONE (_EUSART_IRHFCFG_IRHFPW_ONE << 1) /**< Shifted mode ONE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_TWO (_EUSART_IRHFCFG_IRHFPW_TWO << 1) /**< Shifted mode TWO for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_THREE (_EUSART_IRHFCFG_IRHFPW_THREE << 1) /**< Shifted mode THREE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_FOUR (_EUSART_IRHFCFG_IRHFPW_FOUR << 1) /**< Shifted mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _EUSART_IRHFCFG_IRHFFILT_SHIFT 3 /**< Shift value for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_MASK 0x8UL /**< Bit mask for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DEFAULT (_EUSART_IRHFCFG_IRHFFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DISABLE (_EUSART_IRHFCFG_IRHFFILT_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_ENABLE (_EUSART_IRHFCFG_IRHFFILT_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_IRHFCFG */
+
+/* Bit fields for EUSART IRLFCFG */
+#define _EUSART_IRLFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRLFCFG */
+#define _EUSART_IRLFCFG_MASK 0x00000001UL /**< Mask for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN (0x1UL << 0) /**< Pulse Generator/Extender Enable */
+#define _EUSART_IRLFCFG_IRLFEN_SHIFT 0 /**< Shift value for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_MASK 0x1UL /**< Bit mask for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN_DEFAULT (_EUSART_IRLFCFG_IRLFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRLFCFG */
+
+/* Bit fields for EUSART TIMINGCFG */
+#define _EUSART_TIMINGCFG_RESETVALUE 0x00050000UL /**< Default value for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_MASK 0x000F7773UL /**< Mask for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SHIFT 0 /**< Shift value for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_MASK 0x3UL /**< Bit mask for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_NONE 0x00000000UL /**< Mode NONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SINGLE 0x00000001UL /**< Mode SINGLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_DOUBLE 0x00000002UL /**< Mode DOUBLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_TRIPPLE 0x00000003UL /**< Mode TRIPPLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DEFAULT (_EUSART_TIMINGCFG_TXDELAY_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_NONE (_EUSART_TIMINGCFG_TXDELAY_NONE << 0) /**< Shifted mode NONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_SINGLE (_EUSART_TIMINGCFG_TXDELAY_SINGLE << 0) /**< Shifted mode SINGLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DOUBLE (_EUSART_TIMINGCFG_TXDELAY_DOUBLE << 0) /**< Shifted mode DOUBLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_TRIPPLE (_EUSART_TIMINGCFG_TXDELAY_TRIPPLE << 0) /**< Shifted mode TRIPPLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SHIFT 4 /**< Shift value for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_MASK 0x70UL /**< Bit mask for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_DEFAULT (_EUSART_TIMINGCFG_CSSETUP_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ZERO (_EUSART_TIMINGCFG_CSSETUP_ZERO << 4) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ONE (_EUSART_TIMINGCFG_CSSETUP_ONE << 4) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_TWO (_EUSART_TIMINGCFG_CSSETUP_TWO << 4) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_THREE (_EUSART_TIMINGCFG_CSSETUP_THREE << 4) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FOUR (_EUSART_TIMINGCFG_CSSETUP_FOUR << 4) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FIVE (_EUSART_TIMINGCFG_CSSETUP_FIVE << 4) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SIX (_EUSART_TIMINGCFG_CSSETUP_SIX << 4) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SEVEN (_EUSART_TIMINGCFG_CSSETUP_SEVEN << 4) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SHIFT 8 /**< Shift value for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_MASK 0x700UL /**< Bit mask for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_DEFAULT (_EUSART_TIMINGCFG_CSHOLD_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ZERO (_EUSART_TIMINGCFG_CSHOLD_ZERO << 8) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ONE (_EUSART_TIMINGCFG_CSHOLD_ONE << 8) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_TWO (_EUSART_TIMINGCFG_CSHOLD_TWO << 8) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_THREE (_EUSART_TIMINGCFG_CSHOLD_THREE << 8) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FOUR (_EUSART_TIMINGCFG_CSHOLD_FOUR << 8) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FIVE (_EUSART_TIMINGCFG_CSHOLD_FIVE << 8) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SIX (_EUSART_TIMINGCFG_CSHOLD_SIX << 8) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SEVEN (_EUSART_TIMINGCFG_CSHOLD_SEVEN << 8) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SHIFT 12 /**< Shift value for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_MASK 0x7000UL /**< Bit mask for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_DEFAULT (_EUSART_TIMINGCFG_ICS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ZERO (_EUSART_TIMINGCFG_ICS_ZERO << 12) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ONE (_EUSART_TIMINGCFG_ICS_ONE << 12) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_TWO (_EUSART_TIMINGCFG_ICS_TWO << 12) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_THREE (_EUSART_TIMINGCFG_ICS_THREE << 12) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FOUR (_EUSART_TIMINGCFG_ICS_FOUR << 12) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FIVE (_EUSART_TIMINGCFG_ICS_FIVE << 12) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SIX (_EUSART_TIMINGCFG_ICS_SIX << 12) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SEVEN (_EUSART_TIMINGCFG_ICS_SEVEN << 12) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_SHIFT 16 /**< Shift value for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_MASK 0xF0000UL /**< Bit mask for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT 0x00000005UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT (_EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+
+/* Bit fields for EUSART STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_MASK 0x000001FFUL /**< Mask for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_SHIFT 0 /**< Shift value for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_MASK 0x1FFUL /**< Bit mask for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STARTFRAMECFG */
+#define EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT (_EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STARTFRAMECFG*/
+
+/* Bit fields for EUSART SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_MASK 0xFFFFFFFFUL /**< Mask for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_SHIFT 0 /**< Shift value for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_MASK 0xFFFFFFFFUL /**< Bit mask for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SIGFRAMECFG */
+#define EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT (_EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SIGFRAMECFG */
+
+/* Bit fields for EUSART CLKDIV */
+#define _EUSART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_MASK 0x007FFFF8UL /**< Mask for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_DIV_SHIFT 3 /**< Shift value for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CLKDIV */
+#define EUSART_CLKDIV_DIV_DEFAULT (_EUSART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CLKDIV */
+
+/* Bit fields for EUSART TRIGCTRL */
+#define _EUSART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for EUSART_TRIGCTRL */
+#define _EUSART_TRIGCTRL_MASK 0x00000007UL /**< Mask for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN (0x1UL << 0) /**< Receive Trigger Enable */
+#define _EUSART_TRIGCTRL_RXTEN_SHIFT 0 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_MASK 0x1UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN_DEFAULT (_EUSART_TRIGCTRL_RXTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN (0x1UL << 1) /**< Transmit Trigger Enable */
+#define _EUSART_TRIGCTRL_TXTEN_SHIFT 1 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_MASK 0x2UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN_DEFAULT (_EUSART_TRIGCTRL_TXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN (0x1UL << 2) /**< AUTOTX Trigger Enable */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_SHIFT 2 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_MASK 0x4UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT (_EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+
+/* Bit fields for EUSART CMD */
+#define _EUSART_CMD_RESETVALUE 0x00000000UL /**< Default value for EUSART_CMD */
+#define _EUSART_CMD_MASK 0x000001FFUL /**< Mask for EUSART_CMD */
+#define EUSART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _EUSART_CMD_RXEN_SHIFT 0 /**< Shift value for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_MASK 0x1UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXEN_DEFAULT (_EUSART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _EUSART_CMD_RXDIS_SHIFT 1 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS_DEFAULT (_EUSART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _EUSART_CMD_TXEN_SHIFT 2 /**< Shift value for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_MASK 0x4UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN_DEFAULT (_EUSART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _EUSART_CMD_TXDIS_SHIFT 3 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS_DEFAULT (_EUSART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN (0x1UL << 4) /**< Receiver Block Enable */
+#define _EUSART_CMD_RXBLOCKEN_SHIFT 4 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_MASK 0x10UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN_DEFAULT (_EUSART_CMD_RXBLOCKEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS (0x1UL << 5) /**< Receiver Block Disable */
+#define _EUSART_CMD_RXBLOCKDIS_SHIFT 5 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_MASK 0x20UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS_DEFAULT (_EUSART_CMD_RXBLOCKDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN (0x1UL << 6) /**< Transmitter Tristate Enable */
+#define _EUSART_CMD_TXTRIEN_SHIFT 6 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_MASK 0x40UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN_DEFAULT (_EUSART_CMD_TXTRIEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS (0x1UL << 7) /**< Transmitter Tristate Disable */
+#define _EUSART_CMD_TXTRIDIS_SHIFT 7 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_MASK 0x80UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS_DEFAULT (_EUSART_CMD_TXTRIDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX (0x1UL << 8) /**< Clear TX FIFO */
+#define _EUSART_CMD_CLEARTX_SHIFT 8 /**< Shift value for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_MASK 0x100UL /**< Bit mask for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX_DEFAULT (_EUSART_CMD_CLEARTX_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_CMD */
+
+/* Bit fields for EUSART RXDATA */
+#define _EUSART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATA */
+#define _EUSART_RXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATA */
+#define EUSART_RXDATA_RXDATA_DEFAULT (_EUSART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATA */
+
+/* Bit fields for EUSART RXDATAP */
+#define _EUSART_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATAP */
+#define EUSART_RXDATAP_RXDATAP_DEFAULT (_EUSART_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATAP */
+
+/* Bit fields for EUSART TXDATA */
+#define _EUSART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_TXDATA */
+#define _EUSART_TXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TXDATA */
+#define EUSART_TXDATA_TXDATA_DEFAULT (_EUSART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TXDATA */
+
+/* Bit fields for EUSART STATUS */
+#define _EUSART_STATUS_RESETVALUE 0x00003040UL /**< Default value for EUSART_STATUS */
+#define _EUSART_STATUS_MASK 0x031F31FBUL /**< Mask for EUSART_STATUS */
+#define EUSART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _EUSART_STATUS_RXENS_SHIFT 0 /**< Shift value for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXENS_DEFAULT (_EUSART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _EUSART_STATUS_TXENS_SHIFT 1 /**< Shift value for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS_DEFAULT (_EUSART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _EUSART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK_DEFAULT (_EUSART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _EUSART_STATUS_TXTRI_SHIFT 4 /**< Shift value for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI_DEFAULT (_EUSART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _EUSART_STATUS_TXC_SHIFT 5 /**< Shift value for EUSART_TXC */
+#define _EUSART_STATUS_TXC_MASK 0x20UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC_DEFAULT (_EUSART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL (0x1UL << 6) /**< TX FIFO Level */
+#define _EUSART_STATUS_TXFL_SHIFT 6 /**< Shift value for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_MASK 0x40UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL_DEFAULT (_EUSART_STATUS_TXFL_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL (0x1UL << 7) /**< RX FIFO Level */
+#define _EUSART_STATUS_RXFL_SHIFT 7 /**< Shift value for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_MASK 0x80UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL_DEFAULT (_EUSART_STATUS_RXFL_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _EUSART_STATUS_RXFULL_SHIFT 8 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL_DEFAULT (_EUSART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE (0x1UL << 12) /**< RX Idle */
+#define _EUSART_STATUS_RXIDLE_SHIFT 12 /**< Shift value for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_MASK 0x1000UL /**< Bit mask for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE_DEFAULT (_EUSART_STATUS_RXIDLE_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _EUSART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE_DEFAULT (_EUSART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define _EUSART_STATUS_TXFCNT_SHIFT 16 /**< Shift value for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_MASK 0x1F0000UL /**< Bit mask for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFCNT_DEFAULT (_EUSART_STATUS_TXFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Rate Detection Completed */
+#define _EUSART_STATUS_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE_DEFAULT (_EUSART_STATUS_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY (0x1UL << 25) /**< TX FIFO Clear Busy */
+#define _EUSART_STATUS_CLEARTXBUSY_SHIFT 25 /**< Shift value for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_MASK 0x2000000UL /**< Bit mask for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY_DEFAULT (_EUSART_STATUS_CLEARTXBUSY_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_STATUS */
+
+/* Bit fields for EUSART IF */
+#define _EUSART_IF_RESETVALUE 0x00000000UL /**< Default value for EUSART_IF */
+#define _EUSART_IF_MASK 0x030D3FFFUL /**< Mask for EUSART_IF */
+#define EUSART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _EUSART_IF_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IF_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXC_DEFAULT (_EUSART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL (0x1UL << 1) /**< TX FIFO Level Interrupt Flag */
+#define _EUSART_IF_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IF_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IF_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL_DEFAULT (_EUSART_IF_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL (0x1UL << 2) /**< RX FIFO Level Interrupt Flag */
+#define _EUSART_IF_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IF_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IF_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL_DEFAULT (_EUSART_IF_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL (0x1UL << 3) /**< RX FIFO Full Interrupt Flag */
+#define _EUSART_IF_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL_DEFAULT (_EUSART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF (0x1UL << 4) /**< RX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IF_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF_DEFAULT (_EUSART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF (0x1UL << 5) /**< RX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IF_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF_DEFAULT (_EUSART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF (0x1UL << 6) /**< TX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IF_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF_DEFAULT (_EUSART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF (0x1UL << 7) /**< TX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IF_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF_DEFAULT (_EUSART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _EUSART_IF_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IF_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR_DEFAULT (_EUSART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _EUSART_IF_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IF_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR_DEFAULT (_EUSART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _EUSART_IF_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IF_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF_DEFAULT (_EUSART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR (0x1UL << 11) /**< Load Error Interrupt Flag */
+#define _EUSART_IF_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR_DEFAULT (_EUSART_IF_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _EUSART_IF_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IF_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF_DEFAULT (_EUSART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _EUSART_IF_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE_DEFAULT (_EUSART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU (0x1UL << 16) /**< CS Wake-up Interrupt Flag */
+#define _EUSART_IF_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IF_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IF_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU_DEFAULT (_EUSART_IF_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF (0x1UL << 18) /**< Start Frame Interrupt Flag */
+#define _EUSART_IF_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IF_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IF_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF_DEFAULT (_EUSART_IF_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF (0x1UL << 19) /**< Signal Frame Interrupt Flag */
+#define _EUSART_IF_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IF_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IF_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF_DEFAULT (_EUSART_IF_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete Interrupt Flag */
+#define _EUSART_IF_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE_DEFAULT (_EUSART_IF_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO (0x1UL << 25) /**< RX Timeout Interrupt Flag */
+#define _EUSART_IF_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IF_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IF_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO_DEFAULT (_EUSART_IF_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IF */
+
+/* Bit fields for EUSART IEN */
+#define _EUSART_IEN_RESETVALUE 0x00000000UL /**< Default value for EUSART_IEN */
+#define _EUSART_IEN_MASK 0x030D3FFFUL /**< Mask for EUSART_IEN */
+#define EUSART_IEN_TXC (0x1UL << 0) /**< TX Complete IEN */
+#define _EUSART_IEN_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IEN_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXC_DEFAULT (_EUSART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL (0x1UL << 1) /**< TX FIFO Level IEN */
+#define _EUSART_IEN_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL_DEFAULT (_EUSART_IEN_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL (0x1UL << 2) /**< RX FIFO Level IEN */
+#define _EUSART_IEN_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL_DEFAULT (_EUSART_IEN_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL (0x1UL << 3) /**< RX FIFO Full IEN */
+#define _EUSART_IEN_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL_DEFAULT (_EUSART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF (0x1UL << 4) /**< RX FIFO Overflow IEN */
+#define _EUSART_IEN_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF_DEFAULT (_EUSART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF (0x1UL << 5) /**< RX FIFO Underflow IEN */
+#define _EUSART_IEN_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF_DEFAULT (_EUSART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF (0x1UL << 6) /**< TX FIFO Overflow IEN */
+#define _EUSART_IEN_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF_DEFAULT (_EUSART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF (0x1UL << 7) /**< TX FIFO Underflow IEN */
+#define _EUSART_IEN_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF_DEFAULT (_EUSART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR (0x1UL << 8) /**< Parity Error IEN */
+#define _EUSART_IEN_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IEN_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR_DEFAULT (_EUSART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR (0x1UL << 9) /**< Framing Error IEN */
+#define _EUSART_IEN_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IEN_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR_DEFAULT (_EUSART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Addr Frame IEN */
+#define _EUSART_IEN_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF_DEFAULT (_EUSART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR (0x1UL << 11) /**< Load Error IEN */
+#define _EUSART_IEN_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR_DEFAULT (_EUSART_IEN_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail IEN */
+#define _EUSART_IEN_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IEN_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF_DEFAULT (_EUSART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE (0x1UL << 13) /**< TX IDLE IEN */
+#define _EUSART_IEN_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE_DEFAULT (_EUSART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU (0x1UL << 16) /**< CS Wake-up IEN */
+#define _EUSART_IEN_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU_DEFAULT (_EUSART_IEN_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF (0x1UL << 18) /**< Start Frame IEN */
+#define _EUSART_IEN_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF_DEFAULT (_EUSART_IEN_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF (0x1UL << 19) /**< Signal Frame IEN */
+#define _EUSART_IEN_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF_DEFAULT (_EUSART_IEN_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete IEN */
+#define _EUSART_IEN_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE_DEFAULT (_EUSART_IEN_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO (0x1UL << 25) /**< RX Timeout IEN */
+#define _EUSART_IEN_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO_DEFAULT (_EUSART_IEN_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IEN */
+
+/* Bit fields for EUSART SYNCBUSY */
+#define _EUSART_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for EUSART_SYNCBUSY */
+#define _EUSART_SYNCBUSY_MASK 0x00000FFFUL /**< Mask for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV (0x1UL << 0) /**< SYNCBUSY for DIV in CLKDIV */
+#define _EUSART_SYNCBUSY_DIV_SHIFT 0 /**< Shift value for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_MASK 0x1UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV_DEFAULT (_EUSART_SYNCBUSY_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN (0x1UL << 1) /**< SYNCBUSY for RXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_RXTEN_SHIFT 1 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_MASK 0x2UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN_DEFAULT (_EUSART_SYNCBUSY_RXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN (0x1UL << 2) /**< SYNCBUSY for TXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_TXTEN_SHIFT 2 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_MASK 0x4UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN_DEFAULT (_EUSART_SYNCBUSY_TXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN (0x1UL << 3) /**< SYNCBUSY for RXEN in CMD */
+#define _EUSART_SYNCBUSY_RXEN_SHIFT 3 /**< Shift value for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_MASK 0x8UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN_DEFAULT (_EUSART_SYNCBUSY_RXEN_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS (0x1UL << 4) /**< SYNCBUSY for RXDIS in CMD */
+#define _EUSART_SYNCBUSY_RXDIS_SHIFT 4 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_MASK 0x10UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS_DEFAULT (_EUSART_SYNCBUSY_RXDIS_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN (0x1UL << 5) /**< SYNCBUSY for TXEN in CMD */
+#define _EUSART_SYNCBUSY_TXEN_SHIFT 5 /**< Shift value for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_MASK 0x20UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN_DEFAULT (_EUSART_SYNCBUSY_TXEN_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS (0x1UL << 6) /**< SYNCBUSY for TXDIS in CMD */
+#define _EUSART_SYNCBUSY_TXDIS_SHIFT 6 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_MASK 0x40UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS_DEFAULT (_EUSART_SYNCBUSY_TXDIS_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN (0x1UL << 7) /**< SYNCBUSY for RXBLOCKEN in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_SHIFT 7 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_MASK 0x80UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS (0x1UL << 8) /**< SYNCBUSY for RXBLOCKDIS in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_SHIFT 8 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_MASK 0x100UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN (0x1UL << 9) /**< SYNCBUSY for TXTRIEN in CMD */
+#define _EUSART_SYNCBUSY_TXTRIEN_SHIFT 9 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_MASK 0x200UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN_DEFAULT (_EUSART_SYNCBUSY_TXTRIEN_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS (0x1UL << 10) /**< SYNCBUSY in TXTRIDIS in CMD */
+#define _EUSART_SYNCBUSY_TXTRIDIS_SHIFT 10 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_MASK 0x400UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS_DEFAULT (_EUSART_SYNCBUSY_TXTRIDIS_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN (0x1UL << 11) /**< SYNCBUSY for AUTOTXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_SHIFT 11 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_MASK 0x800UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT (_EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+
+/** @} End of group EFR32BG29_EUSART_BitFields */
+/** @} End of group EFR32BG29_EUSART */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_EUSART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_fsrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_fsrco.h
new file mode 100644
index 000000000..1c38e1a91
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_fsrco.h
@@ -0,0 +1,75 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 FSRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_FSRCO_H
+#define EFR32BG29_FSRCO_H
+#define FSRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_FSRCO FSRCO
+ * @{
+ * @brief EFR32BG29 FSRCO Register Declaration.
+ *****************************************************************************/
+
+/** FSRCO Register Declaration. */
+typedef struct fsrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ uint32_t RESERVED0[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ uint32_t RESERVED1[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ uint32_t RESERVED2[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+} FSRCO_TypeDef;
+/** @} End of group EFR32BG29_FSRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_FSRCO
+ * @{
+ * @defgroup EFR32BG29_FSRCO_BitFields FSRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for FSRCO IPVERSION */
+#define _FSRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for FSRCO_IPVERSION */
+#define FSRCO_IPVERSION_IPVERSION_DEFAULT (_FSRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for FSRCO_IPVERSION */
+
+/** @} End of group EFR32BG29_FSRCO_BitFields */
+/** @} End of group EFR32BG29_FSRCO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_FSRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpcrc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpcrc.h
new file mode 100644
index 000000000..a6c3559ff
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpcrc.h
@@ -0,0 +1,246 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 GPCRC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_GPCRC_H
+#define EFR32BG29_GPCRC_H
+#define GPCRC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_GPCRC GPCRC
+ * @{
+ * @brief EFR32BG29 GPCRC Register Declaration.
+ *****************************************************************************/
+
+/** GPCRC Register Declaration. */
+typedef struct gpcrc_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t EN; /**< CRC Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t INIT; /**< CRC Init Value */
+ __IOM uint32_t POLY; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA; /**< CRC Data Register */
+ __IM uint32_t DATAREV; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED0[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t EN_SET; /**< CRC Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t INIT_SET; /**< CRC Init Value */
+ __IOM uint32_t POLY_SET; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_SET; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_SET; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_SET; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_SET; /**< CRC Data Register */
+ __IM uint32_t DATAREV_SET; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_SET; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED1[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t EN_CLR; /**< CRC Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t INIT_CLR; /**< CRC Init Value */
+ __IOM uint32_t POLY_CLR; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_CLR; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_CLR; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_CLR; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_CLR; /**< CRC Data Register */
+ __IM uint32_t DATAREV_CLR; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_CLR; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED2[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t EN_TGL; /**< CRC Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t INIT_TGL; /**< CRC Init Value */
+ __IOM uint32_t POLY_TGL; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_TGL; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_TGL; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_TGL; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_TGL; /**< CRC Data Register */
+ __IM uint32_t DATAREV_TGL; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_TGL; /**< CRC Data Byte Reverse Register */
+} GPCRC_TypeDef;
+/** @} End of group EFR32BG29_GPCRC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_GPCRC
+ * @{
+ * @defgroup EFR32BG29_GPCRC_BitFields GPCRC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for GPCRC IPVERSION */
+#define _GPCRC_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_IPVERSION */
+#define GPCRC_IPVERSION_IPVERSION_DEFAULT (_GPCRC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_IPVERSION */
+
+/* Bit fields for GPCRC EN */
+#define _GPCRC_EN_RESETVALUE 0x00000000UL /**< Default value for GPCRC_EN */
+#define _GPCRC_EN_MASK 0x00000001UL /**< Mask for GPCRC_EN */
+#define GPCRC_EN_EN (0x1UL << 0) /**< CRC Enable */
+#define _GPCRC_EN_EN_SHIFT 0 /**< Shift value for GPCRC_EN */
+#define _GPCRC_EN_EN_MASK 0x1UL /**< Bit mask for GPCRC_EN */
+#define _GPCRC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_EN */
+#define _GPCRC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for GPCRC_EN */
+#define _GPCRC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for GPCRC_EN */
+#define GPCRC_EN_EN_DEFAULT (_GPCRC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_EN */
+#define GPCRC_EN_EN_DISABLE (_GPCRC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for GPCRC_EN */
+#define GPCRC_EN_EN_ENABLE (_GPCRC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for GPCRC_EN */
+
+/* Bit fields for GPCRC CTRL */
+#define _GPCRC_CTRL_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CTRL */
+#define _GPCRC_CTRL_MASK 0x00002710UL /**< Mask for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL (0x1UL << 4) /**< Polynomial Select */
+#define _GPCRC_CTRL_POLYSEL_SHIFT 4 /**< Shift value for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_MASK 0x10UL /**< Bit mask for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC32 0x00000000UL /**< Mode CRC32 for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC16 0x00000001UL /**< Mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_DEFAULT (_GPCRC_CTRL_POLYSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC32 (_GPCRC_CTRL_POLYSEL_CRC32 << 4) /**< Shifted mode CRC32 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC16 (_GPCRC_CTRL_POLYSEL_CRC16 << 4) /**< Shifted mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE (0x1UL << 8) /**< Byte Mode Enable */
+#define _GPCRC_CTRL_BYTEMODE_SHIFT 8 /**< Shift value for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_MASK 0x100UL /**< Bit mask for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE_DEFAULT (_GPCRC_CTRL_BYTEMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE (0x1UL << 9) /**< Byte-level Bit Reverse Enable */
+#define _GPCRC_CTRL_BITREVERSE_SHIFT 9 /**< Shift value for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_MASK 0x200UL /**< Bit mask for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_DEFAULT (_GPCRC_CTRL_BITREVERSE_DEFAULT << 9) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_NORMAL (_GPCRC_CTRL_BITREVERSE_NORMAL << 9) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_REVERSED (_GPCRC_CTRL_BITREVERSE_REVERSED << 9) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE (0x1UL << 10) /**< Byte Reverse Mode */
+#define _GPCRC_CTRL_BYTEREVERSE_SHIFT 10 /**< Shift value for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_MASK 0x400UL /**< Bit mask for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_DEFAULT (_GPCRC_CTRL_BYTEREVERSE_DEFAULT << 10) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_NORMAL (_GPCRC_CTRL_BYTEREVERSE_NORMAL << 10) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_REVERSED (_GPCRC_CTRL_BYTEREVERSE_REVERSED << 10) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT (0x1UL << 13) /**< Auto Init Enable */
+#define _GPCRC_CTRL_AUTOINIT_SHIFT 13 /**< Shift value for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_MASK 0x2000UL /**< Bit mask for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT_DEFAULT (_GPCRC_CTRL_AUTOINIT_DEFAULT << 13) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+
+/* Bit fields for GPCRC CMD */
+#define _GPCRC_CMD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CMD */
+#define _GPCRC_CMD_MASK 0x80000001UL /**< Mask for GPCRC_CMD */
+#define GPCRC_CMD_INIT (0x1UL << 0) /**< Initialization Enable */
+#define _GPCRC_CMD_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_MASK 0x1UL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CMD */
+#define GPCRC_CMD_INIT_DEFAULT (_GPCRC_CMD_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_CMD */
+
+/* Bit fields for GPCRC INIT */
+#define _GPCRC_INIT_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INIT */
+#define _GPCRC_INIT_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INIT */
+#define GPCRC_INIT_INIT_DEFAULT (_GPCRC_INIT_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INIT */
+
+/* Bit fields for GPCRC POLY */
+#define _GPCRC_POLY_RESETVALUE 0x00000000UL /**< Default value for GPCRC_POLY */
+#define _GPCRC_POLY_MASK 0x0000FFFFUL /**< Mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_SHIFT 0 /**< Shift value for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_MASK 0xFFFFUL /**< Bit mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_POLY */
+#define GPCRC_POLY_POLY_DEFAULT (_GPCRC_POLY_POLY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_POLY */
+
+/* Bit fields for GPCRC INPUTDATA */
+#define _GPCRC_INPUTDATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_SHIFT 0 /**< Shift value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATA */
+#define GPCRC_INPUTDATA_INPUTDATA_DEFAULT (_GPCRC_INPUTDATA_INPUTDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATA */
+
+/* Bit fields for GPCRC INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_MASK 0x0000FFFFUL /**< Mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_SHIFT 0 /**< Shift value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_MASK 0xFFFFUL /**< Bit mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATAHWORD */
+#define GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT (_GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATAHWORD*/
+
+/* Bit fields for GPCRC INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_MASK 0x000000FFUL /**< Mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_SHIFT 0 /**< Shift value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_MASK 0xFFUL /**< Bit mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATABYTE */
+#define GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT (_GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATABYTE*/
+
+/* Bit fields for GPCRC DATA */
+#define _GPCRC_DATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATA */
+#define _GPCRC_DATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_SHIFT 0 /**< Shift value for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATA */
+#define GPCRC_DATA_DATA_DEFAULT (_GPCRC_DATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATA */
+
+/* Bit fields for GPCRC DATAREV */
+#define _GPCRC_DATAREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_SHIFT 0 /**< Shift value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATAREV */
+#define GPCRC_DATAREV_DATAREV_DEFAULT (_GPCRC_DATAREV_DATAREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATAREV */
+
+/* Bit fields for GPCRC DATABYTEREV */
+#define _GPCRC_DATABYTEREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_SHIFT 0 /**< Shift value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATABYTEREV */
+#define GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT (_GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATABYTEREV */
+
+/** @} End of group EFR32BG29_GPCRC_BitFields */
+/** @} End of group EFR32BG29_GPCRC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_GPCRC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio.h
new file mode 100644
index 000000000..69dee19da
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio.h
@@ -0,0 +1,2200 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 GPIO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_GPIO_H
+#define EFR32BG29_GPIO_H
+#define GPIO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+
+#include "efr32bg29_gpio_port.h"
+
+typedef struct gpio_acmproute_typedef{
+ __IOM uint32_t ROUTEEN; /**< ACMP0 pin enable */
+ __IOM uint32_t ACMPOUTROUTE; /**< ACMPOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_ACMPROUTE_TypeDef;
+
+typedef struct gpio_cmuroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< CMU pin enable */
+ __IOM uint32_t CLKIN0ROUTE; /**< CLKIN0 port/pin select */
+ __IOM uint32_t CLKOUT0ROUTE; /**< CLKOUT0 port/pin select */
+ __IOM uint32_t CLKOUT1ROUTE; /**< CLKOUT1 port/pin select */
+ __IOM uint32_t CLKOUT2ROUTE; /**< CLKOUT2 port/pin select */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+} GPIO_CMUROUTE_TypeDef;
+
+typedef struct gpio_eusartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< EUSART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t SCLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_EUSARTROUTE_TypeDef;
+
+typedef struct gpio_frcroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< FRC pin enable */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DFRAMEROUTE; /**< DFRAME port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_FRCROUTE_TypeDef;
+
+typedef struct gpio_i2croute_typedef{
+ __IOM uint32_t ROUTEEN; /**< I2C0 pin enable */
+ __IOM uint32_t SCLROUTE; /**< SCL port/pin select */
+ __IOM uint32_t SDAROUTE; /**< SDA port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_I2CROUTE_TypeDef;
+
+typedef struct gpio_letimerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< LETIMER pin enable */
+ __IOM uint32_t OUT0ROUTE; /**< OUT0 port/pin select */
+ __IOM uint32_t OUT1ROUTE; /**< OUT1 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_LETIMERROUTE_TypeDef;
+
+typedef struct gpio_modemroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< MODEM pin enable */
+ __IOM uint32_t ANT0ROUTE; /**< ANT0 port/pin select */
+ __IOM uint32_t ANT1ROUTE; /**< ANT1 port/pin select */
+ __IOM uint32_t ANTROLLOVERROUTE; /**< ANTROLLOVER port/pin select */
+ __IOM uint32_t ANTRR0ROUTE; /**< ANTRR0 port/pin select */
+ __IOM uint32_t ANTRR1ROUTE; /**< ANTRR1 port/pin select */
+ __IOM uint32_t ANTRR2ROUTE; /**< ANTRR2 port/pin select */
+ __IOM uint32_t ANTRR3ROUTE; /**< ANTRR3 port/pin select */
+ __IOM uint32_t ANTRR4ROUTE; /**< ANTRR4 port/pin select */
+ __IOM uint32_t ANTRR5ROUTE; /**< ANTRR5 port/pin select */
+ __IOM uint32_t ANTSWENROUTE; /**< ANTSWEN port/pin select */
+ __IOM uint32_t ANTSWUSROUTE; /**< ANTSWUS port/pin select */
+ __IOM uint32_t ANTTRIGROUTE; /**< ANTTRIG port/pin select */
+ __IOM uint32_t ANTTRIGSTOPROUTE; /**< ANTTRIGSTOP port/pin select */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DINROUTE; /**< DIN port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_MODEMROUTE_TypeDef;
+
+typedef struct gpio_pdmroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< PDM pin enable */
+ __IOM uint32_t CLKROUTE; /**< CLK port/pin select */
+ __IOM uint32_t DAT0ROUTE; /**< DAT0 port/pin select */
+ __IOM uint32_t DAT1ROUTE; /**< DAT1 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_PDMROUTE_TypeDef;
+
+typedef struct gpio_prsroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< PRS0 pin enable */
+ __IOM uint32_t ASYNCH0ROUTE; /**< ASYNCH0 port/pin select */
+ __IOM uint32_t ASYNCH1ROUTE; /**< ASYNCH1 port/pin select */
+ __IOM uint32_t ASYNCH2ROUTE; /**< ASYNCH2 port/pin select */
+ __IOM uint32_t ASYNCH3ROUTE; /**< ASYNCH3 port/pin select */
+ __IOM uint32_t ASYNCH4ROUTE; /**< ASYNCH4 port/pin select */
+ __IOM uint32_t ASYNCH5ROUTE; /**< ASYNCH5 port/pin select */
+ __IOM uint32_t ASYNCH6ROUTE; /**< ASYNCH6 port/pin select */
+ __IOM uint32_t ASYNCH7ROUTE; /**< ASYNCH7 port/pin select */
+ __IOM uint32_t ASYNCH8ROUTE; /**< ASYNCH8 port/pin select */
+ __IOM uint32_t ASYNCH9ROUTE; /**< ASYNCH9 port/pin select */
+ __IOM uint32_t ASYNCH10ROUTE; /**< ASYNCH10 port/pin select */
+ __IOM uint32_t ASYNCH11ROUTE; /**< ASYNCH11 port/pin select */
+ __IOM uint32_t SYNCH0ROUTE; /**< SYNCH0 port/pin select */
+ __IOM uint32_t SYNCH1ROUTE; /**< SYNCH1 port/pin select */
+ __IOM uint32_t SYNCH2ROUTE; /**< SYNCH2 port/pin select */
+ __IOM uint32_t SYNCH3ROUTE; /**< SYNCH3 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_PRSROUTE_TypeDef;
+
+typedef struct gpio_timerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< TIMER0 pin enable */
+ __IOM uint32_t CC0ROUTE; /**< CC0 port/pin select */
+ __IOM uint32_t CC1ROUTE; /**< CC1 port/pin select */
+ __IOM uint32_t CC2ROUTE; /**< CC2 port/pin select */
+ __IOM uint32_t CDTI0ROUTE; /**< CDTI0 port/pin select */
+ __IOM uint32_t CDTI1ROUTE; /**< CDTI1 port/pin select */
+ __IOM uint32_t CDTI2ROUTE; /**< CDTI2 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_TIMERROUTE_TypeDef;
+
+typedef struct gpio_usartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< USART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t CLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_USARTROUTE_TypeDef;
+
+typedef struct gpio_typedef{
+ __IM uint32_t IPVERSION; /**< main */
+ uint32_t RESERVED0[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P[4U]; /**< */
+ uint32_t RESERVED1[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS; /**< Lock Status */
+ uint32_t RESERVED3[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC; /**< CD Bus allocation */
+ uint32_t RESERVED4[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED5[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN; /**< Trace Route Pin Enable */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE; /**< cmu DBUS config registers */
+ uint32_t RESERVED9[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED10[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< main */
+ uint32_t RESERVED11[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_SET[4U]; /**< */
+ uint32_t RESERVED12[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_SET; /**< Lock Status */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_SET; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_SET; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_SET; /**< CD Bus allocation */
+ uint32_t RESERVED15[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_SET; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_SET; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_SET; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_SET; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_SET; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_SET; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_SET; /**< EM4 wakeup polarity */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_SET; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_SET; /**< Trace Route Pin Enable */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_SET[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_SET; /**< cmu DBUS config registers */
+ uint32_t RESERVED20[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_SET[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_SET; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_SET[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_SET; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_SET; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_SET; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_SET[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_SET[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_SET[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED21[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< main */
+ uint32_t RESERVED22[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_CLR[4U]; /**< */
+ uint32_t RESERVED23[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED24[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_CLR; /**< Lock Status */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_CLR; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_CLR; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_CLR; /**< CD Bus allocation */
+ uint32_t RESERVED26[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_CLR; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_CLR; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_CLR; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_CLR; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_CLR; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_CLR; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED27[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_CLR; /**< EM4 wakeup polarity */
+ uint32_t RESERVED29[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_CLR; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_CLR; /**< Trace Route Pin Enable */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_CLR[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_CLR; /**< cmu DBUS config registers */
+ uint32_t RESERVED31[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_CLR[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_CLR; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_CLR[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_CLR; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_CLR; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_CLR; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_CLR[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_CLR[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_CLR[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED32[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< main */
+ uint32_t RESERVED33[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_TGL[4U]; /**< */
+ uint32_t RESERVED34[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ uint32_t RESERVED35[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_TGL; /**< Lock Status */
+ uint32_t RESERVED36[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_TGL; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_TGL; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_TGL; /**< CD Bus allocation */
+ uint32_t RESERVED37[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_TGL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_TGL; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_TGL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_TGL; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_TGL; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_TGL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED38[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_TGL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_TGL; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_TGL; /**< Trace Route Pin Enable */
+ uint32_t RESERVED41[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_TGL[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_TGL; /**< cmu DBUS config registers */
+ uint32_t RESERVED42[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_TGL[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_TGL; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_TGL[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_TGL; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_TGL; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_TGL; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_TGL[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_TGL[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_TGL[2U]; /**< usart0 DBUS config registers */
+} GPIO_TypeDef;
+
+/* Bit fields for GPIO IPVERSION */
+#define _GPIO_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_IPVERSION_IPVERSION_DEFAULT (_GPIO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_PORTA 0x00000000UL /**< PORTA index */
+#define GPIO_PORTB 0x00000001UL /**< PORTB index */
+#define GPIO_PORTC 0x00000002UL /**< PORTC index */
+#define GPIO_PORTD 0x00000003UL /**< PORTD index */
+
+/* Bit fields for GPIO LOCK */
+#define _GPIO_LOCK_RESETVALUE 0x0000A534UL /**< Default value for GPIO_LOCK */
+#define _GPIO_LOCK_MASK 0x0000FFFFUL /**< Mask for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_DEFAULT 0x0000A534UL /**< Mode DEFAULT for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_UNLOCK 0x0000A534UL /**< Mode UNLOCK for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_DEFAULT (_GPIO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_UNLOCK (_GPIO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for GPIO_LOCK */
+
+/* Bit fields for GPIO GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_MASK 0x00000001UL /**< Mask for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK (0x1UL << 0) /**< GPIO LOCK status */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT (_GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_LOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for GPIO_GPIOLOCKSTATUS */
+
+/* Bit fields for GPIO ABUSALLOC */
+#define _GPIO_ABUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_SHIFT 0 /**< Shift value for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_MASK 0xFUL /**< Bit mask for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_DEFAULT (_GPIO_ABUSALLOC_AEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_TRISTATE (_GPIO_ABUSALLOC_AEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ADC0 (_GPIO_ABUSALLOC_AEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ACMP0 (_GPIO_ABUSALLOC_AEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_SHIFT 8 /**< Shift value for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_DEFAULT (_GPIO_ABUSALLOC_AEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_TRISTATE (_GPIO_ABUSALLOC_AEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ADC0 (_GPIO_ABUSALLOC_AEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ACMP0 (_GPIO_ABUSALLOC_AEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_SHIFT 16 /**< Shift value for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_MASK 0xF0000UL /**< Bit mask for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_DEFAULT (_GPIO_ABUSALLOC_AODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_TRISTATE (_GPIO_ABUSALLOC_AODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ADC0 (_GPIO_ABUSALLOC_AODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ACMP0 (_GPIO_ABUSALLOC_AODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_SHIFT 24 /**< Shift value for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_MASK 0xF000000UL /**< Bit mask for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_DEFAULT (_GPIO_ABUSALLOC_AODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_TRISTATE (_GPIO_ABUSALLOC_AODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ADC0 (_GPIO_ABUSALLOC_AODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ACMP0 (_GPIO_ABUSALLOC_AODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+
+/* Bit fields for GPIO BBUSALLOC */
+#define _GPIO_BBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_SHIFT 0 /**< Shift value for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_MASK 0xFUL /**< Bit mask for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_DEFAULT (_GPIO_BBUSALLOC_BEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_TRISTATE (_GPIO_BBUSALLOC_BEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ADC0 (_GPIO_BBUSALLOC_BEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ACMP0 (_GPIO_BBUSALLOC_BEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_SHIFT 8 /**< Shift value for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_DEFAULT (_GPIO_BBUSALLOC_BEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_TRISTATE (_GPIO_BBUSALLOC_BEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ADC0 (_GPIO_BBUSALLOC_BEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ACMP0 (_GPIO_BBUSALLOC_BEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_SHIFT 16 /**< Shift value for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_MASK 0xF0000UL /**< Bit mask for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_DEFAULT (_GPIO_BBUSALLOC_BODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_TRISTATE (_GPIO_BBUSALLOC_BODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ADC0 (_GPIO_BBUSALLOC_BODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ACMP0 (_GPIO_BBUSALLOC_BODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_SHIFT 24 /**< Shift value for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_MASK 0xF000000UL /**< Bit mask for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_DEFAULT (_GPIO_BBUSALLOC_BODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_TRISTATE (_GPIO_BBUSALLOC_BODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ADC0 (_GPIO_BBUSALLOC_BODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ACMP0 (_GPIO_BBUSALLOC_BODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+
+/* Bit fields for GPIO CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_SHIFT 0 /**< Shift value for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_MASK 0xFUL /**< Bit mask for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ADC0 (_GPIO_CDBUSALLOC_CDEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_SHIFT 8 /**< Shift value for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ADC0 (_GPIO_CDBUSALLOC_CDEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_SHIFT 16 /**< Shift value for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_MASK 0xF0000UL /**< Bit mask for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_DEFAULT (_GPIO_CDBUSALLOC_CDODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_TRISTATE (_GPIO_CDBUSALLOC_CDODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ADC0 (_GPIO_CDBUSALLOC_CDODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ACMP0 (_GPIO_CDBUSALLOC_CDODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_SHIFT 24 /**< Shift value for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_MASK 0xF000000UL /**< Bit mask for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_DEFAULT (_GPIO_CDBUSALLOC_CDODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_TRISTATE (_GPIO_CDBUSALLOC_CDODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ADC0 (_GPIO_CDBUSALLOC_CDODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ACMP0 (_GPIO_CDBUSALLOC_CDODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+
+/* Bit fields for GPIO EXTIPSELL */
+#define _GPIO_EXTIPSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTA (_GPIO_EXTIPSELL_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTB (_GPIO_EXTIPSELL_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTC (_GPIO_EXTIPSELL_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTD (_GPIO_EXTIPSELL_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTA (_GPIO_EXTIPSELL_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTB (_GPIO_EXTIPSELL_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTC (_GPIO_EXTIPSELL_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTD (_GPIO_EXTIPSELL_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTA (_GPIO_EXTIPSELL_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTB (_GPIO_EXTIPSELL_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTC (_GPIO_EXTIPSELL_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTD (_GPIO_EXTIPSELL_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTA (_GPIO_EXTIPSELL_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTB (_GPIO_EXTIPSELL_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTC (_GPIO_EXTIPSELL_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTD (_GPIO_EXTIPSELL_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTA (_GPIO_EXTIPSELL_EXTIPSEL4_PORTA << 16) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTB (_GPIO_EXTIPSELL_EXTIPSEL4_PORTB << 16) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTC (_GPIO_EXTIPSELL_EXTIPSEL4_PORTC << 16) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTD (_GPIO_EXTIPSELL_EXTIPSEL4_PORTD << 16) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTA (_GPIO_EXTIPSELL_EXTIPSEL5_PORTA << 20) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTB (_GPIO_EXTIPSELL_EXTIPSEL5_PORTB << 20) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTC (_GPIO_EXTIPSELL_EXTIPSEL5_PORTC << 20) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTD (_GPIO_EXTIPSELL_EXTIPSEL5_PORTD << 20) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTA (_GPIO_EXTIPSELL_EXTIPSEL6_PORTA << 24) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTB (_GPIO_EXTIPSELL_EXTIPSEL6_PORTB << 24) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTC (_GPIO_EXTIPSELL_EXTIPSEL6_PORTC << 24) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTD (_GPIO_EXTIPSELL_EXTIPSEL6_PORTD << 24) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTA (_GPIO_EXTIPSELL_EXTIPSEL7_PORTA << 28) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTB (_GPIO_EXTIPSELL_EXTIPSEL7_PORTB << 28) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTC (_GPIO_EXTIPSELL_EXTIPSEL7_PORTC << 28) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTD (_GPIO_EXTIPSELL_EXTIPSEL7_PORTD << 28) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+
+/* Bit fields for GPIO EXTIPSELH */
+#define _GPIO_EXTIPSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTA (_GPIO_EXTIPSELH_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTB (_GPIO_EXTIPSELH_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTC (_GPIO_EXTIPSELH_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTD (_GPIO_EXTIPSELH_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTA (_GPIO_EXTIPSELH_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTB (_GPIO_EXTIPSELH_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTC (_GPIO_EXTIPSELH_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTD (_GPIO_EXTIPSELH_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTA (_GPIO_EXTIPSELH_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTB (_GPIO_EXTIPSELH_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTC (_GPIO_EXTIPSELH_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTD (_GPIO_EXTIPSELH_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTA (_GPIO_EXTIPSELH_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTB (_GPIO_EXTIPSELH_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTC (_GPIO_EXTIPSELH_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTD (_GPIO_EXTIPSELH_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+
+/* Bit fields for GPIO EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 << 0) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 << 0) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 << 0) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 << 0) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 << 4) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 << 4) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 << 4) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 << 4) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 << 8) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 << 8) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 << 8) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 << 8) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 << 12) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 << 12) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 << 12) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 << 12) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 << 16) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 << 16) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 << 16) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 << 16) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 << 20) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 << 20) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 << 20) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 << 20) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 << 24) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 << 24) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 << 24) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 << 24) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 << 28) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 << 28) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 << 28) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 << 28) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+
+/* Bit fields for GPIO EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 << 0) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 << 0) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 << 0) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 << 0) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 << 4) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 << 4) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 << 4) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 << 4) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 << 8) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 << 8) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 << 8) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 << 8) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 << 12) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 << 12) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 << 12) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 << 12) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+
+/* Bit fields for GPIO EXTIRISE */
+#define _GPIO_EXTIRISE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_SHIFT 0 /**< Shift value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIRISE */
+#define GPIO_EXTIRISE_EXTIRISE_DEFAULT (_GPIO_EXTIRISE_EXTIRISE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIRISE */
+
+/* Bit fields for GPIO EXTIFALL */
+#define _GPIO_EXTIFALL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_SHIFT 0 /**< Shift value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIFALL */
+#define GPIO_EXTIFALL_EXTIFALL_DEFAULT (_GPIO_EXTIFALL_EXTIFALL_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIFALL */
+
+/* Bit fields for GPIO IF */
+#define _GPIO_IF_RESETVALUE 0x00000000UL /**< Default value for GPIO_IF */
+#define _GPIO_IF_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IF */
+#define GPIO_IF_EXTIF0 (0x1UL << 0) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF0_SHIFT 0 /**< Shift value for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_MASK 0x1UL /**< Bit mask for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF0_DEFAULT (_GPIO_IF_EXTIF0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1 (0x1UL << 1) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF1_SHIFT 1 /**< Shift value for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_MASK 0x2UL /**< Bit mask for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1_DEFAULT (_GPIO_IF_EXTIF1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2 (0x1UL << 2) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF2_SHIFT 2 /**< Shift value for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_MASK 0x4UL /**< Bit mask for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2_DEFAULT (_GPIO_IF_EXTIF2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3 (0x1UL << 3) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF3_SHIFT 3 /**< Shift value for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_MASK 0x8UL /**< Bit mask for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3_DEFAULT (_GPIO_IF_EXTIF3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4 (0x1UL << 4) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF4_SHIFT 4 /**< Shift value for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_MASK 0x10UL /**< Bit mask for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4_DEFAULT (_GPIO_IF_EXTIF4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5 (0x1UL << 5) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF5_SHIFT 5 /**< Shift value for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_MASK 0x20UL /**< Bit mask for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5_DEFAULT (_GPIO_IF_EXTIF5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6 (0x1UL << 6) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF6_SHIFT 6 /**< Shift value for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_MASK 0x40UL /**< Bit mask for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6_DEFAULT (_GPIO_IF_EXTIF6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7 (0x1UL << 7) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF7_SHIFT 7 /**< Shift value for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_MASK 0x80UL /**< Bit mask for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7_DEFAULT (_GPIO_IF_EXTIF7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8 (0x1UL << 8) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF8_SHIFT 8 /**< Shift value for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_MASK 0x100UL /**< Bit mask for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8_DEFAULT (_GPIO_IF_EXTIF8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9 (0x1UL << 9) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF9_SHIFT 9 /**< Shift value for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_MASK 0x200UL /**< Bit mask for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9_DEFAULT (_GPIO_IF_EXTIF9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10 (0x1UL << 10) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF10_SHIFT 10 /**< Shift value for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_MASK 0x400UL /**< Bit mask for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10_DEFAULT (_GPIO_IF_EXTIF10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11 (0x1UL << 11) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF11_SHIFT 11 /**< Shift value for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_MASK 0x800UL /**< Bit mask for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11_DEFAULT (_GPIO_IF_EXTIF11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IF */
+#define _GPIO_IF_EM4WU_SHIFT 16 /**< Shift value for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EM4WU_DEFAULT (_GPIO_IF_EM4WU_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IF */
+
+/* Bit fields for GPIO IEN */
+#define _GPIO_IEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_IEN */
+#define _GPIO_IEN_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0 (0x1UL << 0) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN0_SHIFT 0 /**< Shift value for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_MASK 0x1UL /**< Bit mask for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0_DEFAULT (_GPIO_IEN_EXTIEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1 (0x1UL << 1) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN1_SHIFT 1 /**< Shift value for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_MASK 0x2UL /**< Bit mask for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1_DEFAULT (_GPIO_IEN_EXTIEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2 (0x1UL << 2) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN2_SHIFT 2 /**< Shift value for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_MASK 0x4UL /**< Bit mask for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2_DEFAULT (_GPIO_IEN_EXTIEN2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3 (0x1UL << 3) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN3_SHIFT 3 /**< Shift value for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_MASK 0x8UL /**< Bit mask for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3_DEFAULT (_GPIO_IEN_EXTIEN3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4 (0x1UL << 4) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN4_SHIFT 4 /**< Shift value for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_MASK 0x10UL /**< Bit mask for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4_DEFAULT (_GPIO_IEN_EXTIEN4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5 (0x1UL << 5) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN5_SHIFT 5 /**< Shift value for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_MASK 0x20UL /**< Bit mask for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5_DEFAULT (_GPIO_IEN_EXTIEN5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6 (0x1UL << 6) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN6_SHIFT 6 /**< Shift value for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_MASK 0x40UL /**< Bit mask for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6_DEFAULT (_GPIO_IEN_EXTIEN6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7 (0x1UL << 7) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN7_SHIFT 7 /**< Shift value for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_MASK 0x80UL /**< Bit mask for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7_DEFAULT (_GPIO_IEN_EXTIEN7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8 (0x1UL << 8) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN8_SHIFT 8 /**< Shift value for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_MASK 0x100UL /**< Bit mask for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8_DEFAULT (_GPIO_IEN_EXTIEN8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9 (0x1UL << 9) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN9_SHIFT 9 /**< Shift value for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_MASK 0x200UL /**< Bit mask for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9_DEFAULT (_GPIO_IEN_EXTIEN9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10 (0x1UL << 10) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN10_SHIFT 10 /**< Shift value for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_MASK 0x400UL /**< Bit mask for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10_DEFAULT (_GPIO_IEN_EXTIEN10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11 (0x1UL << 11) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN11_SHIFT 11 /**< Shift value for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_MASK 0x800UL /**< Bit mask for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11_DEFAULT (_GPIO_IEN_EXTIEN11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0 (0x1UL << 16) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN0_SHIFT 16 /**< Shift value for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_MASK 0x10000UL /**< Bit mask for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0_DEFAULT (_GPIO_IEN_EM4WUIEN0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1 (0x1UL << 17) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN1_SHIFT 17 /**< Shift value for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_MASK 0x20000UL /**< Bit mask for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1_DEFAULT (_GPIO_IEN_EM4WUIEN1_DEFAULT << 17) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2 (0x1UL << 18) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN2_SHIFT 18 /**< Shift value for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_MASK 0x40000UL /**< Bit mask for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2_DEFAULT (_GPIO_IEN_EM4WUIEN2_DEFAULT << 18) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3 (0x1UL << 19) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN3_SHIFT 19 /**< Shift value for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_MASK 0x80000UL /**< Bit mask for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3_DEFAULT (_GPIO_IEN_EM4WUIEN3_DEFAULT << 19) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4 (0x1UL << 20) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN4_SHIFT 20 /**< Shift value for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_MASK 0x100000UL /**< Bit mask for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4_DEFAULT (_GPIO_IEN_EM4WUIEN4_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5 (0x1UL << 21) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN5_SHIFT 21 /**< Shift value for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_MASK 0x200000UL /**< Bit mask for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5_DEFAULT (_GPIO_IEN_EM4WUIEN5_DEFAULT << 21) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6 (0x1UL << 22) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN6_SHIFT 22 /**< Shift value for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_MASK 0x400000UL /**< Bit mask for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6_DEFAULT (_GPIO_IEN_EM4WUIEN6_DEFAULT << 22) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7 (0x1UL << 23) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN7_SHIFT 23 /**< Shift value for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_MASK 0x800000UL /**< Bit mask for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7_DEFAULT (_GPIO_IEN_EM4WUIEN7_DEFAULT << 23) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8 (0x1UL << 24) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN8_SHIFT 24 /**< Shift value for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_MASK 0x1000000UL /**< Bit mask for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8_DEFAULT (_GPIO_IEN_EM4WUIEN8_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9 (0x1UL << 25) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN9_SHIFT 25 /**< Shift value for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_MASK 0x2000000UL /**< Bit mask for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9_DEFAULT (_GPIO_IEN_EM4WUIEN9_DEFAULT << 25) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10 (0x1UL << 26) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN10_SHIFT 26 /**< Shift value for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_MASK 0x4000000UL /**< Bit mask for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10_DEFAULT (_GPIO_IEN_EM4WUIEN10_DEFAULT << 26) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11 (0x1UL << 27) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN11_SHIFT 27 /**< Shift value for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_MASK 0x8000000UL /**< Bit mask for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11_DEFAULT (_GPIO_IEN_EM4WUIEN11_DEFAULT << 27) /**< Shifted mode DEFAULT for GPIO_IEN */
+
+/* Bit fields for GPIO EM4WUEN */
+#define _GPIO_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_SHIFT 16 /**< Shift value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUEN */
+#define GPIO_EM4WUEN_EM4WUEN_DEFAULT (_GPIO_EM4WUEN_EM4WUEN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUEN */
+
+/* Bit fields for GPIO EM4WUPOL */
+#define _GPIO_EM4WUPOL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_SHIFT 16 /**< Shift value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUPOL */
+#define GPIO_EM4WUPOL_EM4WUPOL_DEFAULT (_GPIO_EM4WUPOL_EM4WUPOL_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUPOL */
+
+/* Bit fields for GPIO DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_RESETVALUE 0x0000000FUL /**< Default value for GPIO_DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_MASK 0x0000000FUL /**< Mask for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN (0x1UL << 0) /**< Route Pin Enable */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_SHIFT 0 /**< Shift value for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_MASK 0x1UL /**< Bit mask for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN (0x1UL << 1) /**< Route Location 0 */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_SHIFT 1 /**< Shift value for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_MASK 0x2UL /**< Bit mask for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN (0x1UL << 2) /**< JTAG Test Debug Output Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDOPEN_SHIFT 2 /**< Shift value for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_MASK 0x4UL /**< Bit mask for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDOPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN (0x1UL << 3) /**< JTAG Test Debug Input Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDIPEN_SHIFT 3 /**< Shift value for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_MASK 0x8UL /**< Bit mask for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDIPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+
+/* Bit fields for GPIO TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_MASK 0x0000003FUL /**< Mask for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN (0x1UL << 0) /**< Serial Wire Viewer Output Pin Enable */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_SHIFT 0 /**< Shift value for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_MASK 0x1UL /**< Bit mask for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT (_GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN (0x1UL << 1) /**< Trace Clk Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_SHIFT 1 /**< Shift value for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_MASK 0x2UL /**< Bit mask for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN (0x1UL << 2) /**< Trace Data0 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_SHIFT 2 /**< Shift value for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_MASK 0x4UL /**< Bit mask for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN (0x1UL << 3) /**< Trace Data1 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_SHIFT 3 /**< Shift value for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_MASK 0x8UL /**< Bit mask for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN (0x1UL << 4) /**< Trace Data2 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_SHIFT 4 /**< Shift value for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_MASK 0x10UL /**< Bit mask for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN (0x1UL << 5) /**< Trace Data3 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_SHIFT 5 /**< Shift value for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_MASK 0x20UL /**< Bit mask for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+
+/* Bit fields for GPIO_ACMP ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_MASK 0x00000001UL /**< Mask for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN (0x1UL << 0) /**< ACMPOUT pin enable control bit */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_SHIFT 0 /**< Shift value for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_MASK 0x1UL /**< Bit mask for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT (_GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ROUTEEN */
+
+/* Bit fields for GPIO_ACMP ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+
+/* Bit fields for GPIO_CMU ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_MASK 0x0000000FUL /**< Mask for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN (0x1UL << 0) /**< CLKOUT0 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_SHIFT 0 /**< Shift value for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN (0x1UL << 1) /**< CLKOUT1 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_SHIFT 1 /**< Shift value for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN (0x1UL << 2) /**< CLKOUT2 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_SHIFT 2 /**< Shift value for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_MASK 0x4UL /**< Bit mask for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+
+/* Bit fields for GPIO_CMU CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+
+/* Bit fields for GPIO_EUSART ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_SCLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_SHIFT 3 /**< Shift value for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_MASK 0x8UL /**< Bit mask for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+
+/* Bit fields for GPIO_EUSART CSROUTE */
+#define _GPIO_EUSART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PORT_DEFAULT (_GPIO_EUSART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+#define _GPIO_EUSART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PIN_DEFAULT (_GPIO_EUSART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+
+/* Bit fields for GPIO_EUSART CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PORT_DEFAULT (_GPIO_EUSART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+#define _GPIO_EUSART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PIN_DEFAULT (_GPIO_EUSART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PORT_DEFAULT (_GPIO_EUSART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+#define _GPIO_EUSART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PIN_DEFAULT (_GPIO_EUSART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RXROUTE */
+#define _GPIO_EUSART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PORT_DEFAULT (_GPIO_EUSART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+#define _GPIO_EUSART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PIN_DEFAULT (_GPIO_EUSART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+
+/* Bit fields for GPIO_EUSART SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PORT_DEFAULT (_GPIO_EUSART_SCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+#define _GPIO_EUSART_SCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PIN_DEFAULT (_GPIO_EUSART_SCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+
+/* Bit fields for GPIO_EUSART TXROUTE */
+#define _GPIO_EUSART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PORT_DEFAULT (_GPIO_EUSART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+#define _GPIO_EUSART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PIN_DEFAULT (_GPIO_EUSART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+
+/* Bit fields for GPIO_FRC ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_MASK 0x00000007UL /**< Mask for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN (0x1UL << 0) /**< DCLK pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_SHIFT 0 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_MASK 0x1UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN (0x1UL << 1) /**< DFRAME pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_SHIFT 1 /**< Shift value for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_MASK 0x2UL /**< Bit mask for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN (0x1UL << 2) /**< DOUT pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_SHIFT 2 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_MASK 0x4UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+
+/* Bit fields for GPIO_FRC DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PORT_DEFAULT (_GPIO_FRC_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PIN_DEFAULT (_GPIO_FRC_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+
+/* Bit fields for GPIO_FRC DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+#define _GPIO_FRC_DFRAMEROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+
+/* Bit fields for GPIO_FRC DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PORT_DEFAULT (_GPIO_FRC_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PIN_DEFAULT (_GPIO_FRC_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+
+/* Bit fields for GPIO_I2C ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN (0x1UL << 0) /**< SCL pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_SHIFT 0 /**< Shift value for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_MASK 0x1UL /**< Bit mask for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN (0x1UL << 1) /**< SDA pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_SHIFT 1 /**< Shift value for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_MASK 0x2UL /**< Bit mask for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+
+/* Bit fields for GPIO_I2C SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PORT_DEFAULT (_GPIO_I2C_SCLROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PIN_DEFAULT (_GPIO_I2C_SCLROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+
+/* Bit fields for GPIO_I2C SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PORT_DEFAULT (_GPIO_I2C_SDAROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PIN_DEFAULT (_GPIO_I2C_SDAROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+
+/* Bit fields for GPIO_LETIMER ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN (0x1UL << 0) /**< OUT0 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_SHIFT 0 /**< Shift value for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN (0x1UL << 1) /**< OUT1 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_SHIFT 1 /**< Shift value for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+
+/* Bit fields for GPIO_LETIMER OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+
+/* Bit fields for GPIO_LETIMER OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_MASK 0x00007FFFUL /**< Mask for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN (0x1UL << 0) /**< ANT0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_SHIFT 0 /**< Shift value for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_MASK 0x1UL /**< Bit mask for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN (0x1UL << 1) /**< ANT1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_SHIFT 1 /**< Shift value for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_MASK 0x2UL /**< Bit mask for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN (0x1UL << 2) /**< ANTROLLOVER pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_SHIFT 2 /**< Shift value for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_MASK 0x4UL /**< Bit mask for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN (0x1UL << 3) /**< ANTRR0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_SHIFT 3 /**< Shift value for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_MASK 0x8UL /**< Bit mask for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN (0x1UL << 4) /**< ANTRR1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_SHIFT 4 /**< Shift value for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_MASK 0x10UL /**< Bit mask for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN (0x1UL << 5) /**< ANTRR2 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_SHIFT 5 /**< Shift value for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_MASK 0x20UL /**< Bit mask for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN (0x1UL << 6) /**< ANTRR3 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_SHIFT 6 /**< Shift value for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_MASK 0x40UL /**< Bit mask for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN (0x1UL << 7) /**< ANTRR4 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_SHIFT 7 /**< Shift value for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_MASK 0x80UL /**< Bit mask for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN (0x1UL << 8) /**< ANTRR5 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_SHIFT 8 /**< Shift value for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_MASK 0x100UL /**< Bit mask for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN (0x1UL << 9) /**< ANTSWEN pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_SHIFT 9 /**< Shift value for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_MASK 0x200UL /**< Bit mask for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN (0x1UL << 10) /**< ANTSWUS pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_SHIFT 10 /**< Shift value for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_MASK 0x400UL /**< Bit mask for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN (0x1UL << 11) /**< ANTTRIG pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_SHIFT 11 /**< Shift value for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_MASK 0x800UL /**< Bit mask for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN (0x1UL << 12) /**< ANTTRIGSTOP pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_SHIFT 12 /**< Shift value for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_MASK 0x1000UL /**< Bit mask for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN (0x1UL << 13) /**< DCLK pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_SHIFT 13 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_MASK 0x2000UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN (0x1UL << 14) /**< DOUT pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_SHIFT 14 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_MASK 0x4000UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+
+/* Bit fields for GPIO_MODEM ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+#define _GPIO_MODEM_ANT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+#define _GPIO_MODEM_ANT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+
+/* Bit fields for GPIO_MODEM DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PORT_DEFAULT (_GPIO_MODEM_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+#define _GPIO_MODEM_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PIN_DEFAULT (_GPIO_MODEM_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+
+/* Bit fields for GPIO_MODEM DINROUTE */
+#define _GPIO_MODEM_DINROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PORT_DEFAULT (_GPIO_MODEM_DINROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+#define _GPIO_MODEM_DINROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PIN_DEFAULT (_GPIO_MODEM_DINROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+
+/* Bit fields for GPIO_MODEM DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PORT_DEFAULT (_GPIO_MODEM_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+#define _GPIO_MODEM_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PIN_DEFAULT (_GPIO_MODEM_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+
+/* Bit fields for GPIO_PDM ROUTEEN */
+#define _GPIO_PDM_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_ROUTEEN */
+#define _GPIO_PDM_ROUTEEN_MASK 0x00000001UL /**< Mask for GPIO_PDM_ROUTEEN */
+#define GPIO_PDM_ROUTEEN_CLKPEN (0x1UL << 0) /**< CLK pin enable control bit */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_SHIFT 0 /**< Shift value for GPIO_CLKPEN */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_MASK 0x1UL /**< Bit mask for GPIO_CLKPEN */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_ROUTEEN */
+#define GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT (_GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_ROUTEEN */
+
+/* Bit fields for GPIO_PDM CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_CLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_CLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define GPIO_PDM_CLKROUTE_PORT_DEFAULT (_GPIO_PDM_CLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_CLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_CLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define GPIO_PDM_CLKROUTE_PIN_DEFAULT (_GPIO_PDM_CLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_CLKROUTE */
+
+/* Bit fields for GPIO_PDM DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_DAT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_DAT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define GPIO_PDM_DAT0ROUTE_PORT_DEFAULT (_GPIO_PDM_DAT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_DAT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_DAT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define GPIO_PDM_DAT0ROUTE_PIN_DEFAULT (_GPIO_PDM_DAT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+
+/* Bit fields for GPIO_PDM DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_DAT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_DAT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define GPIO_PDM_DAT1ROUTE_PORT_DEFAULT (_GPIO_PDM_DAT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_DAT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_DAT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define GPIO_PDM_DAT1ROUTE_PIN_DEFAULT (_GPIO_PDM_DAT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+
+/* Bit fields for GPIO_PRS ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_MASK 0x0000FFFFUL /**< Mask for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN (0x1UL << 0) /**< ASYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_SHIFT 0 /**< Shift value for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_MASK 0x1UL /**< Bit mask for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN (0x1UL << 1) /**< ASYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_SHIFT 1 /**< Shift value for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_MASK 0x2UL /**< Bit mask for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN (0x1UL << 2) /**< ASYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_SHIFT 2 /**< Shift value for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_MASK 0x4UL /**< Bit mask for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN (0x1UL << 3) /**< ASYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_SHIFT 3 /**< Shift value for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_MASK 0x8UL /**< Bit mask for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN (0x1UL << 4) /**< ASYNCH4 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_SHIFT 4 /**< Shift value for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_MASK 0x10UL /**< Bit mask for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN (0x1UL << 5) /**< ASYNCH5 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_SHIFT 5 /**< Shift value for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_MASK 0x20UL /**< Bit mask for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN (0x1UL << 6) /**< ASYNCH6 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_SHIFT 6 /**< Shift value for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_MASK 0x40UL /**< Bit mask for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN (0x1UL << 7) /**< ASYNCH7 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_SHIFT 7 /**< Shift value for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_MASK 0x80UL /**< Bit mask for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN (0x1UL << 8) /**< ASYNCH8 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_SHIFT 8 /**< Shift value for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_MASK 0x100UL /**< Bit mask for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN (0x1UL << 9) /**< ASYNCH9 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_SHIFT 9 /**< Shift value for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_MASK 0x200UL /**< Bit mask for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN (0x1UL << 10) /**< ASYNCH10 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_SHIFT 10 /**< Shift value for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_MASK 0x400UL /**< Bit mask for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN (0x1UL << 11) /**< ASYNCH11 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_SHIFT 11 /**< Shift value for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_MASK 0x800UL /**< Bit mask for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN (0x1UL << 12) /**< SYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_SHIFT 12 /**< Shift value for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_MASK 0x1000UL /**< Bit mask for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN (0x1UL << 13) /**< SYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_SHIFT 13 /**< Shift value for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_MASK 0x2000UL /**< Bit mask for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN (0x1UL << 14) /**< SYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_SHIFT 14 /**< Shift value for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_MASK 0x4000UL /**< Bit mask for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN (0x1UL << 15) /**< SYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_SHIFT 15 /**< Shift value for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_MASK 0x8000UL /**< Bit mask for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT << 15) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+
+/* Bit fields for GPIO_PRS ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+
+/* Bit fields for GPIO_TIMER ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_MASK 0x0000003FUL /**< Mask for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN (0x1UL << 0) /**< CC0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_SHIFT 0 /**< Shift value for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_MASK 0x1UL /**< Bit mask for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN (0x1UL << 1) /**< CC1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_SHIFT 1 /**< Shift value for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_MASK 0x2UL /**< Bit mask for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN (0x1UL << 2) /**< CC2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_SHIFT 2 /**< Shift value for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_MASK 0x4UL /**< Bit mask for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN (0x1UL << 3) /**< CDTI0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_SHIFT 3 /**< Shift value for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_MASK 0x8UL /**< Bit mask for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN (0x1UL << 4) /**< CDTI1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_SHIFT 4 /**< Shift value for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_MASK 0x10UL /**< Bit mask for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN (0x1UL << 5) /**< CDTI2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_SHIFT 5 /**< Shift value for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_MASK 0x20UL /**< Bit mask for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+
+/* Bit fields for GPIO_TIMER CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+#define _GPIO_TIMER_CC0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+#define _GPIO_TIMER_CC1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+#define _GPIO_TIMER_CC2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+
+/* Bit fields for GPIO_USART ROUTEEN */
+#define _GPIO_USART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_ROUTEEN */
+#define _GPIO_USART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN_DEFAULT (_GPIO_USART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_USART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN_DEFAULT (_GPIO_USART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CLKPEN_SHIFT 3 /**< Shift value for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_MASK 0x8UL /**< Bit mask for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN_DEFAULT (_GPIO_USART_ROUTEEN_CLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN_DEFAULT (_GPIO_USART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+
+/* Bit fields for GPIO_USART CSROUTE */
+#define _GPIO_USART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PORT_DEFAULT (_GPIO_USART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PIN_DEFAULT (_GPIO_USART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+
+/* Bit fields for GPIO_USART CTSROUTE */
+#define _GPIO_USART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PORT_DEFAULT (_GPIO_USART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+#define _GPIO_USART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PIN_DEFAULT (_GPIO_USART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+
+/* Bit fields for GPIO_USART RTSROUTE */
+#define _GPIO_USART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PORT_DEFAULT (_GPIO_USART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+#define _GPIO_USART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PIN_DEFAULT (_GPIO_USART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+
+/* Bit fields for GPIO_USART RXROUTE */
+#define _GPIO_USART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PORT_DEFAULT (_GPIO_USART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PIN_DEFAULT (_GPIO_USART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+
+/* Bit fields for GPIO_USART CLKROUTE */
+#define _GPIO_USART_CLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PORT_DEFAULT (_GPIO_USART_CLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+#define _GPIO_USART_CLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PIN_DEFAULT (_GPIO_USART_CLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+
+/* Bit fields for GPIO_USART TXROUTE */
+#define _GPIO_USART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PORT_DEFAULT (_GPIO_USART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PIN_DEFAULT (_GPIO_USART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_GPIO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio_port.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio_port.h
new file mode 100644
index 000000000..c1432a0ab
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_gpio_port.h
@@ -0,0 +1,421 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 GPIO Port register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef GPIO_PORT_H
+#define GPIO_PORT_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @brief EFR32BG29 GPIO PORT
+ *****************************************************************************/
+typedef struct gpio_port_typedef{
+ __IOM uint32_t CTRL; /**< Port control */
+ __IOM uint32_t MODEL; /**< mode low */
+ uint32_t RESERVED0[1]; /**< Reserved for future use */
+ __IOM uint32_t MODEH; /**< mode high */
+ __IOM uint32_t DOUT; /**< data out */
+ __IM uint32_t DIN; /**< data in */
+ uint32_t RESERVED1[6]; /**< Reserved for future use */
+} GPIO_PORT_TypeDef;
+
+/* Bit fields for GPIO_P CTRL */
+#define _GPIO_P_CTRL_RESETVALUE 0x00400040UL /**< Default value for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_MASK 0x10701070UL /**< Mask for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATE_SHIFT 4 /**< Shift value for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_MASK 0x70UL /**< Bit mask for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATE_DEFAULT (_GPIO_P_CTRL_SLEWRATE_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS (0x1UL << 12) /**< Data In Disable */
+#define _GPIO_P_CTRL_DINDIS_SHIFT 12 /**< Shift value for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_MASK 0x1000UL /**< Bit mask for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS_DEFAULT (_GPIO_P_CTRL_DINDIS_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATEALT_SHIFT 20 /**< Shift value for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_MASK 0x700000UL /**< Bit mask for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATEALT_DEFAULT (_GPIO_P_CTRL_SLEWRATEALT_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT (0x1UL << 28) /**< Data In Disable Alt */
+#define _GPIO_P_CTRL_DINDISALT_SHIFT 28 /**< Shift value for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_MASK 0x10000000UL /**< Bit mask for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT_DEFAULT (_GPIO_P_CTRL_DINDISALT_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+
+/* Bit fields for GPIO_P MODEL */
+#define _GPIO_P_MODEL_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MASK 0xFFFFFFFFUL /**< Mask for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_DEFAULT (_GPIO_P_MODEL_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_DISABLED (_GPIO_P_MODEL_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUT (_GPIO_P_MODEL_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULL (_GPIO_P_MODEL_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULLFILTER (_GPIO_P_MODEL_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_PUSHPULL (_GPIO_P_MODEL_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_PUSHPULLALT (_GPIO_P_MODEL_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDOR (_GPIO_P_MODEL_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDAND (_GPIO_P_MODEL_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDFILTER (_GPIO_P_MODEL_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALT (_GPIO_P_MODEL_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE1_SHIFT 4 /**< Shift value for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_MASK 0xF0UL /**< Bit mask for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_DEFAULT (_GPIO_P_MODEL_MODE1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_DISABLED (_GPIO_P_MODEL_MODE1_DISABLED << 4) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUT (_GPIO_P_MODEL_MODE1_INPUT << 4) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULL (_GPIO_P_MODEL_MODE1_INPUTPULL << 4) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULLFILTER (_GPIO_P_MODEL_MODE1_INPUTPULLFILTER << 4) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_PUSHPULL (_GPIO_P_MODEL_MODE1_PUSHPULL << 4) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_PUSHPULLALT (_GPIO_P_MODEL_MODE1_PUSHPULLALT << 4) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDOR (_GPIO_P_MODEL_MODE1_WIREDOR << 4) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE1_WIREDORPULLDOWN << 4) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDAND (_GPIO_P_MODEL_MODE1_WIREDAND << 4) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDFILTER (_GPIO_P_MODEL_MODE1_WIREDANDFILTER << 4) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDPULLUP << 4) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER << 4) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALT (_GPIO_P_MODEL_MODE1_WIREDANDALT << 4) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTFILTER << 4) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP << 4) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER << 4) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE2_SHIFT 8 /**< Shift value for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_MASK 0xF00UL /**< Bit mask for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_DEFAULT (_GPIO_P_MODEL_MODE2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_DISABLED (_GPIO_P_MODEL_MODE2_DISABLED << 8) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUT (_GPIO_P_MODEL_MODE2_INPUT << 8) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULL (_GPIO_P_MODEL_MODE2_INPUTPULL << 8) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULLFILTER (_GPIO_P_MODEL_MODE2_INPUTPULLFILTER << 8) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_PUSHPULL (_GPIO_P_MODEL_MODE2_PUSHPULL << 8) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_PUSHPULLALT (_GPIO_P_MODEL_MODE2_PUSHPULLALT << 8) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDOR (_GPIO_P_MODEL_MODE2_WIREDOR << 8) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE2_WIREDORPULLDOWN << 8) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDAND (_GPIO_P_MODEL_MODE2_WIREDAND << 8) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDFILTER (_GPIO_P_MODEL_MODE2_WIREDANDFILTER << 8) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDPULLUP << 8) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER << 8) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALT (_GPIO_P_MODEL_MODE2_WIREDANDALT << 8) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTFILTER << 8) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP << 8) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER << 8) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE3_SHIFT 12 /**< Shift value for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_MASK 0xF000UL /**< Bit mask for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_DEFAULT (_GPIO_P_MODEL_MODE3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_DISABLED (_GPIO_P_MODEL_MODE3_DISABLED << 12) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUT (_GPIO_P_MODEL_MODE3_INPUT << 12) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULL (_GPIO_P_MODEL_MODE3_INPUTPULL << 12) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULLFILTER (_GPIO_P_MODEL_MODE3_INPUTPULLFILTER << 12) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_PUSHPULL (_GPIO_P_MODEL_MODE3_PUSHPULL << 12) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_PUSHPULLALT (_GPIO_P_MODEL_MODE3_PUSHPULLALT << 12) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDOR (_GPIO_P_MODEL_MODE3_WIREDOR << 12) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE3_WIREDORPULLDOWN << 12) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDAND (_GPIO_P_MODEL_MODE3_WIREDAND << 12) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDFILTER (_GPIO_P_MODEL_MODE3_WIREDANDFILTER << 12) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDPULLUP << 12) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER << 12) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALT (_GPIO_P_MODEL_MODE3_WIREDANDALT << 12) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTFILTER << 12) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP << 12) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER << 12) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE4_SHIFT 16 /**< Shift value for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_MASK 0xF0000UL /**< Bit mask for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_DEFAULT (_GPIO_P_MODEL_MODE4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_DISABLED (_GPIO_P_MODEL_MODE4_DISABLED << 16) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUT (_GPIO_P_MODEL_MODE4_INPUT << 16) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULL (_GPIO_P_MODEL_MODE4_INPUTPULL << 16) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULLFILTER (_GPIO_P_MODEL_MODE4_INPUTPULLFILTER << 16) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_PUSHPULL (_GPIO_P_MODEL_MODE4_PUSHPULL << 16) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_PUSHPULLALT (_GPIO_P_MODEL_MODE4_PUSHPULLALT << 16) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDOR (_GPIO_P_MODEL_MODE4_WIREDOR << 16) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE4_WIREDORPULLDOWN << 16) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDAND (_GPIO_P_MODEL_MODE4_WIREDAND << 16) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDFILTER (_GPIO_P_MODEL_MODE4_WIREDANDFILTER << 16) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDPULLUP << 16) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER << 16) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALT (_GPIO_P_MODEL_MODE4_WIREDANDALT << 16) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTFILTER << 16) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP << 16) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER << 16) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE5_SHIFT 20 /**< Shift value for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_MASK 0xF00000UL /**< Bit mask for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_DEFAULT (_GPIO_P_MODEL_MODE5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_DISABLED (_GPIO_P_MODEL_MODE5_DISABLED << 20) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUT (_GPIO_P_MODEL_MODE5_INPUT << 20) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULL (_GPIO_P_MODEL_MODE5_INPUTPULL << 20) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULLFILTER (_GPIO_P_MODEL_MODE5_INPUTPULLFILTER << 20) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_PUSHPULL (_GPIO_P_MODEL_MODE5_PUSHPULL << 20) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_PUSHPULLALT (_GPIO_P_MODEL_MODE5_PUSHPULLALT << 20) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDOR (_GPIO_P_MODEL_MODE5_WIREDOR << 20) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE5_WIREDORPULLDOWN << 20) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDAND (_GPIO_P_MODEL_MODE5_WIREDAND << 20) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDFILTER (_GPIO_P_MODEL_MODE5_WIREDANDFILTER << 20) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDPULLUP << 20) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER << 20) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALT (_GPIO_P_MODEL_MODE5_WIREDANDALT << 20) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTFILTER << 20) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP << 20) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER << 20) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE6_SHIFT 24 /**< Shift value for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_MASK 0xF000000UL /**< Bit mask for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_DEFAULT (_GPIO_P_MODEL_MODE6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_DISABLED (_GPIO_P_MODEL_MODE6_DISABLED << 24) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUT (_GPIO_P_MODEL_MODE6_INPUT << 24) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULL (_GPIO_P_MODEL_MODE6_INPUTPULL << 24) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULLFILTER (_GPIO_P_MODEL_MODE6_INPUTPULLFILTER << 24) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_PUSHPULL (_GPIO_P_MODEL_MODE6_PUSHPULL << 24) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_PUSHPULLALT (_GPIO_P_MODEL_MODE6_PUSHPULLALT << 24) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDOR (_GPIO_P_MODEL_MODE6_WIREDOR << 24) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE6_WIREDORPULLDOWN << 24) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDAND (_GPIO_P_MODEL_MODE6_WIREDAND << 24) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDFILTER (_GPIO_P_MODEL_MODE6_WIREDANDFILTER << 24) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDPULLUP << 24) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER << 24) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALT (_GPIO_P_MODEL_MODE6_WIREDANDALT << 24) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTFILTER << 24) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP << 24) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER << 24) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE7_SHIFT 28 /**< Shift value for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_MASK 0xF0000000UL /**< Bit mask for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_DEFAULT (_GPIO_P_MODEL_MODE7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_DISABLED (_GPIO_P_MODEL_MODE7_DISABLED << 28) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUT (_GPIO_P_MODEL_MODE7_INPUT << 28) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULL (_GPIO_P_MODEL_MODE7_INPUTPULL << 28) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULLFILTER (_GPIO_P_MODEL_MODE7_INPUTPULLFILTER << 28) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_PUSHPULL (_GPIO_P_MODEL_MODE7_PUSHPULL << 28) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_PUSHPULLALT (_GPIO_P_MODEL_MODE7_PUSHPULLALT << 28) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDOR (_GPIO_P_MODEL_MODE7_WIREDOR << 28) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE7_WIREDORPULLDOWN << 28) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDAND (_GPIO_P_MODEL_MODE7_WIREDAND << 28) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDFILTER (_GPIO_P_MODEL_MODE7_WIREDANDFILTER << 28) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDPULLUP << 28) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER << 28) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALT (_GPIO_P_MODEL_MODE7_WIREDANDALT << 28) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTFILTER << 28) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP << 28) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER << 28) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+
+/* Bit fields for GPIO_P MODEH */
+#define _GPIO_P_MODEH_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MASK 0x0000000FUL /**< Mask for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_DEFAULT (_GPIO_P_MODEH_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_DISABLED (_GPIO_P_MODEH_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUT (_GPIO_P_MODEH_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULL (_GPIO_P_MODEH_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULLFILTER (_GPIO_P_MODEH_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_PUSHPULL (_GPIO_P_MODEH_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_PUSHPULLALT (_GPIO_P_MODEH_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDOR (_GPIO_P_MODEH_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEH_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDAND (_GPIO_P_MODEH_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDFILTER (_GPIO_P_MODEH_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALT (_GPIO_P_MODEH_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+
+/* Bit fields for GPIO_P DOUT */
+#define _GPIO_P_DOUT_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_MASK 0x000001FFUL /**< Mask for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_DOUT_SHIFT 0 /**< Shift value for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_MASK 0x1FFUL /**< Bit mask for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DOUT */
+#define GPIO_P_DOUT_DOUT_DEFAULT (_GPIO_P_DOUT_DOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DOUT */
+
+/* Bit fields for GPIO_P DIN */
+#define _GPIO_P_DIN_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DIN */
+#define _GPIO_P_DIN_MASK 0x000001FFUL /**< Mask for GPIO_P_DIN */
+#define _GPIO_P_DIN_DIN_SHIFT 0 /**< Shift value for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_MASK 0x1FFUL /**< Bit mask for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DIN */
+#define GPIO_P_DIN_DIN_DEFAULT (_GPIO_P_DIN_DIN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DIN */
+/** @} End of group Parts */
+
+#endif // GPIO_PORT_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfrco.h
new file mode 100644
index 000000000..2f6356e5e
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfrco.h
@@ -0,0 +1,226 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 HFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_HFRCO_H
+#define EFR32BG29_HFRCO_H
+#define HFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_HFRCO HFRCO
+ * @{
+ * @brief EFR32BG29 HFRCO Register Declaration.
+ *****************************************************************************/
+
+/** HFRCO Register Declaration. */
+typedef struct hfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t CTRL; /**< Ctrl Register */
+ __IOM uint32_t CAL; /**< Calibration Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED1[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t CTRL_SET; /**< Ctrl Register */
+ __IOM uint32_t CAL_SET; /**< Calibration Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED3[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t CTRL_CLR; /**< Ctrl Register */
+ __IOM uint32_t CAL_CLR; /**< Calibration Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED5[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t CTRL_TGL; /**< Ctrl Register */
+ __IOM uint32_t CAL_TGL; /**< Calibration Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+} HFRCO_TypeDef;
+/** @} End of group EFR32BG29_HFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_HFRCO
+ * @{
+ * @defgroup EFR32BG29_HFRCO_BitFields HFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFRCO IPVERSION */
+#define _HFRCO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_IPVERSION */
+#define HFRCO_IPVERSION_IPVERSION_DEFAULT (_HFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IPVERSION */
+
+/* Bit fields for HFRCO CTRL */
+#define _HFRCO_CTRL_RESETVALUE 0x00000000UL /**< Default value for HFRCO_CTRL */
+#define _HFRCO_CTRL_MASK 0x00000007UL /**< Mask for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _HFRCO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN_DEFAULT (_HFRCO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-demand */
+#define _HFRCO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND_DEFAULT (_HFRCO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND (0x1UL << 2) /**< EM23 On-demand */
+#define _HFRCO_CTRL_EM23ONDEMAND_SHIFT 2 /**< Shift value for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_MASK 0x4UL /**< Bit mask for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND_DEFAULT (_HFRCO_CTRL_EM23ONDEMAND_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+
+/* Bit fields for HFRCO CAL */
+#define _HFRCO_CAL_RESETVALUE 0xA8689F7FUL /**< Default value for HFRCO_CAL */
+#define _HFRCO_CAL_MASK 0xFFFFBF7FUL /**< Mask for HFRCO_CAL */
+#define _HFRCO_CAL_TUNING_SHIFT 0 /**< Shift value for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_MASK 0x7FUL /**< Bit mask for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_DEFAULT 0x0000007FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_TUNING_DEFAULT (_HFRCO_CAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FINETUNING_SHIFT 8 /**< Shift value for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_DEFAULT 0x0000001FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FINETUNING_DEFAULT (_HFRCO_CAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP (0x1UL << 15) /**< LDO High Power Mode */
+#define _HFRCO_CAL_LDOHP_SHIFT 15 /**< Shift value for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_MASK 0x8000UL /**< Bit mask for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP_DEFAULT (_HFRCO_CAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FREQRANGE_SHIFT 16 /**< Shift value for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_DEFAULT 0x00000008UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FREQRANGE_DEFAULT (_HFRCO_CAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CMPBIAS_SHIFT 21 /**< Shift value for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPBIAS_DEFAULT (_HFRCO_CAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_SHIFT 24 /**< Shift value for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV1 0x00000000UL /**< Mode DIV1 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV2 0x00000001UL /**< Mode DIV2 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV4 0x00000002UL /**< Mode DIV4 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DEFAULT (_HFRCO_CAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV1 (_HFRCO_CAL_CLKDIV_DIV1 << 24) /**< Shifted mode DIV1 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV2 (_HFRCO_CAL_CLKDIV_DIV2 << 24) /**< Shifted mode DIV2 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV4 (_HFRCO_CAL_CLKDIV_DIV4 << 24) /**< Shifted mode DIV4 for HFRCO_CAL */
+#define _HFRCO_CAL_CMPSEL_SHIFT 26 /**< Shift value for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPSEL_DEFAULT (_HFRCO_CAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_IREFTC_SHIFT 28 /**< Shift value for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_DEFAULT 0x0000000AUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_IREFTC_DEFAULT (_HFRCO_CAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for HFRCO_CAL */
+
+/* Bit fields for HFRCO STATUS */
+#define _HFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFRCO_STATUS */
+#define _HFRCO_STATUS_MASK 0x80010007UL /**< Mask for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY (0x1UL << 0) /**< Ready */
+#define _HFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY_DEFAULT (_HFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY (0x1UL << 1) /**< Frequency Updating Busy */
+#define _HFRCO_STATUS_FREQBSY_SHIFT 1 /**< Shift value for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_MASK 0x2UL /**< Bit mask for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY_DEFAULT (_HFRCO_STATUS_FREQBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY (0x1UL << 2) /**< Synchronization Busy */
+#define _HFRCO_STATUS_SYNCBUSY_SHIFT 2 /**< Shift value for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_MASK 0x4UL /**< Bit mask for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY_DEFAULT (_HFRCO_STATUS_SYNCBUSY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _HFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS_DEFAULT (_HFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _HFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_DEFAULT (_HFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_UNLOCKED (_HFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_LOCKED (_HFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFRCO_STATUS */
+
+/* Bit fields for HFRCO IF */
+#define _HFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IF */
+#define _HFRCO_IF_MASK 0x00000001UL /**< Mask for HFRCO_IF */
+#define HFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _HFRCO_IF_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IF */
+#define HFRCO_IF_RDY_DEFAULT (_HFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IF */
+
+/* Bit fields for HFRCO IEN */
+#define _HFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IEN */
+#define _HFRCO_IEN_MASK 0x00000001UL /**< Mask for HFRCO_IEN */
+#define HFRCO_IEN_RDY (0x1UL << 0) /**< RDY Interrupt Enable */
+#define _HFRCO_IEN_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IEN */
+#define HFRCO_IEN_RDY_DEFAULT (_HFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IEN */
+
+/* Bit fields for HFRCO LOCK */
+#define _HFRCO_LOCK_RESETVALUE 0x00008195UL /**< Default value for HFRCO_LOCK */
+#define _HFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_DEFAULT 0x00008195UL /**< Mode DEFAULT for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_UNLOCK 0x00008195UL /**< Mode UNLOCK for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_DEFAULT (_HFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_UNLOCK (_HFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFRCO_LOCK */
+
+/** @} End of group EFR32BG29_HFRCO_BitFields */
+/** @} End of group EFR32BG29_HFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_HFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfxo.h
new file mode 100644
index 000000000..6492bc553
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_hfxo.h
@@ -0,0 +1,463 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 HFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_HFXO_H
+#define EFR32BG29_HFXO_H
+#define HFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_HFXO HFXO
+ * @{
+ * @brief EFR32BG29 HFXO Register Declaration.
+ *****************************************************************************/
+
+/** HFXO Register Declaration. */
+typedef struct hfxo_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG; /**< Crystal Configuration Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL; /**< Crystal Control Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control Register */
+ uint32_t RESERVED4[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED6[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED8[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED9[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_SET; /**< Crystal Configuration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_SET; /**< Crystal Control Register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ uint32_t RESERVED13[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED15[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED17[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_CLR; /**< Crystal Configuration Register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_CLR; /**< Crystal Control Register */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ uint32_t RESERVED22[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED24[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED25[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED26[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_TGL; /**< Crystal Configuration Register */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_TGL; /**< Crystal Control Register */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ uint32_t RESERVED31[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED33[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED34[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} HFXO_TypeDef;
+/** @} End of group EFR32BG29_HFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_HFXO
+ * @{
+ * @defgroup EFR32BG29_HFXO_BitFields HFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFXO IPVERSION */
+#define _HFXO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFXO_IPVERSION */
+#define HFXO_IPVERSION_IPVERSION_DEFAULT (_HFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IPVERSION */
+
+/* Bit fields for HFXO XTALCFG */
+#define _HFXO_XTALCFG_RESETVALUE 0x044334CBUL /**< Default value for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_MASK 0x0FFFFFFFUL /**< Mask for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_SHIFT 0 /**< Shift value for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_MASK 0x3FUL /**< Bit mask for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT 0x0000000BUL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_SHIFT 6 /**< Shift value for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_MASK 0xFC0UL /**< Bit mask for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT 0x00000013UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT << 6) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_SHIFT 12 /**< Shift value for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_MASK 0xF000UL /**< Bit mask for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT << 12) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_SHIFT 16 /**< Shift value for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_MASK 0xF0000UL /**< Bit mask for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_SHIFT 20 /**< Shift value for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_MASK 0xF00000UL /**< Bit mask for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT 0x00000004UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T16US 0x00000000UL /**< Mode T16US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T41US 0x00000001UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T83US 0x00000002UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T125US 0x00000003UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T166US 0x00000004UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T208US 0x00000005UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T250US 0x00000006UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T333US 0x00000007UL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T416US 0x00000008UL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T500US 0x00000009UL /**< Mode T500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T666US 0x0000000AUL /**< Mode T666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T833US 0x0000000BUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T1666US 0x0000000CUL /**< Mode T1666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T2500US 0x0000000DUL /**< Mode T2500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T4166US 0x0000000EUL /**< Mode T4166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T7500US 0x0000000FUL /**< Mode T7500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT (_HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T16US (_HFXO_XTALCFG_TIMEOUTSTEADY_T16US << 20) /**< Shifted mode T16US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T41US (_HFXO_XTALCFG_TIMEOUTSTEADY_T41US << 20) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T83US (_HFXO_XTALCFG_TIMEOUTSTEADY_T83US << 20) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T125US (_HFXO_XTALCFG_TIMEOUTSTEADY_T125US << 20) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T166US << 20) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T208US (_HFXO_XTALCFG_TIMEOUTSTEADY_T208US << 20) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T250US (_HFXO_XTALCFG_TIMEOUTSTEADY_T250US << 20) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T333US (_HFXO_XTALCFG_TIMEOUTSTEADY_T333US << 20) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T416US (_HFXO_XTALCFG_TIMEOUTSTEADY_T416US << 20) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T500US << 20) /**< Shifted mode T500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T666US << 20) /**< Shifted mode T666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T833US (_HFXO_XTALCFG_TIMEOUTSTEADY_T833US << 20) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T1666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T1666US << 20) /**< Shifted mode T1666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T2500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T2500US << 20) /**< Shifted mode T2500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T4166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T4166US << 20) /**< Shifted mode T4166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T7500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T7500US << 20) /**< Shifted mode T7500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_SHIFT 24 /**< Shift value for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_MASK 0xF000000UL /**< Bit mask for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT 0x00000004UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T8US 0x00000000UL /**< Mode T8US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T20US 0x00000001UL /**< Mode T20US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T41US 0x00000002UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T62US 0x00000003UL /**< Mode T62US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T83US 0x00000004UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T104US 0x00000005UL /**< Mode T104US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T125US 0x00000006UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T166US 0x00000007UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T208US 0x00000008UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T250US 0x00000009UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T333US 0x0000000AUL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T416US 0x0000000BUL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T833US 0x0000000CUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T1250US 0x0000000DUL /**< Mode T1250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T2083US 0x0000000EUL /**< Mode T2083US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T3750US 0x0000000FUL /**< Mode T3750US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT (_HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T8US (_HFXO_XTALCFG_TIMEOUTCBLSB_T8US << 24) /**< Shifted mode T8US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T20US (_HFXO_XTALCFG_TIMEOUTCBLSB_T20US << 24) /**< Shifted mode T20US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T41US (_HFXO_XTALCFG_TIMEOUTCBLSB_T41US << 24) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T62US (_HFXO_XTALCFG_TIMEOUTCBLSB_T62US << 24) /**< Shifted mode T62US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T83US (_HFXO_XTALCFG_TIMEOUTCBLSB_T83US << 24) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T104US (_HFXO_XTALCFG_TIMEOUTCBLSB_T104US << 24) /**< Shifted mode T104US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T125US (_HFXO_XTALCFG_TIMEOUTCBLSB_T125US << 24) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T166US (_HFXO_XTALCFG_TIMEOUTCBLSB_T166US << 24) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T208US (_HFXO_XTALCFG_TIMEOUTCBLSB_T208US << 24) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T250US << 24) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T333US (_HFXO_XTALCFG_TIMEOUTCBLSB_T333US << 24) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T416US (_HFXO_XTALCFG_TIMEOUTCBLSB_T416US << 24) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T833US (_HFXO_XTALCFG_TIMEOUTCBLSB_T833US << 24) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T1250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T1250US << 24) /**< Shifted mode T1250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T2083US (_HFXO_XTALCFG_TIMEOUTCBLSB_T2083US << 24) /**< Shifted mode T2083US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T3750US (_HFXO_XTALCFG_TIMEOUTCBLSB_T3750US << 24) /**< Shifted mode T3750US for HFXO_XTALCFG */
+
+/* Bit fields for HFXO XTALCTRL */
+#define _HFXO_XTALCTRL_RESETVALUE 0x0F8C8C10UL /**< Default value for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_MASK 0x8FFFFFFFUL /**< Mask for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREBIASANA_SHIFT 0 /**< Shift value for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_MASK 0xFFUL /**< Bit mask for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_DEFAULT 0x00000010UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREBIASANA_DEFAULT (_HFXO_XTALCTRL_COREBIASANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXIANA_SHIFT 8 /**< Shift value for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_MASK 0xFF00UL /**< Bit mask for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_DEFAULT 0x0000008CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXIANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXIANA_DEFAULT << 8) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXOANA_SHIFT 16 /**< Shift value for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_MASK 0xFF0000UL /**< Bit mask for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_DEFAULT 0x0000008CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXOANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXOANA_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_SHIFT 24 /**< Shift value for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_MASK 0x3000000UL /**< Bit mask for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XI 0x00000001UL /**< Mode XI for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XO 0x00000002UL /**< Mode XO for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_BOTH 0x00000003UL /**< Mode BOTH for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT (_HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_NONE (_HFXO_XTALCTRL_CTUNEFIXANA_NONE << 24) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XI (_HFXO_XTALCTRL_CTUNEFIXANA_XI << 24) /**< Shifted mode XI for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XO (_HFXO_XTALCTRL_CTUNEFIXANA_XO << 24) /**< Shifted mode XO for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_BOTH (_HFXO_XTALCTRL_CTUNEFIXANA_BOTH << 24) /**< Shifted mode BOTH for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_SHIFT 26 /**< Shift value for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_MASK 0xC000000UL /**< Bit mask for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN33 0x00000001UL /**< Mode DGEN33 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN50 0x00000002UL /**< Mode DGEN50 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN100 0x00000003UL /**< Mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DEFAULT (_HFXO_XTALCTRL_COREDGENANA_DEFAULT << 26) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_NONE (_HFXO_XTALCTRL_COREDGENANA_NONE << 26) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN33 (_HFXO_XTALCTRL_COREDGENANA_DGEN33 << 26) /**< Shifted mode DGEN33 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN50 (_HFXO_XTALCTRL_COREDGENANA_DGEN50 << 26) /**< Shifted mode DGEN50 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN100 (_HFXO_XTALCTRL_COREDGENANA_DGEN100 << 26) /**< Shifted mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT (0x1UL << 31) /**< Skip Core Bias Optimization */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_SHIFT 31 /**< Shift value for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_MASK 0x80000000UL /**< Bit mask for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT (_HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+
+/* Bit fields for HFXO CFG */
+#define _HFXO_CFG_RESETVALUE 0x10000000UL /**< Default value for HFXO_CFG */
+#define _HFXO_CFG_MASK 0xF000000DUL /**< Mask for HFXO_CFG */
+#define HFXO_CFG_MODE (0x1UL << 0) /**< Crystal Oscillator Mode */
+#define _HFXO_CFG_MODE_SHIFT 0 /**< Shift value for HFXO_MODE */
+#define _HFXO_CFG_MODE_MASK 0x1UL /**< Bit mask for HFXO_MODE */
+#define _HFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for HFXO_CFG */
+#define _HFXO_CFG_MODE_EXTCLK 0x00000001UL /**< Mode EXTCLK for HFXO_CFG */
+#define HFXO_CFG_MODE_DEFAULT (_HFXO_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_MODE_XTAL (_HFXO_CFG_MODE_XTAL << 0) /**< Shifted mode XTAL for HFXO_CFG */
+#define HFXO_CFG_MODE_EXTCLK (_HFXO_CFG_MODE_EXTCLK << 0) /**< Shifted mode EXTCLK for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA (0x1UL << 2) /**< Enable XI Internal DC Bias */
+#define _HFXO_CFG_ENXIDCBIASANA_SHIFT 2 /**< Shift value for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_MASK 0x4UL /**< Bit mask for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA_DEFAULT (_HFXO_CFG_ENXIDCBIASANA_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA (0x1UL << 3) /**< Squaring Buffer Schmitt Trigger */
+#define _HFXO_CFG_SQBUFSCHTRGANA_SHIFT 3 /**< Shift value for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_MASK 0x8UL /**< Bit mask for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DEFAULT (_HFXO_CFG_SQBUFSCHTRGANA_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DISABLE (_HFXO_CFG_SQBUFSCHTRGANA_DISABLE << 3) /**< Shifted mode DISABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_ENABLE (_HFXO_CFG_SQBUFSCHTRGANA_ENABLE << 3) /**< Shifted mode ENABLE for HFXO_CFG */
+
+/* Bit fields for HFXO CTRL */
+#define _HFXO_CTRL_RESETVALUE 0x00000002UL /**< Default value for HFXO_CTRL */
+#define _HFXO_CTRL_MASK 0x80000037UL /**< Mask for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _HFXO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN_DEFAULT (_HFXO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-demand Mode */
+#define _HFXO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND_DEFAULT (_HFXO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM (0x1UL << 2) /**< Keep Warm */
+#define _HFXO_CTRL_KEEPWARM_SHIFT 2 /**< Shift value for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_MASK 0x4UL /**< Bit mask for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM_DEFAULT (_HFXO_CTRL_KEEPWARM_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA (0x1UL << 4) /**< Force XI Pin to Ground */
+#define _HFXO_CTRL_FORCEXI2GNDANA_SHIFT 4 /**< Shift value for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_MASK 0x10UL /**< Bit mask for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXI2GNDANA_DEFAULT << 4) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DISABLE (_HFXO_CTRL_FORCEXI2GNDANA_DISABLE << 4) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_ENABLE (_HFXO_CTRL_FORCEXI2GNDANA_ENABLE << 4) /**< Shifted mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA (0x1UL << 5) /**< Force XO Pin to Ground */
+#define _HFXO_CTRL_FORCEXO2GNDANA_SHIFT 5 /**< Shift value for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_MASK 0x20UL /**< Bit mask for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXO2GNDANA_DEFAULT << 5) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DISABLE (_HFXO_CTRL_FORCEXO2GNDANA_DISABLE << 5) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_ENABLE (_HFXO_CTRL_FORCEXO2GNDANA_ENABLE << 5) /**< Shifted mode ENABLE for HFXO_CTRL */
+
+/* Bit fields for HFXO CMD */
+#define _HFXO_CMD_RESETVALUE 0x00000000UL /**< Default value for HFXO_CMD */
+#define _HFXO_CMD_MASK 0x00000003UL /**< Mask for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT (0x1UL << 0) /**< Core Bias Optimizaton */
+#define _HFXO_CMD_COREBIASOPT_SHIFT 0 /**< Shift value for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_MASK 0x1UL /**< Bit mask for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT_DEFAULT (_HFXO_CMD_COREBIASOPT_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_MANUALOVERRIDE (0x1UL << 1) /**< Manual Override */
+#define _HFXO_CMD_MANUALOVERRIDE_SHIFT 1 /**< Shift value for HFXO_MANUALOVERRIDE */
+#define _HFXO_CMD_MANUALOVERRIDE_MASK 0x2UL /**< Bit mask for HFXO_MANUALOVERRIDE */
+#define _HFXO_CMD_MANUALOVERRIDE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_MANUALOVERRIDE_DEFAULT (_HFXO_CMD_MANUALOVERRIDE_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_CMD */
+
+/* Bit fields for HFXO STATUS */
+#define _HFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFXO_STATUS */
+#define _HFXO_STATUS_MASK 0xC00F0003UL /**< Mask for HFXO_STATUS */
+#define HFXO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _HFXO_STATUS_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_RDY_DEFAULT (_HFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready */
+#define _HFXO_STATUS_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY_DEFAULT (_HFXO_STATUS_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _HFXO_STATUS_ENS_SHIFT 16 /**< Shift value for HFXO_ENS */
+#define _HFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFXO_ENS */
+#define _HFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS_DEFAULT (_HFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ (0x1UL << 17) /**< Oscillator Requested by Hardware */
+#define _HFXO_STATUS_HWREQ_SHIFT 17 /**< Shift value for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_MASK 0x20000UL /**< Bit mask for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ_DEFAULT (_HFXO_STATUS_HWREQ_DEFAULT << 17) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM (0x1UL << 19) /**< Oscillator Is Kept Warm */
+#define _HFXO_STATUS_ISWARM_SHIFT 19 /**< Shift value for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_MASK 0x80000UL /**< Bit mask for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM_DEFAULT (_HFXO_STATUS_ISWARM_DEFAULT << 19) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK (0x1UL << 30) /**< FSM Lock Status */
+#define _HFXO_STATUS_FSMLOCK_SHIFT 30 /**< Shift value for HFXO_FSMLOCK */
+#define _HFXO_STATUS_FSMLOCK_MASK 0x40000000UL /**< Bit mask for HFXO_FSMLOCK */
+#define _HFXO_STATUS_FSMLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define _HFXO_STATUS_FSMLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFXO_STATUS */
+#define _HFXO_STATUS_FSMLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_DEFAULT (_HFXO_STATUS_FSMLOCK_DEFAULT << 30) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_UNLOCKED (_HFXO_STATUS_FSMLOCK_UNLOCKED << 30) /**< Shifted mode UNLOCKED for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_LOCKED (_HFXO_STATUS_FSMLOCK_LOCKED << 30) /**< Shifted mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _HFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_DEFAULT (_HFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_UNLOCKED (_HFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_LOCKED (_HFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFXO_STATUS */
+
+/* Bit fields for HFXO IF */
+#define _HFXO_IF_RESETVALUE 0x00000000UL /**< Default value for HFXO_IF */
+#define _HFXO_IF_MASK 0xE0000003UL /**< Mask for HFXO_IF */
+#define HFXO_IF_RDY (0x1UL << 0) /**< Ready Interrupt */
+#define _HFXO_IF_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IF_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_RDY_DEFAULT (_HFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IF_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY_DEFAULT (_HFXO_IF_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IF_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR_DEFAULT (_HFXO_IF_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IF_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR_DEFAULT (_HFXO_IF_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IF */
+
+/* Bit fields for HFXO IEN */
+#define _HFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFXO_IEN */
+#define _HFXO_IEN_MASK 0xE0000003UL /**< Mask for HFXO_IEN */
+#define HFXO_IEN_RDY (0x1UL << 0) /**< Ready Interrupt */
+#define _HFXO_IEN_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_RDY_DEFAULT (_HFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IEN_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY_DEFAULT (_HFXO_IEN_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IEN_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR_DEFAULT (_HFXO_IEN_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IEN_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR_DEFAULT (_HFXO_IEN_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IEN */
+
+/* Bit fields for HFXO LOCK */
+#define _HFXO_LOCK_RESETVALUE 0x0000580EUL /**< Default value for HFXO_LOCK */
+#define _HFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_DEFAULT 0x0000580EUL /**< Mode DEFAULT for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_UNLOCK 0x0000580EUL /**< Mode UNLOCK for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_DEFAULT (_HFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_UNLOCK (_HFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFXO_LOCK */
+
+/** @} End of group EFR32BG29_HFXO_BitFields */
+/** @} End of group EFR32BG29_HFXO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_HFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_i2c.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_i2c.h
new file mode 100644
index 000000000..abd5d9258
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_i2c.h
@@ -0,0 +1,744 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 I2C register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_I2C_H
+#define EFR32BG29_I2C_H
+#define I2C_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_I2C I2C
+ * @{
+ * @brief EFR32BG29 I2C Register Declaration.
+ *****************************************************************************/
+
+/** I2C Register Declaration. */
+typedef struct i2c_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATE; /**< State Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Division Register */
+ __IOM uint32_t SADDR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATE_SET; /**< State Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Division Register */
+ __IOM uint32_t SADDR_SET; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_SET; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_SET; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_SET; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_SET; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_SET; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATE_CLR; /**< State Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Division Register */
+ __IOM uint32_t SADDR_CLR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_CLR; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_CLR; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_CLR; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATE_TGL; /**< State Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Division Register */
+ __IOM uint32_t SADDR_TGL; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_TGL; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_TGL; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_TGL; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} I2C_TypeDef;
+/** @} End of group EFR32BG29_I2C */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_I2C
+ * @{
+ * @defgroup EFR32BG29_I2C_BitFields I2C Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for I2C IPVERSION */
+#define _I2C_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for I2C_IPVERSION */
+#define _I2C_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IPVERSION */
+#define I2C_IPVERSION_IPVERSION_DEFAULT (_I2C_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IPVERSION */
+
+/* Bit fields for I2C EN */
+#define _I2C_EN_RESETVALUE 0x00000000UL /**< Default value for I2C_EN */
+#define _I2C_EN_MASK 0x00000001UL /**< Mask for I2C_EN */
+#define I2C_EN_EN (0x1UL << 0) /**< module enable */
+#define _I2C_EN_EN_SHIFT 0 /**< Shift value for I2C_EN */
+#define _I2C_EN_EN_MASK 0x1UL /**< Bit mask for I2C_EN */
+#define _I2C_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_EN */
+#define _I2C_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_EN */
+#define _I2C_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_EN */
+#define I2C_EN_EN_DEFAULT (_I2C_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_EN */
+#define I2C_EN_EN_DISABLE (_I2C_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for I2C_EN */
+#define I2C_EN_EN_ENABLE (_I2C_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for I2C_EN */
+
+/* Bit fields for I2C CTRL */
+#define _I2C_CTRL_RESETVALUE 0x00000000UL /**< Default value for I2C_CTRL */
+#define _I2C_CTRL_MASK 0x0037B3FFUL /**< Mask for I2C_CTRL */
+#define I2C_CTRL_CORERST (0x1UL << 0) /**< Soft Reset the internal state registers */
+#define _I2C_CTRL_CORERST_SHIFT 0 /**< Shift value for I2C_CORERST */
+#define _I2C_CTRL_CORERST_MASK 0x1UL /**< Bit mask for I2C_CORERST */
+#define _I2C_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CORERST_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_CORERST_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_DEFAULT (_I2C_CTRL_CORERST_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CORERST_DISABLE (_I2C_CTRL_CORERST_DISABLE << 0) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_ENABLE (_I2C_CTRL_CORERST_ENABLE << 0) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE (0x1UL << 1) /**< Addressable as Follower */
+#define _I2C_CTRL_SLAVE_SHIFT 1 /**< Shift value for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_MASK 0x2UL /**< Bit mask for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DEFAULT (_I2C_CTRL_SLAVE_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DISABLE (_I2C_CTRL_SLAVE_DISABLE << 1) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_ENABLE (_I2C_CTRL_SLAVE_ENABLE << 1) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK (0x1UL << 2) /**< Automatic Acknowledge */
+#define _I2C_CTRL_AUTOACK_SHIFT 2 /**< Shift value for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_MASK 0x4UL /**< Bit mask for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DEFAULT (_I2C_CTRL_AUTOACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DISABLE (_I2C_CTRL_AUTOACK_DISABLE << 2) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_ENABLE (_I2C_CTRL_AUTOACK_ENABLE << 2) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE (0x1UL << 3) /**< Automatic STOP when Empty */
+#define _I2C_CTRL_AUTOSE_SHIFT 3 /**< Shift value for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_MASK 0x8UL /**< Bit mask for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DEFAULT (_I2C_CTRL_AUTOSE_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DISABLE (_I2C_CTRL_AUTOSE_DISABLE << 3) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_ENABLE (_I2C_CTRL_AUTOSE_ENABLE << 3) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN (0x1UL << 4) /**< Automatic STOP on NACK */
+#define _I2C_CTRL_AUTOSN_SHIFT 4 /**< Shift value for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_MASK 0x10UL /**< Bit mask for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DEFAULT (_I2C_CTRL_AUTOSN_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DISABLE (_I2C_CTRL_AUTOSN_DISABLE << 4) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_ENABLE (_I2C_CTRL_AUTOSN_ENABLE << 4) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS (0x1UL << 5) /**< Arbitration Disable */
+#define _I2C_CTRL_ARBDIS_SHIFT 5 /**< Shift value for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_MASK 0x20UL /**< Bit mask for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DEFAULT (_I2C_CTRL_ARBDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DISABLE (_I2C_CTRL_ARBDIS_DISABLE << 5) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_ENABLE (_I2C_CTRL_ARBDIS_ENABLE << 5) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN (0x1UL << 6) /**< General Call Address Match Enable */
+#define _I2C_CTRL_GCAMEN_SHIFT 6 /**< Shift value for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_MASK 0x40UL /**< Bit mask for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DEFAULT (_I2C_CTRL_GCAMEN_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DISABLE (_I2C_CTRL_GCAMEN_DISABLE << 6) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_ENABLE (_I2C_CTRL_GCAMEN_ENABLE << 6) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_TXBIL (0x1UL << 7) /**< TX Buffer Interrupt Level */
+#define _I2C_CTRL_TXBIL_SHIFT 7 /**< Shift value for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_MASK 0x80UL /**< Bit mask for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_HALF_FULL 0x00000001UL /**< Mode HALF_FULL for I2C_CTRL */
+#define I2C_CTRL_TXBIL_DEFAULT (_I2C_CTRL_TXBIL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_TXBIL_EMPTY (_I2C_CTRL_TXBIL_EMPTY << 7) /**< Shifted mode EMPTY for I2C_CTRL */
+#define I2C_CTRL_TXBIL_HALF_FULL (_I2C_CTRL_TXBIL_HALF_FULL << 7) /**< Shifted mode HALF_FULL for I2C_CTRL */
+#define _I2C_CTRL_CLHR_SHIFT 8 /**< Shift value for I2C_CLHR */
+#define _I2C_CTRL_CLHR_MASK 0x300UL /**< Bit mask for I2C_CLHR */
+#define _I2C_CTRL_CLHR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLHR_STANDARD 0x00000000UL /**< Mode STANDARD for I2C_CTRL */
+#define _I2C_CTRL_CLHR_ASYMMETRIC 0x00000001UL /**< Mode ASYMMETRIC for I2C_CTRL */
+#define _I2C_CTRL_CLHR_FAST 0x00000002UL /**< Mode FAST for I2C_CTRL */
+#define I2C_CTRL_CLHR_DEFAULT (_I2C_CTRL_CLHR_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLHR_STANDARD (_I2C_CTRL_CLHR_STANDARD << 8) /**< Shifted mode STANDARD for I2C_CTRL */
+#define I2C_CTRL_CLHR_ASYMMETRIC (_I2C_CTRL_CLHR_ASYMMETRIC << 8) /**< Shifted mode ASYMMETRIC for I2C_CTRL */
+#define I2C_CTRL_CLHR_FAST (_I2C_CTRL_CLHR_FAST << 8) /**< Shifted mode FAST for I2C_CTRL */
+#define _I2C_CTRL_BITO_SHIFT 12 /**< Shift value for I2C_BITO */
+#define _I2C_CTRL_BITO_MASK 0x3000UL /**< Bit mask for I2C_BITO */
+#define _I2C_CTRL_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_BITO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_DEFAULT (_I2C_CTRL_BITO_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_BITO_OFF (_I2C_CTRL_BITO_OFF << 12) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C40PCC (_I2C_CTRL_BITO_I2C40PCC << 12) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C80PCC (_I2C_CTRL_BITO_I2C80PCC << 12) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C160PCC (_I2C_CTRL_BITO_I2C160PCC << 12) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_GIBITO (0x1UL << 15) /**< Go Idle on Bus Idle Timeout */
+#define _I2C_CTRL_GIBITO_SHIFT 15 /**< Shift value for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_MASK 0x8000UL /**< Bit mask for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DEFAULT (_I2C_CTRL_GIBITO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DISABLE (_I2C_CTRL_GIBITO_DISABLE << 15) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_ENABLE (_I2C_CTRL_GIBITO_ENABLE << 15) /**< Shifted mode ENABLE for I2C_CTRL */
+#define _I2C_CTRL_CLTO_SHIFT 16 /**< Shift value for I2C_CLTO */
+#define _I2C_CTRL_CLTO_MASK 0x70000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_CTRL_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLTO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C320PCC 0x00000004UL /**< Mode I2C320PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C1024PCC 0x00000005UL /**< Mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_DEFAULT (_I2C_CTRL_CLTO_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLTO_OFF (_I2C_CTRL_CLTO_OFF << 16) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C40PCC (_I2C_CTRL_CLTO_I2C40PCC << 16) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C80PCC (_I2C_CTRL_CLTO_I2C80PCC << 16) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C160PCC (_I2C_CTRL_CLTO_I2C160PCC << 16) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C320PCC (_I2C_CTRL_CLTO_I2C320PCC << 16) /**< Shifted mode I2C320PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C1024PCC (_I2C_CTRL_CLTO_I2C1024PCC << 16) /**< Shifted mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN (0x1UL << 20) /**< SCL Monitor Enable */
+#define _I2C_CTRL_SCLMONEN_SHIFT 20 /**< Shift value for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_MASK 0x100000UL /**< Bit mask for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DEFAULT (_I2C_CTRL_SCLMONEN_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DISABLE (_I2C_CTRL_SCLMONEN_DISABLE << 20) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_ENABLE (_I2C_CTRL_SCLMONEN_ENABLE << 20) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN (0x1UL << 21) /**< SDA Monitor Enable */
+#define _I2C_CTRL_SDAMONEN_SHIFT 21 /**< Shift value for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_MASK 0x200000UL /**< Bit mask for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DEFAULT (_I2C_CTRL_SDAMONEN_DEFAULT << 21) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DISABLE (_I2C_CTRL_SDAMONEN_DISABLE << 21) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_ENABLE (_I2C_CTRL_SDAMONEN_ENABLE << 21) /**< Shifted mode ENABLE for I2C_CTRL */
+
+/* Bit fields for I2C CMD */
+#define _I2C_CMD_RESETVALUE 0x00000000UL /**< Default value for I2C_CMD */
+#define _I2C_CMD_MASK 0x000000FFUL /**< Mask for I2C_CMD */
+#define I2C_CMD_START (0x1UL << 0) /**< Send start condition */
+#define _I2C_CMD_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_CMD_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_START_DEFAULT (_I2C_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP (0x1UL << 1) /**< Send stop condition */
+#define _I2C_CMD_STOP_SHIFT 1 /**< Shift value for I2C_STOP */
+#define _I2C_CMD_STOP_MASK 0x2UL /**< Bit mask for I2C_STOP */
+#define _I2C_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP_DEFAULT (_I2C_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK (0x1UL << 2) /**< Send ACK */
+#define _I2C_CMD_ACK_SHIFT 2 /**< Shift value for I2C_ACK */
+#define _I2C_CMD_ACK_MASK 0x4UL /**< Bit mask for I2C_ACK */
+#define _I2C_CMD_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK_DEFAULT (_I2C_CMD_ACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK (0x1UL << 3) /**< Send NACK */
+#define _I2C_CMD_NACK_SHIFT 3 /**< Shift value for I2C_NACK */
+#define _I2C_CMD_NACK_MASK 0x8UL /**< Bit mask for I2C_NACK */
+#define _I2C_CMD_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK_DEFAULT (_I2C_CMD_NACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT (0x1UL << 4) /**< Continue transmission */
+#define _I2C_CMD_CONT_SHIFT 4 /**< Shift value for I2C_CONT */
+#define _I2C_CMD_CONT_MASK 0x10UL /**< Bit mask for I2C_CONT */
+#define _I2C_CMD_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT_DEFAULT (_I2C_CMD_CONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT (0x1UL << 5) /**< Abort transmission */
+#define _I2C_CMD_ABORT_SHIFT 5 /**< Shift value for I2C_ABORT */
+#define _I2C_CMD_ABORT_MASK 0x20UL /**< Bit mask for I2C_ABORT */
+#define _I2C_CMD_ABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT_DEFAULT (_I2C_CMD_ABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX (0x1UL << 6) /**< Clear TX */
+#define _I2C_CMD_CLEARTX_SHIFT 6 /**< Shift value for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_MASK 0x40UL /**< Bit mask for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX_DEFAULT (_I2C_CMD_CLEARTX_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC (0x1UL << 7) /**< Clear Pending Commands */
+#define _I2C_CMD_CLEARPC_SHIFT 7 /**< Shift value for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_MASK 0x80UL /**< Bit mask for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC_DEFAULT (_I2C_CMD_CLEARPC_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CMD */
+
+/* Bit fields for I2C STATE */
+#define _I2C_STATE_RESETVALUE 0x00000001UL /**< Default value for I2C_STATE */
+#define _I2C_STATE_MASK 0x000000FFUL /**< Mask for I2C_STATE */
+#define I2C_STATE_BUSY (0x1UL << 0) /**< Bus Busy */
+#define _I2C_STATE_BUSY_SHIFT 0 /**< Shift value for I2C_BUSY */
+#define _I2C_STATE_BUSY_MASK 0x1UL /**< Bit mask for I2C_BUSY */
+#define _I2C_STATE_BUSY_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSY_DEFAULT (_I2C_STATE_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER (0x1UL << 1) /**< Leader */
+#define _I2C_STATE_MASTER_SHIFT 1 /**< Shift value for I2C_MASTER */
+#define _I2C_STATE_MASTER_MASK 0x2UL /**< Bit mask for I2C_MASTER */
+#define _I2C_STATE_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER_DEFAULT (_I2C_STATE_MASTER_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER (0x1UL << 2) /**< Transmitter */
+#define _I2C_STATE_TRANSMITTER_SHIFT 2 /**< Shift value for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_MASK 0x4UL /**< Bit mask for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER_DEFAULT (_I2C_STATE_TRANSMITTER_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED (0x1UL << 3) /**< Nack Received */
+#define _I2C_STATE_NACKED_SHIFT 3 /**< Shift value for I2C_NACKED */
+#define _I2C_STATE_NACKED_MASK 0x8UL /**< Bit mask for I2C_NACKED */
+#define _I2C_STATE_NACKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED_DEFAULT (_I2C_STATE_NACKED_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD (0x1UL << 4) /**< Bus Held */
+#define _I2C_STATE_BUSHOLD_SHIFT 4 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_MASK 0x10UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD_DEFAULT (_I2C_STATE_BUSHOLD_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_SHIFT 5 /**< Shift value for I2C_STATE */
+#define _I2C_STATE_STATE_MASK 0xE0UL /**< Bit mask for I2C_STATE */
+#define _I2C_STATE_STATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_IDLE 0x00000000UL /**< Mode IDLE for I2C_STATE */
+#define _I2C_STATE_STATE_WAIT 0x00000001UL /**< Mode WAIT for I2C_STATE */
+#define _I2C_STATE_STATE_START 0x00000002UL /**< Mode START for I2C_STATE */
+#define _I2C_STATE_STATE_ADDR 0x00000003UL /**< Mode ADDR for I2C_STATE */
+#define _I2C_STATE_STATE_ADDRACK 0x00000004UL /**< Mode ADDRACK for I2C_STATE */
+#define _I2C_STATE_STATE_DATA 0x00000005UL /**< Mode DATA for I2C_STATE */
+#define _I2C_STATE_STATE_DATAACK 0x00000006UL /**< Mode DATAACK for I2C_STATE */
+#define I2C_STATE_STATE_DEFAULT (_I2C_STATE_STATE_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_STATE_IDLE (_I2C_STATE_STATE_IDLE << 5) /**< Shifted mode IDLE for I2C_STATE */
+#define I2C_STATE_STATE_WAIT (_I2C_STATE_STATE_WAIT << 5) /**< Shifted mode WAIT for I2C_STATE */
+#define I2C_STATE_STATE_START (_I2C_STATE_STATE_START << 5) /**< Shifted mode START for I2C_STATE */
+#define I2C_STATE_STATE_ADDR (_I2C_STATE_STATE_ADDR << 5) /**< Shifted mode ADDR for I2C_STATE */
+#define I2C_STATE_STATE_ADDRACK (_I2C_STATE_STATE_ADDRACK << 5) /**< Shifted mode ADDRACK for I2C_STATE */
+#define I2C_STATE_STATE_DATA (_I2C_STATE_STATE_DATA << 5) /**< Shifted mode DATA for I2C_STATE */
+#define I2C_STATE_STATE_DATAACK (_I2C_STATE_STATE_DATAACK << 5) /**< Shifted mode DATAACK for I2C_STATE */
+
+/* Bit fields for I2C STATUS */
+#define _I2C_STATUS_RESETVALUE 0x00000080UL /**< Default value for I2C_STATUS */
+#define _I2C_STATUS_MASK 0x00000FFFUL /**< Mask for I2C_STATUS */
+#define I2C_STATUS_PSTART (0x1UL << 0) /**< Pending START */
+#define _I2C_STATUS_PSTART_SHIFT 0 /**< Shift value for I2C_PSTART */
+#define _I2C_STATUS_PSTART_MASK 0x1UL /**< Bit mask for I2C_PSTART */
+#define _I2C_STATUS_PSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTART_DEFAULT (_I2C_STATUS_PSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP (0x1UL << 1) /**< Pending STOP */
+#define _I2C_STATUS_PSTOP_SHIFT 1 /**< Shift value for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_MASK 0x2UL /**< Bit mask for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP_DEFAULT (_I2C_STATUS_PSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK (0x1UL << 2) /**< Pending ACK */
+#define _I2C_STATUS_PACK_SHIFT 2 /**< Shift value for I2C_PACK */
+#define _I2C_STATUS_PACK_MASK 0x4UL /**< Bit mask for I2C_PACK */
+#define _I2C_STATUS_PACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK_DEFAULT (_I2C_STATUS_PACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK (0x1UL << 3) /**< Pending NACK */
+#define _I2C_STATUS_PNACK_SHIFT 3 /**< Shift value for I2C_PNACK */
+#define _I2C_STATUS_PNACK_MASK 0x8UL /**< Bit mask for I2C_PNACK */
+#define _I2C_STATUS_PNACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK_DEFAULT (_I2C_STATUS_PNACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT (0x1UL << 4) /**< Pending continue */
+#define _I2C_STATUS_PCONT_SHIFT 4 /**< Shift value for I2C_PCONT */
+#define _I2C_STATUS_PCONT_MASK 0x10UL /**< Bit mask for I2C_PCONT */
+#define _I2C_STATUS_PCONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT_DEFAULT (_I2C_STATUS_PCONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT (0x1UL << 5) /**< Pending abort */
+#define _I2C_STATUS_PABORT_SHIFT 5 /**< Shift value for I2C_PABORT */
+#define _I2C_STATUS_PABORT_MASK 0x20UL /**< Bit mask for I2C_PABORT */
+#define _I2C_STATUS_PABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT_DEFAULT (_I2C_STATUS_PABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC (0x1UL << 6) /**< TX Complete */
+#define _I2C_STATUS_TXC_SHIFT 6 /**< Shift value for I2C_TXC */
+#define _I2C_STATUS_TXC_MASK 0x40UL /**< Bit mask for I2C_TXC */
+#define _I2C_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC_DEFAULT (_I2C_STATUS_TXC_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL (0x1UL << 7) /**< TX Buffer Level */
+#define _I2C_STATUS_TXBL_SHIFT 7 /**< Shift value for I2C_TXBL */
+#define _I2C_STATUS_TXBL_MASK 0x80UL /**< Bit mask for I2C_TXBL */
+#define _I2C_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL_DEFAULT (_I2C_STATUS_TXBL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV (0x1UL << 8) /**< RX Data Valid */
+#define _I2C_STATUS_RXDATAV_SHIFT 8 /**< Shift value for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_MASK 0x100UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV_DEFAULT (_I2C_STATUS_RXDATAV_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL (0x1UL << 9) /**< RX FIFO Full */
+#define _I2C_STATUS_RXFULL_SHIFT 9 /**< Shift value for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_MASK 0x200UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL_DEFAULT (_I2C_STATUS_RXFULL_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define _I2C_STATUS_TXBUFCNT_SHIFT 10 /**< Shift value for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_MASK 0xC00UL /**< Bit mask for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBUFCNT_DEFAULT (_I2C_STATUS_TXBUFCNT_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_STATUS */
+
+/* Bit fields for I2C CLKDIV */
+#define _I2C_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for I2C_CLKDIV */
+#define _I2C_CLKDIV_MASK 0x000001FFUL /**< Mask for I2C_CLKDIV */
+#define _I2C_CLKDIV_DIV_SHIFT 0 /**< Shift value for I2C_DIV */
+#define _I2C_CLKDIV_DIV_MASK 0x1FFUL /**< Bit mask for I2C_DIV */
+#define _I2C_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CLKDIV */
+#define I2C_CLKDIV_DIV_DEFAULT (_I2C_CLKDIV_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CLKDIV */
+
+/* Bit fields for I2C SADDR */
+#define _I2C_SADDR_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDR */
+#define _I2C_SADDR_MASK 0x000000FEUL /**< Mask for I2C_SADDR */
+#define _I2C_SADDR_ADDR_SHIFT 1 /**< Shift value for I2C_ADDR */
+#define _I2C_SADDR_ADDR_MASK 0xFEUL /**< Bit mask for I2C_ADDR */
+#define _I2C_SADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDR */
+#define I2C_SADDR_ADDR_DEFAULT (_I2C_SADDR_ADDR_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDR */
+
+/* Bit fields for I2C SADDRMASK */
+#define _I2C_SADDRMASK_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_MASK 0x000000FEUL /**< Mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_SHIFT 1 /**< Shift value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_MASK 0xFEUL /**< Bit mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDRMASK */
+#define I2C_SADDRMASK_SADDRMASK_DEFAULT (_I2C_SADDRMASK_SADDRMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDRMASK */
+
+/* Bit fields for I2C RXDATA */
+#define _I2C_RXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATA */
+#define _I2C_RXDATA_MASK 0x000000FFUL /**< Mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_SHIFT 0 /**< Shift value for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATA */
+#define I2C_RXDATA_RXDATA_DEFAULT (_I2C_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATA */
+
+/* Bit fields for I2C RXDOUBLE */
+#define _I2C_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA0_DEFAULT (_I2C_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA1_DEFAULT (_I2C_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+
+/* Bit fields for I2C RXDATAP */
+#define _I2C_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATAP */
+#define _I2C_RXDATAP_MASK 0x000000FFUL /**< Mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATAP */
+#define I2C_RXDATAP_RXDATAP_DEFAULT (_I2C_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATAP */
+
+/* Bit fields for I2C RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP0_SHIFT 0 /**< Shift value for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP0_DEFAULT (_I2C_RXDOUBLEP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP1_SHIFT 8 /**< Shift value for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP1_DEFAULT (_I2C_RXDOUBLEP_RXDATAP1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+
+/* Bit fields for I2C TXDATA */
+#define _I2C_TXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDATA */
+#define _I2C_TXDATA_MASK 0x000000FFUL /**< Mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_SHIFT 0 /**< Shift value for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDATA */
+#define I2C_TXDATA_TXDATA_DEFAULT (_I2C_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDATA */
+
+/* Bit fields for I2C TXDOUBLE */
+#define _I2C_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA0_DEFAULT (_I2C_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA1_DEFAULT (_I2C_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+
+/* Bit fields for I2C IF */
+#define _I2C_IF_RESETVALUE 0x00000000UL /**< Default value for I2C_IF */
+#define _I2C_IF_MASK 0x001FFFFFUL /**< Mask for I2C_IF */
+#define I2C_IF_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IF_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IF_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IF_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_START_DEFAULT (_I2C_IF_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IF_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IF_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IF_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART_DEFAULT (_I2C_IF_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IF_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IF_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IF_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR_DEFAULT (_I2C_IF_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IF_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IF_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC_DEFAULT (_I2C_IF_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IF_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IF_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IF_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL_DEFAULT (_I2C_IF_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IF_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV_DEFAULT (_I2C_IF_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IF_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IF_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IF_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK_DEFAULT (_I2C_IF_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IF_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IF_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IF_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK_DEFAULT (_I2C_IF_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IF_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IF_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IF_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP_DEFAULT (_I2C_IF_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IF_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST_DEFAULT (_I2C_IF_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IF_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IF_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IF_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR_DEFAULT (_I2C_IF_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IF_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD_DEFAULT (_I2C_IF_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IF_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IF_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF_DEFAULT (_I2C_IF_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IF_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IF_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF_DEFAULT (_I2C_IF_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IF_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IF_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IF_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO_DEFAULT (_I2C_IF_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IF_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IF_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IF_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO_DEFAULT (_I2C_IF_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IF_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IF_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IF_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP_DEFAULT (_I2C_IF_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IF_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IF_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL_DEFAULT (_I2C_IF_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IF_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IF_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IF_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR_DEFAULT (_I2C_IF_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IF_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IF_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IF_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR_DEFAULT (_I2C_IF_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IF_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IF_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IF_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR_DEFAULT (_I2C_IF_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IF */
+
+/* Bit fields for I2C IEN */
+#define _I2C_IEN_RESETVALUE 0x00000000UL /**< Default value for I2C_IEN */
+#define _I2C_IEN_MASK 0x001FFFFFUL /**< Mask for I2C_IEN */
+#define I2C_IEN_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IEN_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IEN_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IEN_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_START_DEFAULT (_I2C_IEN_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IEN_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IEN_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IEN_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART_DEFAULT (_I2C_IEN_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IEN_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IEN_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IEN_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR_DEFAULT (_I2C_IEN_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IEN_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IEN_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC_DEFAULT (_I2C_IEN_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IEN_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IEN_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL_DEFAULT (_I2C_IEN_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IEN_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV_DEFAULT (_I2C_IEN_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IEN_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IEN_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK_DEFAULT (_I2C_IEN_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IEN_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IEN_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK_DEFAULT (_I2C_IEN_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IEN_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP_DEFAULT (_I2C_IEN_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IEN_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST_DEFAULT (_I2C_IEN_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IEN_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR_DEFAULT (_I2C_IEN_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IEN_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD_DEFAULT (_I2C_IEN_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IEN_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IEN_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF_DEFAULT (_I2C_IEN_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IEN_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IEN_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF_DEFAULT (_I2C_IEN_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IEN_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IEN_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IEN_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO_DEFAULT (_I2C_IEN_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IEN_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IEN_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IEN_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO_DEFAULT (_I2C_IEN_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IEN_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP_DEFAULT (_I2C_IEN_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IEN_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL_DEFAULT (_I2C_IEN_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IEN_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IEN_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IEN_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR_DEFAULT (_I2C_IEN_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IEN_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR_DEFAULT (_I2C_IEN_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IEN_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR_DEFAULT (_I2C_IEN_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IEN */
+
+/** @} End of group EFR32BG29_I2C_BitFields */
+/** @} End of group EFR32BG29_I2C */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_I2C_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_iadc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_iadc.h
new file mode 100644
index 000000000..7f25c71ea
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_iadc.h
@@ -0,0 +1,1005 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 IADC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_IADC_H
+#define EFR32BG29_IADC_H
+#define IADC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_IADC IADC
+ * @{
+ * @brief EFR32BG29 IADC Register Declaration.
+ *****************************************************************************/
+
+/** IADC CFG Register Group Declaration. */
+typedef struct iadc_cfg_typedef{
+ __IOM uint32_t CFG; /**< Configuration */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t SCALE; /**< Scaling */
+ __IOM uint32_t SCHED; /**< Scheduling */
+} IADC_CFG_TypeDef;
+
+/** IADC SCANTABLE Register Group Declaration. */
+typedef struct iadc_scantable_typedef{
+ __IOM uint32_t SCAN; /**< SCAN Entry */
+} IADC_SCANTABLE_TypeDef;
+
+/** IADC Register Declaration. */
+typedef struct iadc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CTRL; /**< Control */
+ __IOM uint32_t CMD; /**< Command */
+ __IOM uint32_t TIMER; /**< Timer */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t MASKREQ; /**< Mask Request */
+ __IM uint32_t STMASK; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER; /**< Trigger */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG[2U]; /**< CFG */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA; /**< Scan Data */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE; /**< Single Queue Port Selection */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE[16U]; /**< SCANTABLE */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ __IOM uint32_t CMD_SET; /**< Command */
+ __IOM uint32_t TIMER_SET; /**< Timer */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t MASKREQ_SET; /**< Mask Request */
+ __IM uint32_t STMASK_SET; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_SET; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_SET; /**< Trigger */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_SET[2U]; /**< CFG */
+ uint32_t RESERVED11[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_SET; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_SET; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_SET; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_SET; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_SET; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_SET; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_SET; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_SET; /**< Scan Data */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_SET; /**< Single Queue Port Selection */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_SET[16U]; /**< SCANTABLE */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ __IOM uint32_t CMD_CLR; /**< Command */
+ __IOM uint32_t TIMER_CLR; /**< Timer */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t MASKREQ_CLR; /**< Mask Request */
+ __IM uint32_t STMASK_CLR; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_CLR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_CLR; /**< Trigger */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_CLR[2U]; /**< CFG */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_CLR; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_CLR; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_CLR; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_CLR; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_CLR; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_CLR; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_CLR; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_CLR; /**< Scan Data */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_CLR; /**< Single Queue Port Selection */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_CLR[16U]; /**< SCANTABLE */
+ uint32_t RESERVED24[4U]; /**< Reserved for future use */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ uint32_t RESERVED26[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ __IOM uint32_t CMD_TGL; /**< Command */
+ __IOM uint32_t TIMER_TGL; /**< Timer */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t MASKREQ_TGL; /**< Mask Request */
+ __IM uint32_t STMASK_TGL; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_TGL; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_TGL; /**< Trigger */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_TGL[2U]; /**< CFG */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_TGL; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_TGL; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_TGL; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_TGL; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_TGL; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_TGL; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_TGL; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_TGL; /**< Scan Data */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_TGL; /**< Single Queue Port Selection */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_TGL[16U]; /**< SCANTABLE */
+ uint32_t RESERVED33[4U]; /**< Reserved for future use */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+} IADC_TypeDef;
+/** @} End of group EFR32BG29_IADC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_IADC
+ * @{
+ * @defgroup EFR32BG29_IADC_BitFields IADC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for IADC IPVERSION */
+#define _IADC_IPVERSION_RESETVALUE 0x00000004UL /**< Default value for IADC_IPVERSION */
+#define _IADC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_DEFAULT 0x00000004UL /**< Mode DEFAULT for IADC_IPVERSION */
+#define IADC_IPVERSION_IPVERSION_DEFAULT (_IADC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IPVERSION */
+
+/* Bit fields for IADC EN */
+#define _IADC_EN_RESETVALUE 0x00000000UL /**< Default value for IADC_EN */
+#define _IADC_EN_MASK 0x00000001UL /**< Mask for IADC_EN */
+#define IADC_EN_EN (0x1UL << 0) /**< Enable IADC Module */
+#define _IADC_EN_EN_SHIFT 0 /**< Shift value for IADC_EN */
+#define _IADC_EN_EN_MASK 0x1UL /**< Bit mask for IADC_EN */
+#define _IADC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_EN */
+#define _IADC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for IADC_EN */
+#define _IADC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for IADC_EN */
+#define IADC_EN_EN_DEFAULT (_IADC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_EN */
+#define IADC_EN_EN_DISABLE (_IADC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for IADC_EN */
+#define IADC_EN_EN_ENABLE (_IADC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for IADC_EN */
+
+/* Bit fields for IADC CTRL */
+#define _IADC_CTRL_RESETVALUE 0x00000000UL /**< Default value for IADC_CTRL */
+#define _IADC_CTRL_MASK 0x707F003FUL /**< Mask for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT (0x1UL << 0) /**< EM23 Wakeup on Conversion */
+#define _IADC_CTRL_EM23WUCONVERT_SHIFT 0 /**< Shift value for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_MASK 0x1UL /**< Bit mask for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUDVL 0x00000000UL /**< Mode WUDVL for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUCONVERT 0x00000001UL /**< Mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_DEFAULT (_IADC_CTRL_EM23WUCONVERT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUDVL (_IADC_CTRL_EM23WUCONVERT_WUDVL << 0) /**< Shifted mode WUDVL for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUCONVERT (_IADC_CTRL_EM23WUCONVERT_WUCONVERT << 0) /**< Shifted mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0 (0x1UL << 1) /**< ADC_CLK Suspend - PRS0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_SHIFT 1 /**< Shift value for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_MASK 0x2UL /**< Bit mask for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND0_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS << 1) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN << 1) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1 (0x1UL << 2) /**< ADC_CLK Suspend - PRS1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_SHIFT 2 /**< Shift value for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_MASK 0x4UL /**< Bit mask for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND1_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS << 2) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN << 2) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_DBGHALT (0x1UL << 3) /**< Debug Halt */
+#define _IADC_CTRL_DBGHALT_SHIFT 3 /**< Shift value for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_MASK 0x8UL /**< Bit mask for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_HALT 0x00000001UL /**< Mode HALT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_DEFAULT (_IADC_CTRL_DBGHALT_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_NORMAL (_IADC_CTRL_DBGHALT_NORMAL << 3) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_HALT (_IADC_CTRL_DBGHALT_HALT << 3) /**< Shifted mode HALT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_SHIFT 4 /**< Shift value for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_MASK 0x30UL /**< Bit mask for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPINSTANDBY 0x00000001UL /**< Mode KEEPINSTANDBY for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPWARM 0x00000002UL /**< Mode KEEPWARM for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_DEFAULT (_IADC_CTRL_WARMUPMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_NORMAL (_IADC_CTRL_WARMUPMODE_NORMAL << 4) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPINSTANDBY (_IADC_CTRL_WARMUPMODE_KEEPINSTANDBY << 4) /**< Shifted mode KEEPINSTANDBY for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPWARM (_IADC_CTRL_WARMUPMODE_KEEPWARM << 4) /**< Shifted mode KEEPWARM for IADC_CTRL */
+#define _IADC_CTRL_TIMEBASE_SHIFT 16 /**< Shift value for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_MASK 0x7F0000UL /**< Bit mask for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_TIMEBASE_DEFAULT (_IADC_CTRL_TIMEBASE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_SHIFT 28 /**< Shift value for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_MASK 0x70000000UL /**< Bit mask for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV1 0x00000000UL /**< Mode DIV1 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV2 0x00000001UL /**< Mode DIV2 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV3 0x00000002UL /**< Mode DIV3 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV4 0x00000003UL /**< Mode DIV4 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DEFAULT (_IADC_CTRL_HSCLKRATE_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV1 (_IADC_CTRL_HSCLKRATE_DIV1 << 28) /**< Shifted mode DIV1 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV2 (_IADC_CTRL_HSCLKRATE_DIV2 << 28) /**< Shifted mode DIV2 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV3 (_IADC_CTRL_HSCLKRATE_DIV3 << 28) /**< Shifted mode DIV3 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV4 (_IADC_CTRL_HSCLKRATE_DIV4 << 28) /**< Shifted mode DIV4 for IADC_CTRL */
+
+/* Bit fields for IADC CMD */
+#define _IADC_CMD_RESETVALUE 0x00000000UL /**< Default value for IADC_CMD */
+#define _IADC_CMD_MASK 0x0303001BUL /**< Mask for IADC_CMD */
+#define IADC_CMD_SINGLESTART (0x1UL << 0) /**< Single Queue Start */
+#define _IADC_CMD_SINGLESTART_SHIFT 0 /**< Shift value for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_MASK 0x1UL /**< Bit mask for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTART_DEFAULT (_IADC_CMD_SINGLESTART_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP (0x1UL << 1) /**< Single Queue Stop */
+#define _IADC_CMD_SINGLESTOP_SHIFT 1 /**< Shift value for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_MASK 0x2UL /**< Bit mask for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP_DEFAULT (_IADC_CMD_SINGLESTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART (0x1UL << 3) /**< Scan Queue Start */
+#define _IADC_CMD_SCANSTART_SHIFT 3 /**< Shift value for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_MASK 0x8UL /**< Bit mask for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART_DEFAULT (_IADC_CMD_SCANSTART_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP (0x1UL << 4) /**< Scan Queue Stop */
+#define _IADC_CMD_SCANSTOP_SHIFT 4 /**< Shift value for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_MASK 0x10UL /**< Bit mask for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP_DEFAULT (_IADC_CMD_SCANSTOP_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN (0x1UL << 16) /**< Timer Enable */
+#define _IADC_CMD_TIMEREN_SHIFT 16 /**< Shift value for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_MASK 0x10000UL /**< Bit mask for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN_DEFAULT (_IADC_CMD_TIMEREN_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS (0x1UL << 17) /**< Timer Disable */
+#define _IADC_CMD_TIMERDIS_SHIFT 17 /**< Shift value for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_MASK 0x20000UL /**< Bit mask for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS_DEFAULT (_IADC_CMD_TIMERDIS_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH (0x1UL << 24) /**< Flush the Single FIFO */
+#define _IADC_CMD_SINGLEFIFOFLUSH_SHIFT 24 /**< Shift value for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_MASK 0x1000000UL /**< Bit mask for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH_DEFAULT (_IADC_CMD_SINGLEFIFOFLUSH_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH (0x1UL << 25) /**< Flush the Scan FIFO */
+#define _IADC_CMD_SCANFIFOFLUSH_SHIFT 25 /**< Shift value for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_MASK 0x2000000UL /**< Bit mask for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH_DEFAULT (_IADC_CMD_SCANFIFOFLUSH_DEFAULT << 25) /**< Shifted mode DEFAULT for IADC_CMD */
+
+/* Bit fields for IADC TIMER */
+#define _IADC_TIMER_RESETVALUE 0x00000000UL /**< Default value for IADC_TIMER */
+#define _IADC_TIMER_MASK 0x0000FFFFUL /**< Mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_SHIFT 0 /**< Shift value for IADC_TIMER */
+#define _IADC_TIMER_TIMER_MASK 0xFFFFUL /**< Bit mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TIMER */
+#define IADC_TIMER_TIMER_DEFAULT (_IADC_TIMER_TIMER_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TIMER */
+
+/* Bit fields for IADC STATUS */
+#define _IADC_STATUS_RESETVALUE 0x00000000UL /**< Default value for IADC_STATUS */
+#define _IADC_STATUS_MASK 0x4131CF5BUL /**< Mask for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN (0x1UL << 0) /**< Single Queue Enabled */
+#define _IADC_STATUS_SINGLEQEN_SHIFT 0 /**< Shift value for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_MASK 0x1UL /**< Bit mask for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN_DEFAULT (_IADC_STATUS_SINGLEQEN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING (0x1UL << 1) /**< Single Queue Pending */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_SHIFT 1 /**< Shift value for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_MASK 0x2UL /**< Bit mask for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT (_IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN (0x1UL << 3) /**< Scan Queued Enabled */
+#define _IADC_STATUS_SCANQEN_SHIFT 3 /**< Shift value for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_MASK 0x8UL /**< Bit mask for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN_DEFAULT (_IADC_STATUS_SCANQEN_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING (0x1UL << 4) /**< Scan Queue Pending */
+#define _IADC_STATUS_SCANQUEUEPENDING_SHIFT 4 /**< Shift value for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_MASK 0x10UL /**< Bit mask for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING_DEFAULT (_IADC_STATUS_SCANQUEUEPENDING_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING (0x1UL << 6) /**< Converting */
+#define _IADC_STATUS_CONVERTING_SHIFT 6 /**< Shift value for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_MASK 0x40UL /**< Bit mask for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING_DEFAULT (_IADC_STATUS_CONVERTING_DEFAULT << 6) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV (0x1UL << 8) /**< SINGLEFIFO Data Valid */
+#define _IADC_STATUS_SINGLEFIFODV_SHIFT 8 /**< Shift value for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_MASK 0x100UL /**< Bit mask for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV_DEFAULT (_IADC_STATUS_SINGLEFIFODV_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV (0x1UL << 9) /**< SCANFIFO Data Valid */
+#define _IADC_STATUS_SCANFIFODV_SHIFT 9 /**< Shift value for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_MASK 0x200UL /**< Bit mask for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV_DEFAULT (_IADC_STATUS_SCANFIFODV_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING (0x1UL << 14) /**< The Single FIFO is flushing */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_SHIFT 14 /**< Shift value for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_MASK 0x4000UL /**< Bit mask for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT (_IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT << 14) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING (0x1UL << 15) /**< The Scan FIFO is flushing */
+#define _IADC_STATUS_SCANFIFOFLUSHING_SHIFT 15 /**< Shift value for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_MASK 0x8000UL /**< Bit mask for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING_DEFAULT (_IADC_STATUS_SCANFIFOFLUSHING_DEFAULT << 15) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE (0x1UL << 16) /**< Timer Active */
+#define _IADC_STATUS_TIMERACTIVE_SHIFT 16 /**< Shift value for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_MASK 0x10000UL /**< Bit mask for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE_DEFAULT (_IADC_STATUS_TIMERACTIVE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING (0x1UL << 20) /**< SINGLE write pending */
+#define _IADC_STATUS_SINGLEWRITEPENDING_SHIFT 20 /**< Shift value for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_MASK 0x100000UL /**< Bit mask for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING_DEFAULT (_IADC_STATUS_SINGLEWRITEPENDING_DEFAULT << 20) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING (0x1UL << 21) /**< MASKREQ write pending */
+#define _IADC_STATUS_MASKREQWRITEPENDING_SHIFT 21 /**< Shift value for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_MASK 0x200000UL /**< Bit mask for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING_DEFAULT (_IADC_STATUS_MASKREQWRITEPENDING_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY (0x1UL << 24) /**< SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_SHIFT 24 /**< Shift value for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_MASK 0x1000000UL /**< Bit mask for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY_DEFAULT (_IADC_STATUS_SYNCBUSY_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM (0x1UL << 30) /**< ADCWARM */
+#define _IADC_STATUS_ADCWARM_SHIFT 30 /**< Shift value for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_MASK 0x40000000UL /**< Bit mask for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM_DEFAULT (_IADC_STATUS_ADCWARM_DEFAULT << 30) /**< Shifted mode DEFAULT for IADC_STATUS */
+
+/* Bit fields for IADC MASKREQ */
+#define _IADC_MASKREQ_RESETVALUE 0x00000000UL /**< Default value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASK 0x0000FFFFUL /**< Mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_SHIFT 0 /**< Shift value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_MASK 0xFFFFUL /**< Bit mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_MASKREQ */
+#define IADC_MASKREQ_MASKREQ_DEFAULT (_IADC_MASKREQ_MASKREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_MASKREQ */
+
+/* Bit fields for IADC STMASK */
+#define _IADC_STMASK_RESETVALUE 0x00000000UL /**< Default value for IADC_STMASK */
+#define _IADC_STMASK_MASK 0x0000FFFFUL /**< Mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_SHIFT 0 /**< Shift value for IADC_STMASK */
+#define _IADC_STMASK_STMASK_MASK 0xFFFFUL /**< Bit mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STMASK */
+#define IADC_STMASK_STMASK_DEFAULT (_IADC_STMASK_STMASK_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STMASK */
+
+/* Bit fields for IADC CMPTHR */
+#define _IADC_CMPTHR_RESETVALUE 0x00000000UL /**< Default value for IADC_CMPTHR */
+#define _IADC_CMPTHR_MASK 0xFFFFFFFFUL /**< Mask for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADLT_SHIFT 0 /**< Shift value for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_MASK 0xFFFFUL /**< Bit mask for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADLT_DEFAULT (_IADC_CMPTHR_ADLT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADGT_SHIFT 16 /**< Shift value for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_MASK 0xFFFF0000UL /**< Bit mask for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADGT_DEFAULT (_IADC_CMPTHR_ADGT_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+
+/* Bit fields for IADC IF */
+#define _IADC_IF_RESETVALUE 0x00000000UL /**< Default value for IADC_IF */
+#define _IADC_IF_MASK 0x800F338FUL /**< Mask for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level */
+#define _IADC_IF_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL_DEFAULT (_IADC_IF_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level */
+#define _IADC_IF_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL_DEFAULT (_IADC_IF_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare */
+#define _IADC_IF_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP_DEFAULT (_IADC_IF_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare */
+#define _IADC_IF_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP_DEFAULT (_IADC_IF_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done */
+#define _IADC_IF_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE_DEFAULT (_IADC_IF_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done */
+#define _IADC_IF_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE_DEFAULT (_IADC_IF_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done */
+#define _IADC_IF_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE_DEFAULT (_IADC_IF_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR (0x1UL << 12) /**< Polarity Error */
+#define _IADC_IF_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR_DEFAULT (_IADC_IF_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error */
+#define _IADC_IF_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR_DEFAULT (_IADC_IF_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow */
+#define _IADC_IF_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF_DEFAULT (_IADC_IF_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow */
+#define _IADC_IF_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF_DEFAULT (_IADC_IF_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow */
+#define _IADC_IF_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF_DEFAULT (_IADC_IF_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow */
+#define _IADC_IF_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF_DEFAULT (_IADC_IF_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error */
+#define _IADC_IF_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR_DEFAULT (_IADC_IF_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IF */
+
+/* Bit fields for IADC IEN */
+#define _IADC_IEN_RESETVALUE 0x00000000UL /**< Default value for IADC_IEN */
+#define _IADC_IEN_MASK 0x800F338FUL /**< Mask for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level Enable */
+#define _IADC_IEN_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL_DEFAULT (_IADC_IEN_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level Enable */
+#define _IADC_IEN_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL_DEFAULT (_IADC_IEN_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare Enable */
+#define _IADC_IEN_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP_DEFAULT (_IADC_IEN_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare Enable */
+#define _IADC_IEN_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP_DEFAULT (_IADC_IEN_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done Enable */
+#define _IADC_IEN_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE_DEFAULT (_IADC_IEN_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done Enable */
+#define _IADC_IEN_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE_DEFAULT (_IADC_IEN_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done Enable */
+#define _IADC_IEN_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE_DEFAULT (_IADC_IEN_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR (0x1UL << 12) /**< Polarity Error Enable */
+#define _IADC_IEN_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR_DEFAULT (_IADC_IEN_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error Enable */
+#define _IADC_IEN_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR_DEFAULT (_IADC_IEN_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow Enable */
+#define _IADC_IEN_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF_DEFAULT (_IADC_IEN_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow Enable */
+#define _IADC_IEN_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF_DEFAULT (_IADC_IEN_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow Enable */
+#define _IADC_IEN_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF_DEFAULT (_IADC_IEN_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow Enable */
+#define _IADC_IEN_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF_DEFAULT (_IADC_IEN_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error Enable */
+#define _IADC_IEN_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR_DEFAULT (_IADC_IEN_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IEN */
+
+/* Bit fields for IADC TRIGGER */
+#define _IADC_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for IADC_TRIGGER */
+#define _IADC_TRIGGER_MASK 0x00011717UL /**< Mask for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_SHIFT 0 /**< Shift value for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_MASK 0x7UL /**< Bit mask for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_DEFAULT (_IADC_TRIGGER_SCANTRIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE (_IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE << 0) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_TIMER (_IADC_TRIGGER_SCANTRIGSEL_TIMER << 0) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP << 0) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSPOS (_IADC_TRIGGER_SCANTRIGSEL_PRSPOS << 0) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSNEG (_IADC_TRIGGER_SCANTRIGSEL_PRSNEG << 0) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION (0x1UL << 4) /**< Scan Trigger Action */
+#define _IADC_TRIGGER_SCANTRIGACTION_SHIFT 4 /**< Shift value for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_MASK 0x10UL /**< Bit mask for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_DEFAULT (_IADC_TRIGGER_SCANTRIGACTION_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_ONCE (_IADC_TRIGGER_SCANTRIGACTION_ONCE << 4) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS (_IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS << 4) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_SHIFT 8 /**< Shift value for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_MASK 0x700UL /**< Bit mask for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_DEFAULT (_IADC_TRIGGER_SINGLETRIGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE (_IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE << 8) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_TIMER (_IADC_TRIGGER_SINGLETRIGSEL_TIMER << 8) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP << 8) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSPOS (_IADC_TRIGGER_SINGLETRIGSEL_PRSPOS << 8) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSNEG (_IADC_TRIGGER_SINGLETRIGSEL_PRSNEG << 8) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION (0x1UL << 12) /**< Single Trigger Action */
+#define _IADC_TRIGGER_SINGLETRIGACTION_SHIFT 12 /**< Shift value for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_MASK 0x1000UL /**< Bit mask for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_DEFAULT (_IADC_TRIGGER_SINGLETRIGACTION_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_ONCE (_IADC_TRIGGER_SINGLETRIGACTION_ONCE << 12) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS (_IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS << 12) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE (0x1UL << 16) /**< Single Tailgate Enable */
+#define _IADC_TRIGGER_SINGLETAILGATE_SHIFT 16 /**< Shift value for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_MASK 0x10000UL /**< Bit mask for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF 0x00000000UL /**< Mode TAILGATEOFF for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEON 0x00000001UL /**< Mode TAILGATEON for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_DEFAULT (_IADC_TRIGGER_SINGLETAILGATE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF << 16) /**< Shifted mode TAILGATEOFF for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEON (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEON << 16) /**< Shifted mode TAILGATEON for IADC_TRIGGER */
+
+/* Bit fields for IADC CFG */
+#define _IADC_CFG_RESETVALUE 0x00002060UL /**< Default value for IADC_CFG */
+#define _IADC_CFG_MASK 0x30E770FFUL /**< Mask for IADC_CFG */
+#define _IADC_CFG_ADCMODE_SHIFT 0 /**< Shift value for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_MASK 0x3UL /**< Bit mask for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ADCMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CFG */
+#define IADC_CFG_ADCMODE_DEFAULT (_IADC_CFG_ADCMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ADCMODE_NORMAL (_IADC_CFG_ADCMODE_NORMAL << 0) /**< Shifted mode NORMAL for IADC_CFG */
+#define _IADC_CFG_OSRHS_SHIFT 2 /**< Shift value for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_MASK 0x1CUL /**< Bit mask for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD2 0x00000000UL /**< Mode HISPD2 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD4 0x00000001UL /**< Mode HISPD4 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD8 0x00000002UL /**< Mode HISPD8 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD16 0x00000003UL /**< Mode HISPD16 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD32 0x00000004UL /**< Mode HISPD32 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD64 0x00000005UL /**< Mode HISPD64 for IADC_CFG */
+#define IADC_CFG_OSRHS_DEFAULT (_IADC_CFG_OSRHS_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD2 (_IADC_CFG_OSRHS_HISPD2 << 2) /**< Shifted mode HISPD2 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD4 (_IADC_CFG_OSRHS_HISPD4 << 2) /**< Shifted mode HISPD4 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD8 (_IADC_CFG_OSRHS_HISPD8 << 2) /**< Shifted mode HISPD8 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD16 (_IADC_CFG_OSRHS_HISPD16 << 2) /**< Shifted mode HISPD16 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD32 (_IADC_CFG_OSRHS_HISPD32 << 2) /**< Shifted mode HISPD32 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD64 (_IADC_CFG_OSRHS_HISPD64 << 2) /**< Shifted mode HISPD64 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_SHIFT 12 /**< Shift value for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_MASK 0x7000UL /**< Bit mask for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_DEFAULT 0x00000002UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN0P5 0x00000001UL /**< Mode ANAGAIN0P5 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN1 0x00000002UL /**< Mode ANAGAIN1 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN2 0x00000003UL /**< Mode ANAGAIN2 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN3 0x00000004UL /**< Mode ANAGAIN3 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN4 0x00000005UL /**< Mode ANAGAIN4 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_DEFAULT (_IADC_CFG_ANALOGGAIN_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN0P5 (_IADC_CFG_ANALOGGAIN_ANAGAIN0P5 << 12) /**< Shifted mode ANAGAIN0P5 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN1 (_IADC_CFG_ANALOGGAIN_ANAGAIN1 << 12) /**< Shifted mode ANAGAIN1 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN2 (_IADC_CFG_ANALOGGAIN_ANAGAIN2 << 12) /**< Shifted mode ANAGAIN2 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN3 (_IADC_CFG_ANALOGGAIN_ANAGAIN3 << 12) /**< Shifted mode ANAGAIN3 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN4 (_IADC_CFG_ANALOGGAIN_ANAGAIN4 << 12) /**< Shifted mode ANAGAIN4 for IADC_CFG */
+#define _IADC_CFG_REFSEL_SHIFT 16 /**< Shift value for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_MASK 0x70000UL /**< Bit mask for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_REFSEL_VBGR 0x00000000UL /**< Mode VBGR for IADC_CFG */
+#define _IADC_CFG_REFSEL_VREF 0x00000001UL /**< Mode VREF for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX 0x00000003UL /**< Mode VDDX for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX0P8BUF 0x00000004UL /**< Mode VDDX0P8BUF for IADC_CFG */
+#define IADC_CFG_REFSEL_DEFAULT (_IADC_CFG_REFSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_REFSEL_VBGR (_IADC_CFG_REFSEL_VBGR << 16) /**< Shifted mode VBGR for IADC_CFG */
+#define IADC_CFG_REFSEL_VREF (_IADC_CFG_REFSEL_VREF << 16) /**< Shifted mode VREF for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX (_IADC_CFG_REFSEL_VDDX << 16) /**< Shifted mode VDDX for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX0P8BUF (_IADC_CFG_REFSEL_VDDX0P8BUF << 16) /**< Shifted mode VDDX0P8BUF for IADC_CFG */
+#define _IADC_CFG_DIGAVG_SHIFT 21 /**< Shift value for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_MASK 0xE00000UL /**< Bit mask for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG1 0x00000000UL /**< Mode AVG1 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG2 0x00000001UL /**< Mode AVG2 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG4 0x00000002UL /**< Mode AVG4 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG8 0x00000003UL /**< Mode AVG8 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG16 0x00000004UL /**< Mode AVG16 for IADC_CFG */
+#define IADC_CFG_DIGAVG_DEFAULT (_IADC_CFG_DIGAVG_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG1 (_IADC_CFG_DIGAVG_AVG1 << 21) /**< Shifted mode AVG1 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG2 (_IADC_CFG_DIGAVG_AVG2 << 21) /**< Shifted mode AVG2 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG4 (_IADC_CFG_DIGAVG_AVG4 << 21) /**< Shifted mode AVG4 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG8 (_IADC_CFG_DIGAVG_AVG8 << 21) /**< Shifted mode AVG8 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG16 (_IADC_CFG_DIGAVG_AVG16 << 21) /**< Shifted mode AVG16 for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_SHIFT 28 /**< Shift value for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_MASK 0x30000000UL /**< Bit mask for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_AUTO 0x00000000UL /**< Mode AUTO for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR 0x00000001UL /**< Mode FORCEUNIPOLAR for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEBIPOLAR 0x00000002UL /**< Mode FORCEBIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_DEFAULT (_IADC_CFG_TWOSCOMPL_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_AUTO (_IADC_CFG_TWOSCOMPL_AUTO << 28) /**< Shifted mode AUTO for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR << 28) /**< Shifted mode FORCEUNIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEBIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEBIPOLAR << 28) /**< Shifted mode FORCEBIPOLAR for IADC_CFG */
+
+/* Bit fields for IADC SCALE */
+#define _IADC_SCALE_RESETVALUE 0x8002C000UL /**< Default value for IADC_SCALE */
+#define _IADC_SCALE_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCALE */
+#define _IADC_SCALE_OFFSET_SHIFT 0 /**< Shift value for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_MASK 0x3FFFFUL /**< Bit mask for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_DEFAULT 0x0002C000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_OFFSET_DEFAULT (_IADC_SCALE_OFFSET_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN13LSB_SHIFT 18 /**< Shift value for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_MASK 0x7FFC0000UL /**< Bit mask for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN13LSB_DEFAULT (_IADC_SCALE_GAIN13LSB_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB (0x1UL << 31) /**< Gain 3 MSBs */
+#define _IADC_SCALE_GAIN3MSB_SHIFT 31 /**< Shift value for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_MASK 0x80000000UL /**< Bit mask for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_DEFAULT 0x00000001UL /**< Mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN011 0x00000000UL /**< Mode GAIN011 for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN100 0x00000001UL /**< Mode GAIN100 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_DEFAULT (_IADC_SCALE_GAIN3MSB_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN011 (_IADC_SCALE_GAIN3MSB_GAIN011 << 31) /**< Shifted mode GAIN011 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN100 (_IADC_SCALE_GAIN3MSB_GAIN100 << 31) /**< Shifted mode GAIN100 for IADC_SCALE */
+
+/* Bit fields for IADC SCHED */
+#define _IADC_SCHED_RESETVALUE 0x00000000UL /**< Default value for IADC_SCHED */
+#define _IADC_SCHED_MASK 0x000003FFUL /**< Mask for IADC_SCHED */
+#define _IADC_SCHED_PRESCALE_SHIFT 0 /**< Shift value for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_MASK 0x3FFUL /**< Bit mask for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCHED */
+#define IADC_SCHED_PRESCALE_DEFAULT (_IADC_SCHED_PRESCALE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCHED */
+
+/* Bit fields for IADC SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_MASK 0x0000013FUL /**< Mask for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID_DEFAULT (_IADC_SINGLEFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_MASK 0x30UL /**< Bit mask for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_DEFAULT (_IADC_SINGLEFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID1 (_IADC_SINGLEFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID2 (_IADC_SINGLEFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID3 (_IADC_SINGLEFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID4 (_IADC_SINGLEFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE (0x1UL << 8) /**< Single FIFO DMA wakeup. */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SINGLEFIFOCFG*/
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SINGLEFIFOCFG */
+
+/* Bit fields for IADC SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFODATA */
+#define IADC_SINGLEFIFODATA_DATA_DEFAULT (_IADC_SINGLEFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFODATA*/
+
+/* Bit fields for IADC SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_MASK 0x00000007UL /**< Mask for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_MASK 0x7UL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOSTAT */
+#define IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOSTAT*/
+
+/* Bit fields for IADC SINGLEDATA */
+#define _IADC_SINGLEDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEDATA */
+#define IADC_SINGLEDATA_DATA_DEFAULT (_IADC_SINGLEDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEDATA */
+
+/* Bit fields for IADC SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_MASK 0x0000013FUL /**< Mask for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SCANFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID_DEFAULT (_IADC_SCANFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_MASK 0x30UL /**< Bit mask for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_DEFAULT (_IADC_SCANFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID1 (_IADC_SCANFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID2 (_IADC_SCANFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID3 (_IADC_SCANFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID4 (_IADC_SCANFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN (0x1UL << 8) /**< Scan FIFO DMA Wakeup */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SCANFIFOCFG */
+
+/* Bit fields for IADC SCANFIFODATA */
+#define _IADC_SCANFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFODATA */
+#define IADC_SCANFIFODATA_DATA_DEFAULT (_IADC_SCANFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFODATA */
+
+/* Bit fields for IADC SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_MASK 0x00000007UL /**< Mask for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_MASK 0x7UL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOSTAT */
+#define IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOSTAT */
+
+/* Bit fields for IADC SCANDATA */
+#define _IADC_SCANDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANDATA */
+#define _IADC_SCANDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANDATA */
+#define _IADC_SCANDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANDATA */
+#define IADC_SCANDATA_DATA_DEFAULT (_IADC_SCANDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANDATA */
+
+/* Bit fields for IADC SINGLE */
+#define _IADC_SINGLE_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLE */
+#define _IADC_SINGLE_MASK 0x0003FFFFUL /**< Mask for IADC_SINGLE */
+#define _IADC_SINGLE_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINNEG_DEFAULT (_IADC_SINGLE_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_DEFAULT (_IADC_SINGLE_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_GND (_IADC_SINGLE_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTA (_IADC_SINGLE_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTB (_IADC_SINGLE_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTC (_IADC_SINGLE_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTD (_IADC_SINGLE_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SINGLE */
+#define _IADC_SINGLE_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINPOS_DEFAULT (_IADC_SINGLE_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_DEFAULT (_IADC_SINGLE_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_GND (_IADC_SINGLE_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_SUPPLY (_IADC_SINGLE_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTA (_IADC_SINGLE_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTB (_IADC_SINGLE_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTC (_IADC_SINGLE_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTD (_IADC_SINGLE_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SINGLE_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SINGLE_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SINGLE_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_DEFAULT (_IADC_SINGLE_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG0 (_IADC_SINGLE_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG1 (_IADC_SINGLE_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SINGLE_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SINGLE_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SINGLE_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CMP_DEFAULT (_IADC_SINGLE_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SINGLE */
+
+/* Bit fields for IADC SCAN */
+#define _IADC_SCAN_RESETVALUE 0x00000000UL /**< Default value for IADC_SCAN */
+#define _IADC_SCAN_MASK 0x0003FFFFUL /**< Mask for IADC_SCAN */
+#define _IADC_SCAN_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINNEG_DEFAULT (_IADC_SCAN_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_DEFAULT (_IADC_SCAN_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_GND (_IADC_SCAN_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTA (_IADC_SCAN_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTB (_IADC_SCAN_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTC (_IADC_SCAN_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTD (_IADC_SCAN_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SCAN */
+#define _IADC_SCAN_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINPOS_DEFAULT (_IADC_SCAN_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_DEFAULT (_IADC_SCAN_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_GND (_IADC_SCAN_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_SUPPLY (_IADC_SCAN_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTA (_IADC_SCAN_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTB (_IADC_SCAN_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTC (_IADC_SCAN_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTD (_IADC_SCAN_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SCAN */
+#define IADC_SCAN_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SCAN_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SCAN_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SCAN_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CFG_DEFAULT (_IADC_SCAN_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG0 (_IADC_SCAN_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG1 (_IADC_SCAN_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SCAN_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SCAN_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SCAN_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CMP_DEFAULT (_IADC_SCAN_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SCAN */
+
+/** @} End of group EFR32BG29_IADC_BitFields */
+/** @} End of group EFR32BG29_IADC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_IADC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_icache.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_icache.h
new file mode 100644
index 000000000..85fefe29f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_icache.h
@@ -0,0 +1,248 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 ICACHE register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_ICACHE_H
+#define EFR32BG29_ICACHE_H
+#define ICACHE_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_ICACHE ICACHE
+ * @{
+ * @brief EFR32BG29 ICACHE Register Declaration.
+ *****************************************************************************/
+
+/** ICACHE Register Declaration. */
+typedef struct icache_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IM uint32_t PCHITS; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LPMODE; /**< Low Power Mode */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IM uint32_t PCHITS_SET; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_SET; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_SET; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LPMODE_SET; /**< Low Power Mode */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IM uint32_t PCHITS_CLR; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_CLR; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_CLR; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LPMODE_CLR; /**< Low Power Mode */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IM uint32_t PCHITS_TGL; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_TGL; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_TGL; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LPMODE_TGL; /**< Low Power Mode */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+} ICACHE_TypeDef;
+/** @} End of group EFR32BG29_ICACHE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_ICACHE
+ * @{
+ * @defgroup EFR32BG29_ICACHE_BitFields ICACHE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ICACHE IPVERSION */
+#define _ICACHE_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IPVERSION */
+#define ICACHE_IPVERSION_IPVERSION_DEFAULT (_ICACHE_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IPVERSION */
+
+/* Bit fields for ICACHE CTRL */
+#define _ICACHE_CTRL_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CTRL */
+#define _ICACHE_CTRL_MASK 0x00000007UL /**< Mask for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS (0x1UL << 0) /**< Cache Disable */
+#define _ICACHE_CTRL_CACHEDIS_SHIFT 0 /**< Shift value for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_MASK 0x1UL /**< Bit mask for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS_DEFAULT (_ICACHE_CTRL_CACHEDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU (0x1UL << 1) /**< Use MPU */
+#define _ICACHE_CTRL_USEMPU_SHIFT 1 /**< Shift value for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_MASK 0x2UL /**< Bit mask for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU_DEFAULT (_ICACHE_CTRL_USEMPU_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS (0x1UL << 2) /**< Automatic Flushing Disable */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_SHIFT 2 /**< Shift value for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_MASK 0x4UL /**< Bit mask for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT (_ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+
+/* Bit fields for ICACHE PCHITS */
+#define _ICACHE_PCHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_SHIFT 0 /**< Shift value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCHITS */
+#define ICACHE_PCHITS_PCHITS_DEFAULT (_ICACHE_PCHITS_PCHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCHITS */
+
+/* Bit fields for ICACHE PCMISSES */
+#define _ICACHE_PCMISSES_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_SHIFT 0 /**< Shift value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCMISSES */
+#define ICACHE_PCMISSES_PCMISSES_DEFAULT (_ICACHE_PCMISSES_PCMISSES_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCMISSES */
+
+/* Bit fields for ICACHE PCAHITS */
+#define _ICACHE_PCAHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_SHIFT 0 /**< Shift value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCAHITS */
+#define ICACHE_PCAHITS_PCAHITS_DEFAULT (_ICACHE_PCAHITS_PCAHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCAHITS */
+
+/* Bit fields for ICACHE STATUS */
+#define _ICACHE_STATUS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_STATUS */
+#define _ICACHE_STATUS_MASK 0x00000001UL /**< Mask for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING (0x1UL << 0) /**< PC Running */
+#define _ICACHE_STATUS_PCRUNNING_SHIFT 0 /**< Shift value for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_MASK 0x1UL /**< Bit mask for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING_DEFAULT (_ICACHE_STATUS_PCRUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_STATUS */
+
+/* Bit fields for ICACHE CMD */
+#define _ICACHE_CMD_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CMD */
+#define _ICACHE_CMD_MASK 0x00000007UL /**< Mask for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH (0x1UL << 0) /**< Flush */
+#define _ICACHE_CMD_FLUSH_SHIFT 0 /**< Shift value for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_MASK 0x1UL /**< Bit mask for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH_DEFAULT (_ICACHE_CMD_FLUSH_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC (0x1UL << 1) /**< Start Performance Counters */
+#define _ICACHE_CMD_STARTPC_SHIFT 1 /**< Shift value for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_MASK 0x2UL /**< Bit mask for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC_DEFAULT (_ICACHE_CMD_STARTPC_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC (0x1UL << 2) /**< Stop Performance Counters */
+#define _ICACHE_CMD_STOPPC_SHIFT 2 /**< Shift value for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_MASK 0x4UL /**< Bit mask for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC_DEFAULT (_ICACHE_CMD_STOPPC_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CMD */
+
+/* Bit fields for ICACHE LPMODE */
+#define _ICACHE_LPMODE_RESETVALUE 0x00000023UL /**< Default value for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_MASK 0x000000F3UL /**< Mask for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_SHIFT 0 /**< Shift value for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_MASK 0x3UL /**< Bit mask for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_BASIC 0x00000000UL /**< Mode BASIC for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_ADVANCED 0x00000001UL /**< Mode ADVANCED for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_MINACTIVITY 0x00000003UL /**< Mode MINACTIVITY for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_DEFAULT (_ICACHE_LPMODE_LPLEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_BASIC (_ICACHE_LPMODE_LPLEVEL_BASIC << 0) /**< Shifted mode BASIC for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_ADVANCED (_ICACHE_LPMODE_LPLEVEL_ADVANCED << 0) /**< Shifted mode ADVANCED for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_MINACTIVITY (_ICACHE_LPMODE_LPLEVEL_MINACTIVITY << 0) /**< Shifted mode MINACTIVITY for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_NESTFACTOR_SHIFT 4 /**< Shift value for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_MASK 0xF0UL /**< Bit mask for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_DEFAULT 0x00000002UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_NESTFACTOR_DEFAULT (_ICACHE_LPMODE_NESTFACTOR_DEFAULT << 4) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+
+/* Bit fields for ICACHE IF */
+#define _ICACHE_IF_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IF */
+#define _ICACHE_IF_MASK 0x00000107UL /**< Mask for ICACHE_IF */
+#define ICACHE_IF_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_HITOF_DEFAULT (_ICACHE_IF_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Flag */
+#define _ICACHE_IF_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF_DEFAULT (_ICACHE_IF_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF_DEFAULT (_ICACHE_IF_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Flag */
+#define _ICACHE_IF_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR_DEFAULT (_ICACHE_IF_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IF */
+
+/* Bit fields for ICACHE IEN */
+#define _ICACHE_IEN_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IEN */
+#define _ICACHE_IEN_MASK 0x00000107UL /**< Mask for ICACHE_IEN */
+#define ICACHE_IEN_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_HITOF_DEFAULT (_ICACHE_IEN_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Enable */
+#define _ICACHE_IEN_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF_DEFAULT (_ICACHE_IEN_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF_DEFAULT (_ICACHE_IEN_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Enable */
+#define _ICACHE_IEN_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR_DEFAULT (_ICACHE_IEN_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IEN */
+
+/** @} End of group EFR32BG29_ICACHE_BitFields */
+/** @} End of group EFR32BG29_ICACHE */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_ICACHE_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldma.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldma.h
new file mode 100644
index 000000000..877b9a364
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldma.h
@@ -0,0 +1,685 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LDMA register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LDMA_H
+#define EFR32BG29_LDMA_H
+#define LDMA_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_LDMA LDMA
+ * @{
+ * @brief EFR32BG29 LDMA Register Declaration.
+ *****************************************************************************/
+
+/** LDMA CH Register Group Declaration. */
+typedef struct ldma_ch_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Channel Configuration Register */
+ __IOM uint32_t LOOP; /**< Channel Loop Counter Register */
+ __IOM uint32_t CTRL; /**< Channel Descriptor Control Word Register */
+ __IOM uint32_t SRC; /**< Channel Descriptor Source Address */
+ __IOM uint32_t DST; /**< Channel Descriptor Destination Address */
+ __IOM uint32_t LINK; /**< Channel Descriptor Link Address */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+} LDMA_CH_TypeDef;
+
+/** LDMA Register Declaration. */
+typedef struct ldma_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL; /**< DMA Control Register */
+ __IM uint32_t STATUS; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_SET; /**< DMA Control Register */
+ __IM uint32_t STATUS_SET; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_SET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_SET; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_SET; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_SET; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_SET; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_SET; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_SET; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_SET; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_SET; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_SET; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_SET; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_SET; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_SET; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_SET; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_SET; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_SET; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_CLR; /**< DMA Control Register */
+ __IM uint32_t STATUS_CLR; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_CLR; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_CLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_CLR; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_CLR; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_CLR; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_CLR; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_CLR; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_CLR; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_CLR; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_CLR; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_CLR; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_CLR; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_CLR; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_CLR; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_CLR; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_CLR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_TGL; /**< DMA Control Register */
+ __IM uint32_t STATUS_TGL; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_TGL; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_TGL; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_TGL; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_TGL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_TGL; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_TGL; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_TGL; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_TGL; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_TGL; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_TGL; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_TGL; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_TGL; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_TGL; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_TGL; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_TGL; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_TGL; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMA_TypeDef;
+/** @} End of group EFR32BG29_LDMA */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_LDMA
+ * @{
+ * @defgroup EFR32BG29_LDMA_BitFields LDMA Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMA IPVERSION */
+#define _LDMA_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_MASK 0x000000FFUL /**< Mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_MASK 0xFFUL /**< Bit mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IPVERSION */
+#define LDMA_IPVERSION_IPVERSION_DEFAULT (_LDMA_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IPVERSION */
+
+/* Bit fields for LDMA EN */
+#define _LDMA_EN_RESETVALUE 0x00000000UL /**< Default value for LDMA_EN */
+#define _LDMA_EN_MASK 0x00000001UL /**< Mask for LDMA_EN */
+#define LDMA_EN_EN (0x1UL << 0) /**< LDMA module enable and disable register */
+#define _LDMA_EN_EN_SHIFT 0 /**< Shift value for LDMA_EN */
+#define _LDMA_EN_EN_MASK 0x1UL /**< Bit mask for LDMA_EN */
+#define _LDMA_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_EN */
+#define LDMA_EN_EN_DEFAULT (_LDMA_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_EN */
+
+/* Bit fields for LDMA CTRL */
+#define _LDMA_CTRL_RESETVALUE 0x1E000000UL /**< Default value for LDMA_CTRL */
+#define _LDMA_CTRL_MASK 0x9F000000UL /**< Mask for LDMA_CTRL */
+#define _LDMA_CTRL_NUMFIXED_SHIFT 24 /**< Shift value for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_MASK 0x1F000000UL /**< Bit mask for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_DEFAULT 0x0000001EUL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_NUMFIXED_DEFAULT (_LDMA_CTRL_NUMFIXED_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST (0x1UL << 31) /**< Reset DMA controller */
+#define _LDMA_CTRL_CORERST_SHIFT 31 /**< Shift value for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_MASK 0x80000000UL /**< Bit mask for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST_DEFAULT (_LDMA_CTRL_CORERST_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CTRL */
+
+/* Bit fields for LDMA STATUS */
+#define _LDMA_STATUS_RESETVALUE 0x08100000UL /**< Default value for LDMA_STATUS */
+#define _LDMA_STATUS_MASK 0x1F1F1FFBUL /**< Mask for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY (0x1UL << 0) /**< Any DMA Channel Busy */
+#define _LDMA_STATUS_ANYBUSY_SHIFT 0 /**< Shift value for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_MASK 0x1UL /**< Bit mask for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY_DEFAULT (_LDMA_STATUS_ANYBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ (0x1UL << 1) /**< Any DMA Channel Request Pending */
+#define _LDMA_STATUS_ANYREQ_SHIFT 1 /**< Shift value for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_MASK 0x2UL /**< Bit mask for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ_DEFAULT (_LDMA_STATUS_ANYREQ_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHGRANT_SHIFT 3 /**< Shift value for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_MASK 0xF8UL /**< Bit mask for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHGRANT_DEFAULT (_LDMA_STATUS_CHGRANT_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHERROR_SHIFT 8 /**< Shift value for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_MASK 0x1F00UL /**< Bit mask for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHERROR_DEFAULT (_LDMA_STATUS_CHERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_FIFOLEVEL_SHIFT 16 /**< Shift value for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_MASK 0x1F0000UL /**< Bit mask for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_DEFAULT 0x00000010UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_FIFOLEVEL_DEFAULT (_LDMA_STATUS_FIFOLEVEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHNUM_SHIFT 24 /**< Shift value for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_MASK 0x1F000000UL /**< Bit mask for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_DEFAULT 0x00000008UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHNUM_DEFAULT (_LDMA_STATUS_CHNUM_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_STATUS */
+
+/* Bit fields for LDMA SYNCSWSET */
+#define _LDMA_SYNCSWSET_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_SHIFT 0 /**< Shift value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWSET */
+#define LDMA_SYNCSWSET_SYNCSWSET_DEFAULT (_LDMA_SYNCSWSET_SYNCSWSET_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWSET */
+
+/* Bit fields for LDMA SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_SHIFT 0 /**< Shift value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWCLR */
+#define LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT (_LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWCLR */
+
+/* Bit fields for LDMA SYNCHWEN */
+#define _LDMA_SYNCHWEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_SHIFT 0 /**< Shift value for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCSETEN_DEFAULT (_LDMA_SYNCHWEN_SYNCSETEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_SHIFT 16 /**< Shift value for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCCLREN_DEFAULT (_LDMA_SYNCHWEN_SYNCCLREN_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+
+/* Bit fields for LDMA SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_SHIFT 0 /**< Shift value for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_RISE (_LDMA_SYNCHWSEL_SYNCSETEDGE_RISE << 0) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_FALL (_LDMA_SYNCHWSEL_SYNCSETEDGE_FALL << 0) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_SHIFT 16 /**< Shift value for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_RISE (_LDMA_SYNCHWSEL_SYNCCLREDGE_RISE << 16) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_FALL (_LDMA_SYNCHWSEL_SYNCCLREDGE_FALL << 16) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+
+/* Bit fields for LDMA SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_SHIFT 0 /**< Shift value for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_MASK 0xFFUL /**< Bit mask for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSTATUS */
+#define LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT (_LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSTATUS */
+
+/* Bit fields for LDMA CHEN */
+#define _LDMA_CHEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHEN */
+#define _LDMA_CHEN_MASK 0x000000FFUL /**< Mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_SHIFT 0 /**< Shift value for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_MASK 0xFFUL /**< Bit mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHEN */
+#define LDMA_CHEN_CHEN_DEFAULT (_LDMA_CHEN_CHEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHEN */
+
+/* Bit fields for LDMA CHDIS */
+#define _LDMA_CHDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDIS */
+#define _LDMA_CHDIS_MASK 0x000000FFUL /**< Mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_SHIFT 0 /**< Shift value for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_MASK 0xFFUL /**< Bit mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDIS */
+#define LDMA_CHDIS_CHDIS_DEFAULT (_LDMA_CHDIS_CHDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDIS */
+
+/* Bit fields for LDMA CHSTATUS */
+#define _LDMA_CHSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_SHIFT 0 /**< Shift value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_MASK 0xFFUL /**< Bit mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHSTATUS */
+#define LDMA_CHSTATUS_CHSTATUS_DEFAULT (_LDMA_CHSTATUS_CHSTATUS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHSTATUS */
+
+/* Bit fields for LDMA CHBUSY */
+#define _LDMA_CHBUSY_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_MASK 0x000000FFUL /**< Mask for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_BUSY_SHIFT 0 /**< Shift value for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_MASK 0xFFUL /**< Bit mask for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHBUSY */
+#define LDMA_CHBUSY_BUSY_DEFAULT (_LDMA_CHBUSY_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHBUSY */
+
+/* Bit fields for LDMA CHDONE */
+#define _LDMA_CHDONE_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDONE */
+#define _LDMA_CHDONE_MASK 0x000000FFUL /**< Mask for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0 (0x1UL << 0) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE0_SHIFT 0 /**< Shift value for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_MASK 0x1UL /**< Bit mask for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0_DEFAULT (_LDMA_CHDONE_CHDONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1 (0x1UL << 1) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE1_SHIFT 1 /**< Shift value for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_MASK 0x2UL /**< Bit mask for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1_DEFAULT (_LDMA_CHDONE_CHDONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2 (0x1UL << 2) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE2_SHIFT 2 /**< Shift value for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_MASK 0x4UL /**< Bit mask for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2_DEFAULT (_LDMA_CHDONE_CHDONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3 (0x1UL << 3) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE3_SHIFT 3 /**< Shift value for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_MASK 0x8UL /**< Bit mask for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3_DEFAULT (_LDMA_CHDONE_CHDONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4 (0x1UL << 4) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE4_SHIFT 4 /**< Shift value for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_MASK 0x10UL /**< Bit mask for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4_DEFAULT (_LDMA_CHDONE_CHDONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5 (0x1UL << 5) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE5_SHIFT 5 /**< Shift value for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_MASK 0x20UL /**< Bit mask for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5_DEFAULT (_LDMA_CHDONE_CHDONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6 (0x1UL << 6) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE6_SHIFT 6 /**< Shift value for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_MASK 0x40UL /**< Bit mask for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6_DEFAULT (_LDMA_CHDONE_CHDONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7 (0x1UL << 7) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE7_SHIFT 7 /**< Shift value for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_MASK 0x80UL /**< Bit mask for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7_DEFAULT (_LDMA_CHDONE_CHDONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+
+/* Bit fields for LDMA DBGHALT */
+#define _LDMA_DBGHALT_RESETVALUE 0x00000000UL /**< Default value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_MASK 0x000000FFUL /**< Mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_SHIFT 0 /**< Shift value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_MASK 0xFFUL /**< Bit mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_DBGHALT */
+#define LDMA_DBGHALT_DBGHALT_DEFAULT (_LDMA_DBGHALT_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_DBGHALT */
+
+/* Bit fields for LDMA SWREQ */
+#define _LDMA_SWREQ_RESETVALUE 0x00000000UL /**< Default value for LDMA_SWREQ */
+#define _LDMA_SWREQ_MASK 0x000000FFUL /**< Mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_SHIFT 0 /**< Shift value for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_MASK 0xFFUL /**< Bit mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SWREQ */
+#define LDMA_SWREQ_SWREQ_DEFAULT (_LDMA_SWREQ_SWREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SWREQ */
+
+/* Bit fields for LDMA REQDIS */
+#define _LDMA_REQDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQDIS */
+#define _LDMA_REQDIS_MASK 0x000000FFUL /**< Mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_SHIFT 0 /**< Shift value for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_MASK 0xFFUL /**< Bit mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQDIS */
+#define LDMA_REQDIS_REQDIS_DEFAULT (_LDMA_REQDIS_REQDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQDIS */
+
+/* Bit fields for LDMA REQPEND */
+#define _LDMA_REQPEND_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQPEND */
+#define _LDMA_REQPEND_MASK 0x000000FFUL /**< Mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_SHIFT 0 /**< Shift value for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_MASK 0xFFUL /**< Bit mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQPEND */
+#define LDMA_REQPEND_REQPEND_DEFAULT (_LDMA_REQPEND_REQPEND_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQPEND */
+
+/* Bit fields for LDMA LINKLOAD */
+#define _LDMA_LINKLOAD_RESETVALUE 0x00000000UL /**< Default value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_MASK 0x000000FFUL /**< Mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_SHIFT 0 /**< Shift value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_MASK 0xFFUL /**< Bit mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_LINKLOAD */
+#define LDMA_LINKLOAD_LINKLOAD_DEFAULT (_LDMA_LINKLOAD_LINKLOAD_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_LINKLOAD */
+
+/* Bit fields for LDMA REQCLEAR */
+#define _LDMA_REQCLEAR_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_MASK 0x000000FFUL /**< Mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_SHIFT 0 /**< Shift value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_MASK 0xFFUL /**< Bit mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQCLEAR */
+#define LDMA_REQCLEAR_REQCLEAR_DEFAULT (_LDMA_REQCLEAR_REQCLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQCLEAR */
+
+/* Bit fields for LDMA IF */
+#define _LDMA_IF_RESETVALUE 0x00000000UL /**< Default value for LDMA_IF */
+#define _LDMA_IF_MASK 0x800000FFUL /**< Mask for LDMA_IF */
+#define LDMA_IF_DONE0 (0x1UL << 0) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE0_SHIFT 0 /**< Shift value for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_MASK 0x1UL /**< Bit mask for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE0_DEFAULT (_LDMA_IF_DONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1 (0x1UL << 1) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE1_SHIFT 1 /**< Shift value for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_MASK 0x2UL /**< Bit mask for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1_DEFAULT (_LDMA_IF_DONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2 (0x1UL << 2) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE2_SHIFT 2 /**< Shift value for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_MASK 0x4UL /**< Bit mask for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2_DEFAULT (_LDMA_IF_DONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3 (0x1UL << 3) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE3_SHIFT 3 /**< Shift value for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_MASK 0x8UL /**< Bit mask for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3_DEFAULT (_LDMA_IF_DONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4 (0x1UL << 4) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE4_SHIFT 4 /**< Shift value for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_MASK 0x10UL /**< Bit mask for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4_DEFAULT (_LDMA_IF_DONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5 (0x1UL << 5) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE5_SHIFT 5 /**< Shift value for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_MASK 0x20UL /**< Bit mask for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5_DEFAULT (_LDMA_IF_DONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6 (0x1UL << 6) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE6_SHIFT 6 /**< Shift value for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_MASK 0x40UL /**< Bit mask for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6_DEFAULT (_LDMA_IF_DONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7 (0x1UL << 7) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE7_SHIFT 7 /**< Shift value for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_MASK 0x80UL /**< Bit mask for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7_DEFAULT (_LDMA_IF_DONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR (0x1UL << 31) /**< Error Flag */
+#define _LDMA_IF_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IF_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IF_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR_DEFAULT (_LDMA_IF_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IF */
+
+/* Bit fields for LDMA IEN */
+#define _LDMA_IEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_IEN */
+#define _LDMA_IEN_MASK 0x800000FFUL /**< Mask for LDMA_IEN */
+#define _LDMA_IEN_CHDONE_SHIFT 0 /**< Shift value for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_MASK 0xFFUL /**< Bit mask for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_CHDONE_DEFAULT (_LDMA_IEN_CHDONE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR (0x1UL << 31) /**< Enable or disable the error interrupt */
+#define _LDMA_IEN_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR_DEFAULT (_LDMA_IEN_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IEN */
+
+/* Bit fields for LDMA CH_CFG */
+#define _LDMA_CH_CFG_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_MASK 0x00330000UL /**< Mask for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_SHIFT 16 /**< Shift value for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_MASK 0x30000UL /**< Bit mask for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_EIGHT 0x00000003UL /**< Mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_DEFAULT (_LDMA_CH_CFG_ARBSLOTS_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_ONE (_LDMA_CH_CFG_ARBSLOTS_ONE << 16) /**< Shifted mode ONE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_TWO (_LDMA_CH_CFG_ARBSLOTS_TWO << 16) /**< Shifted mode TWO for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_FOUR (_LDMA_CH_CFG_ARBSLOTS_FOUR << 16) /**< Shifted mode FOUR for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_EIGHT (_LDMA_CH_CFG_ARBSLOTS_EIGHT << 16) /**< Shifted mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN (0x1UL << 20) /**< Source Address Increment Sign */
+#define _LDMA_CH_CFG_SRCINCSIGN_SHIFT 20 /**< Shift value for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_MASK 0x100000UL /**< Bit mask for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_DEFAULT (_LDMA_CH_CFG_SRCINCSIGN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_POSITIVE (_LDMA_CH_CFG_SRCINCSIGN_POSITIVE << 20) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_NEGATIVE (_LDMA_CH_CFG_SRCINCSIGN_NEGATIVE << 20) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN (0x1UL << 21) /**< Destination Address Increment Sign */
+#define _LDMA_CH_CFG_DSTINCSIGN_SHIFT 21 /**< Shift value for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_MASK 0x200000UL /**< Bit mask for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_DEFAULT (_LDMA_CH_CFG_DSTINCSIGN_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_POSITIVE (_LDMA_CH_CFG_DSTINCSIGN_POSITIVE << 21) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_NEGATIVE (_LDMA_CH_CFG_DSTINCSIGN_NEGATIVE << 21) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+
+/* Bit fields for LDMA CH_LOOP */
+#define _LDMA_CH_LOOP_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_MASK 0x000000FFUL /**< Mask for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_LOOPCNT_SHIFT 0 /**< Shift value for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_MASK 0xFFUL /**< Bit mask for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LOOP */
+#define LDMA_CH_LOOP_LOOPCNT_DEFAULT (_LDMA_CH_LOOP_LOOPCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LOOP */
+
+/* Bit fields for LDMA CH_CTRL */
+#define _LDMA_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_MASK 0xFFFFFFFBUL /**< Mask for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SHIFT 0 /**< Shift value for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_MASK 0x3UL /**< Bit mask for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_TRANSFER 0x00000000UL /**< Mode TRANSFER for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE 0x00000001UL /**< Mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_WRITE 0x00000002UL /**< Mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_DEFAULT (_LDMA_CH_CTRL_STRUCTTYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_TRANSFER (_LDMA_CH_CTRL_STRUCTTYPE_TRANSFER << 0) /**< Shifted mode TRANSFER for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE (_LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE << 0) /**< Shifted mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_WRITE (_LDMA_CH_CTRL_STRUCTTYPE_WRITE << 0) /**< Shifted mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ (0x1UL << 3) /**< Structure DMA Transfer Request */
+#define _LDMA_CH_CTRL_STRUCTREQ_SHIFT 3 /**< Shift value for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_MASK 0x8UL /**< Bit mask for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ_DEFAULT (_LDMA_CH_CTRL_STRUCTREQ_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_XFERCNT_SHIFT 4 /**< Shift value for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_MASK 0x7FF0UL /**< Bit mask for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_XFERCNT_DEFAULT (_LDMA_CH_CTRL_XFERCNT_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP (0x1UL << 15) /**< Endian Byte Swap */
+#define _LDMA_CH_CTRL_BYTESWAP_SHIFT 15 /**< Shift value for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_MASK 0x8000UL /**< Bit mask for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP_DEFAULT (_LDMA_CH_CTRL_BYTESWAP_DEFAULT << 15) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_SHIFT 16 /**< Shift value for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_MASK 0xF0000UL /**< Bit mask for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1 0x00000000UL /**< Mode UNIT1 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT2 0x00000001UL /**< Mode UNIT2 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT3 0x00000002UL /**< Mode UNIT3 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT4 0x00000003UL /**< Mode UNIT4 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT6 0x00000004UL /**< Mode UNIT6 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT8 0x00000005UL /**< Mode UNIT8 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT16 0x00000007UL /**< Mode UNIT16 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT32 0x00000009UL /**< Mode UNIT32 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT64 0x0000000AUL /**< Mode UNIT64 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT128 0x0000000BUL /**< Mode UNIT128 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT256 0x0000000CUL /**< Mode UNIT256 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT512 0x0000000DUL /**< Mode UNIT512 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 0x0000000EUL /**< Mode UNIT1024 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_ALL 0x0000000FUL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_DEFAULT (_LDMA_CH_CTRL_BLOCKSIZE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1 << 16) /**< Shifted mode UNIT1 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT2 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT2 << 16) /**< Shifted mode UNIT2 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT3 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT3 << 16) /**< Shifted mode UNIT3 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT4 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT4 << 16) /**< Shifted mode UNIT4 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT6 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT6 << 16) /**< Shifted mode UNIT6 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT8 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT8 << 16) /**< Shifted mode UNIT8 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT16 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT16 << 16) /**< Shifted mode UNIT16 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT32 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT32 << 16) /**< Shifted mode UNIT32 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT64 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT64 << 16) /**< Shifted mode UNIT64 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT128 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT128 << 16) /**< Shifted mode UNIT128 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT256 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT256 << 16) /**< Shifted mode UNIT256 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT512 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT512 << 16) /**< Shifted mode UNIT512 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 << 16) /**< Shifted mode UNIT1024 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_ALL (_LDMA_CH_CTRL_BLOCKSIZE_ALL << 16) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN (0x1UL << 20) /**< DMA Operation Done Interrupt Flag Set En */
+#define _LDMA_CH_CTRL_DONEIEN_SHIFT 20 /**< Shift value for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_MASK 0x100000UL /**< Bit mask for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN_DEFAULT (_LDMA_CH_CTRL_DONEIEN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE (0x1UL << 21) /**< DMA Request Transfer Mode Select */
+#define _LDMA_CH_CTRL_REQMODE_SHIFT 21 /**< Shift value for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_MASK 0x200000UL /**< Bit mask for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_BLOCK 0x00000000UL /**< Mode BLOCK for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_ALL 0x00000001UL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_DEFAULT (_LDMA_CH_CTRL_REQMODE_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_BLOCK (_LDMA_CH_CTRL_REQMODE_BLOCK << 21) /**< Shifted mode BLOCK for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_ALL (_LDMA_CH_CTRL_REQMODE_ALL << 21) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT (0x1UL << 22) /**< Decrement Loop Count */
+#define _LDMA_CH_CTRL_DECLOOPCNT_SHIFT 22 /**< Shift value for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_MASK 0x400000UL /**< Bit mask for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT_DEFAULT (_LDMA_CH_CTRL_DECLOOPCNT_DEFAULT << 22) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ (0x1UL << 23) /**< Ignore Sreq */
+#define _LDMA_CH_CTRL_IGNORESREQ_SHIFT 23 /**< Shift value for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_MASK 0x800000UL /**< Bit mask for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ_DEFAULT (_LDMA_CH_CTRL_IGNORESREQ_DEFAULT << 23) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_SHIFT 24 /**< Shift value for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_MASK 0x3000000UL /**< Bit mask for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_DEFAULT (_LDMA_CH_CTRL_SRCINC_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_ONE (_LDMA_CH_CTRL_SRCINC_ONE << 24) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_TWO (_LDMA_CH_CTRL_SRCINC_TWO << 24) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_FOUR (_LDMA_CH_CTRL_SRCINC_FOUR << 24) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_NONE (_LDMA_CH_CTRL_SRCINC_NONE << 24) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_SHIFT 26 /**< Shift value for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_MASK 0xC000000UL /**< Bit mask for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_BYTE 0x00000000UL /**< Mode BYTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_HALFWORD 0x00000001UL /**< Mode HALFWORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_WORD 0x00000002UL /**< Mode WORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_DEFAULT (_LDMA_CH_CTRL_SIZE_DEFAULT << 26) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_BYTE (_LDMA_CH_CTRL_SIZE_BYTE << 26) /**< Shifted mode BYTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_HALFWORD (_LDMA_CH_CTRL_SIZE_HALFWORD << 26) /**< Shifted mode HALFWORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_WORD (_LDMA_CH_CTRL_SIZE_WORD << 26) /**< Shifted mode WORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_SHIFT 28 /**< Shift value for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_MASK 0x30000000UL /**< Bit mask for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_DEFAULT (_LDMA_CH_CTRL_DSTINC_DEFAULT << 28) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_ONE (_LDMA_CH_CTRL_DSTINC_ONE << 28) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_TWO (_LDMA_CH_CTRL_DSTINC_TWO << 28) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_FOUR (_LDMA_CH_CTRL_DSTINC_FOUR << 28) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_NONE (_LDMA_CH_CTRL_DSTINC_NONE << 28) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE (0x1UL << 30) /**< Source Addressing Mode */
+#define _LDMA_CH_CTRL_SRCMODE_SHIFT 30 /**< Shift value for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_MASK 0x40000000UL /**< Bit mask for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_DEFAULT (_LDMA_CH_CTRL_SRCMODE_DEFAULT << 30) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_ABSOLUTE (_LDMA_CH_CTRL_SRCMODE_ABSOLUTE << 30) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_RELATIVE (_LDMA_CH_CTRL_SRCMODE_RELATIVE << 30) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE (0x1UL << 31) /**< Destination Addressing Mode */
+#define _LDMA_CH_CTRL_DSTMODE_SHIFT 31 /**< Shift value for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_MASK 0x80000000UL /**< Bit mask for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_DEFAULT (_LDMA_CH_CTRL_DSTMODE_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_ABSOLUTE (_LDMA_CH_CTRL_DSTMODE_ABSOLUTE << 31) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_RELATIVE (_LDMA_CH_CTRL_DSTMODE_RELATIVE << 31) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+
+/* Bit fields for LDMA CH_SRC */
+#define _LDMA_CH_SRC_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_SRCADDR_SHIFT 0 /**< Shift value for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_SRC */
+#define LDMA_CH_SRC_SRCADDR_DEFAULT (_LDMA_CH_SRC_SRCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_SRC */
+
+/* Bit fields for LDMA CH_DST */
+#define _LDMA_CH_DST_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_DST */
+#define _LDMA_CH_DST_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_DST */
+#define _LDMA_CH_DST_DSTADDR_SHIFT 0 /**< Shift value for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_DST */
+#define LDMA_CH_DST_DSTADDR_DEFAULT (_LDMA_CH_DST_DSTADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_DST */
+
+/* Bit fields for LDMA CH_LINK */
+#define _LDMA_CH_LINK_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE (0x1UL << 0) /**< Link Structure Addressing Mode */
+#define _LDMA_CH_LINK_LINKMODE_SHIFT 0 /**< Shift value for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_MASK 0x1UL /**< Bit mask for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_DEFAULT (_LDMA_CH_LINK_LINKMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_ABSOLUTE (_LDMA_CH_LINK_LINKMODE_ABSOLUTE << 0) /**< Shifted mode ABSOLUTE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_RELATIVE (_LDMA_CH_LINK_LINKMODE_RELATIVE << 0) /**< Shifted mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK (0x1UL << 1) /**< Link Next Structure */
+#define _LDMA_CH_LINK_LINK_SHIFT 1 /**< Shift value for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_MASK 0x2UL /**< Bit mask for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK_DEFAULT (_LDMA_CH_LINK_LINK_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKADDR_SHIFT 2 /**< Shift value for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_MASK 0xFFFFFFFCUL /**< Bit mask for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKADDR_DEFAULT (_LDMA_CH_LINK_LINKADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+
+/** @} End of group EFR32BG29_LDMA_BitFields */
+/** @} End of group EFR32BG29_LDMA */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_LDMA_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar.h
new file mode 100644
index 000000000..b27d962d1
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar.h
@@ -0,0 +1,96 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LDMAXBAR register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LDMAXBAR_H
+#define EFR32BG29_LDMAXBAR_H
+#define LDMAXBAR_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_LDMAXBAR LDMAXBAR
+ * @{
+ * @brief EFR32BG29 LDMAXBAR Register Declaration.
+ *****************************************************************************/
+
+/** LDMAXBAR CH Register Group Declaration. */
+typedef struct ldmaxbar_ch_typedef{
+ __IOM uint32_t REQSEL; /**< Channel Peripheral Request Select Reg... */
+} LDMAXBAR_CH_TypeDef;
+
+/** LDMAXBAR Register Declaration. */
+typedef struct ldmaxbar_typedef{
+ __IM uint32_t IPVERSION; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMAXBAR_TypeDef;
+/** @} End of group EFR32BG29_LDMAXBAR */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_LDMAXBAR
+ * @{
+ * @defgroup EFR32BG29_LDMAXBAR_BitFields LDMAXBAR Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMAXBAR IPVERSION */
+#define _LDMAXBAR_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for LDMAXBAR_IPVERSION */
+#define LDMAXBAR_IPVERSION_IPVERSION_DEFAULT (_LDMAXBAR_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_IPVERSION */
+
+/* Bit fields for LDMAXBAR CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_RESETVALUE 0x00000000UL /**< Default value for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_MASK 0x003F000FUL /**< Mask for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_SHIFT 0 /**< Shift value for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MASK 0xFUL /**< Bit mask for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_SHIFT 16 /**< Shift value for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MASK 0x3F0000UL /**< Bit mask for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+
+/** @} End of group EFR32BG29_LDMAXBAR_BitFields */
+/** @} End of group EFR32BG29_LDMAXBAR */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_LDMAXBAR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar_defines.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar_defines.h
new file mode 100644
index 000000000..005dc0d71
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ldmaxbar_defines.h
@@ -0,0 +1,161 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LDMA XBAR channel request soruce definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LDMAXBAR_DEFINES_H
+#define EFR32BG29_LDMAXBAR_DEFINES_H
+
+// Module source selection indices
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_NONE 0x00000000UL /**< Mode NONE for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR 0x00000001UL /**< Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 0x00000002UL /**< Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 0x00000003UL /**< Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 0x00000004UL /**< Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 0x00000005UL /**< Mode USART1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 0x00000006UL /**< Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 0x00000007UL /**< Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 0x0000000bUL /**< Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MSC 0x0000000cUL /**< Mode MSC for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 0x0000000dUL /**< Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 0x0000000eUL /**< Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_PDM 0x0000000fUL /**< Mode PDM for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 0x00000010UL /**< Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 0x00000011UL /**< Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 0x00000012UL /**< Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+
+// Shifted source selection indices
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_NONE (_LDMAXBAR_CH_REQSEL_SOURCESEL_NONE << 16)
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR (_LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR << 16) /**< Shifted Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 << 16) /**< Shifted Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 << 16) /**< Shifted Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 << 16) /**< Shifted Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 << 16) /**< Shifted Mode USART1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 << 16) /**< Shifted Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 << 16) /**< Shifted Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 << 16) /**< Shifted Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_MSC (_LDMAXBAR_CH_REQSEL_SOURCESEL_MSC << 16) /**< Shifted Mode MSC for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 << 16) /**< Shifted Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 << 16) /**< Shifted Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_PDM (_LDMAXBAR_CH_REQSEL_SOURCESEL_PDM << 16) /**< Shifted Mode PDM for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 << 16) /**< Shifted Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 << 16) /**< Shifted Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 << 16) /**< Shifted Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+
+// Module signal selection indices
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 0x00000000UL /** Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 0x00000001UL /** Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 0x00000000UL /** Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 0x00000001UL /** Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 0x00000002UL /** Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF 0x00000003UL /** Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 0x00000000UL /** Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 0x00000001UL /** Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 0x00000002UL /** Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF 0x00000003UL /** Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV 0x00000000UL /** Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT 0x00000001UL /** Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL 0x00000002UL /** Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT 0x00000003UL /** Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY 0x00000004UL /** Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV 0x00000000UL /** Mode USART1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT 0x00000001UL /** Mode USART1RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL 0x00000002UL /** Mode USART1TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT 0x00000003UL /** Mode USART1TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY 0x00000004UL /** Mode USART1TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV 0x00000000UL /** Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL 0x00000001UL /** Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV 0x00000000UL /** Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL 0x00000001UL /** Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN 0x00000000UL /** Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE 0x00000001UL /** Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA 0x00000000UL /** Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 0x00000000UL /** Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 0x00000001UL /** Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 0x00000002UL /** Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF 0x00000003UL /** Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 0x00000000UL /** Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 0x00000001UL /** Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 0x00000002UL /** Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF 0x00000003UL /** Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV 0x00000000UL /** Mode PDMRXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 0x00000000UL /** Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 0x00000001UL /** Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 0x00000002UL /** Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF 0x00000003UL /** Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL 0x00000000UL /** Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL 0x00000001UL /** Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL 0x00000000UL /** Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL 0x00000001UL /** Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+
+// Shifted Module signal selection indices
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 << 0) /** Shifted Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 << 0) /** Shifted Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 << 0) /** Shifted Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 << 0) /** Shifted Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 << 0) /** Shifted Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF << 0) /** Shifted Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 << 0) /** Shifted Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 << 0) /** Shifted Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 << 0) /** Shifted Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF << 0) /** Shifted Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV << 0) /** Shifted Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT << 0) /** Shifted Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL << 0) /** Shifted Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT << 0) /** Shifted Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY << 0) /** Shifted Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV << 0) /** Shifted Mode USART1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT << 0) /** Shifted Mode USART1RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL << 0) /** Shifted Mode USART1TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT << 0) /** Shifted Mode USART1TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY << 0) /** Shifted Mode USART1TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV << 0) /** Shifted Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL << 0) /** Shifted Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV << 0) /** Shifted Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL << 0) /** Shifted Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN << 0) /** Shifted Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE << 0) /** Shifted Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA (_LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA << 0) /** Shifted Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 << 0) /** Shifted Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 << 0) /** Shifted Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 << 0) /** Shifted Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF << 0) /** Shifted Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 << 0) /** Shifted Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 << 0) /** Shifted Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 << 0) /** Shifted Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF << 0) /** Shifted Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV << 0) /** Shifted Mode PDMRXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 << 0) /** Shifted Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 << 0) /** Shifted Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 << 0) /** Shifted Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF << 0) /** Shifted Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL << 0) /** Shifted Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL << 0) /** Shifted Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL << 0) /** Shifted Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL << 0) /** Shifted Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+
+#endif // EFR32BG29_LDMAXBAR_DEFINES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_letimer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_letimer.h
new file mode 100644
index 000000000..363d5287c
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_letimer.h
@@ -0,0 +1,496 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LETIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LETIMER_H
+#define EFR32BG29_LETIMER_H
+#define LETIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_LETIMER LETIMER
+ * @{
+ * @brief EFR32BG29 LETIMER Register Declaration.
+ *****************************************************************************/
+
+/** LETIMER Register Declaration. */
+typedef struct letimer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< module en */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t COMP0; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE; /**< PRS Input mode select Register */
+ uint32_t RESERVED3[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< module en */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t COMP0_SET; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_SET; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_SET; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_SET; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_SET; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_SET; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_SET; /**< PRS Input mode select Register */
+ uint32_t RESERVED7[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< module en */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t COMP0_CLR; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_CLR; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_CLR; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_CLR; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_CLR; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_CLR; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_CLR; /**< PRS Input mode select Register */
+ uint32_t RESERVED11[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< module en */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t COMP0_TGL; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_TGL; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_TGL; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_TGL; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_TGL; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_TGL; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_TGL; /**< PRS Input mode select Register */
+} LETIMER_TypeDef;
+/** @} End of group EFR32BG29_LETIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_LETIMER
+ * @{
+ * @defgroup EFR32BG29_LETIMER_BitFields LETIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LETIMER IPVERSION */
+#define _LETIMER_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IPVERSION */
+#define LETIMER_IPVERSION_IPVERSION_DEFAULT (_LETIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IPVERSION */
+
+/* Bit fields for LETIMER EN */
+#define _LETIMER_EN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_EN */
+#define _LETIMER_EN_MASK 0x00000001UL /**< Mask for LETIMER_EN */
+#define LETIMER_EN_EN (0x1UL << 0) /**< module en */
+#define _LETIMER_EN_EN_SHIFT 0 /**< Shift value for LETIMER_EN */
+#define _LETIMER_EN_EN_MASK 0x1UL /**< Bit mask for LETIMER_EN */
+#define _LETIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_EN */
+#define LETIMER_EN_EN_DEFAULT (_LETIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_EN */
+
+/* Bit fields for LETIMER CTRL */
+#define _LETIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CTRL */
+#define _LETIMER_CTRL_MASK 0x000F13FFUL /**< Mask for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_SHIFT 0 /**< Shift value for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_MASK 0x3UL /**< Bit mask for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_FREE 0x00000000UL /**< Mode FREE for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_ONESHOT 0x00000001UL /**< Mode ONESHOT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_BUFFERED 0x00000002UL /**< Mode BUFFERED for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_DOUBLE 0x00000003UL /**< Mode DOUBLE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DEFAULT (_LETIMER_CTRL_REPMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_FREE (_LETIMER_CTRL_REPMODE_FREE << 0) /**< Shifted mode FREE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_ONESHOT (_LETIMER_CTRL_REPMODE_ONESHOT << 0) /**< Shifted mode ONESHOT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_BUFFERED (_LETIMER_CTRL_REPMODE_BUFFERED << 0) /**< Shifted mode BUFFERED for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DOUBLE (_LETIMER_CTRL_REPMODE_DOUBLE << 0) /**< Shifted mode DOUBLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_SHIFT 2 /**< Shift value for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_MASK 0xCUL /**< Bit mask for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_DEFAULT (_LETIMER_CTRL_UFOA0_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_NONE (_LETIMER_CTRL_UFOA0_NONE << 2) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_TOGGLE (_LETIMER_CTRL_UFOA0_TOGGLE << 2) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PULSE (_LETIMER_CTRL_UFOA0_PULSE << 2) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PWM (_LETIMER_CTRL_UFOA0_PWM << 2) /**< Shifted mode PWM for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_SHIFT 4 /**< Shift value for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_MASK 0x30UL /**< Bit mask for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_DEFAULT (_LETIMER_CTRL_UFOA1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_NONE (_LETIMER_CTRL_UFOA1_NONE << 4) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_TOGGLE (_LETIMER_CTRL_UFOA1_TOGGLE << 4) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PULSE (_LETIMER_CTRL_UFOA1_PULSE << 4) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PWM (_LETIMER_CTRL_UFOA1_PWM << 4) /**< Shifted mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0 (0x1UL << 6) /**< Output 0 Polarity */
+#define _LETIMER_CTRL_OPOL0_SHIFT 6 /**< Shift value for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_MASK 0x40UL /**< Bit mask for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0_DEFAULT (_LETIMER_CTRL_OPOL0_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1 (0x1UL << 7) /**< Output 1 Polarity */
+#define _LETIMER_CTRL_OPOL1_SHIFT 7 /**< Shift value for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_MASK 0x80UL /**< Bit mask for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1_DEFAULT (_LETIMER_CTRL_OPOL1_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP (0x1UL << 8) /**< Buffered Top */
+#define _LETIMER_CTRL_BUFTOP_SHIFT 8 /**< Shift value for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_MASK 0x100UL /**< Bit mask for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DEFAULT (_LETIMER_CTRL_BUFTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DISABLE (_LETIMER_CTRL_BUFTOP_DISABLE << 8) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_ENABLE (_LETIMER_CTRL_BUFTOP_ENABLE << 8) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN (0x1UL << 9) /**< Compare Value 0 Is Top Value */
+#define _LETIMER_CTRL_CNTTOPEN_SHIFT 9 /**< Shift value for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_MASK 0x200UL /**< Bit mask for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DEFAULT (_LETIMER_CTRL_CNTTOPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DISABLE (_LETIMER_CTRL_CNTTOPEN_DISABLE << 9) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_ENABLE (_LETIMER_CTRL_CNTTOPEN_ENABLE << 9) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN (0x1UL << 12) /**< Debug Mode Run Enable */
+#define _LETIMER_CTRL_DEBUGRUN_SHIFT 12 /**< Shift value for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_MASK 0x1000UL /**< Bit mask for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DEFAULT (_LETIMER_CTRL_DEBUGRUN_DEFAULT << 12) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DISABLE (_LETIMER_CTRL_DEBUGRUN_DISABLE << 12) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_ENABLE (_LETIMER_CTRL_DEBUGRUN_ENABLE << 12) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_SHIFT 16 /**< Shift value for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_MASK 0xF0000UL /**< Bit mask for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DEFAULT (_LETIMER_CTRL_CNTPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV1 (_LETIMER_CTRL_CNTPRESC_DIV1 << 16) /**< Shifted mode DIV1 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV2 (_LETIMER_CTRL_CNTPRESC_DIV2 << 16) /**< Shifted mode DIV2 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV4 (_LETIMER_CTRL_CNTPRESC_DIV4 << 16) /**< Shifted mode DIV4 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV8 (_LETIMER_CTRL_CNTPRESC_DIV8 << 16) /**< Shifted mode DIV8 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV16 (_LETIMER_CTRL_CNTPRESC_DIV16 << 16) /**< Shifted mode DIV16 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV32 (_LETIMER_CTRL_CNTPRESC_DIV32 << 16) /**< Shifted mode DIV32 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV64 (_LETIMER_CTRL_CNTPRESC_DIV64 << 16) /**< Shifted mode DIV64 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV128 (_LETIMER_CTRL_CNTPRESC_DIV128 << 16) /**< Shifted mode DIV128 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV256 (_LETIMER_CTRL_CNTPRESC_DIV256 << 16) /**< Shifted mode DIV256 for LETIMER_CTRL */
+
+/* Bit fields for LETIMER CMD */
+#define _LETIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CMD */
+#define _LETIMER_CMD_MASK 0x0000001FUL /**< Mask for LETIMER_CMD */
+#define LETIMER_CMD_START (0x1UL << 0) /**< Start LETIMER */
+#define _LETIMER_CMD_START_SHIFT 0 /**< Shift value for LETIMER_START */
+#define _LETIMER_CMD_START_MASK 0x1UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_START_DEFAULT (_LETIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP (0x1UL << 1) /**< Stop LETIMER */
+#define _LETIMER_CMD_STOP_SHIFT 1 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP_DEFAULT (_LETIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR (0x1UL << 2) /**< Clear LETIMER */
+#define _LETIMER_CMD_CLEAR_SHIFT 2 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_MASK 0x4UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR_DEFAULT (_LETIMER_CMD_CLEAR_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0 (0x1UL << 3) /**< Clear Toggle Output 0 */
+#define _LETIMER_CMD_CTO0_SHIFT 3 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_MASK 0x8UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0_DEFAULT (_LETIMER_CMD_CTO0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1 (0x1UL << 4) /**< Clear Toggle Output 1 */
+#define _LETIMER_CMD_CTO1_SHIFT 4 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_MASK 0x10UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1_DEFAULT (_LETIMER_CMD_CTO1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CMD */
+
+/* Bit fields for LETIMER STATUS */
+#define _LETIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for LETIMER_STATUS */
+#define _LETIMER_STATUS_MASK 0x00000001UL /**< Mask for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING (0x1UL << 0) /**< LETIMER Running */
+#define _LETIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING_DEFAULT (_LETIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_STATUS */
+
+/* Bit fields for LETIMER CNT */
+#define _LETIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CNT */
+#define _LETIMER_CNT_MASK 0x00FFFFFFUL /**< Mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CNT */
+#define LETIMER_CNT_CNT_DEFAULT (_LETIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CNT */
+
+/* Bit fields for LETIMER COMP0 */
+#define _LETIMER_COMP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP0 */
+#define LETIMER_COMP0_COMP0_DEFAULT (_LETIMER_COMP0_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP0 */
+
+/* Bit fields for LETIMER COMP1 */
+#define _LETIMER_COMP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_SHIFT 0 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP1 */
+#define LETIMER_COMP1_COMP1_DEFAULT (_LETIMER_COMP1_COMP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP1 */
+
+/* Bit fields for LETIMER TOP */
+#define _LETIMER_TOP_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOP */
+#define _LETIMER_TOP_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_SHIFT 0 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOP */
+#define LETIMER_TOP_TOP_DEFAULT (_LETIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOP */
+
+/* Bit fields for LETIMER TOPBUFF */
+#define _LETIMER_TOPBUFF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_SHIFT 0 /**< Shift value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOPBUFF */
+#define LETIMER_TOPBUFF_TOPBUFF_DEFAULT (_LETIMER_TOPBUFF_TOPBUFF_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOPBUFF */
+
+/* Bit fields for LETIMER REP0 */
+#define _LETIMER_REP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP0 */
+#define _LETIMER_REP0_MASK 0x000000FFUL /**< Mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_SHIFT 0 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_MASK 0xFFUL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP0 */
+#define LETIMER_REP0_REP0_DEFAULT (_LETIMER_REP0_REP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP0 */
+
+/* Bit fields for LETIMER REP1 */
+#define _LETIMER_REP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP1 */
+#define _LETIMER_REP1_MASK 0x000000FFUL /**< Mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_SHIFT 0 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_MASK 0xFFUL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP1 */
+#define LETIMER_REP1_REP1_DEFAULT (_LETIMER_REP1_REP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP1 */
+
+/* Bit fields for LETIMER IF */
+#define _LETIMER_IF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IF */
+#define _LETIMER_IF_MASK 0x0000001FUL /**< Mask for LETIMER_IF */
+#define LETIMER_IF_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Flag */
+#define _LETIMER_IF_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP0_DEFAULT (_LETIMER_IF_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Flag */
+#define _LETIMER_IF_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1_DEFAULT (_LETIMER_IF_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF (0x1UL << 2) /**< Underflow Interrupt Flag */
+#define _LETIMER_IF_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IF_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF_DEFAULT (_LETIMER_IF_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Flag */
+#define _LETIMER_IF_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0_DEFAULT (_LETIMER_IF_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Flag */
+#define _LETIMER_IF_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1_DEFAULT (_LETIMER_IF_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IF */
+
+/* Bit fields for LETIMER IEN */
+#define _LETIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IEN */
+#define _LETIMER_IEN_MASK 0x0000001FUL /**< Mask for LETIMER_IEN */
+#define LETIMER_IEN_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Enable */
+#define _LETIMER_IEN_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP0_DEFAULT (_LETIMER_IEN_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Enable */
+#define _LETIMER_IEN_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1_DEFAULT (_LETIMER_IEN_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF (0x1UL << 2) /**< Underflow Interrupt Enable */
+#define _LETIMER_IEN_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IEN_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF_DEFAULT (_LETIMER_IEN_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Enable */
+#define _LETIMER_IEN_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0_DEFAULT (_LETIMER_IEN_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Enable */
+#define _LETIMER_IEN_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1_DEFAULT (_LETIMER_IEN_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IEN */
+
+/* Bit fields for LETIMER SYNCBUSY */
+#define _LETIMER_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LETIMER_SYNCBUSY */
+#define _LETIMER_SYNCBUSY_MASK 0x000003FDUL /**< Mask for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT (0x1UL << 0) /**< Sync busy for CNT */
+#define _LETIMER_SYNCBUSY_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_MASK 0x1UL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT_DEFAULT (_LETIMER_SYNCBUSY_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP (0x1UL << 2) /**< Sync busy for TOP */
+#define _LETIMER_SYNCBUSY_TOP_SHIFT 2 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_MASK 0x4UL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP_DEFAULT (_LETIMER_SYNCBUSY_TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0 (0x1UL << 3) /**< Sync busy for REP0 */
+#define _LETIMER_SYNCBUSY_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0_DEFAULT (_LETIMER_SYNCBUSY_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1 (0x1UL << 4) /**< Sync busy for REP1 */
+#define _LETIMER_SYNCBUSY_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1_DEFAULT (_LETIMER_SYNCBUSY_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START (0x1UL << 5) /**< Sync busy for START */
+#define _LETIMER_SYNCBUSY_START_SHIFT 5 /**< Shift value for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_MASK 0x20UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START_DEFAULT (_LETIMER_SYNCBUSY_START_DEFAULT << 5) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP (0x1UL << 6) /**< Sync busy for STOP */
+#define _LETIMER_SYNCBUSY_STOP_SHIFT 6 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_MASK 0x40UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP_DEFAULT (_LETIMER_SYNCBUSY_STOP_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR (0x1UL << 7) /**< Sync busy for CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_SHIFT 7 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_MASK 0x80UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR_DEFAULT (_LETIMER_SYNCBUSY_CLEAR_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0 (0x1UL << 8) /**< Sync busy for CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_SHIFT 8 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_MASK 0x100UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0_DEFAULT (_LETIMER_SYNCBUSY_CTO0_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1 (0x1UL << 9) /**< Sync busy for CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_SHIFT 9 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_MASK 0x200UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1_DEFAULT (_LETIMER_SYNCBUSY_CTO1_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+
+/* Bit fields for LETIMER PRSMODE */
+#define _LETIMER_PRSMODE_RESETVALUE 0x00000000UL /**< Default value for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_MASK 0x0CCC0000UL /**< Mask for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_SHIFT 18 /**< Shift value for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_MASK 0xC0000UL /**< Bit mask for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_NONE (_LETIMER_PRSMODE_PRSSTARTMODE_NONE << 18) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_RISING (_LETIMER_PRSMODE_PRSSTARTMODE_RISING << 18) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_FALLING (_LETIMER_PRSMODE_PRSSTARTMODE_FALLING << 18) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_BOTH (_LETIMER_PRSMODE_PRSSTARTMODE_BOTH << 18) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_SHIFT 22 /**< Shift value for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_MASK 0xC00000UL /**< Bit mask for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT << 22) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_NONE (_LETIMER_PRSMODE_PRSSTOPMODE_NONE << 22) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_RISING (_LETIMER_PRSMODE_PRSSTOPMODE_RISING << 22) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_FALLING (_LETIMER_PRSMODE_PRSSTOPMODE_FALLING << 22) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_BOTH (_LETIMER_PRSMODE_PRSSTOPMODE_BOTH << 22) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_SHIFT 26 /**< Shift value for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_MASK 0xC000000UL /**< Bit mask for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT (_LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT << 26) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_NONE (_LETIMER_PRSMODE_PRSCLEARMODE_NONE << 26) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_RISING (_LETIMER_PRSMODE_PRSCLEARMODE_RISING << 26) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_FALLING (_LETIMER_PRSMODE_PRSCLEARMODE_FALLING << 26) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_BOTH (_LETIMER_PRSMODE_PRSCLEARMODE_BOTH << 26) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+
+/** @} End of group EFR32BG29_LETIMER_BitFields */
+/** @} End of group EFR32BG29_LETIMER */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_LETIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfrco.h
new file mode 100644
index 000000000..f29cad9df
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfrco.h
@@ -0,0 +1,304 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LFRCO_H
+#define EFR32BG29_LFRCO_H
+#define LFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_LFRCO LFRCO
+ * @{
+ * @brief EFR32BG29 LFRCO Register Declaration.
+ *****************************************************************************/
+
+/** LFRCO Register Declaration. */
+typedef struct lfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED3[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_SET; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_SET; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED7[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_CLR; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_CLR; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED11[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED12[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_TGL; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_TGL; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+} LFRCO_TypeDef;
+/** @} End of group EFR32BG29_LFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_LFRCO
+ * @{
+ * @defgroup EFR32BG29_LFRCO_BitFields LFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFRCO IPVERSION */
+#define _LFRCO_IPVERSION_RESETVALUE 0x00000003UL /**< Default value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000003UL /**< Mode DEFAULT for LFRCO_IPVERSION */
+#define LFRCO_IPVERSION_IPVERSION_DEFAULT (_LFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IPVERSION */
+
+/* Bit fields for LFRCO CTRL */
+#define _LFRCO_CTRL_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CTRL */
+#define _LFRCO_CTRL_MASK 0x00000003UL /**< Mask for LFRCO_CTRL */
+#define LFRCO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _LFRCO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for LFRCO_FORCEEN */
+#define _LFRCO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for LFRCO_FORCEEN */
+#define _LFRCO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_FORCEEN_DEFAULT (_LFRCO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-Demand */
+#define _LFRCO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for LFRCO_DISONDEMAND */
+#define _LFRCO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for LFRCO_DISONDEMAND */
+#define _LFRCO_CTRL_DISONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_DISONDEMAND_DEFAULT (_LFRCO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_CTRL */
+
+/* Bit fields for LFRCO STATUS */
+#define _LFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFRCO_STATUS */
+#define _LFRCO_STATUS_MASK 0x80010001UL /**< Mask for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _LFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY_DEFAULT (_LFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _LFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS_DEFAULT (_LFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _LFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_DEFAULT (_LFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_UNLOCKED (_LFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_LOCKED (_LFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFRCO_STATUS */
+
+/* Bit fields for LFRCO IF */
+#define _LFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IF */
+#define _LFRCO_IF_MASK 0x00070707UL /**< Mask for LFRCO_IF */
+#define LFRCO_IF_RDY (0x1UL << 0) /**< Ready Flag */
+#define _LFRCO_IF_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_RDY_DEFAULT (_LFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Flag */
+#define _LFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE_DEFAULT (_LFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Flag */
+#define _LFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE_DEFAULT (_LFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCDONE (0x1UL << 8) /**< Temperature Check Done Flag */
+#define _LFRCO_IF_TCDONE_SHIFT 8 /**< Shift value for LFRCO_TCDONE */
+#define _LFRCO_IF_TCDONE_MASK 0x100UL /**< Bit mask for LFRCO_TCDONE */
+#define _LFRCO_IF_TCDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCDONE_DEFAULT (_LFRCO_IF_TCDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALDONE (0x1UL << 9) /**< Calibration Done Flag */
+#define _LFRCO_IF_CALDONE_SHIFT 9 /**< Shift value for LFRCO_CALDONE */
+#define _LFRCO_IF_CALDONE_MASK 0x200UL /**< Bit mask for LFRCO_CALDONE */
+#define _LFRCO_IF_CALDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALDONE_DEFAULT (_LFRCO_IF_CALDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TEMPCHANGE (0x1UL << 10) /**< Temperature Change Flag */
+#define _LFRCO_IF_TEMPCHANGE_SHIFT 10 /**< Shift value for LFRCO_TEMPCHANGE */
+#define _LFRCO_IF_TEMPCHANGE_MASK 0x400UL /**< Bit mask for LFRCO_TEMPCHANGE */
+#define _LFRCO_IF_TEMPCHANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TEMPCHANGE_DEFAULT (_LFRCO_IF_TEMPCHANGE_DEFAULT << 10) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_SCHEDERR (0x1UL << 16) /**< Scheduling Error Flag */
+#define _LFRCO_IF_SCHEDERR_SHIFT 16 /**< Shift value for LFRCO_SCHEDERR */
+#define _LFRCO_IF_SCHEDERR_MASK 0x10000UL /**< Bit mask for LFRCO_SCHEDERR */
+#define _LFRCO_IF_SCHEDERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_SCHEDERR_DEFAULT (_LFRCO_IF_SCHEDERR_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCOOR (0x1UL << 17) /**< Temperature Check Out Of Range Flag */
+#define _LFRCO_IF_TCOOR_SHIFT 17 /**< Shift value for LFRCO_TCOOR */
+#define _LFRCO_IF_TCOOR_MASK 0x20000UL /**< Bit mask for LFRCO_TCOOR */
+#define _LFRCO_IF_TCOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCOOR_DEFAULT (_LFRCO_IF_TCOOR_DEFAULT << 17) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALOOR (0x1UL << 18) /**< Calibration Out Of Range Flag */
+#define _LFRCO_IF_CALOOR_SHIFT 18 /**< Shift value for LFRCO_CALOOR */
+#define _LFRCO_IF_CALOOR_MASK 0x40000UL /**< Bit mask for LFRCO_CALOOR */
+#define _LFRCO_IF_CALOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALOOR_DEFAULT (_LFRCO_IF_CALOOR_DEFAULT << 18) /**< Shifted mode DEFAULT for LFRCO_IF */
+
+/* Bit fields for LFRCO IEN */
+#define _LFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IEN */
+#define _LFRCO_IEN_MASK 0x00070707UL /**< Mask for LFRCO_IEN */
+#define LFRCO_IEN_RDY (0x1UL << 0) /**< Ready Enable */
+#define _LFRCO_IEN_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_RDY_DEFAULT (_LFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Enable */
+#define _LFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE_DEFAULT (_LFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Enable */
+#define _LFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE_DEFAULT (_LFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCDONE (0x1UL << 8) /**< Temperature Check Done Enable */
+#define _LFRCO_IEN_TCDONE_SHIFT 8 /**< Shift value for LFRCO_TCDONE */
+#define _LFRCO_IEN_TCDONE_MASK 0x100UL /**< Bit mask for LFRCO_TCDONE */
+#define _LFRCO_IEN_TCDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCDONE_DEFAULT (_LFRCO_IEN_TCDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALDONE (0x1UL << 9) /**< Calibration Done Enable */
+#define _LFRCO_IEN_CALDONE_SHIFT 9 /**< Shift value for LFRCO_CALDONE */
+#define _LFRCO_IEN_CALDONE_MASK 0x200UL /**< Bit mask for LFRCO_CALDONE */
+#define _LFRCO_IEN_CALDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALDONE_DEFAULT (_LFRCO_IEN_CALDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TEMPCHANGE (0x1UL << 10) /**< Temperature Change Enable */
+#define _LFRCO_IEN_TEMPCHANGE_SHIFT 10 /**< Shift value for LFRCO_TEMPCHANGE */
+#define _LFRCO_IEN_TEMPCHANGE_MASK 0x400UL /**< Bit mask for LFRCO_TEMPCHANGE */
+#define _LFRCO_IEN_TEMPCHANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TEMPCHANGE_DEFAULT (_LFRCO_IEN_TEMPCHANGE_DEFAULT << 10) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_SCHEDERR (0x1UL << 16) /**< Scheduling Error Enable */
+#define _LFRCO_IEN_SCHEDERR_SHIFT 16 /**< Shift value for LFRCO_SCHEDERR */
+#define _LFRCO_IEN_SCHEDERR_MASK 0x10000UL /**< Bit mask for LFRCO_SCHEDERR */
+#define _LFRCO_IEN_SCHEDERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_SCHEDERR_DEFAULT (_LFRCO_IEN_SCHEDERR_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCOOR (0x1UL << 17) /**< Temperature Check Out Of Range Enable */
+#define _LFRCO_IEN_TCOOR_SHIFT 17 /**< Shift value for LFRCO_TCOOR */
+#define _LFRCO_IEN_TCOOR_MASK 0x20000UL /**< Bit mask for LFRCO_TCOOR */
+#define _LFRCO_IEN_TCOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCOOR_DEFAULT (_LFRCO_IEN_TCOOR_DEFAULT << 17) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALOOR (0x1UL << 18) /**< Calibration Out Of Range Enable */
+#define _LFRCO_IEN_CALOOR_SHIFT 18 /**< Shift value for LFRCO_CALOOR */
+#define _LFRCO_IEN_CALOOR_MASK 0x40000UL /**< Bit mask for LFRCO_CALOOR */
+#define _LFRCO_IEN_CALOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALOOR_DEFAULT (_LFRCO_IEN_CALOOR_DEFAULT << 18) /**< Shifted mode DEFAULT for LFRCO_IEN */
+
+/* Bit fields for LFRCO LOCK */
+#define _LFRCO_LOCK_RESETVALUE 0x00000000UL /**< Default value for LFRCO_LOCK */
+#define _LFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_UNLOCK 0x00000F93UL /**< Mode UNLOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_DEFAULT (_LFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_LOCK (_LFRCO_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_UNLOCK (_LFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFRCO_LOCK */
+
+/* Bit fields for LFRCO CFG */
+#define _LFRCO_CFG_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CFG */
+#define _LFRCO_CFG_MASK 0x00000001UL /**< Mask for LFRCO_CFG */
+#define LFRCO_CFG_HIGHPRECEN (0x1UL << 0) /**< High Precision Enable */
+#define _LFRCO_CFG_HIGHPRECEN_SHIFT 0 /**< Shift value for LFRCO_HIGHPRECEN */
+#define _LFRCO_CFG_HIGHPRECEN_MASK 0x1UL /**< Bit mask for LFRCO_HIGHPRECEN */
+#define _LFRCO_CFG_HIGHPRECEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CFG */
+#define LFRCO_CFG_HIGHPRECEN_DEFAULT (_LFRCO_CFG_HIGHPRECEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CFG */
+
+/* Bit fields for LFRCO NOMCAL */
+#define _LFRCO_NOMCAL_RESETVALUE 0x0005B8D8UL /**< Default value for LFRCO_NOMCAL */
+#define _LFRCO_NOMCAL_MASK 0x001FFFFFUL /**< Mask for LFRCO_NOMCAL */
+#define _LFRCO_NOMCAL_NOMCALCNT_SHIFT 0 /**< Shift value for LFRCO_NOMCALCNT */
+#define _LFRCO_NOMCAL_NOMCALCNT_MASK 0x1FFFFFUL /**< Bit mask for LFRCO_NOMCALCNT */
+#define _LFRCO_NOMCAL_NOMCALCNT_DEFAULT 0x0005B8D8UL /**< Mode DEFAULT for LFRCO_NOMCAL */
+#define LFRCO_NOMCAL_NOMCALCNT_DEFAULT (_LFRCO_NOMCAL_NOMCALCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_NOMCAL */
+
+/* Bit fields for LFRCO NOMCALINV */
+#define _LFRCO_NOMCALINV_RESETVALUE 0x0000597AUL /**< Default value for LFRCO_NOMCALINV */
+#define _LFRCO_NOMCALINV_MASK 0x0001FFFFUL /**< Mask for LFRCO_NOMCALINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_SHIFT 0 /**< Shift value for LFRCO_NOMCALCNTINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_MASK 0x1FFFFUL /**< Bit mask for LFRCO_NOMCALCNTINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT 0x0000597AUL /**< Mode DEFAULT for LFRCO_NOMCALINV */
+#define LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT (_LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_NOMCALINV */
+
+/* Bit fields for LFRCO CMD */
+#define _LFRCO_CMD_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CMD */
+#define _LFRCO_CMD_MASK 0x00000001UL /**< Mask for LFRCO_CMD */
+#define LFRCO_CMD_REDUCETCINT (0x1UL << 0) /**< Reduce Temperature Check Interval */
+#define _LFRCO_CMD_REDUCETCINT_SHIFT 0 /**< Shift value for LFRCO_REDUCETCINT */
+#define _LFRCO_CMD_REDUCETCINT_MASK 0x1UL /**< Bit mask for LFRCO_REDUCETCINT */
+#define _LFRCO_CMD_REDUCETCINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CMD */
+#define LFRCO_CMD_REDUCETCINT_DEFAULT (_LFRCO_CMD_REDUCETCINT_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CMD */
+
+/** @} End of group EFR32BG29_LFRCO_BitFields */
+/** @} End of group EFR32BG29_LFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_LFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfxo.h
new file mode 100644
index 000000000..0b27a680e
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_lfxo.h
@@ -0,0 +1,281 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 LFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_LFXO_H
+#define EFR32BG29_LFXO_H
+#define LFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_LFXO LFXO
+ * @{
+ * @brief EFR32BG29 LFXO Register Declaration.
+ *****************************************************************************/
+
+/** LFXO Register Declaration. */
+typedef struct lfxo_typedef{
+ __IM uint32_t IPVERSION; /**< LFXO IP version */
+ __IOM uint32_t CTRL; /**< LFXO Control Register */
+ __IOM uint32_t CFG; /**< LFXO Configuration Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< LFXO Status Register */
+ __IOM uint32_t CAL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< LFXO IP version */
+ __IOM uint32_t CTRL_SET; /**< LFXO Control Register */
+ __IOM uint32_t CFG_SET; /**< LFXO Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< LFXO Status Register */
+ __IOM uint32_t CAL_SET; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< LFXO IP version */
+ __IOM uint32_t CTRL_CLR; /**< LFXO Control Register */
+ __IOM uint32_t CFG_CLR; /**< LFXO Configuration Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< LFXO Status Register */
+ __IOM uint32_t CAL_CLR; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< LFXO IP version */
+ __IOM uint32_t CTRL_TGL; /**< LFXO Control Register */
+ __IOM uint32_t CFG_TGL; /**< LFXO Configuration Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< LFXO Status Register */
+ __IOM uint32_t CAL_TGL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} LFXO_TypeDef;
+/** @} End of group EFR32BG29_LFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_LFXO
+ * @{
+ * @defgroup EFR32BG29_LFXO_BitFields LFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFXO IPVERSION */
+#define _LFXO_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_IPVERSION */
+#define LFXO_IPVERSION_IPVERSION_DEFAULT (_LFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IPVERSION */
+
+/* Bit fields for LFXO CTRL */
+#define _LFXO_CTRL_RESETVALUE 0x00000002UL /**< Default value for LFXO_CTRL */
+#define _LFXO_CTRL_MASK 0x00000033UL /**< Mask for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN (0x1UL << 0) /**< LFXO Force Enable */
+#define _LFXO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN_DEFAULT (_LFXO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND (0x1UL << 1) /**< LFXO Disable On-demand requests */
+#define _LFXO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND_DEFAULT (_LFXO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN (0x1UL << 4) /**< LFXO Failure Detection Enable */
+#define _LFXO_CTRL_FAILDETEN_SHIFT 4 /**< Shift value for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_MASK 0x10UL /**< Bit mask for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN_DEFAULT (_LFXO_CTRL_FAILDETEN_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN (0x1UL << 5) /**< LFXO Failure Detection EM4WU Enable */
+#define _LFXO_CTRL_FAILDETEM4WUEN_SHIFT 5 /**< Shift value for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_MASK 0x20UL /**< Bit mask for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN_DEFAULT (_LFXO_CTRL_FAILDETEM4WUEN_DEFAULT << 5) /**< Shifted mode DEFAULT for LFXO_CTRL */
+
+/* Bit fields for LFXO CFG */
+#define _LFXO_CFG_RESETVALUE 0x00000701UL /**< Default value for LFXO_CFG */
+#define _LFXO_CFG_MASK 0x00000733UL /**< Mask for LFXO_CFG */
+#define LFXO_CFG_AGC (0x1UL << 0) /**< LFXO AGC Enable */
+#define _LFXO_CFG_AGC_SHIFT 0 /**< Shift value for LFXO_AGC */
+#define _LFXO_CFG_AGC_MASK 0x1UL /**< Bit mask for LFXO_AGC */
+#define _LFXO_CFG_AGC_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_AGC_DEFAULT (_LFXO_CFG_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL (0x1UL << 1) /**< LFXO High Amplitude Enable */
+#define _LFXO_CFG_HIGHAMPL_SHIFT 1 /**< Shift value for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_MASK 0x2UL /**< Bit mask for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL_DEFAULT (_LFXO_CFG_HIGHAMPL_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_SHIFT 4 /**< Shift value for LFXO_MODE */
+#define _LFXO_CFG_MODE_MASK 0x30UL /**< Bit mask for LFXO_MODE */
+#define _LFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for LFXO_CFG */
+#define _LFXO_CFG_MODE_BUFEXTCLK 0x00000001UL /**< Mode BUFEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_MODE_DIGEXTCLK 0x00000002UL /**< Mode DIGEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DEFAULT (_LFXO_CFG_MODE_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_MODE_XTAL (_LFXO_CFG_MODE_XTAL << 4) /**< Shifted mode XTAL for LFXO_CFG */
+#define LFXO_CFG_MODE_BUFEXTCLK (_LFXO_CFG_MODE_BUFEXTCLK << 4) /**< Shifted mode BUFEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DIGEXTCLK (_LFXO_CFG_MODE_DIGEXTCLK << 4) /**< Shifted mode DIGEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_SHIFT 8 /**< Shift value for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_MASK 0x700UL /**< Bit mask for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_DEFAULT 0x00000007UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2 0x00000000UL /**< Mode CYCLES2 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES256 0x00000001UL /**< Mode CYCLES256 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES1K 0x00000002UL /**< Mode CYCLES1K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2K 0x00000003UL /**< Mode CYCLES2K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES4K 0x00000004UL /**< Mode CYCLES4K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES8K 0x00000005UL /**< Mode CYCLES8K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES16K 0x00000006UL /**< Mode CYCLES16K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES32K 0x00000007UL /**< Mode CYCLES32K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_DEFAULT (_LFXO_CFG_TIMEOUT_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2 (_LFXO_CFG_TIMEOUT_CYCLES2 << 8) /**< Shifted mode CYCLES2 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES256 (_LFXO_CFG_TIMEOUT_CYCLES256 << 8) /**< Shifted mode CYCLES256 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES1K (_LFXO_CFG_TIMEOUT_CYCLES1K << 8) /**< Shifted mode CYCLES1K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2K (_LFXO_CFG_TIMEOUT_CYCLES2K << 8) /**< Shifted mode CYCLES2K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES4K (_LFXO_CFG_TIMEOUT_CYCLES4K << 8) /**< Shifted mode CYCLES4K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES8K (_LFXO_CFG_TIMEOUT_CYCLES8K << 8) /**< Shifted mode CYCLES8K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES16K (_LFXO_CFG_TIMEOUT_CYCLES16K << 8) /**< Shifted mode CYCLES16K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES32K (_LFXO_CFG_TIMEOUT_CYCLES32K << 8) /**< Shifted mode CYCLES32K for LFXO_CFG */
+
+/* Bit fields for LFXO STATUS */
+#define _LFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFXO_STATUS */
+#define _LFXO_STATUS_MASK 0x80010001UL /**< Mask for LFXO_STATUS */
+#define LFXO_STATUS_RDY (0x1UL << 0) /**< LFXO Ready Status */
+#define _LFXO_STATUS_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_RDY_DEFAULT (_LFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS (0x1UL << 16) /**< LFXO Enable Status */
+#define _LFXO_STATUS_ENS_SHIFT 16 /**< Shift value for LFXO_ENS */
+#define _LFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFXO_ENS */
+#define _LFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS_DEFAULT (_LFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK (0x1UL << 31) /**< LFXO Locked Status */
+#define _LFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_DEFAULT (_LFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_UNLOCKED (_LFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_LOCKED (_LFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFXO_STATUS */
+
+/* Bit fields for LFXO CAL */
+#define _LFXO_CAL_RESETVALUE 0x00000100UL /**< Default value for LFXO_CAL */
+#define _LFXO_CAL_MASK 0x0000037FUL /**< Mask for LFXO_CAL */
+#define _LFXO_CAL_CAPTUNE_SHIFT 0 /**< Shift value for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_MASK 0x7FUL /**< Bit mask for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_CAPTUNE_DEFAULT (_LFXO_CAL_CAPTUNE_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CAL */
+#define _LFXO_CAL_GAIN_SHIFT 8 /**< Shift value for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_MASK 0x300UL /**< Bit mask for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_GAIN_DEFAULT (_LFXO_CAL_GAIN_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CAL */
+
+/* Bit fields for LFXO IF */
+#define _LFXO_IF_RESETVALUE 0x00000000UL /**< Default value for LFXO_IF */
+#define _LFXO_IF_MASK 0x0000000FUL /**< Mask for LFXO_IF */
+#define LFXO_IF_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Flag */
+#define _LFXO_IF_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IF_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_RDY_DEFAULT (_LFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Flag */
+#define _LFXO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE_DEFAULT (_LFXO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Flag */
+#define _LFXO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE_DEFAULT (_LFXO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Flag */
+#define _LFXO_IF_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IF_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IF_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL_DEFAULT (_LFXO_IF_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IF */
+
+/* Bit fields for LFXO IEN */
+#define _LFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFXO_IEN */
+#define _LFXO_IEN_MASK 0x0000000FUL /**< Mask for LFXO_IEN */
+#define LFXO_IEN_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Enable */
+#define _LFXO_IEN_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_RDY_DEFAULT (_LFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Enable */
+#define _LFXO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE_DEFAULT (_LFXO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Enable */
+#define _LFXO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE_DEFAULT (_LFXO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Enable */
+#define _LFXO_IEN_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL_DEFAULT (_LFXO_IEN_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IEN */
+
+/* Bit fields for LFXO SYNCBUSY */
+#define _LFXO_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LFXO_SYNCBUSY */
+#define _LFXO_SYNCBUSY_MASK 0x00000001UL /**< Mask for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL (0x1UL << 0) /**< LFXO Synchronization status */
+#define _LFXO_SYNCBUSY_CAL_SHIFT 0 /**< Shift value for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_MASK 0x1UL /**< Bit mask for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL_DEFAULT (_LFXO_SYNCBUSY_CAL_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_SYNCBUSY */
+
+/* Bit fields for LFXO LOCK */
+#define _LFXO_LOCK_RESETVALUE 0x00001A20UL /**< Default value for LFXO_LOCK */
+#define _LFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_DEFAULT 0x00001A20UL /**< Mode DEFAULT for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_UNLOCK 0x00001A20UL /**< Mode UNLOCK for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_DEFAULT (_LFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_UNLOCK (_LFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFXO_LOCK */
+
+/** @} End of group EFR32BG29_LFXO_BitFields */
+/** @} End of group EFR32BG29_LFXO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_LFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_mpahbram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_mpahbram.h
new file mode 100644
index 000000000..ca23dfe33
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_mpahbram.h
@@ -0,0 +1,246 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 MPAHBRAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_MPAHBRAM_H
+#define EFR32BG29_MPAHBRAM_H
+#define MPAHBRAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_MPAHBRAM MPAHBRAM
+ * @{
+ * @brief EFR32BG29 MPAHBRAM Register Declaration.
+ *****************************************************************************/
+
+/** MPAHBRAM Register Declaration. */
+typedef struct mpahbram_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CMD; /**< Command register */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IM uint32_t ECCERRADDR0; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1; /**< ECC Error Address 1 */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND; /**< Multiple ECC error indication */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CMD_SET; /**< Command register */
+ __IOM uint32_t CTRL_SET; /**< Control register */
+ __IM uint32_t ECCERRADDR0_SET; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_SET; /**< ECC Error Address 1 */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_SET; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CMD_CLR; /**< Command register */
+ __IOM uint32_t CTRL_CLR; /**< Control register */
+ __IM uint32_t ECCERRADDR0_CLR; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_CLR; /**< ECC Error Address 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_CLR; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CMD_TGL; /**< Command register */
+ __IOM uint32_t CTRL_TGL; /**< Control register */
+ __IM uint32_t ECCERRADDR0_TGL; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_TGL; /**< ECC Error Address 1 */
+ uint32_t RESERVED12[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_TGL; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} MPAHBRAM_TypeDef;
+/** @} End of group EFR32BG29_MPAHBRAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_MPAHBRAM
+ * @{
+ * @defgroup EFR32BG29_MPAHBRAM_BitFields MPAHBRAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MPAHBRAM IPVERSION */
+#define _MPAHBRAM_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_MASK 0x00000003UL /**< Mask for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_MASK 0x3UL /**< Bit mask for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for MPAHBRAM_IPVERSION */
+#define MPAHBRAM_IPVERSION_IPVERSION_DEFAULT (_MPAHBRAM_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IPVERSION */
+
+/* Bit fields for MPAHBRAM CMD */
+#define _MPAHBRAM_CMD_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_CMD */
+#define _MPAHBRAM_CMD_MASK 0x00000003UL /**< Mask for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0 (0x1UL << 0) /**< Clear ECCERRADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_SHIFT 0 /**< Shift value for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_MASK 0x1UL /**< Bit mask for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1 (0x1UL << 1) /**< Clear ECCERRADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_SHIFT 1 /**< Shift value for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_MASK 0x2UL /**< Bit mask for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+
+/* Bit fields for MPAHBRAM CTRL */
+#define _MPAHBRAM_CTRL_RESETVALUE 0x00000040UL /**< Default value for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_MASK 0x000000FFUL /**< Mask for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN (0x1UL << 0) /**< Enable ECC functionality */
+#define _MPAHBRAM_CTRL_ECCEN_SHIFT 0 /**< Shift value for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_MASK 0x1UL /**< Bit mask for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN_DEFAULT (_MPAHBRAM_CTRL_ECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN (0x1UL << 1) /**< Enable ECC syndrome writes */
+#define _MPAHBRAM_CTRL_ECCWEN_SHIFT 1 /**< Shift value for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_MASK 0x2UL /**< Bit mask for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN_DEFAULT (_MPAHBRAM_CTRL_ECCWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN (0x1UL << 2) /**< ECC Error bus fault enable */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_SHIFT 2 /**< Shift value for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_MASK 0x4UL /**< Bit mask for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_SHIFT 3 /**< Shift value for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_MASK 0x38UL /**< Bit mask for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE 0x00000000UL /**< Mode NONE for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 0x00000001UL /**< Mode PORT0 for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 0x00000002UL /**< Mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT (_MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT << 3) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE (_MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE << 3) /**< Shifted mode NONE for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 << 3) /**< Shifted mode PORT0 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 << 3) /**< Shifted mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN (0x1UL << 6) /**< Address fault bus fault enable */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_SHIFT 6 /**< Shift value for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_MASK 0x40UL /**< Bit mask for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_WAITSTATES (0x1UL << 7) /**< RAM read wait states */
+#define _MPAHBRAM_CTRL_WAITSTATES_SHIFT 7 /**< Shift value for MPAHBRAM_WAITSTATES */
+#define _MPAHBRAM_CTRL_WAITSTATES_MASK 0x80UL /**< Bit mask for MPAHBRAM_WAITSTATES */
+#define _MPAHBRAM_CTRL_WAITSTATES_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_WAITSTATES_DEFAULT (_MPAHBRAM_CTRL_WAITSTATES_DEFAULT << 7) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+
+/* Bit fields for MPAHBRAM ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR0 */
+#define MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR0*/
+
+/* Bit fields for MPAHBRAM ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR1 */
+#define MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR1*/
+
+/* Bit fields for MPAHBRAM ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_MASK 0x00000003UL /**< Mask for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0 (0x1UL << 0) /**< Multiple ECC errors on AHB port 0 */
+#define _MPAHBRAM_ECCMERRIND_P0_SHIFT 0 /**< Shift value for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_MASK 0x1UL /**< Bit mask for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0_DEFAULT (_MPAHBRAM_ECCMERRIND_P0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+#define MPAHBRAM_ECCMERRIND_P1 (0x1UL << 1) /**< Multiple ECC errors on AHB port 1 */
+#define _MPAHBRAM_ECCMERRIND_P1_SHIFT 1 /**< Shift value for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_MASK 0x2UL /**< Bit mask for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P1_DEFAULT (_MPAHBRAM_ECCMERRIND_P1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+
+/* Bit fields for MPAHBRAM IF */
+#define _MPAHBRAM_IF_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IF */
+#define _MPAHBRAM_IF_MASK 0x00000033UL /**< Mask for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B_DEFAULT (_MPAHBRAM_IF_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B_DEFAULT (_MPAHBRAM_IF_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B_DEFAULT (_MPAHBRAM_IF_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B_DEFAULT (_MPAHBRAM_IF_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+
+/* Bit fields for MPAHBRAM IEN */
+#define _MPAHBRAM_IEN_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IEN */
+#define _MPAHBRAM_IEN_MASK 0x00000033UL /**< Mask for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+
+/** @} End of group EFR32BG29_MPAHBRAM_BitFields */
+/** @} End of group EFR32BG29_MPAHBRAM */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_MPAHBRAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_msc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_msc.h
new file mode 100644
index 000000000..bd4e9433a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_msc.h
@@ -0,0 +1,522 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 MSC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_MSC_H
+#define EFR32BG29_MSC_H
+#define MSC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_MSC MSC
+ * @{
+ * @brief EFR32BG29 MSC Register Declaration.
+ *****************************************************************************/
+
+/** MSC Register Declaration. */
+typedef struct msc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t READCTRL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD; /**< Write Command Register */
+ __IOM uint32_t ADDRB; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA; /**< Write Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE; /**< User Data Region Size Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL; /**< Power control register */
+ uint32_t RESERVED2[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED3[4U]; /**< Reserved for future use */
+ uint32_t RESERVED4[4U]; /**< Reserved for future use */
+ uint32_t RESERVED5[4U]; /**< Reserved for future use */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[12U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[8U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t READCTRL_SET; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_SET; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_SET; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_SET; /**< Write Command Register */
+ __IOM uint32_t ADDRB_SET; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_SET; /**< Write Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED12[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_SET; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_SET; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_SET; /**< Power control register */
+ uint32_t RESERVED14[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_SET; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_SET; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_SET; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_SET; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ uint32_t RESERVED16[4U]; /**< Reserved for future use */
+ uint32_t RESERVED17[4U]; /**< Reserved for future use */
+ uint32_t RESERVED18[4U]; /**< Reserved for future use */
+ uint32_t RESERVED19[12U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[8U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t READCTRL_CLR; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_CLR; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_CLR; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_CLR; /**< Write Command Register */
+ __IOM uint32_t ADDRB_CLR; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_CLR; /**< Write Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED24[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_CLR; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_CLR; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_CLR; /**< Power control register */
+ uint32_t RESERVED26[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_CLR; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_CLR; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_CLR; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_CLR; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED27[4U]; /**< Reserved for future use */
+ uint32_t RESERVED28[4U]; /**< Reserved for future use */
+ uint32_t RESERVED29[4U]; /**< Reserved for future use */
+ uint32_t RESERVED30[4U]; /**< Reserved for future use */
+ uint32_t RESERVED31[12U]; /**< Reserved for future use */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ uint32_t RESERVED33[8U]; /**< Reserved for future use */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+ uint32_t RESERVED35[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t READCTRL_TGL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_TGL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_TGL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_TGL; /**< Write Command Register */
+ __IOM uint32_t ADDRB_TGL; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_TGL; /**< Write Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED36[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_TGL; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_TGL; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_TGL; /**< Power control register */
+ uint32_t RESERVED38[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_TGL; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_TGL; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_TGL; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_TGL; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED39[4U]; /**< Reserved for future use */
+ uint32_t RESERVED40[4U]; /**< Reserved for future use */
+ uint32_t RESERVED41[4U]; /**< Reserved for future use */
+ uint32_t RESERVED42[4U]; /**< Reserved for future use */
+ uint32_t RESERVED43[12U]; /**< Reserved for future use */
+ uint32_t RESERVED44[1U]; /**< Reserved for future use */
+ uint32_t RESERVED45[8U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+} MSC_TypeDef;
+/** @} End of group EFR32BG29_MSC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_MSC
+ * @{
+ * @defgroup EFR32BG29_MSC_BitFields MSC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MSC IPVERSION */
+#define _MSC_IPVERSION_RESETVALUE 0x00000007UL /**< Default value for MSC_IPVERSION */
+#define _MSC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_DEFAULT 0x00000007UL /**< Mode DEFAULT for MSC_IPVERSION */
+#define MSC_IPVERSION_IPVERSION_DEFAULT (_MSC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IPVERSION */
+
+/* Bit fields for MSC READCTRL */
+#define _MSC_READCTRL_RESETVALUE 0x00200000UL /**< Default value for MSC_READCTRL */
+#define _MSC_READCTRL_MASK 0x00300000UL /**< Mask for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_SHIFT 20 /**< Shift value for MSC_MODE */
+#define _MSC_READCTRL_MODE_MASK 0x300000UL /**< Bit mask for MSC_MODE */
+#define _MSC_READCTRL_MODE_DEFAULT 0x00000002UL /**< Mode DEFAULT for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS0 0x00000000UL /**< Mode WS0 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS1 0x00000001UL /**< Mode WS1 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS2 0x00000002UL /**< Mode WS2 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS3 0x00000003UL /**< Mode WS3 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_DEFAULT (_MSC_READCTRL_MODE_DEFAULT << 20) /**< Shifted mode DEFAULT for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS0 (_MSC_READCTRL_MODE_WS0 << 20) /**< Shifted mode WS0 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS1 (_MSC_READCTRL_MODE_WS1 << 20) /**< Shifted mode WS1 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS2 (_MSC_READCTRL_MODE_WS2 << 20) /**< Shifted mode WS2 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS3 (_MSC_READCTRL_MODE_WS3 << 20) /**< Shifted mode WS3 for MSC_READCTRL */
+
+/* Bit fields for MSC RDATACTRL */
+#define _MSC_RDATACTRL_RESETVALUE 0x00001000UL /**< Default value for MSC_RDATACTRL */
+#define _MSC_RDATACTRL_MASK 0x00001002UL /**< Mask for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS (0x1UL << 1) /**< Automatic Invalidate Disable */
+#define _MSC_RDATACTRL_AFDIS_SHIFT 1 /**< Shift value for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_MASK 0x2UL /**< Bit mask for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS_DEFAULT (_MSC_RDATACTRL_AFDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN (0x1UL << 12) /**< Flash dout pipeline buffer enable */
+#define _MSC_RDATACTRL_DOUTBUFEN_SHIFT 12 /**< Shift value for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_MASK 0x1000UL /**< Bit mask for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN_DEFAULT (_MSC_RDATACTRL_DOUTBUFEN_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+
+/* Bit fields for MSC WRITECTRL */
+#define _MSC_WRITECTRL_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_MASK 0x03FF000BUL /**< Mask for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN (0x1UL << 0) /**< Enable Write/Erase Controller */
+#define _MSC_WRITECTRL_WREN_SHIFT 0 /**< Shift value for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_MASK 0x1UL /**< Bit mask for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN_DEFAULT (_MSC_WRITECTRL_WREN_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT (0x1UL << 1) /**< Abort Page Erase on Interrupt */
+#define _MSC_WRITECTRL_IRQERASEABORT_SHIFT 1 /**< Shift value for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_MASK 0x2UL /**< Bit mask for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT_DEFAULT (_MSC_WRITECTRL_IRQERASEABORT_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE (0x1UL << 3) /**< Low-Power Write */
+#define _MSC_WRITECTRL_LPWRITE_SHIFT 3 /**< Shift value for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_MASK 0x8UL /**< Bit mask for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE_DEFAULT (_MSC_WRITECTRL_LPWRITE_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_RANGECOUNT_SHIFT 16 /**< Shift value for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_MASK 0x3FF0000UL /**< Bit mask for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_RANGECOUNT_DEFAULT (_MSC_WRITECTRL_RANGECOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+
+/* Bit fields for MSC WRITECMD */
+#define _MSC_WRITECMD_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECMD */
+#define _MSC_WRITECMD_MASK 0x00001136UL /**< Mask for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE (0x1UL << 1) /**< Erase Page */
+#define _MSC_WRITECMD_ERASEPAGE_SHIFT 1 /**< Shift value for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_MASK 0x2UL /**< Bit mask for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE_DEFAULT (_MSC_WRITECMD_ERASEPAGE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND (0x1UL << 2) /**< End Write Mode */
+#define _MSC_WRITECMD_WRITEEND_SHIFT 2 /**< Shift value for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_MASK 0x4UL /**< Bit mask for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND_DEFAULT (_MSC_WRITECMD_WRITEEND_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE (0x1UL << 4) /**< Erase range of pages */
+#define _MSC_WRITECMD_ERASERANGE_SHIFT 4 /**< Shift value for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_MASK 0x10UL /**< Bit mask for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE_DEFAULT (_MSC_WRITECMD_ERASERANGE_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT (0x1UL << 5) /**< Abort erase sequence */
+#define _MSC_WRITECMD_ERASEABORT_SHIFT 5 /**< Shift value for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_MASK 0x20UL /**< Bit mask for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT_DEFAULT (_MSC_WRITECMD_ERASEABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0 (0x1UL << 8) /**< Mass erase region 0 */
+#define _MSC_WRITECMD_ERASEMAIN0_SHIFT 8 /**< Shift value for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_MASK 0x100UL /**< Bit mask for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0_DEFAULT (_MSC_WRITECMD_ERASEMAIN0_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA (0x1UL << 12) /**< Clear WDATA state */
+#define _MSC_WRITECMD_CLEARWDATA_SHIFT 12 /**< Shift value for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_MASK 0x1000UL /**< Bit mask for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA_DEFAULT (_MSC_WRITECMD_CLEARWDATA_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+
+/* Bit fields for MSC ADDRB */
+#define _MSC_ADDRB_RESETVALUE 0x00000000UL /**< Default value for MSC_ADDRB */
+#define _MSC_ADDRB_MASK 0xFFFFFFFFUL /**< Mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_SHIFT 0 /**< Shift value for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_ADDRB */
+#define MSC_ADDRB_ADDRB_DEFAULT (_MSC_ADDRB_ADDRB_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_ADDRB */
+
+/* Bit fields for MSC WDATA */
+#define _MSC_WDATA_RESETVALUE 0x00000000UL /**< Default value for MSC_WDATA */
+#define _MSC_WDATA_MASK 0xFFFFFFFFUL /**< Mask for MSC_WDATA */
+#define _MSC_WDATA_DATAW_SHIFT 0 /**< Shift value for MSC_DATAW */
+#define _MSC_WDATA_DATAW_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_DATAW */
+#define _MSC_WDATA_DATAW_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WDATA */
+#define MSC_WDATA_DATAW_DEFAULT (_MSC_WDATA_DATAW_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WDATA */
+
+/* Bit fields for MSC STATUS */
+#define _MSC_STATUS_RESETVALUE 0x08000008UL /**< Default value for MSC_STATUS */
+#define _MSC_STATUS_MASK 0xF90100FFUL /**< Mask for MSC_STATUS */
+#define MSC_STATUS_BUSY (0x1UL << 0) /**< Erase/Write Busy */
+#define _MSC_STATUS_BUSY_SHIFT 0 /**< Shift value for MSC_BUSY */
+#define _MSC_STATUS_BUSY_MASK 0x1UL /**< Bit mask for MSC_BUSY */
+#define _MSC_STATUS_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_BUSY_DEFAULT (_MSC_STATUS_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED (0x1UL << 1) /**< Access Locked */
+#define _MSC_STATUS_LOCKED_SHIFT 1 /**< Shift value for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_MASK 0x2UL /**< Bit mask for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED_DEFAULT (_MSC_STATUS_LOCKED_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR (0x1UL << 2) /**< Invalid Write Address or Erase Page */
+#define _MSC_STATUS_INVADDR_SHIFT 2 /**< Shift value for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_MASK 0x4UL /**< Bit mask for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR_DEFAULT (_MSC_STATUS_INVADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY (0x1UL << 3) /**< WDATA Write Ready */
+#define _MSC_STATUS_WDATAREADY_SHIFT 3 /**< Shift value for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_MASK 0x8UL /**< Bit mask for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY_DEFAULT (_MSC_STATUS_WDATAREADY_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED (0x1UL << 4) /**< Erase Operation Aborted */
+#define _MSC_STATUS_ERASEABORTED_SHIFT 4 /**< Shift value for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_MASK 0x10UL /**< Bit mask for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED_DEFAULT (_MSC_STATUS_ERASEABORTED_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING (0x1UL << 5) /**< Write Command In Queue */
+#define _MSC_STATUS_PENDING_SHIFT 5 /**< Shift value for MSC_PENDING */
+#define _MSC_STATUS_PENDING_MASK 0x20UL /**< Bit mask for MSC_PENDING */
+#define _MSC_STATUS_PENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING_DEFAULT (_MSC_STATUS_PENDING_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT (0x1UL << 6) /**< Write Command Timeout */
+#define _MSC_STATUS_TIMEOUT_SHIFT 6 /**< Shift value for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_MASK 0x40UL /**< Bit mask for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT_DEFAULT (_MSC_STATUS_TIMEOUT_DEFAULT << 6) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL (0x1UL << 7) /**< EraseRange with skipped locked pages */
+#define _MSC_STATUS_RANGEPARTIAL_SHIFT 7 /**< Shift value for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_MASK 0x80UL /**< Bit mask for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL_DEFAULT (_MSC_STATUS_RANGEPARTIAL_DEFAULT << 7) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK (0x1UL << 16) /**< Register Lock Status */
+#define _MSC_STATUS_REGLOCK_SHIFT 16 /**< Shift value for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_MASK 0x10000UL /**< Bit mask for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_DEFAULT (_MSC_STATUS_REGLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_UNLOCKED (_MSC_STATUS_REGLOCK_UNLOCKED << 16) /**< Shifted mode UNLOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_LOCKED (_MSC_STATUS_REGLOCK_LOCKED << 16) /**< Shifted mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_PWRON (0x1UL << 24) /**< Flash Power On Status */
+#define _MSC_STATUS_PWRON_SHIFT 24 /**< Shift value for MSC_PWRON */
+#define _MSC_STATUS_PWRON_MASK 0x1000000UL /**< Bit mask for MSC_PWRON */
+#define _MSC_STATUS_PWRON_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRON_DEFAULT (_MSC_STATUS_PWRON_DEFAULT << 24) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY (0x1UL << 27) /**< Flash Write Ready */
+#define _MSC_STATUS_WREADY_SHIFT 27 /**< Shift value for MSC_WREADY */
+#define _MSC_STATUS_WREADY_MASK 0x8000000UL /**< Bit mask for MSC_WREADY */
+#define _MSC_STATUS_WREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY_DEFAULT (_MSC_STATUS_WREADY_DEFAULT << 27) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_SHIFT 28 /**< Shift value for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_MASK 0xF0000000UL /**< Bit mask for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT (_MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT << 28) /**< Shifted mode DEFAULT for MSC_STATUS */
+
+/* Bit fields for MSC IF */
+#define _MSC_IF_RESETVALUE 0x00000000UL /**< Default value for MSC_IF */
+#define _MSC_IF_MASK 0x00000307UL /**< Mask for MSC_IF */
+#define MSC_IF_ERASE (0x1UL << 0) /**< Host Erase Done Interrupt Read Flag */
+#define _MSC_IF_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IF_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IF_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_ERASE_DEFAULT (_MSC_IF_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE (0x1UL << 1) /**< Host Write Done Interrupt Read Flag */
+#define _MSC_IF_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IF_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IF_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE_DEFAULT (_MSC_IF_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV (0x1UL << 2) /**< Host write buffer overflow */
+#define _MSC_IF_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV_DEFAULT (_MSC_IF_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF (0x1UL << 8) /**< Flash Power Up Sequence Complete Flag */
+#define _MSC_IF_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF_DEFAULT (_MSC_IF_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF (0x1UL << 9) /**< Flash Power Off Sequence Complete Flag */
+#define _MSC_IF_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IF_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IF_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF_DEFAULT (_MSC_IF_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IF */
+
+/* Bit fields for MSC IEN */
+#define _MSC_IEN_RESETVALUE 0x00000000UL /**< Default value for MSC_IEN */
+#define _MSC_IEN_MASK 0x00000307UL /**< Mask for MSC_IEN */
+#define MSC_IEN_ERASE (0x1UL << 0) /**< Erase Done Interrupt enable */
+#define _MSC_IEN_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IEN_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IEN_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_ERASE_DEFAULT (_MSC_IEN_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE (0x1UL << 1) /**< Write Done Interrupt enable */
+#define _MSC_IEN_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IEN_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IEN_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE_DEFAULT (_MSC_IEN_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV (0x1UL << 2) /**< write data buffer overflow irq enable */
+#define _MSC_IEN_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV_DEFAULT (_MSC_IEN_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF (0x1UL << 8) /**< Flash Power Up Seq done irq enable */
+#define _MSC_IEN_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF_DEFAULT (_MSC_IEN_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF (0x1UL << 9) /**< Flash Power Off Seq done irq enable */
+#define _MSC_IEN_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF_DEFAULT (_MSC_IEN_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IEN */
+
+/* Bit fields for MSC USERDATASIZE */
+#define _MSC_USERDATASIZE_RESETVALUE 0x00000004UL /**< Default value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_MASK 0x0000003FUL /**< Mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_SHIFT 0 /**< Shift value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_MASK 0x3FUL /**< Bit mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_DEFAULT 0x00000004UL /**< Mode DEFAULT for MSC_USERDATASIZE */
+#define MSC_USERDATASIZE_USERDATASIZE_DEFAULT (_MSC_USERDATASIZE_USERDATASIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_USERDATASIZE */
+
+/* Bit fields for MSC CMD */
+#define _MSC_CMD_RESETVALUE 0x00000000UL /**< Default value for MSC_CMD */
+#define _MSC_CMD_MASK 0x00000011UL /**< Mask for MSC_CMD */
+#define MSC_CMD_PWRUP (0x1UL << 0) /**< Flash Power Up Command */
+#define _MSC_CMD_PWRUP_SHIFT 0 /**< Shift value for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_MASK 0x1UL /**< Bit mask for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWRUP_DEFAULT (_MSC_CMD_PWRUP_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF (0x1UL << 4) /**< Flash power off/sleep command */
+#define _MSC_CMD_PWROFF_SHIFT 4 /**< Shift value for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_MASK 0x10UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF_DEFAULT (_MSC_CMD_PWROFF_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_CMD */
+
+/* Bit fields for MSC LOCK */
+#define _MSC_LOCK_RESETVALUE 0x00000000UL /**< Default value for MSC_LOCK */
+#define _MSC_LOCK_MASK 0x0000FFFFUL /**< Mask for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_UNLOCK 0x00001B71UL /**< Mode UNLOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_DEFAULT (_MSC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_LOCK (_MSC_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_UNLOCK (_MSC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for MSC_LOCK */
+
+/* Bit fields for MSC MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_RESETVALUE 0x00000011UL /**< Default value for MSC_MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_MASK 0x00000011UL /**< Mask for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT (0x1UL << 0) /**< Mass Erase Lock */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_SHIFT 0 /**< Shift value for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_MASK 0x1UL /**< Bit mask for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT (0x1UL << 4) /**< User Data Lock */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_SHIFT 4 /**< Shift value for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_MASK 0x10UL /**< Bit mask for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+
+/* Bit fields for MSC PWRCTRL */
+#define _MSC_PWRCTRL_RESETVALUE 0x00100002UL /**< Default value for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_MASK 0x00FF0013UL /**< Mask for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY (0x1UL << 0) /**< Power down Flash macro when enter EM1 */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_SHIFT 0 /**< Shift value for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_MASK 0x1UL /**< Bit mask for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY (0x1UL << 1) /**< Power down Flash macro when enter EM1P */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_SHIFT 1 /**< Shift value for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_MASK 0x2UL /**< Bit mask for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN (0x1UL << 4) /**< POWER down flash again in EM1/EM1p */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_SHIFT 4 /**< Shift value for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_MASK 0x10UL /**< Bit mask for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT (_MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_PWROFFDLY_SHIFT 16 /**< Shift value for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_MASK 0xFF0000UL /**< Bit mask for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_DEFAULT 0x00000010UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFDLY_DEFAULT (_MSC_PWRCTRL_PWROFFDLY_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+
+/* Bit fields for MSC PAGELOCK0 */
+#define _MSC_PAGELOCK0_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK0 */
+#define MSC_PAGELOCK0_LOCKBIT_DEFAULT (_MSC_PAGELOCK0_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK0 */
+
+/* Bit fields for MSC PAGELOCK1 */
+#define _MSC_PAGELOCK1_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK1 */
+#define MSC_PAGELOCK1_LOCKBIT_DEFAULT (_MSC_PAGELOCK1_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK1 */
+
+/* Bit fields for MSC PAGELOCK2 */
+#define _MSC_PAGELOCK2_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK2 */
+#define _MSC_PAGELOCK2_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK2 */
+#define _MSC_PAGELOCK2_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK2_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK2_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK2 */
+#define MSC_PAGELOCK2_LOCKBIT_DEFAULT (_MSC_PAGELOCK2_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK2 */
+
+/* Bit fields for MSC PAGELOCK3 */
+#define _MSC_PAGELOCK3_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK3 */
+#define _MSC_PAGELOCK3_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK3 */
+#define _MSC_PAGELOCK3_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK3_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK3_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK3 */
+#define MSC_PAGELOCK3_LOCKBIT_DEFAULT (_MSC_PAGELOCK3_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK3 */
+
+/** @} End of group EFR32BG29_MSC_BitFields */
+/** @} End of group EFR32BG29_MSC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_MSC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_pdm.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_pdm.h
new file mode 100644
index 000000000..646255d42
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_pdm.h
@@ -0,0 +1,363 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 PDM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_PDM_H
+#define EFR32BG29_PDM_H
+#define PDM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_PDM PDM
+ * @{
+ * @brief EFR32BG29 PDM Register Declaration.
+ *****************************************************************************/
+
+/** PDM Register Declaration. */
+typedef struct pdm_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t EN; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL; /**< PDM Core Control Register */
+ __IOM uint32_t CMD; /**< PDM Core Command Register */
+ __IM uint32_t STATUS; /**< PDM Status register */
+ __IOM uint32_t CFG0; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA; /**< PDM Received Data Register */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Flag Register */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t EN_SET; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_SET; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_SET; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_SET; /**< PDM Status register */
+ __IOM uint32_t CFG0_SET; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_SET; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_SET; /**< PDM Received Data Register */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Flag Register */
+ uint32_t RESERVED6[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED7[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t EN_CLR; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_CLR; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_CLR; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_CLR; /**< PDM Status register */
+ __IOM uint32_t CFG0_CLR; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_CLR; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_CLR; /**< PDM Received Data Register */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Flag Register */
+ uint32_t RESERVED10[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED11[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t EN_TGL; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_TGL; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_TGL; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_TGL; /**< PDM Status register */
+ __IOM uint32_t CFG0_TGL; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_TGL; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_TGL; /**< PDM Received Data Register */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Flag Register */
+ uint32_t RESERVED14[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+} PDM_TypeDef;
+/** @} End of group EFR32BG29_PDM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_PDM
+ * @{
+ * @defgroup EFR32BG29_PDM_BitFields PDM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PDM IPVERSION */
+#define _PDM_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for PDM_IPVERSION */
+#define _PDM_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IPVERSION */
+#define PDM_IPVERSION_IPVERSION_DEFAULT (_PDM_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IPVERSION */
+
+/* Bit fields for PDM EN */
+#define _PDM_EN_RESETVALUE 0x00000000UL /**< Default value for PDM_EN */
+#define _PDM_EN_MASK 0x00000001UL /**< Mask for PDM_EN */
+#define PDM_EN_EN (0x1UL << 0) /**< PDM enable */
+#define _PDM_EN_EN_SHIFT 0 /**< Shift value for PDM_EN */
+#define _PDM_EN_EN_MASK 0x1UL /**< Bit mask for PDM_EN */
+#define _PDM_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_EN */
+#define _PDM_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for PDM_EN */
+#define _PDM_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for PDM_EN */
+#define PDM_EN_EN_DEFAULT (_PDM_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_EN */
+#define PDM_EN_EN_DISABLE (_PDM_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for PDM_EN */
+#define PDM_EN_EN_ENABLE (_PDM_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for PDM_EN */
+
+/* Bit fields for PDM CTRL */
+#define _PDM_CTRL_RESETVALUE 0x00000000UL /**< Default value for PDM_CTRL */
+#define _PDM_CTRL_MASK 0x000FFF1FUL /**< Mask for PDM_CTRL */
+#define _PDM_CTRL_GAIN_SHIFT 0 /**< Shift value for PDM_GAIN */
+#define _PDM_CTRL_GAIN_MASK 0x1FUL /**< Bit mask for PDM_GAIN */
+#define _PDM_CTRL_GAIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CTRL */
+#define PDM_CTRL_GAIN_DEFAULT (_PDM_CTRL_GAIN_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CTRL */
+#define _PDM_CTRL_DSR_SHIFT 8 /**< Shift value for PDM_DSR */
+#define _PDM_CTRL_DSR_MASK 0xFFF00UL /**< Bit mask for PDM_DSR */
+#define _PDM_CTRL_DSR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CTRL */
+#define PDM_CTRL_DSR_DEFAULT (_PDM_CTRL_DSR_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CTRL */
+
+/* Bit fields for PDM CMD */
+#define _PDM_CMD_RESETVALUE 0x00000000UL /**< Default value for PDM_CMD */
+#define _PDM_CMD_MASK 0x00010111UL /**< Mask for PDM_CMD */
+#define PDM_CMD_START (0x1UL << 0) /**< Start DCF */
+#define _PDM_CMD_START_SHIFT 0 /**< Shift value for PDM_START */
+#define _PDM_CMD_START_MASK 0x1UL /**< Bit mask for PDM_START */
+#define _PDM_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_START_DEFAULT (_PDM_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_STOP (0x1UL << 4) /**< Stop DCF */
+#define _PDM_CMD_STOP_SHIFT 4 /**< Shift value for PDM_STOP */
+#define _PDM_CMD_STOP_MASK 0x10UL /**< Bit mask for PDM_STOP */
+#define _PDM_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_STOP_DEFAULT (_PDM_CMD_STOP_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_CLEAR (0x1UL << 8) /**< Clear DCF */
+#define _PDM_CMD_CLEAR_SHIFT 8 /**< Shift value for PDM_CLEAR */
+#define _PDM_CMD_CLEAR_MASK 0x100UL /**< Bit mask for PDM_CLEAR */
+#define _PDM_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_CLEAR_DEFAULT (_PDM_CMD_CLEAR_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_FIFOFL (0x1UL << 16) /**< FIFO Flush */
+#define _PDM_CMD_FIFOFL_SHIFT 16 /**< Shift value for PDM_FIFOFL */
+#define _PDM_CMD_FIFOFL_MASK 0x10000UL /**< Bit mask for PDM_FIFOFL */
+#define _PDM_CMD_FIFOFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_FIFOFL_DEFAULT (_PDM_CMD_FIFOFL_DEFAULT << 16) /**< Shifted mode DEFAULT for PDM_CMD */
+
+/* Bit fields for PDM STATUS */
+#define _PDM_STATUS_RESETVALUE 0x00000020UL /**< Default value for PDM_STATUS */
+#define _PDM_STATUS_MASK 0x00000731UL /**< Mask for PDM_STATUS */
+#define PDM_STATUS_ACT (0x1UL << 0) /**< PDM is active */
+#define _PDM_STATUS_ACT_SHIFT 0 /**< Shift value for PDM_ACT */
+#define _PDM_STATUS_ACT_MASK 0x1UL /**< Bit mask for PDM_ACT */
+#define _PDM_STATUS_ACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_ACT_DEFAULT (_PDM_STATUS_ACT_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FULL (0x1UL << 4) /**< FIFO FULL Status */
+#define _PDM_STATUS_FULL_SHIFT 4 /**< Shift value for PDM_FULL */
+#define _PDM_STATUS_FULL_MASK 0x10UL /**< Bit mask for PDM_FULL */
+#define _PDM_STATUS_FULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FULL_DEFAULT (_PDM_STATUS_FULL_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_EMPTY (0x1UL << 5) /**< FIFO EMPTY Status */
+#define _PDM_STATUS_EMPTY_SHIFT 5 /**< Shift value for PDM_EMPTY */
+#define _PDM_STATUS_EMPTY_MASK 0x20UL /**< Bit mask for PDM_EMPTY */
+#define _PDM_STATUS_EMPTY_DEFAULT 0x00000001UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_EMPTY_DEFAULT (_PDM_STATUS_EMPTY_DEFAULT << 5) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define _PDM_STATUS_FIFOCNT_SHIFT 8 /**< Shift value for PDM_FIFOCNT */
+#define _PDM_STATUS_FIFOCNT_MASK 0x700UL /**< Bit mask for PDM_FIFOCNT */
+#define _PDM_STATUS_FIFOCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FIFOCNT_DEFAULT (_PDM_STATUS_FIFOCNT_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_STATUS */
+
+/* Bit fields for PDM CFG0 */
+#define _PDM_CFG0_RESETVALUE 0x00000000UL /**< Default value for PDM_CFG0 */
+#define _PDM_CFG0_MASK 0x03013713UL /**< Mask for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_SHIFT 0 /**< Shift value for PDM_FORDER */
+#define _PDM_CFG0_FORDER_MASK 0x3UL /**< Bit mask for PDM_FORDER */
+#define _PDM_CFG0_FORDER_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_SECOND 0x00000000UL /**< Mode SECOND for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_THIRD 0x00000001UL /**< Mode THIRD for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_FOURTH 0x00000002UL /**< Mode FOURTH for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_FIFTH 0x00000003UL /**< Mode FIFTH for PDM_CFG0 */
+#define PDM_CFG0_FORDER_DEFAULT (_PDM_CFG0_FORDER_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_FORDER_SECOND (_PDM_CFG0_FORDER_SECOND << 0) /**< Shifted mode SECOND for PDM_CFG0 */
+#define PDM_CFG0_FORDER_THIRD (_PDM_CFG0_FORDER_THIRD << 0) /**< Shifted mode THIRD for PDM_CFG0 */
+#define PDM_CFG0_FORDER_FOURTH (_PDM_CFG0_FORDER_FOURTH << 0) /**< Shifted mode FOURTH for PDM_CFG0 */
+#define PDM_CFG0_FORDER_FIFTH (_PDM_CFG0_FORDER_FIFTH << 0) /**< Shifted mode FIFTH for PDM_CFG0 */
+#define PDM_CFG0_NUMCH (0x1UL << 4) /**< Number of Channels */
+#define _PDM_CFG0_NUMCH_SHIFT 4 /**< Shift value for PDM_NUMCH */
+#define _PDM_CFG0_NUMCH_MASK 0x10UL /**< Bit mask for PDM_NUMCH */
+#define _PDM_CFG0_NUMCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_NUMCH_ONE 0x00000000UL /**< Mode ONE for PDM_CFG0 */
+#define _PDM_CFG0_NUMCH_TWO 0x00000001UL /**< Mode TWO for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_DEFAULT (_PDM_CFG0_NUMCH_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_ONE (_PDM_CFG0_NUMCH_ONE << 4) /**< Shifted mode ONE for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_TWO (_PDM_CFG0_NUMCH_TWO << 4) /**< Shifted mode TWO for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_SHIFT 8 /**< Shift value for PDM_DATAFORMAT */
+#define _PDM_CFG0_DATAFORMAT_MASK 0x700UL /**< Bit mask for PDM_DATAFORMAT */
+#define _PDM_CFG0_DATAFORMAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RIGHT16 0x00000000UL /**< Mode RIGHT16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_DOUBLE16 0x00000001UL /**< Mode DOUBLE16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RIGHT24 0x00000002UL /**< Mode RIGHT24 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_FULL32BIT 0x00000003UL /**< Mode FULL32BIT for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_LEFT16 0x00000004UL /**< Mode LEFT16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_LEFT24 0x00000005UL /**< Mode LEFT24 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RAW32BIT 0x00000006UL /**< Mode RAW32BIT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_DEFAULT (_PDM_CFG0_DATAFORMAT_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RIGHT16 (_PDM_CFG0_DATAFORMAT_RIGHT16 << 8) /**< Shifted mode RIGHT16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_DOUBLE16 (_PDM_CFG0_DATAFORMAT_DOUBLE16 << 8) /**< Shifted mode DOUBLE16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RIGHT24 (_PDM_CFG0_DATAFORMAT_RIGHT24 << 8) /**< Shifted mode RIGHT24 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_FULL32BIT (_PDM_CFG0_DATAFORMAT_FULL32BIT << 8) /**< Shifted mode FULL32BIT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_LEFT16 (_PDM_CFG0_DATAFORMAT_LEFT16 << 8) /**< Shifted mode LEFT16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_LEFT24 (_PDM_CFG0_DATAFORMAT_LEFT24 << 8) /**< Shifted mode LEFT24 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RAW32BIT (_PDM_CFG0_DATAFORMAT_RAW32BIT << 8) /**< Shifted mode RAW32BIT for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_SHIFT 12 /**< Shift value for PDM_FIFODVL */
+#define _PDM_CFG0_FIFODVL_MASK 0x3000UL /**< Bit mask for PDM_FIFODVL */
+#define _PDM_CFG0_FIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_ONE 0x00000000UL /**< Mode ONE for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_TWO 0x00000001UL /**< Mode TWO for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_THREE 0x00000002UL /**< Mode THREE for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_FOUR 0x00000003UL /**< Mode FOUR for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_DEFAULT (_PDM_CFG0_FIFODVL_DEFAULT << 12) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_ONE (_PDM_CFG0_FIFODVL_ONE << 12) /**< Shifted mode ONE for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_TWO (_PDM_CFG0_FIFODVL_TWO << 12) /**< Shifted mode TWO for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_THREE (_PDM_CFG0_FIFODVL_THREE << 12) /**< Shifted mode THREE for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_FOUR (_PDM_CFG0_FIFODVL_FOUR << 12) /**< Shifted mode FOUR for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01 (0x1UL << 16) /**< Stereo mode CH01 */
+#define _PDM_CFG0_STEREOMODECH01_SHIFT 16 /**< Shift value for PDM_STEREOMODECH01 */
+#define _PDM_CFG0_STEREOMODECH01_MASK 0x10000UL /**< Bit mask for PDM_STEREOMODECH01 */
+#define _PDM_CFG0_STEREOMODECH01_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_STEREOMODECH01_DISABLE 0x00000000UL /**< Mode DISABLE for PDM_CFG0 */
+#define _PDM_CFG0_STEREOMODECH01_CH01ENABLE 0x00000001UL /**< Mode CH01ENABLE for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_DEFAULT (_PDM_CFG0_STEREOMODECH01_DEFAULT << 16) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_DISABLE (_PDM_CFG0_STEREOMODECH01_DISABLE << 16) /**< Shifted mode DISABLE for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_CH01ENABLE (_PDM_CFG0_STEREOMODECH01_CH01ENABLE << 16) /**< Shifted mode CH01ENABLE for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL (0x1UL << 24) /**< CH0 CLK Polarity */
+#define _PDM_CFG0_CH0CLKPOL_SHIFT 24 /**< Shift value for PDM_CH0CLKPOL */
+#define _PDM_CFG0_CH0CLKPOL_MASK 0x1000000UL /**< Bit mask for PDM_CH0CLKPOL */
+#define _PDM_CFG0_CH0CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_CH0CLKPOL_NORMAL 0x00000000UL /**< Mode NORMAL for PDM_CFG0 */
+#define _PDM_CFG0_CH0CLKPOL_INVERT 0x00000001UL /**< Mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_DEFAULT (_PDM_CFG0_CH0CLKPOL_DEFAULT << 24) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_NORMAL (_PDM_CFG0_CH0CLKPOL_NORMAL << 24) /**< Shifted mode NORMAL for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_INVERT (_PDM_CFG0_CH0CLKPOL_INVERT << 24) /**< Shifted mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL (0x1UL << 25) /**< CH1 CLK Polarity */
+#define _PDM_CFG0_CH1CLKPOL_SHIFT 25 /**< Shift value for PDM_CH1CLKPOL */
+#define _PDM_CFG0_CH1CLKPOL_MASK 0x2000000UL /**< Bit mask for PDM_CH1CLKPOL */
+#define _PDM_CFG0_CH1CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_CH1CLKPOL_NORMAL 0x00000000UL /**< Mode NORMAL for PDM_CFG0 */
+#define _PDM_CFG0_CH1CLKPOL_INVERT 0x00000001UL /**< Mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_DEFAULT (_PDM_CFG0_CH1CLKPOL_DEFAULT << 25) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_NORMAL (_PDM_CFG0_CH1CLKPOL_NORMAL << 25) /**< Shifted mode NORMAL for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_INVERT (_PDM_CFG0_CH1CLKPOL_INVERT << 25) /**< Shifted mode INVERT for PDM_CFG0 */
+
+/* Bit fields for PDM CFG1 */
+#define _PDM_CFG1_RESETVALUE 0x00000000UL /**< Default value for PDM_CFG1 */
+#define _PDM_CFG1_MASK 0x030003FFUL /**< Mask for PDM_CFG1 */
+#define _PDM_CFG1_PRESC_SHIFT 0 /**< Shift value for PDM_PRESC */
+#define _PDM_CFG1_PRESC_MASK 0x3FFUL /**< Bit mask for PDM_PRESC */
+#define _PDM_CFG1_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG1 */
+#define PDM_CFG1_PRESC_DEFAULT (_PDM_CFG1_PRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CFG1 */
+#define _PDM_CFG1_DLYMUXSEL_SHIFT 24 /**< Shift value for PDM_DLYMUXSEL */
+#define _PDM_CFG1_DLYMUXSEL_MASK 0x3000000UL /**< Bit mask for PDM_DLYMUXSEL */
+#define _PDM_CFG1_DLYMUXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG1 */
+#define PDM_CFG1_DLYMUXSEL_DEFAULT (_PDM_CFG1_DLYMUXSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for PDM_CFG1 */
+
+/* Bit fields for PDM RXDATA */
+#define _PDM_RXDATA_RESETVALUE 0x00000000UL /**< Default value for PDM_RXDATA */
+#define _PDM_RXDATA_MASK 0xFFFFFFFFUL /**< Mask for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_SHIFT 0 /**< Shift value for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_MASK 0xFFFFFFFFUL /**< Bit mask for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_RXDATA */
+#define PDM_RXDATA_RXDATA_DEFAULT (_PDM_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_RXDATA */
+
+/* Bit fields for PDM IF */
+#define _PDM_IF_RESETVALUE 0x00000000UL /**< Default value for PDM_IF */
+#define _PDM_IF_MASK 0x0000000FUL /**< Mask for PDM_IF */
+#define PDM_IF_DV (0x1UL << 0) /**< Data Valid Interrupt Flag */
+#define _PDM_IF_DV_SHIFT 0 /**< Shift value for PDM_DV */
+#define _PDM_IF_DV_MASK 0x1UL /**< Bit mask for PDM_DV */
+#define _PDM_IF_DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_DV_DEFAULT (_PDM_IF_DV_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_DVL (0x1UL << 1) /**< Data Valid Level Interrupt Flag */
+#define _PDM_IF_DVL_SHIFT 1 /**< Shift value for PDM_DVL */
+#define _PDM_IF_DVL_MASK 0x2UL /**< Bit mask for PDM_DVL */
+#define _PDM_IF_DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_DVL_DEFAULT (_PDM_IF_DVL_DEFAULT << 1) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_OF (0x1UL << 2) /**< FIFO Overflow Interrupt Flag */
+#define _PDM_IF_OF_SHIFT 2 /**< Shift value for PDM_OF */
+#define _PDM_IF_OF_MASK 0x4UL /**< Bit mask for PDM_OF */
+#define _PDM_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_OF_DEFAULT (_PDM_IF_OF_DEFAULT << 2) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_UF (0x1UL << 3) /**< FIFO Undeflow Interrupt Flag */
+#define _PDM_IF_UF_SHIFT 3 /**< Shift value for PDM_UF */
+#define _PDM_IF_UF_MASK 0x8UL /**< Bit mask for PDM_UF */
+#define _PDM_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_UF_DEFAULT (_PDM_IF_UF_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_IF */
+
+/* Bit fields for PDM IEN */
+#define _PDM_IEN_RESETVALUE 0x00000000UL /**< Default value for PDM_IEN */
+#define _PDM_IEN_MASK 0x0000000FUL /**< Mask for PDM_IEN */
+#define PDM_IEN_DV (0x1UL << 0) /**< Data Valid Interrupt Enable */
+#define _PDM_IEN_DV_SHIFT 0 /**< Shift value for PDM_DV */
+#define _PDM_IEN_DV_MASK 0x1UL /**< Bit mask for PDM_DV */
+#define _PDM_IEN_DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DV_DEFAULT (_PDM_IEN_DV_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DVL (0x1UL << 1) /**< Data Valid Level Interrupt Enable */
+#define _PDM_IEN_DVL_SHIFT 1 /**< Shift value for PDM_DVL */
+#define _PDM_IEN_DVL_MASK 0x2UL /**< Bit mask for PDM_DVL */
+#define _PDM_IEN_DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DVL_DEFAULT (_PDM_IEN_DVL_DEFAULT << 1) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_OF (0x1UL << 2) /**< FIFO Overflow Interrupt Enable */
+#define _PDM_IEN_OF_SHIFT 2 /**< Shift value for PDM_OF */
+#define _PDM_IEN_OF_MASK 0x4UL /**< Bit mask for PDM_OF */
+#define _PDM_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_OF_DEFAULT (_PDM_IEN_OF_DEFAULT << 2) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_UF (0x1UL << 3) /**< FIFO Undeflow Interrupt Enable */
+#define _PDM_IEN_UF_SHIFT 3 /**< Shift value for PDM_UF */
+#define _PDM_IEN_UF_MASK 0x8UL /**< Bit mask for PDM_UF */
+#define _PDM_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_UF_DEFAULT (_PDM_IEN_UF_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_IEN */
+
+/* Bit fields for PDM SYNCBUSY */
+#define _PDM_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_MASK 0x00000009UL /**< Mask for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_SYNCBUSY (0x1UL << 0) /**< sync busy */
+#define _PDM_SYNCBUSY_SYNCBUSY_SHIFT 0 /**< Shift value for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_SYNCBUSY_MASK 0x1UL /**< Bit mask for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_SYNCBUSY_DEFAULT (_PDM_SYNCBUSY_SYNCBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_FIFOFLBUSY (0x1UL << 3) /**< FIFO Flush Sync busy */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_SHIFT 3 /**< Shift value for PDM_FIFOFLBUSY */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_MASK 0x8UL /**< Bit mask for PDM_FIFOFLBUSY */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT (_PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_SYNCBUSY */
+
+/** @} End of group EFR32BG29_PDM_BitFields */
+/** @} End of group EFR32BG29_PDM */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_PDM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs.h
new file mode 100644
index 000000000..c065fda75
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs.h
@@ -0,0 +1,1471 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 PRS register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_PRS_H
+#define EFR32BG29_PRS_H
+#define PRS_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_PRS PRS
+ * @{
+ * @brief EFR32BG29 PRS Register Declaration.
+ *****************************************************************************/
+
+/** PRS ASYNC_CH Register Group Declaration. */
+typedef struct prs_async_ch_typedef{
+ __IOM uint32_t CTRL; /**< Async Channel Control Register */
+} PRS_ASYNC_CH_TypeDef;
+
+/** PRS SYNC_CH Register Group Declaration. */
+typedef struct prs_sync_ch_typedef{
+ __IOM uint32_t CTRL; /**< Sync Channel Control Register */
+} PRS_SYNC_CH_TypeDef;
+
+/** PRS Register Declaration. */
+typedef struct prs_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1; /**< CC1 Consumer register */
+ uint32_t RESERVED2[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2; /**< CC2 Consumer register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED5[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1; /**< SRC1 Consumer register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_SET; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_SET; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_SET; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_SET; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_SET[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_SET[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_SET; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_SET; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_SET; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_SET; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_SET; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_SET; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_SET; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_SET; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_SET; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_SET; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_SET; /**< CC1 Consumer register */
+ uint32_t RESERVED10[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_SET; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_SET; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_SET; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_SET; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_SET; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_SET; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_SET; /**< CC2 Consumer register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_SET; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_SET; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_SET; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_SET; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_SET; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_SET; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_SET; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_SET; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_SET; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_SET; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_SET; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_SET; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED12[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_SET; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_SET; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_SET; /**< SRC1 Consumer register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ uint32_t RESERVED15[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_CLR; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_CLR; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_CLR; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_CLR; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_CLR[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_CLR[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_CLR; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_CLR; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_CLR; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_CLR; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_CLR; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_CLR; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_CLR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_CLR; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_CLR; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_CLR; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_CLR; /**< CC1 Consumer register */
+ uint32_t RESERVED18[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_CLR; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_CLR; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_CLR; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_CLR; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_CLR; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_CLR; /**< CC2 Consumer register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_CLR; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_CLR; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_CLR; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_CLR; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_CLR; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_CLR; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_CLR; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_CLR; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_CLR; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_CLR; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_CLR; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_CLR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED20[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_CLR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED21[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_CLR; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_CLR; /**< SRC1 Consumer register */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_TGL; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_TGL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_TGL; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_TGL; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_TGL[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_TGL[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_TGL; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_TGL; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_TGL; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_TGL; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_TGL; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_TGL; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_TGL; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_TGL; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_TGL; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_TGL; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_TGL; /**< CC1 Consumer register */
+ uint32_t RESERVED26[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_TGL; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_TGL; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_TGL; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_TGL; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_TGL; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_TGL; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_TGL; /**< CC2 Consumer register */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_TGL; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_TGL; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_TGL; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_TGL; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_TGL; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_TGL; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_TGL; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_TGL; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_TGL; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_TGL; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_TGL; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_TGL; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED28[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_TGL; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED29[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_TGL; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_TGL; /**< SRC1 Consumer register */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+} PRS_TypeDef;
+/** @} End of group EFR32BG29_PRS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_PRS
+ * @{
+ * @defgroup EFR32BG29_PRS_BitFields PRS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PRS IPVERSION */
+#define _PRS_IPVERSION_RESETVALUE 0x00000008UL /**< Default value for PRS_IPVERSION */
+#define _PRS_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_DEFAULT 0x00000008UL /**< Mode DEFAULT for PRS_IPVERSION */
+#define PRS_IPVERSION_IPVERSION_DEFAULT (_PRS_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_IPVERSION */
+
+/* Bit fields for PRS ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE (0x1UL << 0) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_SHIFT 0 /**< Shift value for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_MASK 0x1UL /**< Bit mask for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE (0x1UL << 1) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_SHIFT 1 /**< Shift value for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_MASK 0x2UL /**< Bit mask for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE (0x1UL << 2) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_SHIFT 2 /**< Shift value for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_MASK 0x4UL /**< Bit mask for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE (0x1UL << 3) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_SHIFT 3 /**< Shift value for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_MASK 0x8UL /**< Bit mask for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE (0x1UL << 4) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_SHIFT 4 /**< Shift value for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_MASK 0x10UL /**< Bit mask for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE (0x1UL << 5) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_SHIFT 5 /**< Shift value for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_MASK 0x20UL /**< Bit mask for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE (0x1UL << 6) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_SHIFT 6 /**< Shift value for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_MASK 0x40UL /**< Bit mask for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE (0x1UL << 7) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_SHIFT 7 /**< Shift value for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_MASK 0x80UL /**< Bit mask for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE (0x1UL << 8) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_SHIFT 8 /**< Shift value for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_MASK 0x100UL /**< Bit mask for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE (0x1UL << 9) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_SHIFT 9 /**< Shift value for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_MASK 0x200UL /**< Bit mask for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE (0x1UL << 10) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_SHIFT 10 /**< Shift value for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_MASK 0x400UL /**< Bit mask for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE (0x1UL << 11) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_SHIFT 11 /**< Shift value for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_MASK 0x800UL /**< Bit mask for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+
+/* Bit fields for PRS ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL (0x1UL << 0) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_SHIFT 0 /**< Shift value for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_MASK 0x1UL /**< Bit mask for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL (0x1UL << 1) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_SHIFT 1 /**< Shift value for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_MASK 0x2UL /**< Bit mask for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL (0x1UL << 2) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_SHIFT 2 /**< Shift value for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_MASK 0x4UL /**< Bit mask for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL (0x1UL << 3) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_SHIFT 3 /**< Shift value for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_MASK 0x8UL /**< Bit mask for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL (0x1UL << 4) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_SHIFT 4 /**< Shift value for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_MASK 0x10UL /**< Bit mask for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL (0x1UL << 5) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_SHIFT 5 /**< Shift value for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_MASK 0x20UL /**< Bit mask for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL (0x1UL << 6) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_SHIFT 6 /**< Shift value for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_MASK 0x40UL /**< Bit mask for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL (0x1UL << 7) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_SHIFT 7 /**< Shift value for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_MASK 0x80UL /**< Bit mask for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL (0x1UL << 8) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_SHIFT 8 /**< Shift value for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_MASK 0x100UL /**< Bit mask for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL (0x1UL << 9) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_SHIFT 9 /**< Shift value for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_MASK 0x200UL /**< Bit mask for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL (0x1UL << 10) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_SHIFT 10 /**< Shift value for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_MASK 0x400UL /**< Bit mask for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL (0x1UL << 11) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_SHIFT 11 /**< Shift value for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_MASK 0x800UL /**< Bit mask for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+
+/* Bit fields for PRS ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel 0 Current Value */
+#define _PRS_ASYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL_DEFAULT (_PRS_ASYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel 1 Current Value */
+#define _PRS_ASYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL_DEFAULT (_PRS_ASYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel 2 Current Value */
+#define _PRS_ASYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL_DEFAULT (_PRS_ASYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel 3 Current Value */
+#define _PRS_ASYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL_DEFAULT (_PRS_ASYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL (0x1UL << 4) /**< Channel 4 Current Value */
+#define _PRS_ASYNC_PEEK_CH4VAL_SHIFT 4 /**< Shift value for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_MASK 0x10UL /**< Bit mask for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL_DEFAULT (_PRS_ASYNC_PEEK_CH4VAL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL (0x1UL << 5) /**< Channel 5 Current Value */
+#define _PRS_ASYNC_PEEK_CH5VAL_SHIFT 5 /**< Shift value for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_MASK 0x20UL /**< Bit mask for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL_DEFAULT (_PRS_ASYNC_PEEK_CH5VAL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL (0x1UL << 6) /**< Channel 6 Current Value */
+#define _PRS_ASYNC_PEEK_CH6VAL_SHIFT 6 /**< Shift value for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_MASK 0x40UL /**< Bit mask for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL_DEFAULT (_PRS_ASYNC_PEEK_CH6VAL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL (0x1UL << 7) /**< Channel 7 Current Value */
+#define _PRS_ASYNC_PEEK_CH7VAL_SHIFT 7 /**< Shift value for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_MASK 0x80UL /**< Bit mask for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL_DEFAULT (_PRS_ASYNC_PEEK_CH7VAL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL (0x1UL << 8) /**< Channel 8 Current Value */
+#define _PRS_ASYNC_PEEK_CH8VAL_SHIFT 8 /**< Shift value for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_MASK 0x100UL /**< Bit mask for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL_DEFAULT (_PRS_ASYNC_PEEK_CH8VAL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL (0x1UL << 9) /**< Channel 9 Current Value */
+#define _PRS_ASYNC_PEEK_CH9VAL_SHIFT 9 /**< Shift value for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_MASK 0x200UL /**< Bit mask for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL_DEFAULT (_PRS_ASYNC_PEEK_CH9VAL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL (0x1UL << 10) /**< Channel 10 Current Value */
+#define _PRS_ASYNC_PEEK_CH10VAL_SHIFT 10 /**< Shift value for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_MASK 0x400UL /**< Bit mask for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL_DEFAULT (_PRS_ASYNC_PEEK_CH10VAL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL (0x1UL << 11) /**< Channel 11 Current Value */
+#define _PRS_ASYNC_PEEK_CH11VAL_SHIFT 11 /**< Shift value for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_MASK 0x800UL /**< Bit mask for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL_DEFAULT (_PRS_ASYNC_PEEK_CH11VAL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+
+/* Bit fields for PRS SYNC_PEEK */
+#define _PRS_SYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_PEEK */
+#define _PRS_SYNC_PEEK_MASK 0x0000000FUL /**< Mask for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL_DEFAULT (_PRS_SYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL_DEFAULT (_PRS_SYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL_DEFAULT (_PRS_SYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL_DEFAULT (_PRS_SYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+
+/* Bit fields for PRS ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_RESETVALUE 0x000C0000UL /**< Default value for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_MASK 0x0F0F7F07UL /**< Mask for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_NONE 0x00000000UL /**< Mode NONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_NONE (_PRS_ASYNC_CH_CTRL_SIGSEL_NONE << 0) /**< Shifted mode NONE for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_SHIFT 16 /**< Shift value for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_MASK 0xF0000UL /**< Bit mask for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT 0x0000000CUL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO 0x00000000UL /**< Mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B 0x00000001UL /**< Mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B 0x00000002UL /**< Mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A 0x00000003UL /**< Mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B 0x00000004UL /**< Mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_B 0x00000005UL /**< Mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B 0x00000006UL /**< Mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B 0x00000007UL /**< Mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B 0x00000008UL /**< Mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B 0x00000009UL /**< Mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_B 0x0000000AUL /**< Mode B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B 0x0000000BUL /**< Mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A 0x0000000CUL /**< Mode A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B 0x0000000DUL /**< Mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B 0x0000000EUL /**< Mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE 0x0000000FUL /**< Mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO << 16) /**< Shifted mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B << 16) /**< Shifted mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B << 16) /**< Shifted mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A << 16) /**< Shifted mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B << 16) /**< Shifted mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_B << 16) /**< Shifted mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B << 16) /**< Shifted mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B << 16) /**< Shifted mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B << 16) /**< Shifted mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B << 16) /**< Shifted mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_B (_PRS_ASYNC_CH_CTRL_FNSEL_B << 16) /**< Shifted mode B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B << 16) /**< Shifted mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A (_PRS_ASYNC_CH_CTRL_FNSEL_A << 16) /**< Shifted mode A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B << 16) /**< Shifted mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B << 16) /**< Shifted mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE << 16) /**< Shifted mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL*/
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_SHIFT 24 /**< Shift value for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_MASK 0xF000000UL /**< Bit mask for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+
+/* Bit fields for PRS SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_MASK 0x00007F07UL /**< Mask for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+
+/* Bit fields for PRS CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALDN */
+#define PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALDN*/
+
+/* Bit fields for PRS CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALUP */
+#define PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALUP*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_CLK */
+#define PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_RX */
+#define PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define _PRS_CONSUMER_EUSART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_CLK */
+#define PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_RX */
+#define PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define _PRS_CONSUMER_EUSART1_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define _PRS_CONSUMER_LETIMER0_CLEAR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_START*/
+#define _PRS_CONSUMER_LETIMER0_START_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+#define PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_STOP*/
+#define _PRS_CONSUMER_LETIMER0_STOP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP */
+#define PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP*/
+
+/* Bit fields for PRS CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_MODEM_DIN */
+#define PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT (_PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_MODEM_DIN*/
+
+/* Bit fields for PRS CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PRORTC_CC0 */
+#define PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PRORTC_CC0*/
+
+/* Bit fields for PRS CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PRORTC_CC1 */
+#define PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PRORTC_CC1*/
+
+/* Bit fields for PRS CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CLR */
+#define PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CLR*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0 */
+#define PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1 */
+#define PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2 */
+#define PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3 */
+#define PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_FORCETX */
+#define PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_FORCETX*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXDIS */
+#define PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXDIS*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXEN */
+#define PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXEN*/
+
+/* Bit fields for PRS CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_SEQ */
+#define PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_SEQ*/
+
+/* Bit fields for PRS CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_TXEN */
+#define PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_TXEN*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC0 */
+#define PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC0*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC1 */
+#define PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC1*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC2 */
+#define PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC2*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0 */
+#define PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1 */
+#define PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2 */
+#define PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3 */
+#define PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV */
+#define PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTI */
+#define PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS1*/
+#define _PRS_CONSUMER_TIMER0_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS2*/
+#define _PRS_CONSUMER_TIMER0_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTI */
+#define PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS1*/
+#define _PRS_CONSUMER_TIMER1_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS2*/
+#define _PRS_CONSUMER_TIMER1_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTI */
+#define PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS1*/
+#define _PRS_CONSUMER_TIMER2_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS2*/
+#define _PRS_CONSUMER_TIMER2_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTI */
+#define PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS1*/
+#define _PRS_CONSUMER_TIMER3_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS2*/
+#define _PRS_CONSUMER_TIMER3_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTI */
+#define PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS1*/
+#define _PRS_CONSUMER_TIMER4_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS2*/
+#define _PRS_CONSUMER_TIMER4_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_CLK */
+#define PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_IR */
+#define PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_IR*/
+
+/* Bit fields for PRS CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_RX */
+#define PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_RX*/
+
+/* Bit fields for PRS CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_TRIGGER*/
+#define _PRS_CONSUMER_USART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+#define PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_CLK */
+#define PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_CLK*/
+
+/* Bit fields for PRS CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_IR */
+#define PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_IR*/
+
+/* Bit fields for PRS CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_RX */
+#define PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_RX*/
+
+/* Bit fields for PRS CONSUMER_USART1_TRIGGER */
+#define _PRS_CONSUMER_USART1_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_TRIGGER*/
+#define _PRS_CONSUMER_USART1_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_TRIGGER */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_TRIGGER*/
+#define PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0 */
+#define PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1 */
+#define PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1*/
+
+/** @} End of group EFR32BG29_PRS_BitFields */
+/** @} End of group EFR32BG29_PRS */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_PRS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs_signals.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs_signals.h
new file mode 100644
index 000000000..bb4924127
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_prs_signals.h
@@ -0,0 +1,930 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 PRS register signal bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_PRS_SIGNALS_H
+#define EFR32BG29_PRS_SIGNALS_H
+
+/** Synchronous signal sources enumeration: */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000005UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000006UL)
+
+/** Synchronous signal sources enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_NONE (_PRS_SYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+
+/** Synchronous signals enumeration: */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+
+/** Synchronous signals enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+
+/** Synchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_SYNC_TIMER0_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_SYNC_TIMER0_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_SYNC_TIMER0_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_SYNC_TIMER0_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_SYNC_TIMER0_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_SYNC_TIMER1_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_SYNC_TIMER1_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_SYNC_TIMER1_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_SYNC_TIMER1_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_SYNC_TIMER1_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_SYNC_IADC0_SCAN_ENTRY_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_SYNC_IADC0_SCAN_TABLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_SYNC_IADC0_SINGLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_SYNC_TIMER2_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_SYNC_TIMER2_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_SYNC_TIMER2_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_SYNC_TIMER2_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_SYNC_TIMER2_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_SYNC_TIMER3_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_SYNC_TIMER3_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_SYNC_TIMER3_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_SYNC_TIMER3_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_SYNC_TIMER3_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_SYNC_TIMER4_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_SYNC_TIMER4_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_SYNC_TIMER4_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_SYNC_TIMER4_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_SYNC_TIMER4_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+
+/** Asynchronous signal sources enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (0x00000008UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC (0x00000009UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (0x0000000aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (0x0000000bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET (0x0000000cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (0x0000000dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (0x0000000eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (0x0000000fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC (0x00000010UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (0x00000011UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (0x00000012UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE (0x00000013UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (0x00000020UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 (0x00000021UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000022UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000023UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000024UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000025UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (0x00000026UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (0x00000027UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (0x00000028UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (0x00000029UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (0x0000002aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (0x0000002bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (0x0000002cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (0x0000002dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (0x0000002eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (0x0000002fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (0x00000030UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PDML (0x00000031UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PDM (0x00000032UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (0x00000033UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (0x00000034UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000035UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (0x00000036UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (0x00000037UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET (0x00000038UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO (0x00000039UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (0x0000003aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (0x0000003bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO (0x0000003cUL)
+
+/** Asynchronous signal sources enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (_PRS_ASYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC (_PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (_PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (_PRS_ASYNC_CH_CTRL_SOURCESEL_CORE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (_PRS_ASYNC_CH_CTRL_SOURCESEL_FRC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (_PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRS << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PDML (_PRS_ASYNC_CH_CTRL_SOURCESEL_PDML << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PDM (_PRS_ASYNC_CH_CTRL_SOURCESEL_PDM << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (_PRS_ASYNC_CH_CTRL_SOURCESEL_RACL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (_PRS_ASYNC_CH_CTRL_SOURCESEL_RAC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET (_PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC (_PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET (_PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO (_PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO (_PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE (_PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE << 8)
+
+/** Asynchronous signals enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS (0x00000002UL)
+
+/** Asynchronous signals enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE (_PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET (_PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (_PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA (_PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS << 0)
+
+/** Asynchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_ASYNC_USART0_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS)
+#define PRS_ASYNC_USART0_IRTX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX)
+#define PRS_ASYNC_USART0_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS)
+#define PRS_ASYNC_USART0_RXDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA)
+#define PRS_ASYNC_USART0_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX)
+#define PRS_ASYNC_USART0_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC)
+#define PRS_ASYNC_USART1_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS)
+#define PRS_ASYNC_USART1_IRTX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX)
+#define PRS_ASYNC_USART1_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS)
+#define PRS_ASYNC_USART1_RXDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA)
+#define PRS_ASYNC_USART1_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX)
+#define PRS_ASYNC_USART1_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC)
+#define PRS_ASYNC_TIMER0_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_ASYNC_TIMER0_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_ASYNC_TIMER0_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_ASYNC_TIMER0_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_ASYNC_TIMER0_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_ASYNC_TIMER1_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_ASYNC_TIMER1_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_ASYNC_TIMER1_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_ASYNC_TIMER1_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_ASYNC_TIMER1_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_ASYNC_IADC0_SCANENTRYDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_ASYNC_IADC0_SCANTABLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_ASYNC_IADC0_SINGLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_ASYNC_LETIMER0_CH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0)
+#define PRS_ASYNC_LETIMER0_CH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1)
+#define PRS_ASYNC_RTCC_CCV0 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0)
+#define PRS_ASYNC_RTCC_CCV1 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1)
+#define PRS_ASYNC_RTCC_CCV2 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2)
+#define PRS_ASYNC_BURTC_COMP (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP)
+#define PRS_ASYNC_BURTC_OVERFLOW (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW)
+#define PRS_ASYNC_GPIO_PIN0 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0)
+#define PRS_ASYNC_GPIO_PIN1 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1)
+#define PRS_ASYNC_GPIO_PIN2 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2)
+#define PRS_ASYNC_GPIO_PIN3 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3)
+#define PRS_ASYNC_GPIO_PIN4 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4)
+#define PRS_ASYNC_GPIO_PIN5 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5)
+#define PRS_ASYNC_GPIO_PIN6 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6)
+#define PRS_ASYNC_GPIO_PIN7 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7)
+#define PRS_ASYNC_TIMER2_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_ASYNC_TIMER2_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_ASYNC_TIMER2_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_ASYNC_TIMER2_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_ASYNC_TIMER2_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_ASYNC_TIMER3_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_ASYNC_TIMER3_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_ASYNC_TIMER3_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_ASYNC_TIMER3_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_ASYNC_TIMER3_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_ASYNC_CORE_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0)
+#define PRS_ASYNC_CORE_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1)
+#define PRS_ASYNC_CORE_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2)
+#define PRS_ASYNC_CORE_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3)
+#define PRS_ASYNC_CMUL_CLKOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0)
+#define PRS_ASYNC_CMUL_CLKOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1)
+#define PRS_ASYNC_CMUL_CLKOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2)
+#define PRS_ASYNC_AGCL_CCA (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA)
+#define PRS_ASYNC_AGCL_CCAREQ (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ)
+#define PRS_ASYNC_AGCL_GAINADJUST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST)
+#define PRS_ASYNC_AGCL_GAINOK (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK)
+#define PRS_ASYNC_AGCL_GAINREDUCED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED)
+#define PRS_ASYNC_AGCL_IFPKI1 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1)
+#define PRS_ASYNC_AGCL_IFPKQ2 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2)
+#define PRS_ASYNC_AGCL_IFPKRST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST)
+#define PRS_ASYNC_AGC_PEAKDET (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET)
+#define PRS_ASYNC_AGC_PROPAGATED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED)
+#define PRS_ASYNC_AGC_RSSIDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE)
+#define PRS_ASYNC_BUFC_THR0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0)
+#define PRS_ASYNC_BUFC_THR1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1)
+#define PRS_ASYNC_BUFC_THR2 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2)
+#define PRS_ASYNC_BUFC_THR3 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3)
+#define PRS_ASYNC_BUFC_CNT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0)
+#define PRS_ASYNC_BUFC_CNT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1)
+#define PRS_ASYNC_BUFC_FULL (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL)
+#define PRS_ASYNC_MODEML_ADVANCE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE)
+#define PRS_ASYNC_MODEML_ANT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0)
+#define PRS_ASYNC_MODEML_ANT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1)
+#define PRS_ASYNC_MODEML_COHDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET)
+#define PRS_ASYNC_MODEML_COHDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE)
+#define PRS_ASYNC_MODEML_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK)
+#define PRS_ASYNC_MODEML_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT)
+#define PRS_ASYNC_MODEML_FRAMEDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET)
+#define PRS_ASYNC_MODEM_FRAMESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT)
+#define PRS_ASYNC_MODEM_LOWCORR (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR)
+#define PRS_ASYNC_MODEM_LRDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET)
+#define PRS_ASYNC_MODEM_LRDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE)
+#define PRS_ASYNC_MODEM_NEWSYMBOL (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL)
+#define PRS_ASYNC_MODEM_NEWWND (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND)
+#define PRS_ASYNC_MODEM_POSTPONE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE)
+#define PRS_ASYNC_MODEM_PREDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET)
+#define PRS_ASYNC_MODEMH_PRESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT)
+#define PRS_ASYNC_MODEMH_RSSIJUMP (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP)
+#define PRS_ASYNC_MODEMH_SYNCSENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT)
+#define PRS_ASYNC_MODEMH_TIMDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET)
+#define PRS_ASYNC_MODEMH_WEAK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK)
+#define PRS_ASYNC_MODEMH_EOF (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF)
+#define PRS_ASYNC_FRC_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK)
+#define PRS_ASYNC_FRC_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT)
+#define PRS_ASYNC_PROTIMERL_BOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF)
+#define PRS_ASYNC_PROTIMERL_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0)
+#define PRS_ASYNC_PROTIMERL_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1)
+#define PRS_ASYNC_PROTIMERL_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2)
+#define PRS_ASYNC_PROTIMERL_CC3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3)
+#define PRS_ASYNC_PROTIMERL_CC4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4)
+#define PRS_ASYNC_PROTIMERL_LBTF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF)
+#define PRS_ASYNC_PROTIMERL_LBTR (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR)
+#define PRS_ASYNC_PROTIMER_LBTS (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS)
+#define PRS_ASYNC_PROTIMER_POF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF)
+#define PRS_ASYNC_PROTIMER_T0MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH)
+#define PRS_ASYNC_PROTIMER_T0UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF)
+#define PRS_ASYNC_PROTIMER_T1MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH)
+#define PRS_ASYNC_PROTIMER_T1UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF)
+#define PRS_ASYNC_PROTIMER_WOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF)
+#define PRS_ASYNC_SYNTH_MUX0 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0)
+#define PRS_ASYNC_SYNTH_MUX1 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1)
+#define PRS_ASYNC_PRORTC_CCV0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC | PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0)
+#define PRS_ASYNC_PRORTC_CCV1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC | PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1)
+#define PRS_ASYNC_PRSL_ASYNCH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0)
+#define PRS_ASYNC_PRSL_ASYNCH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1)
+#define PRS_ASYNC_PRSL_ASYNCH2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2)
+#define PRS_ASYNC_PRSL_ASYNCH3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3)
+#define PRS_ASYNC_PRSL_ASYNCH4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4)
+#define PRS_ASYNC_PRSL_ASYNCH5 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5)
+#define PRS_ASYNC_PRSL_ASYNCH6 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6)
+#define PRS_ASYNC_PRSL_ASYNCH7 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7)
+#define PRS_ASYNC_PRS_ASYNCH8 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8)
+#define PRS_ASYNC_PRS_ASYNCH9 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9)
+#define PRS_ASYNC_PRS_ASYNCH10 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10)
+#define PRS_ASYNC_PRS_ASYNCH11 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11)
+#define PRS_ASYNC_PDML_PDMDSRPULSE (PRS_ASYNC_CH_CTRL_SOURCESEL_PDML | PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE)
+#define PRS_ASYNC_RACL_ACTIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE)
+#define PRS_ASYNC_RACL_LNAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN)
+#define PRS_ASYNC_RACL_PAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN)
+#define PRS_ASYNC_RACL_RX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX)
+#define PRS_ASYNC_RACL_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX)
+#define PRS_ASYNC_RACL_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0)
+#define PRS_ASYNC_RACL_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1)
+#define PRS_ASYNC_RACL_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2)
+#define PRS_ASYNC_RAC_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3)
+#define PRS_ASYNC_RAC_AUXADCDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA)
+#define PRS_ASYNC_RAC_AUXADCDATAVALID (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID)
+#define PRS_ASYNC_TIMER4_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_ASYNC_TIMER4_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_ASYNC_TIMER4_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_ASYNC_TIMER4_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_ASYNC_TIMER4_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+#define PRS_ASYNC_ETAMPDET_TAMPERSRCETAMPDET (PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET | PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET)
+#define PRS_ASYNC_ACMP0_OUT (PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 | PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT)
+#define PRS_ASYNC_EUSART0L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS)
+#define PRS_ASYNC_EUSART0L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX)
+#define PRS_ASYNC_EUSART0L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS)
+#define PRS_ASYNC_EUSART0L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV)
+#define PRS_ASYNC_EUSART0L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX)
+#define PRS_ASYNC_EUSART0L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC)
+#define PRS_ASYNC_EUSART0L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL)
+#define PRS_ASYNC_EUSART0L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL)
+#define PRS_ASYNC_DCDC_MONO70NSANA (PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC | PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA)
+#define PRS_ASYNC_EUSART1L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS)
+#define PRS_ASYNC_EUSART1L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX)
+#define PRS_ASYNC_EUSART1L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS)
+#define PRS_ASYNC_EUSART1L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV)
+#define PRS_ASYNC_EUSART1L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL)
+#define PRS_ASYNC_EUSART1L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX)
+#define PRS_ASYNC_EUSART1L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC)
+#define PRS_ASYNC_EUSART1L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL)
+#define PRS_ASYNC_LFRCO_CALMEAS (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS)
+#define PRS_ASYNC_LFRCO_SDM (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM)
+#define PRS_ASYNC_LFRCO_TCMEAS (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS)
+
+/**
+ * Asynchronous signals and sources combined and aligned with register bit fields
+ * without the '_ASYNCH_' infix in order for backward compatibility:
+ */
+#define PRS_USART0_CS (PRS_ASYNC_USART0_CS)
+#define PRS_USART0_IRTX (PRS_ASYNC_USART0_IRTX)
+#define PRS_USART0_RTS (PRS_ASYNC_USART0_RTS)
+#define PRS_USART0_RXDATA (PRS_ASYNC_USART0_RXDATA)
+#define PRS_USART0_TX (PRS_ASYNC_USART0_TX)
+#define PRS_USART0_TXC (PRS_ASYNC_USART0_TXC)
+#define PRS_USART1_CS (PRS_ASYNC_USART1_CS)
+#define PRS_USART1_IRTX (PRS_ASYNC_USART1_IRTX)
+#define PRS_USART1_RTS (PRS_ASYNC_USART1_RTS)
+#define PRS_USART1_RXDATA (PRS_ASYNC_USART1_RXDATA)
+#define PRS_USART1_TX (PRS_ASYNC_USART1_TX)
+#define PRS_USART1_TXC (PRS_ASYNC_USART1_TXC)
+#define PRS_TIMER0_UF (PRS_ASYNC_TIMER0_UF)
+#define PRS_TIMER0_OF (PRS_ASYNC_TIMER0_OF)
+#define PRS_TIMER0_CC0 (PRS_ASYNC_TIMER0_CC0)
+#define PRS_TIMER0_CC1 (PRS_ASYNC_TIMER0_CC1)
+#define PRS_TIMER0_CC2 (PRS_ASYNC_TIMER0_CC2)
+#define PRS_TIMER1_UF (PRS_ASYNC_TIMER1_UF)
+#define PRS_TIMER1_OF (PRS_ASYNC_TIMER1_OF)
+#define PRS_TIMER1_CC0 (PRS_ASYNC_TIMER1_CC0)
+#define PRS_TIMER1_CC1 (PRS_ASYNC_TIMER1_CC1)
+#define PRS_TIMER1_CC2 (PRS_ASYNC_TIMER1_CC2)
+#define PRS_IADC0_SCANENTRYDONE (PRS_ASYNC_IADC0_SCANENTRYDONE)
+#define PRS_IADC0_SCANTABLEDONE (PRS_ASYNC_IADC0_SCANTABLEDONE)
+#define PRS_IADC0_SINGLEDONE (PRS_ASYNC_IADC0_SINGLEDONE)
+#define PRS_LETIMER0_CH0 (PRS_ASYNC_LETIMER0_CH0)
+#define PRS_LETIMER0_CH1 (PRS_ASYNC_LETIMER0_CH1)
+#define PRS_RTCC_CCV0 (PRS_ASYNC_RTCC_CCV0)
+#define PRS_RTCC_CCV1 (PRS_ASYNC_RTCC_CCV1)
+#define PRS_RTCC_CCV2 (PRS_ASYNC_RTCC_CCV2)
+#define PRS_BURTC_COMP (PRS_ASYNC_BURTC_COMP)
+#define PRS_BURTC_OVERFLOW (PRS_ASYNC_BURTC_OVERFLOW)
+#define PRS_GPIO_PIN0 (PRS_ASYNC_GPIO_PIN0)
+#define PRS_GPIO_PIN1 (PRS_ASYNC_GPIO_PIN1)
+#define PRS_GPIO_PIN2 (PRS_ASYNC_GPIO_PIN2)
+#define PRS_GPIO_PIN3 (PRS_ASYNC_GPIO_PIN3)
+#define PRS_GPIO_PIN4 (PRS_ASYNC_GPIO_PIN4)
+#define PRS_GPIO_PIN5 (PRS_ASYNC_GPIO_PIN5)
+#define PRS_GPIO_PIN6 (PRS_ASYNC_GPIO_PIN6)
+#define PRS_GPIO_PIN7 (PRS_ASYNC_GPIO_PIN7)
+#define PRS_TIMER2_UF (PRS_ASYNC_TIMER2_UF)
+#define PRS_TIMER2_OF (PRS_ASYNC_TIMER2_OF)
+#define PRS_TIMER2_CC0 (PRS_ASYNC_TIMER2_CC0)
+#define PRS_TIMER2_CC1 (PRS_ASYNC_TIMER2_CC1)
+#define PRS_TIMER2_CC2 (PRS_ASYNC_TIMER2_CC2)
+#define PRS_TIMER3_UF (PRS_ASYNC_TIMER3_UF)
+#define PRS_TIMER3_OF (PRS_ASYNC_TIMER3_OF)
+#define PRS_TIMER3_CC0 (PRS_ASYNC_TIMER3_CC0)
+#define PRS_TIMER3_CC1 (PRS_ASYNC_TIMER3_CC1)
+#define PRS_TIMER3_CC2 (PRS_ASYNC_TIMER3_CC2)
+#define PRS_CORE_CTIOUT0 (PRS_ASYNC_CORE_CTIOUT0)
+#define PRS_CORE_CTIOUT1 (PRS_ASYNC_CORE_CTIOUT1)
+#define PRS_CORE_CTIOUT2 (PRS_ASYNC_CORE_CTIOUT2)
+#define PRS_CORE_CTIOUT3 (PRS_ASYNC_CORE_CTIOUT3)
+#define PRS_CMUL_CLKOUT0 (PRS_ASYNC_CMUL_CLKOUT0)
+#define PRS_CMUL_CLKOUT1 (PRS_ASYNC_CMUL_CLKOUT1)
+#define PRS_CMUL_CLKOUT2 (PRS_ASYNC_CMUL_CLKOUT2)
+#define PRS_AGCL_CCA (PRS_ASYNC_AGCL_CCA)
+#define PRS_AGCL_CCAREQ (PRS_ASYNC_AGCL_CCAREQ)
+#define PRS_AGCL_GAINADJUST (PRS_ASYNC_AGCL_GAINADJUST)
+#define PRS_AGCL_GAINOK (PRS_ASYNC_AGCL_GAINOK)
+#define PRS_AGCL_GAINREDUCED (PRS_ASYNC_AGCL_GAINREDUCED)
+#define PRS_AGCL_IFPKI1 (PRS_ASYNC_AGCL_IFPKI1)
+#define PRS_AGCL_IFPKQ2 (PRS_ASYNC_AGCL_IFPKQ2)
+#define PRS_AGCL_IFPKRST (PRS_ASYNC_AGCL_IFPKRST)
+#define PRS_AGC_PEAKDET (PRS_ASYNC_AGC_PEAKDET)
+#define PRS_AGC_PROPAGATED (PRS_ASYNC_AGC_PROPAGATED)
+#define PRS_AGC_RSSIDONE (PRS_ASYNC_AGC_RSSIDONE)
+#define PRS_BUFC_THR0 (PRS_ASYNC_BUFC_THR0)
+#define PRS_BUFC_THR1 (PRS_ASYNC_BUFC_THR1)
+#define PRS_BUFC_THR2 (PRS_ASYNC_BUFC_THR2)
+#define PRS_BUFC_THR3 (PRS_ASYNC_BUFC_THR3)
+#define PRS_BUFC_CNT0 (PRS_ASYNC_BUFC_CNT0)
+#define PRS_BUFC_CNT1 (PRS_ASYNC_BUFC_CNT1)
+#define PRS_BUFC_FULL (PRS_ASYNC_BUFC_FULL)
+#define PRS_MODEML_ADVANCE (PRS_ASYNC_MODEML_ADVANCE)
+#define PRS_MODEML_ANT0 (PRS_ASYNC_MODEML_ANT0)
+#define PRS_MODEML_ANT1 (PRS_ASYNC_MODEML_ANT1)
+#define PRS_MODEML_COHDSADET (PRS_ASYNC_MODEML_COHDSADET)
+#define PRS_MODEML_COHDSALIVE (PRS_ASYNC_MODEML_COHDSALIVE)
+#define PRS_MODEML_DCLK (PRS_ASYNC_MODEML_DCLK)
+#define PRS_MODEML_DOUT (PRS_ASYNC_MODEML_DOUT)
+#define PRS_MODEML_FRAMEDET (PRS_ASYNC_MODEML_FRAMEDET)
+#define PRS_MODEM_FRAMESENT (PRS_ASYNC_MODEM_FRAMESENT)
+#define PRS_MODEM_LOWCORR (PRS_ASYNC_MODEM_LOWCORR)
+#define PRS_MODEM_LRDSADET (PRS_ASYNC_MODEM_LRDSADET)
+#define PRS_MODEM_LRDSALIVE (PRS_ASYNC_MODEM_LRDSALIVE)
+#define PRS_MODEM_NEWSYMBOL (PRS_ASYNC_MODEM_NEWSYMBOL)
+#define PRS_MODEM_NEWWND (PRS_ASYNC_MODEM_NEWWND)
+#define PRS_MODEM_POSTPONE (PRS_ASYNC_MODEM_POSTPONE)
+#define PRS_MODEM_PREDET (PRS_ASYNC_MODEM_PREDET)
+#define PRS_MODEMH_PRESENT (PRS_ASYNC_MODEMH_PRESENT)
+#define PRS_MODEMH_RSSIJUMP (PRS_ASYNC_MODEMH_RSSIJUMP)
+#define PRS_MODEMH_SYNCSENT (PRS_ASYNC_MODEMH_SYNCSENT)
+#define PRS_MODEMH_TIMDET (PRS_ASYNC_MODEMH_TIMDET)
+#define PRS_MODEMH_WEAK (PRS_ASYNC_MODEMH_WEAK)
+#define PRS_MODEMH_EOF (PRS_ASYNC_MODEMH_EOF)
+#define PRS_FRC_DCLK (PRS_ASYNC_FRC_DCLK)
+#define PRS_FRC_DOUT (PRS_ASYNC_FRC_DOUT)
+#define PRS_PROTIMERL_BOF (PRS_ASYNC_PROTIMERL_BOF)
+#define PRS_PROTIMERL_CC0 (PRS_ASYNC_PROTIMERL_CC0)
+#define PRS_PROTIMERL_CC1 (PRS_ASYNC_PROTIMERL_CC1)
+#define PRS_PROTIMERL_CC2 (PRS_ASYNC_PROTIMERL_CC2)
+#define PRS_PROTIMERL_CC3 (PRS_ASYNC_PROTIMERL_CC3)
+#define PRS_PROTIMERL_CC4 (PRS_ASYNC_PROTIMERL_CC4)
+#define PRS_PROTIMERL_LBTF (PRS_ASYNC_PROTIMERL_LBTF)
+#define PRS_PROTIMERL_LBTR (PRS_ASYNC_PROTIMERL_LBTR)
+#define PRS_PROTIMER_LBTS (PRS_ASYNC_PROTIMER_LBTS)
+#define PRS_PROTIMER_POF (PRS_ASYNC_PROTIMER_POF)
+#define PRS_PROTIMER_T0MATCH (PRS_ASYNC_PROTIMER_T0MATCH)
+#define PRS_PROTIMER_T0UF (PRS_ASYNC_PROTIMER_T0UF)
+#define PRS_PROTIMER_T1MATCH (PRS_ASYNC_PROTIMER_T1MATCH)
+#define PRS_PROTIMER_T1UF (PRS_ASYNC_PROTIMER_T1UF)
+#define PRS_PROTIMER_WOF (PRS_ASYNC_PROTIMER_WOF)
+#define PRS_SYNTH_MUX0 (PRS_ASYNC_SYNTH_MUX0)
+#define PRS_SYNTH_MUX1 (PRS_ASYNC_SYNTH_MUX1)
+#define PRS_PRORTC_CCV0 (PRS_ASYNC_PRORTC_CCV0)
+#define PRS_PRORTC_CCV1 (PRS_ASYNC_PRORTC_CCV1)
+#define PRS_PRSL_ASYNCH0 (PRS_ASYNC_PRSL_ASYNCH0)
+#define PRS_PRSL_ASYNCH1 (PRS_ASYNC_PRSL_ASYNCH1)
+#define PRS_PRSL_ASYNCH2 (PRS_ASYNC_PRSL_ASYNCH2)
+#define PRS_PRSL_ASYNCH3 (PRS_ASYNC_PRSL_ASYNCH3)
+#define PRS_PRSL_ASYNCH4 (PRS_ASYNC_PRSL_ASYNCH4)
+#define PRS_PRSL_ASYNCH5 (PRS_ASYNC_PRSL_ASYNCH5)
+#define PRS_PRSL_ASYNCH6 (PRS_ASYNC_PRSL_ASYNCH6)
+#define PRS_PRSL_ASYNCH7 (PRS_ASYNC_PRSL_ASYNCH7)
+#define PRS_PRS_ASYNCH8 (PRS_ASYNC_PRS_ASYNCH8)
+#define PRS_PRS_ASYNCH9 (PRS_ASYNC_PRS_ASYNCH9)
+#define PRS_PRS_ASYNCH10 (PRS_ASYNC_PRS_ASYNCH10)
+#define PRS_PRS_ASYNCH11 (PRS_ASYNC_PRS_ASYNCH11)
+#define PRS_PDML_PDMDSRPULSE (PRS_ASYNC_PDML_PDMDSRPULSE)
+#define PRS_RACL_ACTIVE (PRS_ASYNC_RACL_ACTIVE)
+#define PRS_RACL_LNAEN (PRS_ASYNC_RACL_LNAEN)
+#define PRS_RACL_PAEN (PRS_ASYNC_RACL_PAEN)
+#define PRS_RACL_RX (PRS_ASYNC_RACL_RX)
+#define PRS_RACL_TX (PRS_ASYNC_RACL_TX)
+#define PRS_RACL_CTIOUT0 (PRS_ASYNC_RACL_CTIOUT0)
+#define PRS_RACL_CTIOUT1 (PRS_ASYNC_RACL_CTIOUT1)
+#define PRS_RACL_CTIOUT2 (PRS_ASYNC_RACL_CTIOUT2)
+#define PRS_RAC_CTIOUT3 (PRS_ASYNC_RAC_CTIOUT3)
+#define PRS_RAC_AUXADCDATA (PRS_ASYNC_RAC_AUXADCDATA)
+#define PRS_RAC_AUXADCDATAVALID (PRS_ASYNC_RAC_AUXADCDATAVALID)
+#define PRS_TIMER4_UF (PRS_ASYNC_TIMER4_UF)
+#define PRS_TIMER4_OF (PRS_ASYNC_TIMER4_OF)
+#define PRS_TIMER4_CC0 (PRS_ASYNC_TIMER4_CC0)
+#define PRS_TIMER4_CC1 (PRS_ASYNC_TIMER4_CC1)
+#define PRS_TIMER4_CC2 (PRS_ASYNC_TIMER4_CC2)
+#define PRS_ETAMPDET_TAMPERSRCETAMPDET (PRS_ASYNC_ETAMPDET_TAMPERSRCETAMPDET)
+#define PRS_ACMP0_OUT (PRS_ASYNC_ACMP0_OUT)
+#define PRS_EUSART0L_CS (PRS_ASYNC_EUSART0L_CS)
+#define PRS_EUSART0L_IRDATX (PRS_ASYNC_EUSART0L_IRDATX)
+#define PRS_EUSART0L_RTS (PRS_ASYNC_EUSART0L_RTS)
+#define PRS_EUSART0L_RXDATAV (PRS_ASYNC_EUSART0L_RXDATAV)
+#define PRS_EUSART0L_TX (PRS_ASYNC_EUSART0L_TX)
+#define PRS_EUSART0L_TXC (PRS_ASYNC_EUSART0L_TXC)
+#define PRS_EUSART0L_RXFL (PRS_ASYNC_EUSART0L_RXFL)
+#define PRS_EUSART0L_TXFL (PRS_ASYNC_EUSART0L_TXFL)
+#define PRS_DCDC_MONO70NSANA (PRS_ASYNC_DCDC_MONO70NSANA)
+#define PRS_EUSART1L_CS (PRS_ASYNC_EUSART1L_CS)
+#define PRS_EUSART1L_IRDATX (PRS_ASYNC_EUSART1L_IRDATX)
+#define PRS_EUSART1L_RTS (PRS_ASYNC_EUSART1L_RTS)
+#define PRS_EUSART1L_RXDATAV (PRS_ASYNC_EUSART1L_RXDATAV)
+#define PRS_EUSART1L_RXFL (PRS_ASYNC_EUSART1L_RXFL)
+#define PRS_EUSART1L_TX (PRS_ASYNC_EUSART1L_TX)
+#define PRS_EUSART1L_TXC (PRS_ASYNC_EUSART1L_TXC)
+#define PRS_EUSART1L_TXFL (PRS_ASYNC_EUSART1L_TXFL)
+#define PRS_LFRCO_CALMEAS (PRS_ASYNC_LFRCO_CALMEAS)
+#define PRS_LFRCO_SDM (PRS_ASYNC_LFRCO_SDM)
+#define PRS_LFRCO_TCMEAS (PRS_ASYNC_LFRCO_TCMEAS)
+
+#endif // EFR32BG29_PRS_SIGNALS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_rtcc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_rtcc.h
new file mode 100644
index 000000000..bf37da4eb
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_rtcc.h
@@ -0,0 +1,422 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 RTCC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_RTCC_H
+#define EFR32BG29_RTCC_H
+#define RTCC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_RTCC RTCC
+ * @{
+ * @brief EFR32BG29 RTCC Register Declaration.
+ *****************************************************************************/
+
+/** RTCC CC Register Group Declaration. */
+typedef struct rtcc_cc_typedef{
+ __IOM uint32_t CTRL; /**< CC Channel Control Register */
+ __IOM uint32_t OCVALUE; /**< Output Compare Value Register */
+ __IM uint32_t ICVALUE; /**< Input Capture Value Register */
+} RTCC_CC_TypeDef;
+
+/** RTCC Register Declaration. */
+typedef struct rtcc_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status register */
+ __IOM uint32_t IF; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IM uint32_t COMBCNT; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED0[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status register */
+ __IOM uint32_t IF_SET; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_SET; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_SET; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_SET[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED1[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status register */
+ __IOM uint32_t IF_CLR; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_CLR; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_CLR; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_CLR[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED2[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status register */
+ __IOM uint32_t IF_TGL; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_TGL; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_TGL; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_TGL[3U]; /**< Capture/Compare Channel */
+} RTCC_TypeDef;
+/** @} End of group EFR32BG29_RTCC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_RTCC
+ * @{
+ * @defgroup EFR32BG29_RTCC_BitFields RTCC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for RTCC IPVERSION */
+#define _RTCC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for RTCC_IPVERSION */
+#define RTCC_IPVERSION_IPVERSION_DEFAULT (_RTCC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IPVERSION */
+
+/* Bit fields for RTCC EN */
+#define _RTCC_EN_RESETVALUE 0x00000000UL /**< Default value for RTCC_EN */
+#define _RTCC_EN_MASK 0x00000001UL /**< Mask for RTCC_EN */
+#define RTCC_EN_EN (0x1UL << 0) /**< RTCC Enable */
+#define _RTCC_EN_EN_SHIFT 0 /**< Shift value for RTCC_EN */
+#define _RTCC_EN_EN_MASK 0x1UL /**< Bit mask for RTCC_EN */
+#define _RTCC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_EN */
+#define RTCC_EN_EN_DEFAULT (_RTCC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_EN */
+
+/* Bit fields for RTCC CFG */
+#define _RTCC_CFG_RESETVALUE 0x00000000UL /**< Default value for RTCC_CFG */
+#define _RTCC_CFG_MASK 0x000000FFUL /**< Mask for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _RTCC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for RTCC_DEBUGRUN */
+#define _RTCC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for RTCC_DEBUGRUN */
+#define _RTCC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_DEBUGRUN_X0 0x00000000UL /**< Mode X0 for RTCC_CFG */
+#define _RTCC_CFG_DEBUGRUN_X1 0x00000001UL /**< Mode X1 for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_DEFAULT (_RTCC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_X0 (_RTCC_CFG_DEBUGRUN_X0 << 0) /**< Shifted mode X0 for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_X1 (_RTCC_CFG_DEBUGRUN_X1 << 0) /**< Shifted mode X1 for RTCC_CFG */
+#define RTCC_CFG_PRECNTCCV0TOP (0x1UL << 1) /**< Pre-counter CCV0 top value enable. */
+#define _RTCC_CFG_PRECNTCCV0TOP_SHIFT 1 /**< Shift value for RTCC_PRECNTCCV0TOP */
+#define _RTCC_CFG_PRECNTCCV0TOP_MASK 0x2UL /**< Bit mask for RTCC_PRECNTCCV0TOP */
+#define _RTCC_CFG_PRECNTCCV0TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_PRECNTCCV0TOP_DEFAULT (_RTCC_CFG_PRECNTCCV0TOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTCCV1TOP (0x1UL << 2) /**< CCV1 top value enable */
+#define _RTCC_CFG_CNTCCV1TOP_SHIFT 2 /**< Shift value for RTCC_CNTCCV1TOP */
+#define _RTCC_CFG_CNTCCV1TOP_MASK 0x4UL /**< Bit mask for RTCC_CNTCCV1TOP */
+#define _RTCC_CFG_CNTCCV1TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTCCV1TOP_DEFAULT (_RTCC_CFG_CNTCCV1TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTTICK (0x1UL << 3) /**< Counter prescaler mode. */
+#define _RTCC_CFG_CNTTICK_SHIFT 3 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_CFG_CNTTICK_MASK 0x8UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_CFG_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_CNTTICK_PRESC 0x00000000UL /**< Mode PRESC for RTCC_CFG */
+#define _RTCC_CFG_CNTTICK_CCV0MATCH 0x00000001UL /**< Mode CCV0MATCH for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_DEFAULT (_RTCC_CFG_CNTTICK_DEFAULT << 3) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_PRESC (_RTCC_CFG_CNTTICK_PRESC << 3) /**< Shifted mode PRESC for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_CCV0MATCH (_RTCC_CFG_CNTTICK_CCV0MATCH << 3) /**< Shifted mode CCV0MATCH for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_SHIFT 4 /**< Shift value for RTCC_CNTPRESC */
+#define _RTCC_CFG_CNTPRESC_MASK 0xF0UL /**< Bit mask for RTCC_CNTPRESC */
+#define _RTCC_CFG_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV512 0x00000009UL /**< Mode DIV512 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV1024 0x0000000AUL /**< Mode DIV1024 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV2048 0x0000000BUL /**< Mode DIV2048 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV4096 0x0000000CUL /**< Mode DIV4096 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV8192 0x0000000DUL /**< Mode DIV8192 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV16384 0x0000000EUL /**< Mode DIV16384 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV32768 0x0000000FUL /**< Mode DIV32768 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DEFAULT (_RTCC_CFG_CNTPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV1 (_RTCC_CFG_CNTPRESC_DIV1 << 4) /**< Shifted mode DIV1 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV2 (_RTCC_CFG_CNTPRESC_DIV2 << 4) /**< Shifted mode DIV2 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV4 (_RTCC_CFG_CNTPRESC_DIV4 << 4) /**< Shifted mode DIV4 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV8 (_RTCC_CFG_CNTPRESC_DIV8 << 4) /**< Shifted mode DIV8 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV16 (_RTCC_CFG_CNTPRESC_DIV16 << 4) /**< Shifted mode DIV16 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV32 (_RTCC_CFG_CNTPRESC_DIV32 << 4) /**< Shifted mode DIV32 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV64 (_RTCC_CFG_CNTPRESC_DIV64 << 4) /**< Shifted mode DIV64 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV128 (_RTCC_CFG_CNTPRESC_DIV128 << 4) /**< Shifted mode DIV128 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV256 (_RTCC_CFG_CNTPRESC_DIV256 << 4) /**< Shifted mode DIV256 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV512 (_RTCC_CFG_CNTPRESC_DIV512 << 4) /**< Shifted mode DIV512 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV1024 (_RTCC_CFG_CNTPRESC_DIV1024 << 4) /**< Shifted mode DIV1024 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV2048 (_RTCC_CFG_CNTPRESC_DIV2048 << 4) /**< Shifted mode DIV2048 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV4096 (_RTCC_CFG_CNTPRESC_DIV4096 << 4) /**< Shifted mode DIV4096 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV8192 (_RTCC_CFG_CNTPRESC_DIV8192 << 4) /**< Shifted mode DIV8192 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV16384 (_RTCC_CFG_CNTPRESC_DIV16384 << 4) /**< Shifted mode DIV16384 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV32768 (_RTCC_CFG_CNTPRESC_DIV32768 << 4) /**< Shifted mode DIV32768 for RTCC_CFG */
+
+/* Bit fields for RTCC CMD */
+#define _RTCC_CMD_RESETVALUE 0x00000000UL /**< Default value for RTCC_CMD */
+#define _RTCC_CMD_MASK 0x00000003UL /**< Mask for RTCC_CMD */
+#define RTCC_CMD_START (0x1UL << 0) /**< Start RTCC main counter */
+#define _RTCC_CMD_START_SHIFT 0 /**< Shift value for RTCC_START */
+#define _RTCC_CMD_START_MASK 0x1UL /**< Bit mask for RTCC_START */
+#define _RTCC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_START_DEFAULT (_RTCC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_STOP (0x1UL << 1) /**< Stop RTCC main counter */
+#define _RTCC_CMD_STOP_SHIFT 1 /**< Shift value for RTCC_STOP */
+#define _RTCC_CMD_STOP_MASK 0x2UL /**< Bit mask for RTCC_STOP */
+#define _RTCC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_STOP_DEFAULT (_RTCC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_CMD */
+
+/* Bit fields for RTCC STATUS */
+#define _RTCC_STATUS_RESETVALUE 0x00000000UL /**< Default value for RTCC_STATUS */
+#define _RTCC_STATUS_MASK 0x00000003UL /**< Mask for RTCC_STATUS */
+#define RTCC_STATUS_RUNNING (0x1UL << 0) /**< RTCC running status */
+#define _RTCC_STATUS_RUNNING_SHIFT 0 /**< Shift value for RTCC_RUNNING */
+#define _RTCC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for RTCC_RUNNING */
+#define _RTCC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RUNNING_DEFAULT (_RTCC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS (0x1UL << 1) /**< Lock Status */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_SHIFT 1 /**< Shift value for RTCC_RTCCLOCKSTATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_MASK 0x2UL /**< Bit mask for RTCC_RTCCLOCKSTATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_STATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for RTCC_STATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT (_RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED (_RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED << 1) /**< Shifted mode UNLOCKED for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_LOCKED (_RTCC_STATUS_RTCCLOCKSTATUS_LOCKED << 1) /**< Shifted mode LOCKED for RTCC_STATUS */
+
+/* Bit fields for RTCC IF */
+#define _RTCC_IF_RESETVALUE 0x00000000UL /**< Default value for RTCC_IF */
+#define _RTCC_IF_MASK 0x000003FFUL /**< Mask for RTCC_IF */
+#define RTCC_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _RTCC_IF_OF_SHIFT 0 /**< Shift value for RTCC_OF */
+#define _RTCC_IF_OF_MASK 0x1UL /**< Bit mask for RTCC_OF */
+#define _RTCC_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_OF_DEFAULT (_RTCC_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CNTTICK (0x1UL << 1) /**< Main counter tick */
+#define _RTCC_IF_CNTTICK_SHIFT 1 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_IF_CNTTICK_MASK 0x2UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_IF_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CNTTICK_DEFAULT (_RTCC_IF_CNTTICK_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC0 (0x1UL << 4) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC0_SHIFT 4 /**< Shift value for RTCC_CC0 */
+#define _RTCC_IF_CC0_MASK 0x10UL /**< Bit mask for RTCC_CC0 */
+#define _RTCC_IF_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC0_DEFAULT (_RTCC_IF_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC1 (0x1UL << 6) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC1_SHIFT 6 /**< Shift value for RTCC_CC1 */
+#define _RTCC_IF_CC1_MASK 0x40UL /**< Bit mask for RTCC_CC1 */
+#define _RTCC_IF_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC1_DEFAULT (_RTCC_IF_CC1_DEFAULT << 6) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC2 (0x1UL << 8) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC2_SHIFT 8 /**< Shift value for RTCC_CC2 */
+#define _RTCC_IF_CC2_MASK 0x100UL /**< Bit mask for RTCC_CC2 */
+#define _RTCC_IF_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC2_DEFAULT (_RTCC_IF_CC2_DEFAULT << 8) /**< Shifted mode DEFAULT for RTCC_IF */
+
+/* Bit fields for RTCC IEN */
+#define _RTCC_IEN_RESETVALUE 0x00000000UL /**< Default value for RTCC_IEN */
+#define _RTCC_IEN_MASK 0x000003FFUL /**< Mask for RTCC_IEN */
+#define RTCC_IEN_OF (0x1UL << 0) /**< OF Interrupt Enable */
+#define _RTCC_IEN_OF_SHIFT 0 /**< Shift value for RTCC_OF */
+#define _RTCC_IEN_OF_MASK 0x1UL /**< Bit mask for RTCC_OF */
+#define _RTCC_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_OF_DEFAULT (_RTCC_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CNTTICK (0x1UL << 1) /**< CNTTICK Interrupt Enable */
+#define _RTCC_IEN_CNTTICK_SHIFT 1 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_IEN_CNTTICK_MASK 0x2UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_IEN_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CNTTICK_DEFAULT (_RTCC_IEN_CNTTICK_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC0 (0x1UL << 4) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC0_SHIFT 4 /**< Shift value for RTCC_CC0 */
+#define _RTCC_IEN_CC0_MASK 0x10UL /**< Bit mask for RTCC_CC0 */
+#define _RTCC_IEN_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC0_DEFAULT (_RTCC_IEN_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC1 (0x1UL << 6) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC1_SHIFT 6 /**< Shift value for RTCC_CC1 */
+#define _RTCC_IEN_CC1_MASK 0x40UL /**< Bit mask for RTCC_CC1 */
+#define _RTCC_IEN_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC1_DEFAULT (_RTCC_IEN_CC1_DEFAULT << 6) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC2 (0x1UL << 8) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC2_SHIFT 8 /**< Shift value for RTCC_CC2 */
+#define _RTCC_IEN_CC2_MASK 0x100UL /**< Bit mask for RTCC_CC2 */
+#define _RTCC_IEN_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC2_DEFAULT (_RTCC_IEN_CC2_DEFAULT << 8) /**< Shifted mode DEFAULT for RTCC_IEN */
+
+/* Bit fields for RTCC PRECNT */
+#define _RTCC_PRECNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_PRECNT */
+#define _RTCC_PRECNT_MASK 0x00007FFFUL /**< Mask for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_SHIFT 0 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_PRECNT */
+#define RTCC_PRECNT_PRECNT_DEFAULT (_RTCC_PRECNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_PRECNT */
+
+/* Bit fields for RTCC CNT */
+#define _RTCC_CNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_CNT */
+#define _RTCC_CNT_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CNT */
+#define _RTCC_CNT_CNT_SHIFT 0 /**< Shift value for RTCC_CNT */
+#define _RTCC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_CNT */
+#define _RTCC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CNT */
+#define RTCC_CNT_CNT_DEFAULT (_RTCC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CNT */
+
+/* Bit fields for RTCC COMBCNT */
+#define _RTCC_COMBCNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_MASK 0xFFFFFFFFUL /**< Mask for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_PRECNT_SHIFT 0 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_COMBCNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_COMBCNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_COMBCNT */
+#define RTCC_COMBCNT_PRECNT_DEFAULT (_RTCC_COMBCNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_CNTLSB_SHIFT 15 /**< Shift value for RTCC_CNTLSB */
+#define _RTCC_COMBCNT_CNTLSB_MASK 0xFFFF8000UL /**< Bit mask for RTCC_CNTLSB */
+#define _RTCC_COMBCNT_CNTLSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_COMBCNT */
+#define RTCC_COMBCNT_CNTLSB_DEFAULT (_RTCC_COMBCNT_CNTLSB_DEFAULT << 15) /**< Shifted mode DEFAULT for RTCC_COMBCNT */
+
+/* Bit fields for RTCC SYNCBUSY */
+#define _RTCC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for RTCC_SYNCBUSY */
+#define _RTCC_SYNCBUSY_MASK 0x0000000FUL /**< Mask for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START */
+#define _RTCC_SYNCBUSY_START_SHIFT 0 /**< Shift value for RTCC_START */
+#define _RTCC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for RTCC_START */
+#define _RTCC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_START_DEFAULT (_RTCC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP */
+#define _RTCC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for RTCC_STOP */
+#define _RTCC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for RTCC_STOP */
+#define _RTCC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_STOP_DEFAULT (_RTCC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_PRECNT (0x1UL << 2) /**< Sync busy for PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_SHIFT 2 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_MASK 0x4UL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_PRECNT_DEFAULT (_RTCC_SYNCBUSY_PRECNT_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_CNT (0x1UL << 3) /**< Sync busy for CNT */
+#define _RTCC_SYNCBUSY_CNT_SHIFT 3 /**< Shift value for RTCC_CNT */
+#define _RTCC_SYNCBUSY_CNT_MASK 0x8UL /**< Bit mask for RTCC_CNT */
+#define _RTCC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_CNT_DEFAULT (_RTCC_SYNCBUSY_CNT_DEFAULT << 3) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+
+/* Bit fields for RTCC LOCK */
+#define _RTCC_LOCK_RESETVALUE 0x00000000UL /**< Default value for RTCC_LOCK */
+#define _RTCC_LOCK_MASK 0x0000FFFFUL /**< Mask for RTCC_LOCK */
+#define _RTCC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for RTCC_LOCKKEY */
+#define _RTCC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for RTCC_LOCKKEY */
+#define _RTCC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_LOCK */
+#define _RTCC_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for RTCC_LOCK */
+#define RTCC_LOCK_LOCKKEY_DEFAULT (_RTCC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_LOCK */
+#define RTCC_LOCK_LOCKKEY_UNLOCK (_RTCC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for RTCC_LOCK */
+
+/* Bit fields for RTCC CC_CTRL */
+#define _RTCC_CC_CTRL_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MASK 0x000000FFUL /**< Mask for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_SHIFT 0 /**< Shift value for RTCC_MODE */
+#define _RTCC_CC_CTRL_MODE_MASK 0x3UL /**< Bit mask for RTCC_MODE */
+#define _RTCC_CC_CTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_OFF 0x00000000UL /**< Mode OFF for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_INPUTCAPTURE 0x00000001UL /**< Mode INPUTCAPTURE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_OUTPUTCOMPARE 0x00000002UL /**< Mode OUTPUTCOMPARE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_DEFAULT (_RTCC_CC_CTRL_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_OFF (_RTCC_CC_CTRL_MODE_OFF << 0) /**< Shifted mode OFF for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_INPUTCAPTURE (_RTCC_CC_CTRL_MODE_INPUTCAPTURE << 0) /**< Shifted mode INPUTCAPTURE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_OUTPUTCOMPARE (_RTCC_CC_CTRL_MODE_OUTPUTCOMPARE << 0) /**< Shifted mode OUTPUTCOMPARE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_SHIFT 2 /**< Shift value for RTCC_CMOA */
+#define _RTCC_CC_CTRL_CMOA_MASK 0xCUL /**< Bit mask for RTCC_CMOA */
+#define _RTCC_CC_CTRL_CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_PULSE 0x00000000UL /**< Mode PULSE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_CLEAR 0x00000002UL /**< Mode CLEAR for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_SET 0x00000003UL /**< Mode SET for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_DEFAULT (_RTCC_CC_CTRL_CMOA_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_PULSE (_RTCC_CC_CTRL_CMOA_PULSE << 2) /**< Shifted mode PULSE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_TOGGLE (_RTCC_CC_CTRL_CMOA_TOGGLE << 2) /**< Shifted mode TOGGLE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_CLEAR (_RTCC_CC_CTRL_CMOA_CLEAR << 2) /**< Shifted mode CLEAR for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_SET (_RTCC_CC_CTRL_CMOA_SET << 2) /**< Shifted mode SET for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE (0x1UL << 4) /**< Capture compare channel comparison base. */
+#define _RTCC_CC_CTRL_COMPBASE_SHIFT 4 /**< Shift value for RTCC_COMPBASE */
+#define _RTCC_CC_CTRL_COMPBASE_MASK 0x10UL /**< Bit mask for RTCC_COMPBASE */
+#define _RTCC_CC_CTRL_COMPBASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_COMPBASE_CNT 0x00000000UL /**< Mode CNT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_COMPBASE_PRECNT 0x00000001UL /**< Mode PRECNT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_DEFAULT (_RTCC_CC_CTRL_COMPBASE_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_CNT (_RTCC_CC_CTRL_COMPBASE_CNT << 4) /**< Shifted mode CNT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_PRECNT (_RTCC_CC_CTRL_COMPBASE_PRECNT << 4) /**< Shifted mode PRECNT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_SHIFT 5 /**< Shift value for RTCC_ICEDGE */
+#define _RTCC_CC_CTRL_ICEDGE_MASK 0x60UL /**< Bit mask for RTCC_ICEDGE */
+#define _RTCC_CC_CTRL_ICEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_RISING 0x00000000UL /**< Mode RISING for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_FALLING 0x00000001UL /**< Mode FALLING for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_BOTH 0x00000002UL /**< Mode BOTH for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_NONE 0x00000003UL /**< Mode NONE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_DEFAULT (_RTCC_CC_CTRL_ICEDGE_DEFAULT << 5) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_RISING (_RTCC_CC_CTRL_ICEDGE_RISING << 5) /**< Shifted mode RISING for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_FALLING (_RTCC_CC_CTRL_ICEDGE_FALLING << 5) /**< Shifted mode FALLING for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_BOTH (_RTCC_CC_CTRL_ICEDGE_BOTH << 5) /**< Shifted mode BOTH for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_NONE (_RTCC_CC_CTRL_ICEDGE_NONE << 5) /**< Shifted mode NONE for RTCC_CC_CTRL */
+
+/* Bit fields for RTCC CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_OC_SHIFT 0 /**< Shift value for RTCC_OC */
+#define _RTCC_CC_OCVALUE_OC_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_OC */
+#define _RTCC_CC_OCVALUE_OC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_OCVALUE */
+#define RTCC_CC_OCVALUE_OC_DEFAULT (_RTCC_CC_OCVALUE_OC_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_OCVALUE */
+
+/* Bit fields for RTCC CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_IC_SHIFT 0 /**< Shift value for RTCC_IC */
+#define _RTCC_CC_ICVALUE_IC_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_IC */
+#define _RTCC_CC_ICVALUE_IC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_ICVALUE */
+#define RTCC_CC_ICVALUE_IC_DEFAULT (_RTCC_CC_ICVALUE_IC_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_ICVALUE */
+
+/** @} End of group EFR32BG29_RTCC_BitFields */
+/** @} End of group EFR32BG29_RTCC */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_RTCC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_semailbox.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_semailbox.h
new file mode 100644
index 000000000..008ecd0b5
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_semailbox.h
@@ -0,0 +1,383 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 SEMAILBOX register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_SEMAILBOX_H
+#define EFR32BG29_SEMAILBOX_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SEMAILBOX_HOST SEMAILBOX_HOST
+ * @{
+ * @brief EFR32BG29 SEMAILBOX_HOST Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_HOST Register Declaration. */
+typedef struct semailbox_host_typedef{
+ __IOM uint32_t FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t TX_STATUS; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t RX_STATUS; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t TX_PROT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t RX_PROT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t TX_HEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t RX_HEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t CONFIGURATION; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_HOST_TypeDef;
+/** @} End of group EFR32BG29_SEMAILBOX_HOST */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SEMAILBOX_HOST
+ * @{
+ * @defgroup EFR32BG29_SEMAILBOX_HOST_BitFields SEMAILBOX_HOST Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX FIFO */
+#define _SEMAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_FIFO */
+#define SEMAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_FIFO */
+
+/* Bit fields for SEMAILBOX TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define _SEMAILBOX_TX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXINT_DEFAULT (_SEMAILBOX_TX_STATUS_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXFULL_DEFAULT (_SEMAILBOX_TX_STATUS_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXERROR_DEFAULT (_SEMAILBOX_TX_STATUS_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+
+/* Bit fields for SEMAILBOX RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define _SEMAILBOX_RX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXINT_DEFAULT (_SEMAILBOX_RX_STATUS_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT (_SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXHDR_DEFAULT (_SEMAILBOX_RX_STATUS_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXERROR_DEFAULT (_SEMAILBOX_RX_STATUS_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+
+/* Bit fields for SEMAILBOX TX_PROT */
+#define _SEMAILBOX_TX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_TX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_USER_DEFAULT (_SEMAILBOX_TX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+
+/* Bit fields for SEMAILBOX RX_PROT */
+#define _SEMAILBOX_RX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_RX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_USER_DEFAULT (_SEMAILBOX_RX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+
+/* Bit fields for SEMAILBOX TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_HEADER */
+#define SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT (_SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_HEADER*/
+
+/* Bit fields for SEMAILBOX RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_HEADER */
+#define SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT (_SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_HEADER*/
+
+/* Bit fields for SEMAILBOX CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_MASK 0x00000003UL /**< Mask for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+#define SEMAILBOX_CONFIGURATION_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+
+/** @} End of group EFR32BG29_SEMAILBOX_HOST_BitFields */
+/** @} End of group EFR32BG29_SEMAILBOX_HOST */
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SEMAILBOX_APBSE SEMAILBOX_APBSE
+ * @{
+ * @brief EFR32BG29 SEMAILBOX_APBSE Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_APBSE Register Declaration. */
+typedef struct semailbox_apbse_typedef{
+ __IOM uint32_t SE_ESECURE_MAILBOX_FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXSTAT; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXSTAT; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXPROTECT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXPROTECT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t SE_ESECURE_MAILBOX_TXHEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXHEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t SE_ESECURE_MAILBOX_CONFIG; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_APBSE_TypeDef;
+/** @} End of group EFR32BG29_SEMAILBOX_APBSE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SEMAILBOX_APBSE
+ * @{
+ * @defgroup EFR32BG29_SEMAILBOX_APBSE_BitFields SEMAILBOX_APBSE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_CONFIG */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_MASK 0x00000003UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+
+/** @} End of group EFR32BG29_SEMAILBOX_APBSE_BitFields */
+/** @} End of group EFR32BG29_SEMAILBOX_APBSE */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_SEMAILBOX_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_smu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_smu.h
new file mode 100644
index 000000000..b90220571
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_smu.h
@@ -0,0 +1,1358 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 SMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_SMU_H
+#define EFR32BG29_SMU_H
+#define SMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SMU SMU
+ * @{
+ * @brief EFR32BG29 SMU Register Declaration.
+ *****************************************************************************/
+
+/** SMU Register Declaration. */
+typedef struct smu_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t LOCK; /**< Lock */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL; /**< M33 Control */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1; /**< PPU Secure Access 1 */
+ uint32_t RESERVED3[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS; /**< PPU Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED6[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR; /**< BMPU Fault Status Address */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1; /**< ESAU Region Types 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED9[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED10[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t LOCK_SET; /**< Lock */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_SET; /**< M33 Control */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_SET; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_SET; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED13[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_SET; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_SET; /**< PPU Secure Access 1 */
+ uint32_t RESERVED14[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_SET; /**< PPU Fault Status */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_SET; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED16[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_SET; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED17[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_SET; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_SET; /**< BMPU Fault Status Address */
+ uint32_t RESERVED18[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_SET; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_SET; /**< ESAU Region Types 1 */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_SET; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_SET; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_SET; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_SET; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED21[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t LOCK_CLR; /**< Lock */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_CLR; /**< M33 Control */
+ uint32_t RESERVED23[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_CLR; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_CLR; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED24[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_CLR; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_CLR; /**< PPU Secure Access 1 */
+ uint32_t RESERVED25[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_CLR; /**< PPU Fault Status */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_CLR; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED27[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_CLR; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED28[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_CLR; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_CLR; /**< BMPU Fault Status Address */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_CLR; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_CLR; /**< ESAU Region Types 1 */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_CLR; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_CLR; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED31[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_CLR; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_CLR; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED32[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t LOCK_TGL; /**< Lock */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_TGL; /**< M33 Control */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_TGL; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_TGL; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED35[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_TGL; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_TGL; /**< PPU Secure Access 1 */
+ uint32_t RESERVED36[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_TGL; /**< PPU Fault Status */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_TGL; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED38[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_TGL; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED39[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_TGL; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_TGL; /**< BMPU Fault Status Address */
+ uint32_t RESERVED40[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_TGL; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_TGL; /**< ESAU Region Types 1 */
+ uint32_t RESERVED41[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_TGL; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_TGL; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_TGL; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_TGL; /**< ESAU Movable Region Boundary 5-6 */
+} SMU_TypeDef;
+/** @} End of group EFR32BG29_SMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SMU
+ * @{
+ * @defgroup EFR32BG29_SMU_BitFields SMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU IPVERSION */
+#define _SMU_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for SMU_IPVERSION */
+#define _SMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for SMU_IPVERSION */
+#define SMU_IPVERSION_IPVERSION_DEFAULT (_SMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IPVERSION */
+
+/* Bit fields for SMU STATUS */
+#define _SMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_STATUS */
+#define _SMU_STATUS_MASK 0x00000003UL /**< Mask for SMU_STATUS */
+#define SMU_STATUS_SMULOCK (0x1UL << 0) /**< SMU Lock */
+#define _SMU_STATUS_SMULOCK_SHIFT 0 /**< Shift value for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_MASK 0x1UL /**< Bit mask for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_DEFAULT (_SMU_STATUS_SMULOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_UNLOCKED (_SMU_STATUS_SMULOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_LOCKED (_SMU_STATUS_SMULOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR (0x1UL << 1) /**< SMU Programming Error */
+#define _SMU_STATUS_SMUPRGERR_SHIFT 1 /**< Shift value for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_MASK 0x2UL /**< Bit mask for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR_DEFAULT (_SMU_STATUS_SMUPRGERR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_STATUS */
+
+/* Bit fields for SMU LOCK */
+#define _SMU_LOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_LOCK */
+#define _SMU_LOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_SHIFT 0 /**< Shift value for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_DEFAULT (_SMU_LOCK_SMULOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_UNLOCK (_SMU_LOCK_SMULOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_LOCK */
+
+/* Bit fields for SMU IF */
+#define _SMU_IF_RESETVALUE 0x00000000UL /**< Default value for SMU_IF */
+#define _SMU_IF_MASK 0x00030005UL /**< Mask for SMU_IF */
+#define SMU_IF_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Flag */
+#define _SMU_IF_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUPRIV_DEFAULT (_SMU_IF_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Flag */
+#define _SMU_IF_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IF_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IF_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST_DEFAULT (_SMU_IF_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Flag */
+#define _SMU_IF_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC_DEFAULT (_SMU_IF_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Flag */
+#define _SMU_IF_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC_DEFAULT (_SMU_IF_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IF */
+
+/* Bit fields for SMU IEN */
+#define _SMU_IEN_RESETVALUE 0x00000000UL /**< Default value for SMU_IEN */
+#define _SMU_IEN_MASK 0x00030005UL /**< Mask for SMU_IEN */
+#define SMU_IEN_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Enable */
+#define _SMU_IEN_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUPRIV_DEFAULT (_SMU_IEN_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Enable */
+#define _SMU_IEN_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST_DEFAULT (_SMU_IEN_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Enable */
+#define _SMU_IEN_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC_DEFAULT (_SMU_IEN_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Enable */
+#define _SMU_IEN_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC_DEFAULT (_SMU_IEN_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IEN */
+
+/* Bit fields for SMU M33CTRL */
+#define _SMU_M33CTRL_RESETVALUE 0x00000000UL /**< Default value for SMU_M33CTRL */
+#define _SMU_M33CTRL_MASK 0x0000001FUL /**< Mask for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR (0x1UL << 0) /**< LOCKSVTAIRCR control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_SHIFT 0 /**< Shift value for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_MASK 0x1UL /**< Bit mask for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT (_SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR (0x1UL << 1) /**< LOCKNSVTOR control of M33 CPU */
+#define _SMU_M33CTRL_LOCKNSVTOR_SHIFT 1 /**< Shift value for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_MASK 0x2UL /**< Bit mask for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR_DEFAULT (_SMU_M33CTRL_LOCKNSVTOR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU (0x1UL << 2) /**< LOCKSMPU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSMPU_SHIFT 2 /**< Shift value for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_MASK 0x4UL /**< Bit mask for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU_DEFAULT (_SMU_M33CTRL_LOCKSMPU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU (0x1UL << 3) /**< LOCKNSMPU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKNSMPU_SHIFT 3 /**< Shift value for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_MASK 0x8UL /**< Bit mask for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU_DEFAULT (_SMU_M33CTRL_LOCKNSMPU_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU (0x1UL << 4) /**< LOCKSAU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSAU_SHIFT 4 /**< Shift value for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_MASK 0x10UL /**< Bit mask for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU_DEFAULT (_SMU_M33CTRL_LOCKSAU_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+
+/* Bit fields for SMU PPUPATD0 */
+#define _SMU_PPUPATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUPATD0 */
+#define _SMU_PPUPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU_DEFAULT (_SMU_PPUPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU_DEFAULT (_SMU_PPUPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Privileged Access */
+#define _SMU_PPUPATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUPATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUPATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFXO0_DEFAULT (_SMU_PPUPATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUPATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0_DEFAULT (_SMU_PPUPATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO (0x1UL << 5) /**< FSRCO Privileged Access */
+#define _SMU_PPUPATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO_DEFAULT (_SMU_PPUPATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Privileged Access */
+#define _SMU_PPUPATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0_DEFAULT (_SMU_PPUPATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO (0x1UL << 7) /**< LFXO Privileged Access */
+#define _SMU_PPUPATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO_DEFAULT (_SMU_PPUPATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO (0x1UL << 8) /**< LFRCO Privileged Access */
+#define _SMU_PPUPATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO_DEFAULT (_SMU_PPUPATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Privileged Access */
+#define _SMU_PPUPATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO_DEFAULT (_SMU_PPUPATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC (0x1UL << 10) /**< MSC Privileged Access */
+#define _SMU_PPUPATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC_DEFAULT (_SMU_PPUPATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUPATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0_DEFAULT (_SMU_PPUPATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS (0x1UL << 12) /**< PRS Privileged Access */
+#define _SMU_PPUPATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS_DEFAULT (_SMU_PPUPATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO (0x1UL << 13) /**< GPIO Privileged Access */
+#define _SMU_PPUPATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO_DEFAULT (_SMU_PPUPATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA (0x1UL << 14) /**< LDMA Privileged Access */
+#define _SMU_PPUPATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA_DEFAULT (_SMU_PPUPATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUPATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR_DEFAULT (_SMU_PPUPATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Privileged Access */
+#define _SMU_PPUPATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0_DEFAULT (_SMU_PPUPATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Privileged Access */
+#define _SMU_PPUPATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1_DEFAULT (_SMU_PPUPATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Privileged Access */
+#define _SMU_PPUPATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2_DEFAULT (_SMU_PPUPATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Privileged Access */
+#define _SMU_PPUPATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3_DEFAULT (_SMU_PPUPATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Privileged Access */
+#define _SMU_PPUPATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4_DEFAULT (_SMU_PPUPATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0 (0x1UL << 21) /**< USART0 Privileged Access */
+#define _SMU_PPUPATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0_DEFAULT (_SMU_PPUPATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART1 (0x1UL << 22) /**< USART1 Privileged Access */
+#define _SMU_PPUPATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUPATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUPATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART1_DEFAULT (_SMU_PPUPATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC (0x1UL << 23) /**< BURTC Privileged Access */
+#define _SMU_PPUPATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC_DEFAULT (_SMU_PPUPATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1 (0x1UL << 24) /**< I2C1 Privileged Access */
+#define _SMU_PPUPATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1_DEFAULT (_SMU_PPUPATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Privileged Access */
+#define _SMU_PPUPATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG_DEFAULT (_SMU_PPUPATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM (0x1UL << 28) /**< BURAM Privileged Access */
+#define _SMU_PPUPATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM_DEFAULT (_SMU_PPUPATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Privileged Access */
+#define _SMU_PPUPATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUPATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUPATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_IFADCDEBUG_DEFAULT (_SMU_PPUPATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC (0x1UL << 30) /**< GPCRC Privileged Access */
+#define _SMU_PPUPATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC_DEFAULT (_SMU_PPUPATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC (0x1UL << 31) /**< DCDC Privileged Access */
+#define _SMU_PPUPATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC_DEFAULT (_SMU_PPUPATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+
+/* Bit fields for SMU PPUPATD1 */
+#define _SMU_PPUPATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUPATD1 */
+#define _SMU_PPUPATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PDM (0x1UL << 0) /**< PDM Privileged Access */
+#define _SMU_PPUPATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUPATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUPATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PDM_DEFAULT (_SMU_PPUPATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Privileged Access */
+#define _SMU_PPUPATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUPATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUPATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RFSENSE_DEFAULT (_SMU_PPUPATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Privileged Access */
+#define _SMU_PPUPATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUPATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUPATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ETAMPDET_DEFAULT (_SMU_PPUPATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM_DEFAULT (_SMU_PPUPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Privileged Access */
+#define _SMU_PPUPATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUPATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUPATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART1_DEFAULT (_SMU_PPUPATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Privileged Access */
+#define _SMU_PPUPATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES_DEFAULT (_SMU_PPUPATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU (0x1UL << 6) /**< SMU Privileged Access */
+#define _SMU_PPUPATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU_DEFAULT (_SMU_PPUPATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUPATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS_DEFAULT (_SMU_PPUPATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RTCC (0x1UL << 8) /**< RTCC Privileged Access */
+#define _SMU_PPUPATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUPATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUPATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RTCC_DEFAULT (_SMU_PPUPATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Privileged Access */
+#define _SMU_PPUPATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0_DEFAULT (_SMU_PPUPATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUPATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0_DEFAULT (_SMU_PPUPATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0 (0x1UL << 11) /**< IADC0 Privileged Access */
+#define _SMU_PPUPATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0_DEFAULT (_SMU_PPUPATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Privileged Access */
+#define _SMU_PPUPATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0_DEFAULT (_SMU_PPUPATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0 (0x1UL << 13) /**< I2C0 Privileged Access */
+#define _SMU_PPUPATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0_DEFAULT (_SMU_PPUPATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUPATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0_DEFAULT (_SMU_PPUPATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Privileged Access */
+#define _SMU_PPUPATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0_DEFAULT (_SMU_PPUPATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUPATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX_DEFAULT (_SMU_PPUPATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUPATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO_DEFAULT (_SMU_PPUPATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+
+/* Bit fields for SMU PPUSATD0 */
+#define _SMU_PPUSATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUSATD0 */
+#define _SMU_PPUSATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU (0x1UL << 1) /**< EMU Secure Access */
+#define _SMU_PPUSATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU_DEFAULT (_SMU_PPUSATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU (0x1UL << 2) /**< CMU Secure Access */
+#define _SMU_PPUSATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU_DEFAULT (_SMU_PPUSATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Secure Access */
+#define _SMU_PPUSATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUSATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUSATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFXO0_DEFAULT (_SMU_PPUSATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Secure Access */
+#define _SMU_PPUSATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0_DEFAULT (_SMU_PPUSATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO (0x1UL << 5) /**< FSRCO Secure Access */
+#define _SMU_PPUSATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO_DEFAULT (_SMU_PPUSATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Secure Access */
+#define _SMU_PPUSATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0_DEFAULT (_SMU_PPUSATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO (0x1UL << 7) /**< LFXO Secure Access */
+#define _SMU_PPUSATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO_DEFAULT (_SMU_PPUSATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO (0x1UL << 8) /**< LFRCO Secure Access */
+#define _SMU_PPUSATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO_DEFAULT (_SMU_PPUSATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Secure Access */
+#define _SMU_PPUSATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO_DEFAULT (_SMU_PPUSATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC (0x1UL << 10) /**< MSC Secure Access */
+#define _SMU_PPUSATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC_DEFAULT (_SMU_PPUSATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Secure Access */
+#define _SMU_PPUSATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0_DEFAULT (_SMU_PPUSATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS (0x1UL << 12) /**< PRS Secure Access */
+#define _SMU_PPUSATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS_DEFAULT (_SMU_PPUSATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO (0x1UL << 13) /**< GPIO Secure Access */
+#define _SMU_PPUSATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO_DEFAULT (_SMU_PPUSATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA (0x1UL << 14) /**< LDMA Secure Access */
+#define _SMU_PPUSATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA_DEFAULT (_SMU_PPUSATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Secure Access */
+#define _SMU_PPUSATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR_DEFAULT (_SMU_PPUSATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Secure Access */
+#define _SMU_PPUSATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0_DEFAULT (_SMU_PPUSATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Secure Access */
+#define _SMU_PPUSATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1_DEFAULT (_SMU_PPUSATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Secure Access */
+#define _SMU_PPUSATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2_DEFAULT (_SMU_PPUSATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Secure Access */
+#define _SMU_PPUSATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3_DEFAULT (_SMU_PPUSATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Secure Access */
+#define _SMU_PPUSATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4_DEFAULT (_SMU_PPUSATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0 (0x1UL << 21) /**< USART0 Secure Access */
+#define _SMU_PPUSATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0_DEFAULT (_SMU_PPUSATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART1 (0x1UL << 22) /**< USART1 Secure Access */
+#define _SMU_PPUSATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUSATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUSATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART1_DEFAULT (_SMU_PPUSATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC (0x1UL << 23) /**< BURTC Secure Access */
+#define _SMU_PPUSATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC_DEFAULT (_SMU_PPUSATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1 (0x1UL << 24) /**< I2C1 Secure Access */
+#define _SMU_PPUSATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1_DEFAULT (_SMU_PPUSATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Secure Access */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Secure Access */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Secure Access */
+#define _SMU_PPUSATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG_DEFAULT (_SMU_PPUSATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM (0x1UL << 28) /**< BURAM Secure Access */
+#define _SMU_PPUSATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM_DEFAULT (_SMU_PPUSATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Secure Access */
+#define _SMU_PPUSATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUSATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUSATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_IFADCDEBUG_DEFAULT (_SMU_PPUSATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC (0x1UL << 30) /**< GPCRC Secure Access */
+#define _SMU_PPUSATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC_DEFAULT (_SMU_PPUSATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC (0x1UL << 31) /**< DCDC Secure Access */
+#define _SMU_PPUSATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC_DEFAULT (_SMU_PPUSATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+
+/* Bit fields for SMU PPUSATD1 */
+#define _SMU_PPUSATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUSATD1 */
+#define _SMU_PPUSATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PDM (0x1UL << 0) /**< PDM Secure Access */
+#define _SMU_PPUSATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUSATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUSATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PDM_DEFAULT (_SMU_PPUSATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Secure Access */
+#define _SMU_PPUSATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUSATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUSATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RFSENSE_DEFAULT (_SMU_PPUSATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Secure Access */
+#define _SMU_PPUSATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUSATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUSATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ETAMPDET_DEFAULT (_SMU_PPUSATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM (0x1UL << 3) /**< DMEM Secure Access */
+#define _SMU_PPUSATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM_DEFAULT (_SMU_PPUSATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Secure Access */
+#define _SMU_PPUSATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUSATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUSATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART1_DEFAULT (_SMU_PPUSATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Secure Access */
+#define _SMU_PPUSATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES_DEFAULT (_SMU_PPUSATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU (0x1UL << 6) /**< SMU Secure Access */
+#define _SMU_PPUSATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU_DEFAULT (_SMU_PPUSATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Secure Access */
+#define _SMU_PPUSATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS_DEFAULT (_SMU_PPUSATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RTCC (0x1UL << 8) /**< RTCC Secure Access */
+#define _SMU_PPUSATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUSATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUSATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RTCC_DEFAULT (_SMU_PPUSATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Secure Access */
+#define _SMU_PPUSATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0_DEFAULT (_SMU_PPUSATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Secure Access */
+#define _SMU_PPUSATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0_DEFAULT (_SMU_PPUSATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0 (0x1UL << 11) /**< IADC0 Secure Access */
+#define _SMU_PPUSATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0_DEFAULT (_SMU_PPUSATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Secure Access */
+#define _SMU_PPUSATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0_DEFAULT (_SMU_PPUSATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0 (0x1UL << 13) /**< I2C0 Secure Access */
+#define _SMU_PPUSATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0_DEFAULT (_SMU_PPUSATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Secure Access */
+#define _SMU_PPUSATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0_DEFAULT (_SMU_PPUSATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Secure Access */
+#define _SMU_PPUSATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0_DEFAULT (_SMU_PPUSATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Secure Access */
+#define _SMU_PPUSATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX_DEFAULT (_SMU_PPUSATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Secure Access */
+#define _SMU_PPUSATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO_DEFAULT (_SMU_PPUSATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+
+/* Bit fields for SMU PPUFS */
+#define _SMU_PPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUFS */
+#define _SMU_PPUFS_MASK 0x000000FFUL /**< Mask for SMU_PPUFS */
+#define _SMU_PPUFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUFS */
+#define SMU_PPUFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUFS */
+
+/* Bit fields for SMU BMPUPATD0 */
+#define _SMU_BMPUPATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUPATD0 */
+#define _SMU_BMPUPATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES_DEFAULT (_SMU_BMPUPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA (0x1UL << 3) /**< LDMA Privileged Mode */
+#define _SMU_BMPUPATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA_DEFAULT (_SMU_BMPUPATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Privileged Mode */
+#define _SMU_BMPUPATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUPATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+
+/* Bit fields for SMU BMPUSATD0 */
+#define _SMU_BMPUSATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUSATD0 */
+#define _SMU_BMPUSATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Secure Mode */
+#define _SMU_BMPUSATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES_DEFAULT (_SMU_BMPUSATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Secure Mode */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Secure Mode */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA (0x1UL << 3) /**< LDMA Secure Mode */
+#define _SMU_BMPUSATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA_DEFAULT (_SMU_BMPUSATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Secure Mode */
+#define _SMU_BMPUSATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA_DEFAULT (_SMU_BMPUSATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+
+/* Bit fields for SMU BMPUFS */
+#define _SMU_BMPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFS */
+#define _SMU_BMPUFS_MASK 0x000000FFUL /**< Mask for SMU_BMPUFS */
+#define _SMU_BMPUFS_BMPUFSMASTERID_SHIFT 0 /**< Shift value for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_MASK 0xFFUL /**< Bit mask for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFS */
+#define SMU_BMPUFS_BMPUFSMASTERID_DEFAULT (_SMU_BMPUFS_BMPUFSMASTERID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFS */
+
+/* Bit fields for SMU BMPUFSADDR */
+#define _SMU_BMPUFSADDR_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_SHIFT 0 /**< Shift value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFSADDR */
+#define SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT (_SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFSADDR */
+
+/* Bit fields for SMU ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS (0x1UL << 12) /**< Region 3 Non-Secure */
+#define _SMU_ESAURTYPES0_ESAUR3NS_SHIFT 12 /**< Shift value for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS_DEFAULT (_SMU_ESAURTYPES0_ESAUR3NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES0 */
+
+/* Bit fields for SMU ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS (0x1UL << 12) /**< Region 11 Non-Secure */
+#define _SMU_ESAURTYPES1_ESAUR11NS_SHIFT 12 /**< Shift value for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS_DEFAULT (_SMU_ESAURTYPES1_ESAUR11NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES1 */
+
+/* Bit fields for SMU ESAUMRB01 */
+#define _SMU_ESAUMRB01_RESETVALUE 0x0A000000UL /**< Default value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_SHIFT 12 /**< Shift value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_DEFAULT 0x0000A000UL /**< Mode DEFAULT for SMU_ESAUMRB01 */
+#define SMU_ESAUMRB01_ESAUMRB01_DEFAULT (_SMU_ESAUMRB01_ESAUMRB01_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB01 */
+
+/* Bit fields for SMU ESAUMRB12 */
+#define _SMU_ESAUMRB12_RESETVALUE 0x0C000000UL /**< Default value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_SHIFT 12 /**< Shift value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_DEFAULT 0x0000C000UL /**< Mode DEFAULT for SMU_ESAUMRB12 */
+#define SMU_ESAUMRB12_ESAUMRB12_DEFAULT (_SMU_ESAUMRB12_ESAUMRB12_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB12 */
+
+/* Bit fields for SMU ESAUMRB45 */
+#define _SMU_ESAUMRB45_RESETVALUE 0x02000000UL /**< Default value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_SHIFT 12 /**< Shift value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_DEFAULT 0x00002000UL /**< Mode DEFAULT for SMU_ESAUMRB45 */
+#define SMU_ESAUMRB45_ESAUMRB45_DEFAULT (_SMU_ESAUMRB45_ESAUMRB45_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB45 */
+
+/* Bit fields for SMU ESAUMRB56 */
+#define _SMU_ESAUMRB56_RESETVALUE 0x04000000UL /**< Default value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_SHIFT 12 /**< Shift value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_DEFAULT 0x00004000UL /**< Mode DEFAULT for SMU_ESAUMRB56 */
+#define SMU_ESAUMRB56_ESAUMRB56_DEFAULT (_SMU_ESAUMRB56_ESAUMRB56_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB56 */
+
+/** @} End of group EFR32BG29_SMU_BitFields */
+/** @} End of group EFR32BG29_SMU */
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SMU_CFGNS SMU_CFGNS
+ * @{
+ * @brief EFR32BG29 SMU_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SMU_CFGNS Register Declaration. */
+typedef struct smu_cfgns_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED3[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS; /**< Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED5[63U]; /**< Reserved for future use */
+ uint32_t RESERVED6[876U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_SET; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_SET; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_SET; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_SET; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED8[3U]; /**< Reserved for future use */
+ uint32_t RESERVED9[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_SET; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_SET; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED10[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_SET; /**< Fault Status */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_SET; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED12[63U]; /**< Reserved for future use */
+ uint32_t RESERVED13[876U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_CLR; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_CLR; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_CLR; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_CLR; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ uint32_t RESERVED16[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_CLR; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_CLR; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED17[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_CLR; /**< Fault Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_CLR; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED19[63U]; /**< Reserved for future use */
+ uint32_t RESERVED20[876U]; /**< Reserved for future use */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_TGL; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_TGL; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_TGL; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_TGL; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ uint32_t RESERVED23[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_TGL; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_TGL; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED24[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_TGL; /**< Fault Status */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_TGL; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED26[63U]; /**< Reserved for future use */
+} SMU_CFGNS_TypeDef;
+/** @} End of group EFR32BG29_SMU_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SMU_CFGNS
+ * @{
+ * @defgroup EFR32BG29_SMU_CFGNS_BitFields SMU_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU NSSTATUS */
+#define _SMU_NSSTATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_MASK 0x00000001UL /**< Mask for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK (0x1UL << 0) /**< SMUNS Lock Status */
+#define _SMU_NSSTATUS_SMUNSLOCK_SHIFT 0 /**< Shift value for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_MASK 0x1UL /**< Bit mask for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_DEFAULT (_SMU_NSSTATUS_SMUNSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_UNLOCKED (_SMU_NSSTATUS_SMUNSLOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_LOCKED (_SMU_NSSTATUS_SMUNSLOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_NSSTATUS */
+
+/* Bit fields for SMU NSLOCK */
+#define _SMU_NSLOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_NSLOCK */
+#define _SMU_NSLOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_SHIFT 0 /**< Shift value for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT (_SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK (_SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_NSLOCK */
+
+/* Bit fields for SMU NSIF */
+#define _SMU_NSIF_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIF */
+#define _SMU_NSIF_MASK 0x00000005UL /**< Mask for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Flag */
+#define _SMU_NSIF_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV_DEFAULT (_SMU_NSIF_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Flag */
+#define _SMU_NSIF_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST_DEFAULT (_SMU_NSIF_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIF */
+
+/* Bit fields for SMU NSIEN */
+#define _SMU_NSIEN_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIEN */
+#define _SMU_NSIEN_MASK 0x00000005UL /**< Mask for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Enable */
+#define _SMU_NSIEN_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV_DEFAULT (_SMU_NSIEN_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Enable */
+#define _SMU_NSIEN_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST_DEFAULT (_SMU_NSIEN_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIEN */
+
+/* Bit fields for SMU PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUNSPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU_DEFAULT (_SMU_PPUNSPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUNSPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU_DEFAULT (_SMU_PPUNSPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Privileged Access */
+#define _SMU_PPUNSPATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUNSPATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUNSPATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFXO0_DEFAULT (_SMU_PPUNSPATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUNSPATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0_DEFAULT (_SMU_PPUNSPATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO (0x1UL << 5) /**< FSRCO Privileged Access */
+#define _SMU_PPUNSPATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO_DEFAULT (_SMU_PPUNSPATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Privileged Access */
+#define _SMU_PPUNSPATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0_DEFAULT (_SMU_PPUNSPATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO (0x1UL << 7) /**< LFXO Privileged Access */
+#define _SMU_PPUNSPATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO_DEFAULT (_SMU_PPUNSPATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO (0x1UL << 8) /**< LFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO_DEFAULT (_SMU_PPUNSPATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO_DEFAULT (_SMU_PPUNSPATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC (0x1UL << 10) /**< MSC Privileged Access */
+#define _SMU_PPUNSPATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC_DEFAULT (_SMU_PPUNSPATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUNSPATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0_DEFAULT (_SMU_PPUNSPATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS (0x1UL << 12) /**< PRS Privileged Access */
+#define _SMU_PPUNSPATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS_DEFAULT (_SMU_PPUNSPATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO (0x1UL << 13) /**< GPIO Privileged Access */
+#define _SMU_PPUNSPATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO_DEFAULT (_SMU_PPUNSPATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA (0x1UL << 14) /**< LDMA Privileged Access */
+#define _SMU_PPUNSPATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA_DEFAULT (_SMU_PPUNSPATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUNSPATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR_DEFAULT (_SMU_PPUNSPATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0_DEFAULT (_SMU_PPUNSPATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1_DEFAULT (_SMU_PPUNSPATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2_DEFAULT (_SMU_PPUNSPATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3_DEFAULT (_SMU_PPUNSPATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4_DEFAULT (_SMU_PPUNSPATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0 (0x1UL << 21) /**< USART0 Privileged Access */
+#define _SMU_PPUNSPATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0_DEFAULT (_SMU_PPUNSPATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART1 (0x1UL << 22) /**< USART1 Privileged Access */
+#define _SMU_PPUNSPATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUNSPATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUNSPATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART1_DEFAULT (_SMU_PPUNSPATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC (0x1UL << 23) /**< BURTC Privileged Access */
+#define _SMU_PPUNSPATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC_DEFAULT (_SMU_PPUNSPATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1 (0x1UL << 24) /**< I2C1 Privileged Access */
+#define _SMU_PPUNSPATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1_DEFAULT (_SMU_PPUNSPATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG_DEFAULT (_SMU_PPUNSPATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM (0x1UL << 28) /**< BURAM Privileged Access */
+#define _SMU_PPUNSPATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM_DEFAULT (_SMU_PPUNSPATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Privileged Access */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT (_SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC (0x1UL << 30) /**< GPCRC Privileged Access */
+#define _SMU_PPUNSPATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC_DEFAULT (_SMU_PPUNSPATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC (0x1UL << 31) /**< DCDC Privileged Access */
+#define _SMU_PPUNSPATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC_DEFAULT (_SMU_PPUNSPATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+
+/* Bit fields for SMU PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PDM (0x1UL << 0) /**< PDM Privileged Access */
+#define _SMU_PPUNSPATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUNSPATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUNSPATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PDM_DEFAULT (_SMU_PPUNSPATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Privileged Access */
+#define _SMU_PPUNSPATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUNSPATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUNSPATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RFSENSE_DEFAULT (_SMU_PPUNSPATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Privileged Access */
+#define _SMU_PPUNSPATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUNSPATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUNSPATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ETAMPDET_DEFAULT (_SMU_PPUNSPATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUNSPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM_DEFAULT (_SMU_PPUNSPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Privileged Access */
+#define _SMU_PPUNSPATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUNSPATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUNSPATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART1_DEFAULT (_SMU_PPUNSPATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Privileged Access */
+#define _SMU_PPUNSPATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES_DEFAULT (_SMU_PPUNSPATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU (0x1UL << 6) /**< SMU Privileged Access */
+#define _SMU_PPUNSPATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU_DEFAULT (_SMU_PPUNSPATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUNSPATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS_DEFAULT (_SMU_PPUNSPATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RTCC (0x1UL << 8) /**< RTCC Privileged Access */
+#define _SMU_PPUNSPATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUNSPATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUNSPATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RTCC_DEFAULT (_SMU_PPUNSPATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Privileged Access */
+#define _SMU_PPUNSPATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0_DEFAULT (_SMU_PPUNSPATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUNSPATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0_DEFAULT (_SMU_PPUNSPATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0 (0x1UL << 11) /**< IADC0 Privileged Access */
+#define _SMU_PPUNSPATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0_DEFAULT (_SMU_PPUNSPATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Privileged Access */
+#define _SMU_PPUNSPATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0_DEFAULT (_SMU_PPUNSPATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0 (0x1UL << 13) /**< I2C0 Privileged Access */
+#define _SMU_PPUNSPATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0_DEFAULT (_SMU_PPUNSPATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUNSPATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0_DEFAULT (_SMU_PPUNSPATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Privileged Access */
+#define _SMU_PPUNSPATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0_DEFAULT (_SMU_PPUNSPATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUNSPATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX_DEFAULT (_SMU_PPUNSPATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUNSPATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO_DEFAULT (_SMU_PPUNSPATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+
+/* Bit fields for SMU PPUNSFS */
+#define _SMU_PPUNSFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_MASK 0x000000FFUL /**< Mask for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSFS */
+#define SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSFS */
+
+/* Bit fields for SMU BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES_DEFAULT (_SMU_BMPUNSPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA (0x1UL << 3) /**< LDMA Privileged Mode */
+#define _SMU_BMPUNSPATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA_DEFAULT (_SMU_BMPUNSPATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Privileged Mode */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+
+/** @} End of group EFR32BG29_SMU_CFGNS_BitFields */
+/** @} End of group EFR32BG29_SMU_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_SMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_syscfg.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_syscfg.h
new file mode 100644
index 000000000..8014c4093
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_syscfg.h
@@ -0,0 +1,739 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 SYSCFG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_SYSCFG_H
+#define EFR32BG29_SYSCFG_H
+#define SYSCFG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SYSCFG SYSCFG
+ * @{
+ * @brief EFR32BG29 SYSCFG Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG Register Declaration. */
+typedef struct syscfg_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV; /**< Chip Revision */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC; /**< SysTick clock source */
+ uint32_t RESERVED2[55U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED6[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF; /**< RAM Bias Configuration */
+ uint32_t RESERVED7[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED10[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION; /**< SE SW Version */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_SET; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_SET; /**< Chip Revision */
+ uint32_t RESERVED14[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_SET; /**< SysTick clock source */
+ uint32_t RESERVED15[55U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_SET; /**< DMEM0 Retention Control */
+ uint32_t RESERVED19[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_SET; /**< RAM Bias Configuration */
+ uint32_t RESERVED20[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_SET; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_SET; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_SET; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_SET; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_SET; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_SET; /**< DMEM0 port remap selection */
+ uint32_t RESERVED23[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_SET; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_SET; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_SET; /**< SE SW Version */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_CLR; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_CLR; /**< Chip Revision */
+ uint32_t RESERVED27[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_CLR; /**< SysTick clock source */
+ uint32_t RESERVED28[55U]; /**< Reserved for future use */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ uint32_t RESERVED30[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_CLR; /**< DMEM0 Retention Control */
+ uint32_t RESERVED32[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_CLR; /**< RAM Bias Configuration */
+ uint32_t RESERVED33[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_CLR; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_CLR; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_CLR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_CLR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_CLR; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_CLR; /**< DMEM0 port remap selection */
+ uint32_t RESERVED36[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_CLR; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_CLR; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_CLR; /**< SE SW Version */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_TGL; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_TGL; /**< Chip Revision */
+ uint32_t RESERVED40[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_TGL; /**< SysTick clock source */
+ uint32_t RESERVED41[55U]; /**< Reserved for future use */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+ uint32_t RESERVED43[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ uint32_t RESERVED44[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_TGL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED45[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_TGL; /**< RAM Bias Configuration */
+ uint32_t RESERVED46[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_TGL; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED47[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_TGL; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_TGL; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_TGL; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_TGL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_TGL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED49[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_TGL; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_TGL; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_TGL; /**< SE SW Version */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+} SYSCFG_TypeDef;
+/** @} End of group EFR32BG29_SYSCFG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SYSCFG
+ * @{
+ * @defgroup EFR32BG29_SYSCFG_BitFields SYSCFG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG IPVERSION */
+#define _SYSCFG_IPVERSION_RESETVALUE 0x0000000BUL /**< Default value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_DEFAULT 0x0000000BUL /**< Mode DEFAULT for SYSCFG_IPVERSION */
+#define SYSCFG_IPVERSION_IPVERSION_DEFAULT (_SYSCFG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IPVERSION */
+
+/* Bit fields for SYSCFG IF */
+#define _SYSCFG_IF_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IF */
+#define _SYSCFG_IF_MASK 0x33003F0FUL /**< Mask for SYSCFG_IF */
+#define SYSCFG_IF_SW0 (0x1UL << 0) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW0_DEFAULT (_SYSCFG_IF_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1 (0x1UL << 1) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1_DEFAULT (_SYSCFG_IF_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2 (0x1UL << 2) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2_DEFAULT (_SYSCFG_IF_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3 (0x1UL << 3) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3_DEFAULT (_SYSCFG_IF_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC (0x1UL << 8) /**< FPU Invalid Operation interrupt flag */
+#define _SYSCFG_IF_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC_DEFAULT (_SYSCFG_IF_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC (0x1UL << 9) /**< FPU Divide by zero interrupt flag */
+#define _SYSCFG_IF_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC_DEFAULT (_SYSCFG_IF_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC (0x1UL << 10) /**< FPU Underflow interrupt flag */
+#define _SYSCFG_IF_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC_DEFAULT (_SYSCFG_IF_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC (0x1UL << 11) /**< FPU Overflow interrupt flag */
+#define _SYSCFG_IF_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC_DEFAULT (_SYSCFG_IF_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC (0x1UL << 12) /**< FPU Input denormal interrupt flag */
+#define _SYSCFG_IF_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC_DEFAULT (_SYSCFG_IF_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC (0x1UL << 13) /**< FPU Inexact interrupt flag */
+#define _SYSCFG_IF_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC_DEFAULT (_SYSCFG_IF_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-Bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B_DEFAULT (_SYSCFG_IF_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-Bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B_DEFAULT (_SYSCFG_IF_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-Bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B_DEFAULT (_SYSCFG_IF_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-Bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B_DEFAULT (_SYSCFG_IF_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IF */
+
+/* Bit fields for SYSCFG IEN */
+#define _SYSCFG_IEN_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IEN */
+#define _SYSCFG_IEN_MASK 0x33003F0FUL /**< Mask for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0 (0x1UL << 0) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0_DEFAULT (_SYSCFG_IEN_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1 (0x1UL << 1) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1_DEFAULT (_SYSCFG_IEN_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2 (0x1UL << 2) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2_DEFAULT (_SYSCFG_IEN_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3 (0x1UL << 3) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3_DEFAULT (_SYSCFG_IEN_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC (0x1UL << 8) /**< FPU Invalid Operation Interrupt Enable */
+#define _SYSCFG_IEN_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC_DEFAULT (_SYSCFG_IEN_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC (0x1UL << 9) /**< FPU Divide by zero Interrupt Enable */
+#define _SYSCFG_IEN_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC_DEFAULT (_SYSCFG_IEN_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC (0x1UL << 10) /**< FPU Underflow Interrupt Enable */
+#define _SYSCFG_IEN_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC_DEFAULT (_SYSCFG_IEN_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC (0x1UL << 11) /**< FPU Overflow Interrupt Enable */
+#define _SYSCFG_IEN_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC_DEFAULT (_SYSCFG_IEN_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC (0x1UL << 12) /**< FPU Input denormal Interrupt Enable */
+#define _SYSCFG_IEN_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC_DEFAULT (_SYSCFG_IEN_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC (0x1UL << 13) /**< FPU Inexact Interrupt Enable */
+#define _SYSCFG_IEN_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC_DEFAULT (_SYSCFG_IEN_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B_DEFAULT (_SYSCFG_IEN_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B_DEFAULT (_SYSCFG_IEN_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B_DEFAULT (_SYSCFG_IEN_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B_DEFAULT (_SYSCFG_IEN_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+
+/* Bit fields for SYSCFG CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_RESETVALUE 0x00010014UL /**< Default value for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MASK 0xFF0FFFFFUL /**< Mask for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_SHIFT 0 /**< Shift value for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_MASK 0xFFFUL /**< Bit mask for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT 0x00000014UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT (_SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_MASK 0xF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MINOR_DEFAULT (_SYSCFG_CHIPREVHW_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MAJOR_SHIFT 16 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_MASK 0xF0000UL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MAJOR_DEFAULT (_SYSCFG_CHIPREVHW_MAJOR_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+
+/* Bit fields for SYSCFG CHIPREV */
+#define _SYSCFG_CHIPREV_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MASK 0x000FFFFFUL /**< Mask for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_PARTNUMBER_SHIFT 0 /**< Shift value for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREV_PARTNUMBER_MASK 0xFFFUL /**< Bit mask for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREV_PARTNUMBER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_PARTNUMBER_DEFAULT (_SYSCFG_CHIPREV_PARTNUMBER_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_MASK 0xF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MINOR_DEFAULT (_SYSCFG_CHIPREV_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MAJOR_SHIFT 16 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_MASK 0xF0000UL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MAJOR_DEFAULT (_SYSCFG_CHIPREV_MAJOR_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+
+/* Bit fields for SYSCFG CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_MASK 0x00000001UL /**< Mask for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN (0x1UL << 0) /**< SysTick External Clock Enable */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_SHIFT 0 /**< Shift value for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_MASK 0x1UL /**< Bit mask for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT (_SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGSYSTIC */
+
+/* Bit fields for SYSCFG CTRL */
+#define _SYSCFG_CTRL_RESETVALUE 0x00000023UL /**< Default value for SYSCFG_CTRL */
+#define _SYSCFG_CTRL_MASK 0x00000023UL /**< Mask for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN (0x1UL << 0) /**< Invalid Address Bus Fault Response Enabl */
+#define _SYSCFG_CTRL_ADDRFAULTEN_SHIFT 0 /**< Shift value for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_MASK 0x1UL /**< Bit mask for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN_DEFAULT (_SYSCFG_CTRL_ADDRFAULTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN (0x1UL << 1) /**< Disabled Clkbus Bus Fault Enable */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_SHIFT 1 /**< Shift value for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_MASK 0x2UL /**< Bit mask for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT (_SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN (0x1UL << 5) /**< Two bit ECC error bus fault response ena */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_SHIFT 5 /**< Shift value for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_MASK 0x20UL /**< Bit mask for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT (_SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+
+/* Bit fields for SYSCFG DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_MASK 0x0000FFFFUL /**< Mask for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_MASK 0xFFFFUL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 0x00008000UL /**< Mode BLK15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 0x0000C000UL /**< Mode BLK14TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 0x0000E000UL /**< Mode BLK13TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 0x0000F000UL /**< Mode BLK12TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 0x0000F800UL /**< Mode BLK11TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 0x0000FC00UL /**< Mode BLK10TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 0x0000FE00UL /**< Mode BLK9TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 0x0000FF00UL /**< Mode BLK8TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 0x0000FF80UL /**< Mode BLK7TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 0x0000FFC0UL /**< Mode BLK6TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 0x0000FFE0UL /**< Mode BLK5TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 0x0000FFF0UL /**< Mode BLK4TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 0x0000FFF8UL /**< Mode BLK3TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 0x0000FFFCUL /**< Mode BLK2TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 0x0000FFFEUL /**< Mode BLK1TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF 0x0000FFFFUL /**< Mode ALLOFF for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 << 0) /**< Shifted mode BLK15 for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 << 0) /**< Shifted mode BLK14TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 << 0) /**< Shifted mode BLK13TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 << 0) /**< Shifted mode BLK12TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 << 0) /**< Shifted mode BLK11TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 << 0) /**< Shifted mode BLK10TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 << 0) /**< Shifted mode BLK9TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 << 0) /**< Shifted mode BLK8TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 << 0) /**< Shifted mode BLK7TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 << 0) /**< Shifted mode BLK6TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 << 0) /**< Shifted mode BLK5TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 << 0) /**< Shifted mode BLK4TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 << 0) /**< Shifted mode BLK3TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 << 0) /**< Shifted mode BLK2TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 << 0) /**< Shifted mode BLK1TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_DMEM0RETNCTRL*/
+
+/* Bit fields for SYSCFG RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RESETVALUE 0x00000002UL /**< Default value for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_MASK 0x0000000FUL /**< Mask for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_MASK 0xFUL /**< Bit mask for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT 0x00000002UL /**< Mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_No 0x00000000UL /**< Mode No for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 0x00000001UL /**< Mode VSB100 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 0x00000002UL /**< Mode VSB200 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 0x00000004UL /**< Mode VSB300 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 0x00000008UL /**< Mode VSB400 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_No (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_No << 0) /**< Shifted mode No for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 << 0) /**< Shifted mode VSB100 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 << 0) /**< Shifted mode VSB200 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 << 0) /**< Shifted mode VSB300 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 << 0) /**< Shifted mode VSB400 for SYSCFG_RAMBIASCONF */
+
+/* Bit fields for SYSCFG RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_MASK 0x00000103UL /**< Mask for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_MASK 0x3UL /**< Bit mask for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 0x00000001UL /**< Mode BLK0 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 0x00000002UL /**< Mode BLK1 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF 0x00000003UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 << 0) /**< Shifted mode BLK0 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 << 0) /**< Shifted mode BLK1 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL (0x1UL << 8) /**< FRCRAM Retention Control */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON << 8) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF << 8) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+
+/* Bit fields for SYSCFG RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_MASK 0x00000303UL /**< Mask for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN (0x1UL << 0) /**< SEQRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_MASK 0x1UL /**< Bit mask for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN (0x1UL << 1) /**< SEQRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_SHIFT 1 /**< Shift value for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_MASK 0x2UL /**< Bit mask for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN (0x1UL << 8) /**< FRCRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN (0x1UL << 9) /**< FRCRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_SHIFT 9 /**< Shift value for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_MASK 0x200UL /**< Bit mask for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+
+/* Bit fields for SYSCFG SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_SEQRAMECCADDR */
+#define SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT (_SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_SEQRAMECCADDR*/
+
+/* Bit fields for SYSCFG FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_FRCRAMECCADDR */
+#define SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT (_SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_FRCRAMECCADDR*/
+
+/* Bit fields for SYSCFG ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_MASK 0x00000001UL /**< Mask for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL (0x1UL << 0) /**< ICACHERAM Retention control */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_MASK 0x1UL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL*/
+
+/* Bit fields for SYSCFG DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_RESETVALUE 0x00000055UL /**< Default value for SYSCFG_DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_MASK 0x000000FFUL /**< Mask for SYSCFG_DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_SHIFT 0 /**< Shift value for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_MASK 0x3UL /**< Bit mask for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_SHIFT 2 /**< Shift value for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_MASK 0xCUL /**< Bit mask for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_SHIFT 4 /**< Shift value for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_MASK 0x30UL /**< Bit mask for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_SHIFT 6 /**< Shift value for SYSCFG_IFADCDEBUGPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_MASK 0xC0UL /**< Bit mask for SYSCFG_IFADCDEBUGPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT << 6) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+
+/* Bit fields for SYSCFG ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA0 */
+#define SYSCFG_ROOTDATA0_DATA_DEFAULT (_SYSCFG_ROOTDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA0 */
+
+/* Bit fields for SYSCFG ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA1 */
+#define SYSCFG_ROOTDATA1_DATA_DEFAULT (_SYSCFG_ROOTDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA1 */
+
+/* Bit fields for SYSCFG ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_RESETVALUE 0x007F0107UL /**< Default value for SYSCFG_ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_MASK 0x807F0117UL /**< Mask for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK (0x1UL << 0) /**< Bus Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_SHIFT 0 /**< Shift value for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_MASK 0x1UL /**< Bit mask for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK (0x1UL << 1) /**< Register Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_SHIFT 1 /**< Shift value for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_MASK 0x2UL /**< Bit mask for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK (0x1UL << 2) /**< Manufacture Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_SHIFT 2 /**< Shift value for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_MASK 0x4UL /**< Bit mask for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK (0x1UL << 4) /**< Root Mode Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_SHIFT 4 /**< Shift value for SYSCFG_ROOTMODELOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_MASK 0x10UL /**< Bit mask for SYSCFG_ROOTMODELOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT << 4) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK (0x1UL << 8) /**< Root Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_SHIFT 8 /**< Shift value for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_MASK 0x100UL /**< Bit mask for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK (0x1UL << 16) /**< User Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_SHIFT 16 /**< Shift value for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_MASK 0x10000UL /**< Bit mask for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK (0x1UL << 17) /**< User Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_SHIFT 17 /**< Shift value for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_MASK 0x20000UL /**< Bit mask for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT << 17) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK (0x1UL << 18) /**< User Secure Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_SHIFT 18 /**< Shift value for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_MASK 0x40000UL /**< Bit mask for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT << 18) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK (0x1UL << 19) /**< User Secure Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_SHIFT 19 /**< Shift value for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_MASK 0x80000UL /**< Bit mask for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT << 19) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK (0x1UL << 20) /**< User Debug Access Port Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_SHIFT 20 /**< Shift value for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_MASK 0x100000UL /**< Bit mask for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT << 20) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK (0x1UL << 21) /**< Radio Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_SHIFT 21 /**< Shift value for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_MASK 0x200000UL /**< Bit mask for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT << 21) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK (0x1UL << 22) /**< Radio Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_SHIFT 22 /**< Shift value for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_MASK 0x400000UL /**< Bit mask for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT << 22) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED (0x1UL << 31) /**< E-Fuse Unlocked */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_SHIFT 31 /**< Shift value for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_MASK 0x80000000UL /**< Bit mask for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT << 31) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+
+/* Bit fields for SYSCFG ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_SHIFT 0 /**< Shift value for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTSESWVERSION */
+#define SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT (_SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTSESWVERSION*/
+
+/** @} End of group EFR32BG29_SYSCFG_BitFields */
+/** @} End of group EFR32BG29_SYSCFG */
+/**************************************************************************//**
+ * @defgroup EFR32BG29_SYSCFG_CFGNS SYSCFG_CFGNS
+ * @{
+ * @brief EFR32BG29 SYSCFG_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG_CFGNS Register Declaration. */
+typedef struct syscfg_cfgns_typedef{
+ uint32_t RESERVED0[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED1[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1; /**< Data Register 1 */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[637U]; /**< Reserved for future use */
+ uint32_t RESERVED4[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_SET; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED5[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_SET; /**< Data Register 1 */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[637U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_CLR; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED9[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_CLR; /**< Data Register 1 */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[637U]; /**< Reserved for future use */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_TGL; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED13[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_TGL; /**< Data Register 1 */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} SYSCFG_CFGNS_TypeDef;
+/** @} End of group EFR32BG29_SYSCFG_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_SYSCFG_CFGNS
+ * @{
+ * @defgroup EFR32BG29_SYSCFG_CFGNS_BitFields SYSCFG_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_RESETVALUE 0x01004A37UL /**< Default value for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_MASK 0x03FFFFFFUL /**< Mask for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_TENMS_SHIFT 0 /**< Shift value for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_MASK 0xFFFFFFUL /**< Bit mask for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_DEFAULT 0x00004A37UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_TENMS_DEFAULT (_SYSCFG_CFGNSTCALIB_TENMS_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW (0x1UL << 24) /**< Skew */
+#define _SYSCFG_CFGNSTCALIB_SKEW_SHIFT 24 /**< Shift value for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_MASK 0x1000000UL /**< Bit mask for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW_DEFAULT (_SYSCFG_CFGNSTCALIB_SKEW_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF (0x1UL << 25) /**< No Reference */
+#define _SYSCFG_CFGNSTCALIB_NOREF_SHIFT 25 /**< Shift value for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_MASK 0x2000000UL /**< Bit mask for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_REF 0x00000000UL /**< Mode REF for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_NOREF 0x00000001UL /**< Mode NOREF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_DEFAULT (_SYSCFG_CFGNSTCALIB_NOREF_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_REF (_SYSCFG_CFGNSTCALIB_NOREF_REF << 25) /**< Shifted mode REF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_NOREF (_SYSCFG_CFGNSTCALIB_NOREF_NOREF << 25) /**< Shifted mode NOREF for SYSCFG_CFGNSTCALIB */
+
+/* Bit fields for SYSCFG ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+#define SYSCFG_ROOTNSDATA0_DATA_DEFAULT (_SYSCFG_ROOTNSDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+
+/* Bit fields for SYSCFG ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+#define SYSCFG_ROOTNSDATA1_DATA_DEFAULT (_SYSCFG_ROOTNSDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+
+/** @} End of group EFR32BG29_SYSCFG_CFGNS_BitFields */
+/** @} End of group EFR32BG29_SYSCFG_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_SYSCFG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_timer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_timer.h
new file mode 100644
index 000000000..93a979d7a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_timer.h
@@ -0,0 +1,1015 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 TIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_TIMER_H
+#define EFR32BG29_TIMER_H
+#define TIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_TIMER TIMER
+ * @{
+ * @brief EFR32BG29 TIMER Register Declaration.
+ *****************************************************************************/
+
+/** TIMER CC Register Group Declaration. */
+typedef struct timer_cc_typedef{
+ __IOM uint32_t CFG; /**< CC Channel Configuration Register */
+ __IOM uint32_t CTRL; /**< CC Channel Control Register */
+ __IOM uint32_t OC; /**< OC Channel Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t OCB; /**< OC Channel Value Buffer Register */
+ __IM uint32_t ICF; /**< IC Channel Value Register */
+ __IM uint32_t ICOF; /**< IC Channel Value Overflow Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+} TIMER_CC_TypeDef;
+
+/** TIMER Register Declaration. */
+typedef struct timer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN; /**< module en */
+ uint32_t RESERVED1[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED3[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_SET; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_SET; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_SET; /**< module en */
+ uint32_t RESERVED5[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_SET[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED6[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_SET; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_SET; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_SET; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_SET; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_SET; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_SET; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_SET; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_SET; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED7[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_CLR; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_CLR; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_CLR; /**< module en */
+ uint32_t RESERVED9[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_CLR[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED10[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_CLR; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_CLR; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_CLR; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_CLR; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_CLR; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_CLR; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_CLR; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_CLR; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED11[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_TGL; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_TGL; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_TGL; /**< module en */
+ uint32_t RESERVED13[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_TGL[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED14[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_TGL; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_TGL; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_TGL; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_TGL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_TGL; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_TGL; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_TGL; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_TGL; /**< DTI Configuration Lock Register */
+} TIMER_TypeDef;
+/** @} End of group EFR32BG29_TIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_TIMER
+ * @{
+ * @defgroup EFR32BG29_TIMER_BitFields TIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for TIMER IPVERSION */
+#define _TIMER_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IPVERSION */
+#define TIMER_IPVERSION_IPVERSION_DEFAULT (_TIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IPVERSION */
+
+/* Bit fields for TIMER CFG */
+#define _TIMER_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CFG */
+#define _TIMER_CFG_MASK 0x0FFF1FFBUL /**< Mask for TIMER_CFG */
+#define _TIMER_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_MODE_UP 0x00000000UL /**< Mode UP for TIMER_CFG */
+#define _TIMER_CFG_MODE_DOWN 0x00000001UL /**< Mode DOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_UPDOWN 0x00000002UL /**< Mode UPDOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_QDEC 0x00000003UL /**< Mode QDEC for TIMER_CFG */
+#define TIMER_CFG_MODE_DEFAULT (_TIMER_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_MODE_UP (_TIMER_CFG_MODE_UP << 0) /**< Shifted mode UP for TIMER_CFG */
+#define TIMER_CFG_MODE_DOWN (_TIMER_CFG_MODE_DOWN << 0) /**< Shifted mode DOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_UPDOWN (_TIMER_CFG_MODE_UPDOWN << 0) /**< Shifted mode UPDOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_QDEC (_TIMER_CFG_MODE_QDEC << 0) /**< Shifted mode QDEC for TIMER_CFG */
+#define TIMER_CFG_SYNC (0x1UL << 3) /**< Timer Start/Stop/Reload Synchronization */
+#define _TIMER_CFG_SYNC_SHIFT 3 /**< Shift value for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_MASK 0x8UL /**< Bit mask for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_DEFAULT (_TIMER_CFG_SYNC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_SYNC_DISABLE (_TIMER_CFG_SYNC_DISABLE << 3) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_ENABLE (_TIMER_CFG_SYNC_ENABLE << 3) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_OSMEN (0x1UL << 4) /**< One-shot Mode Enable */
+#define _TIMER_CFG_OSMEN_SHIFT 4 /**< Shift value for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_MASK 0x10UL /**< Bit mask for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_OSMEN_DEFAULT (_TIMER_CFG_OSMEN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM (0x1UL << 5) /**< Quadrature Decoder Mode Selection */
+#define _TIMER_CFG_QDM_SHIFT 5 /**< Shift value for TIMER_QDM */
+#define _TIMER_CFG_QDM_MASK 0x20UL /**< Bit mask for TIMER_QDM */
+#define _TIMER_CFG_QDM_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_QDM_X2 0x00000000UL /**< Mode X2 for TIMER_CFG */
+#define _TIMER_CFG_QDM_X4 0x00000001UL /**< Mode X4 for TIMER_CFG */
+#define TIMER_CFG_QDM_DEFAULT (_TIMER_CFG_QDM_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM_X2 (_TIMER_CFG_QDM_X2 << 5) /**< Shifted mode X2 for TIMER_CFG */
+#define TIMER_CFG_QDM_X4 (_TIMER_CFG_QDM_X4 << 5) /**< Shifted mode X4 for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN (0x1UL << 6) /**< Debug Mode Run Enable */
+#define _TIMER_CFG_DEBUGRUN_SHIFT 6 /**< Shift value for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_MASK 0x40UL /**< Bit mask for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_HALT 0x00000000UL /**< Mode HALT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_RUN 0x00000001UL /**< Mode RUN for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_DEFAULT (_TIMER_CFG_DEBUGRUN_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_HALT (_TIMER_CFG_DEBUGRUN_HALT << 6) /**< Shifted mode HALT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_RUN (_TIMER_CFG_DEBUGRUN_RUN << 6) /**< Shifted mode RUN for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT (0x1UL << 7) /**< DMA Request Clear on Active */
+#define _TIMER_CFG_DMACLRACT_SHIFT 7 /**< Shift value for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_MASK 0x80UL /**< Bit mask for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT_DEFAULT (_TIMER_CFG_DMACLRACT_DEFAULT << 7) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_SHIFT 8 /**< Shift value for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_MASK 0x300UL /**< Bit mask for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_PRESCEM01GRPACLK 0x00000000UL /**< Mode PRESCEM01GRPACLK for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_CC1 0x00000001UL /**< Mode CC1 for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_TIMEROUF 0x00000002UL /**< Mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_DEFAULT (_TIMER_CFG_CLKSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_PRESCEM01GRPACLK (_TIMER_CFG_CLKSEL_PRESCEM01GRPACLK << 8) /**< Shifted mode PRESCEM01GRPACLK for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_CC1 (_TIMER_CFG_CLKSEL_CC1 << 8) /**< Shifted mode CC1 for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_TIMEROUF (_TIMER_CFG_CLKSEL_TIMEROUF << 8) /**< Shifted mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN (0x1UL << 10) /**< PWM output retimed enable */
+#define _TIMER_CFG_RETIMEEN_SHIFT 10 /**< Shift value for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_MASK 0x400UL /**< Bit mask for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DEFAULT (_TIMER_CFG_RETIMEEN_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DISABLE (_TIMER_CFG_RETIMEEN_DISABLE << 10) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_ENABLE (_TIMER_CFG_RETIMEEN_ENABLE << 10) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT (0x1UL << 11) /**< Disable Timer Start/Stop/Reload output */
+#define _TIMER_CFG_DISSYNCOUT_SHIFT 11 /**< Shift value for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_MASK 0x800UL /**< Bit mask for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_EN 0x00000000UL /**< Mode EN for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_DIS 0x00000001UL /**< Mode DIS for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DEFAULT (_TIMER_CFG_DISSYNCOUT_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_EN (_TIMER_CFG_DISSYNCOUT_EN << 11) /**< Shifted mode EN for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DIS (_TIMER_CFG_DISSYNCOUT_DIS << 11) /**< Shifted mode DIS for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL (0x1UL << 12) /**< PWM output retime select */
+#define _TIMER_CFG_RETIMESEL_SHIFT 12 /**< Shift value for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_MASK 0x1000UL /**< Bit mask for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL_DEFAULT (_TIMER_CFG_RETIMESEL_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI (0x1UL << 16) /**< Always Track Inputs */
+#define _TIMER_CFG_ATI_SHIFT 16 /**< Shift value for TIMER_ATI */
+#define _TIMER_CFG_ATI_MASK 0x10000UL /**< Bit mask for TIMER_ATI */
+#define _TIMER_CFG_ATI_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI_DEFAULT (_TIMER_CFG_ATI_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST (0x1UL << 17) /**< Reload-Start Sets COIST */
+#define _TIMER_CFG_RSSCOIST_SHIFT 17 /**< Shift value for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_MASK 0x20000UL /**< Bit mask for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST_DEFAULT (_TIMER_CFG_RSSCOIST_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_SHIFT 18 /**< Shift value for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_MASK 0xFFC0000UL /**< Bit mask for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV8 0x00000007UL /**< Mode DIV8 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV16 0x0000000FUL /**< Mode DIV16 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV32 0x0000001FUL /**< Mode DIV32 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV64 0x0000003FUL /**< Mode DIV64 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV128 0x0000007FUL /**< Mode DIV128 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV256 0x000000FFUL /**< Mode DIV256 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV512 0x000001FFUL /**< Mode DIV512 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1024 0x000003FFUL /**< Mode DIV1024 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DEFAULT (_TIMER_CFG_PRESC_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1 (_TIMER_CFG_PRESC_DIV1 << 18) /**< Shifted mode DIV1 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV2 (_TIMER_CFG_PRESC_DIV2 << 18) /**< Shifted mode DIV2 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV4 (_TIMER_CFG_PRESC_DIV4 << 18) /**< Shifted mode DIV4 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV8 (_TIMER_CFG_PRESC_DIV8 << 18) /**< Shifted mode DIV8 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV16 (_TIMER_CFG_PRESC_DIV16 << 18) /**< Shifted mode DIV16 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV32 (_TIMER_CFG_PRESC_DIV32 << 18) /**< Shifted mode DIV32 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV64 (_TIMER_CFG_PRESC_DIV64 << 18) /**< Shifted mode DIV64 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV128 (_TIMER_CFG_PRESC_DIV128 << 18) /**< Shifted mode DIV128 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV256 (_TIMER_CFG_PRESC_DIV256 << 18) /**< Shifted mode DIV256 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV512 (_TIMER_CFG_PRESC_DIV512 << 18) /**< Shifted mode DIV512 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1024 (_TIMER_CFG_PRESC_DIV1024 << 18) /**< Shifted mode DIV1024 for TIMER_CFG */
+
+/* Bit fields for TIMER CTRL */
+#define _TIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CTRL */
+#define _TIMER_CTRL_MASK 0x0000001FUL /**< Mask for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_SHIFT 0 /**< Shift value for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_MASK 0x3UL /**< Bit mask for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_DEFAULT (_TIMER_CTRL_RISEA_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_NONE (_TIMER_CTRL_RISEA_NONE << 0) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_START (_TIMER_CTRL_RISEA_START << 0) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_STOP (_TIMER_CTRL_RISEA_STOP << 0) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_RELOADSTART (_TIMER_CTRL_RISEA_RELOADSTART << 0) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_SHIFT 2 /**< Shift value for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_MASK 0xCUL /**< Bit mask for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_DEFAULT (_TIMER_CTRL_FALLA_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_NONE (_TIMER_CTRL_FALLA_NONE << 2) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_START (_TIMER_CTRL_FALLA_START << 2) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_STOP (_TIMER_CTRL_FALLA_STOP << 2) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_RELOADSTART (_TIMER_CTRL_FALLA_RELOADSTART << 2) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT (0x1UL << 4) /**< 2x Count Mode */
+#define _TIMER_CTRL_X2CNT_SHIFT 4 /**< Shift value for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_MASK 0x10UL /**< Bit mask for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT_DEFAULT (_TIMER_CTRL_X2CNT_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CTRL */
+
+/* Bit fields for TIMER CMD */
+#define _TIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for TIMER_CMD */
+#define _TIMER_CMD_MASK 0x00000003UL /**< Mask for TIMER_CMD */
+#define TIMER_CMD_START (0x1UL << 0) /**< Start Timer */
+#define _TIMER_CMD_START_SHIFT 0 /**< Shift value for TIMER_START */
+#define _TIMER_CMD_START_MASK 0x1UL /**< Bit mask for TIMER_START */
+#define _TIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_START_DEFAULT (_TIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP (0x1UL << 1) /**< Stop Timer */
+#define _TIMER_CMD_STOP_SHIFT 1 /**< Shift value for TIMER_STOP */
+#define _TIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for TIMER_STOP */
+#define _TIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP_DEFAULT (_TIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_CMD */
+
+/* Bit fields for TIMER STATUS */
+#define _TIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for TIMER_STATUS */
+#define _TIMER_STATUS_MASK 0x07070777UL /**< Mask for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING (0x1UL << 0) /**< Running */
+#define _TIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING_DEFAULT (_TIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR (0x1UL << 1) /**< Direction */
+#define _TIMER_STATUS_DIR_SHIFT 1 /**< Shift value for TIMER_DIR */
+#define _TIMER_STATUS_DIR_MASK 0x2UL /**< Bit mask for TIMER_DIR */
+#define _TIMER_STATUS_DIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_UP 0x00000000UL /**< Mode UP for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_DOWN 0x00000001UL /**< Mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DEFAULT (_TIMER_STATUS_DIR_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR_UP (_TIMER_STATUS_DIR_UP << 1) /**< Shifted mode UP for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DOWN (_TIMER_STATUS_DIR_DOWN << 1) /**< Shifted mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV (0x1UL << 2) /**< TOP Buffer Valid */
+#define _TIMER_STATUS_TOPBV_SHIFT 2 /**< Shift value for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_MASK 0x4UL /**< Bit mask for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV_DEFAULT (_TIMER_STATUS_TOPBV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS (0x1UL << 4) /**< Timer lock status */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_SHIFT 4 /**< Shift value for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_MASK 0x10UL /**< Bit mask for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT (_TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED << 4) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_LOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_LOCKED << 4) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS (0x1UL << 5) /**< DTI lock status */
+#define _TIMER_STATUS_DTILOCKSTATUS_SHIFT 5 /**< Shift value for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_MASK 0x20UL /**< Bit mask for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_DEFAULT (_TIMER_STATUS_DTILOCKSTATUS_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_UNLOCKED (_TIMER_STATUS_DTILOCKSTATUS_UNLOCKED << 5) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_LOCKED (_TIMER_STATUS_DTILOCKSTATUS_LOCKED << 5) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY (0x1UL << 6) /**< Sync Busy */
+#define _TIMER_STATUS_SYNCBUSY_SHIFT 6 /**< Shift value for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_MASK 0x40UL /**< Bit mask for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY_DEFAULT (_TIMER_STATUS_SYNCBUSY_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0 (0x1UL << 8) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV0_SHIFT 8 /**< Shift value for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_MASK 0x100UL /**< Bit mask for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0_DEFAULT (_TIMER_STATUS_OCBV0_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1 (0x1UL << 9) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV1_SHIFT 9 /**< Shift value for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_MASK 0x200UL /**< Bit mask for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1_DEFAULT (_TIMER_STATUS_OCBV1_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2 (0x1UL << 10) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV2_SHIFT 10 /**< Shift value for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_MASK 0x400UL /**< Bit mask for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2_DEFAULT (_TIMER_STATUS_OCBV2_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0 (0x1UL << 16) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY0_SHIFT 16 /**< Shift value for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_MASK 0x10000UL /**< Bit mask for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0_DEFAULT (_TIMER_STATUS_ICFEMPTY0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1 (0x1UL << 17) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY1_SHIFT 17 /**< Shift value for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_MASK 0x20000UL /**< Bit mask for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1_DEFAULT (_TIMER_STATUS_ICFEMPTY1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2 (0x1UL << 18) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY2_SHIFT 18 /**< Shift value for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_MASK 0x40000UL /**< Bit mask for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2_DEFAULT (_TIMER_STATUS_ICFEMPTY2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0 (0x1UL << 24) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL0_SHIFT 24 /**< Shift value for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_MASK 0x1000000UL /**< Bit mask for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_DEFAULT (_TIMER_STATUS_CCPOL0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_LOWRISE (_TIMER_STATUS_CCPOL0_LOWRISE << 24) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_HIGHFALL (_TIMER_STATUS_CCPOL0_HIGHFALL << 24) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1 (0x1UL << 25) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL1_SHIFT 25 /**< Shift value for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_MASK 0x2000000UL /**< Bit mask for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_DEFAULT (_TIMER_STATUS_CCPOL1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_LOWRISE (_TIMER_STATUS_CCPOL1_LOWRISE << 25) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_HIGHFALL (_TIMER_STATUS_CCPOL1_HIGHFALL << 25) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2 (0x1UL << 26) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL2_SHIFT 26 /**< Shift value for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_MASK 0x4000000UL /**< Bit mask for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_DEFAULT (_TIMER_STATUS_CCPOL2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_LOWRISE (_TIMER_STATUS_CCPOL2_LOWRISE << 26) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_HIGHFALL (_TIMER_STATUS_CCPOL2_HIGHFALL << 26) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+
+/* Bit fields for TIMER IF */
+#define _TIMER_IF_RESETVALUE 0x00000000UL /**< Default value for TIMER_IF */
+#define _TIMER_IF_MASK 0x07770077UL /**< Mask for TIMER_IF */
+#define TIMER_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _TIMER_IF_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IF_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_OF_DEFAULT (_TIMER_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF (0x1UL << 1) /**< Underflow Interrupt Flag */
+#define _TIMER_IF_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IF_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF_DEFAULT (_TIMER_IF_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Flag */
+#define _TIMER_IF_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG_DEFAULT (_TIMER_IF_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0 (0x1UL << 4) /**< Capture Compare Channel 0 Interrupt Flag */
+#define _TIMER_IF_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IF_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IF_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0_DEFAULT (_TIMER_IF_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1 (0x1UL << 5) /**< Capture Compare Channel 1 Interrupt Flag */
+#define _TIMER_IF_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IF_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IF_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1_DEFAULT (_TIMER_IF_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2 (0x1UL << 6) /**< Capture Compare Channel 2 Interrupt Flag */
+#define _TIMER_IF_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IF_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IF_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2_DEFAULT (_TIMER_IF_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0 (0x1UL << 16) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0_DEFAULT (_TIMER_IF_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1 (0x1UL << 17) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1_DEFAULT (_TIMER_IF_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2 (0x1UL << 18) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2_DEFAULT (_TIMER_IF_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0 (0x1UL << 20) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0_DEFAULT (_TIMER_IF_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1 (0x1UL << 21) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1_DEFAULT (_TIMER_IF_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2 (0x1UL << 22) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2_DEFAULT (_TIMER_IF_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0 (0x1UL << 24) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0_DEFAULT (_TIMER_IF_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1 (0x1UL << 25) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1_DEFAULT (_TIMER_IF_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2 (0x1UL << 26) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2_DEFAULT (_TIMER_IF_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IF */
+
+/* Bit fields for TIMER IEN */
+#define _TIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_IEN */
+#define _TIMER_IEN_MASK 0x07770077UL /**< Mask for TIMER_IEN */
+#define TIMER_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Enable */
+#define _TIMER_IEN_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IEN_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_OF_DEFAULT (_TIMER_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF (0x1UL << 1) /**< Underflow Interrupt Enable */
+#define _TIMER_IEN_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IEN_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF_DEFAULT (_TIMER_IEN_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Enable */
+#define _TIMER_IEN_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG_DEFAULT (_TIMER_IEN_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0 (0x1UL << 4) /**< CC0 Interrupt Enable */
+#define _TIMER_IEN_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IEN_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IEN_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0_DEFAULT (_TIMER_IEN_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1 (0x1UL << 5) /**< CC1 Interrupt Enable */
+#define _TIMER_IEN_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IEN_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IEN_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1_DEFAULT (_TIMER_IEN_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2 (0x1UL << 6) /**< CC2 Interrupt Enable */
+#define _TIMER_IEN_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IEN_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IEN_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2_DEFAULT (_TIMER_IEN_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0 (0x1UL << 16) /**< ICFWLFULL0 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0_DEFAULT (_TIMER_IEN_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1 (0x1UL << 17) /**< ICFWLFULL1 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1_DEFAULT (_TIMER_IEN_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2 (0x1UL << 18) /**< ICFWLFULL2 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2_DEFAULT (_TIMER_IEN_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0 (0x1UL << 20) /**< ICFOF0 Interrupt Enable */
+#define _TIMER_IEN_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0_DEFAULT (_TIMER_IEN_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1 (0x1UL << 21) /**< ICFOF1 Interrupt Enable */
+#define _TIMER_IEN_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1_DEFAULT (_TIMER_IEN_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2 (0x1UL << 22) /**< ICFOF2 Interrupt Enable */
+#define _TIMER_IEN_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2_DEFAULT (_TIMER_IEN_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0 (0x1UL << 24) /**< ICFUF0 Interrupt Enable */
+#define _TIMER_IEN_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0_DEFAULT (_TIMER_IEN_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1 (0x1UL << 25) /**< ICFUF1 Interrupt Enable */
+#define _TIMER_IEN_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1_DEFAULT (_TIMER_IEN_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2 (0x1UL << 26) /**< ICFUF2 Interrupt Enable */
+#define _TIMER_IEN_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2_DEFAULT (_TIMER_IEN_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IEN */
+
+/* Bit fields for TIMER TOP */
+#define _TIMER_TOP_RESETVALUE 0x0000FFFFUL /**< Default value for TIMER_TOP */
+#define _TIMER_TOP_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_SHIFT 0 /**< Shift value for TIMER_TOP */
+#define _TIMER_TOP_TOP_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for TIMER_TOP */
+#define TIMER_TOP_TOP_DEFAULT (_TIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOP */
+
+/* Bit fields for TIMER TOPB */
+#define _TIMER_TOPB_RESETVALUE 0x00000000UL /**< Default value for TIMER_TOPB */
+#define _TIMER_TOPB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_SHIFT 0 /**< Shift value for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_TOPB */
+#define TIMER_TOPB_TOPB_DEFAULT (_TIMER_TOPB_TOPB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOPB */
+
+/* Bit fields for TIMER CNT */
+#define _TIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for TIMER_CNT */
+#define _TIMER_CNT_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_SHIFT 0 /**< Shift value for TIMER_CNT */
+#define _TIMER_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CNT */
+#define TIMER_CNT_CNT_DEFAULT (_TIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CNT */
+
+/* Bit fields for TIMER LOCK */
+#define _TIMER_LOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_LOCK */
+#define _TIMER_LOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_DEFAULT (_TIMER_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_UNLOCK (_TIMER_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_LOCK */
+
+/* Bit fields for TIMER EN */
+#define _TIMER_EN_RESETVALUE 0x00000000UL /**< Default value for TIMER_EN */
+#define _TIMER_EN_MASK 0x00000001UL /**< Mask for TIMER_EN */
+#define TIMER_EN_EN (0x1UL << 0) /**< Timer Module Enable */
+#define _TIMER_EN_EN_SHIFT 0 /**< Shift value for TIMER_EN */
+#define _TIMER_EN_EN_MASK 0x1UL /**< Bit mask for TIMER_EN */
+#define _TIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_EN */
+#define TIMER_EN_EN_DEFAULT (_TIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_EN */
+
+/* Bit fields for TIMER CC_CFG */
+#define _TIMER_CC_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MASK 0x003E0013UL /**< Mask for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OFF 0x00000000UL /**< Mode OFF for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_INPUTCAPTURE 0x00000001UL /**< Mode INPUTCAPTURE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OUTPUTCOMPARE 0x00000002UL /**< Mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_PWM 0x00000003UL /**< Mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_DEFAULT (_TIMER_CC_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OFF (_TIMER_CC_CFG_MODE_OFF << 0) /**< Shifted mode OFF for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_INPUTCAPTURE (_TIMER_CC_CFG_MODE_INPUTCAPTURE << 0) /**< Shifted mode INPUTCAPTURE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OUTPUTCOMPARE (_TIMER_CC_CFG_MODE_OUTPUTCOMPARE << 0) /**< Shifted mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_PWM (_TIMER_CC_CFG_MODE_PWM << 0) /**< Shifted mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST (0x1UL << 4) /**< Compare Output Initial State */
+#define _TIMER_CC_CFG_COIST_SHIFT 4 /**< Shift value for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_MASK 0x10UL /**< Bit mask for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST_DEFAULT (_TIMER_CC_CFG_COIST_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_SHIFT 17 /**< Shift value for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_MASK 0x60000UL /**< Bit mask for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PIN 0x00000000UL /**< Mode PIN for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSSYNC 0x00000001UL /**< Mode PRSSYNC for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCLEVEL 0x00000002UL /**< Mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCPULSE 0x00000003UL /**< Mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_DEFAULT (_TIMER_CC_CFG_INSEL_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PIN (_TIMER_CC_CFG_INSEL_PIN << 17) /**< Shifted mode PIN for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSSYNC (_TIMER_CC_CFG_INSEL_PRSSYNC << 17) /**< Shifted mode PRSSYNC for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCLEVEL (_TIMER_CC_CFG_INSEL_PRSASYNCLEVEL << 17) /**< Shifted mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCPULSE (_TIMER_CC_CFG_INSEL_PRSASYNCPULSE << 17) /**< Shifted mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF (0x1UL << 19) /**< PRS Configuration */
+#define _TIMER_CC_CFG_PRSCONF_SHIFT 19 /**< Shift value for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_MASK 0x80000UL /**< Bit mask for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_PULSE 0x00000000UL /**< Mode PULSE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_LEVEL 0x00000001UL /**< Mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_DEFAULT (_TIMER_CC_CFG_PRSCONF_DEFAULT << 19) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_PULSE (_TIMER_CC_CFG_PRSCONF_PULSE << 19) /**< Shifted mode PULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_LEVEL (_TIMER_CC_CFG_PRSCONF_LEVEL << 19) /**< Shifted mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT (0x1UL << 20) /**< Digital Filter */
+#define _TIMER_CC_CFG_FILT_SHIFT 20 /**< Shift value for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_MASK 0x100000UL /**< Bit mask for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DEFAULT (_TIMER_CC_CFG_FILT_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DISABLE (_TIMER_CC_CFG_FILT_DISABLE << 20) /**< Shifted mode DISABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_ENABLE (_TIMER_CC_CFG_FILT_ENABLE << 20) /**< Shifted mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL (0x1UL << 21) /**< Input Capture FIFO watermark level */
+#define _TIMER_CC_CFG_ICFWL_SHIFT 21 /**< Shift value for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_MASK 0x200000UL /**< Bit mask for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL_DEFAULT (_TIMER_CC_CFG_ICFWL_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+
+/* Bit fields for TIMER CC_CTRL */
+#define _TIMER_CC_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_MASK 0x0F003F04UL /**< Mask for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV (0x1UL << 2) /**< Output Invert */
+#define _TIMER_CC_CTRL_OUTINV_SHIFT 2 /**< Shift value for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_MASK 0x4UL /**< Bit mask for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV_DEFAULT (_TIMER_CC_CTRL_OUTINV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SHIFT 8 /**< Shift value for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_MASK 0x300UL /**< Bit mask for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_DEFAULT (_TIMER_CC_CTRL_CMOA_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_NONE (_TIMER_CC_CTRL_CMOA_NONE << 8) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_TOGGLE (_TIMER_CC_CTRL_CMOA_TOGGLE << 8) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_CLEAR (_TIMER_CC_CTRL_CMOA_CLEAR << 8) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_SET (_TIMER_CC_CTRL_CMOA_SET << 8) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SHIFT 10 /**< Shift value for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_MASK 0xC00UL /**< Bit mask for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_DEFAULT (_TIMER_CC_CTRL_COFOA_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_NONE (_TIMER_CC_CTRL_COFOA_NONE << 10) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_TOGGLE (_TIMER_CC_CTRL_COFOA_TOGGLE << 10) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_CLEAR (_TIMER_CC_CTRL_COFOA_CLEAR << 10) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_SET (_TIMER_CC_CTRL_COFOA_SET << 10) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SHIFT 12 /**< Shift value for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_MASK 0x3000UL /**< Bit mask for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_DEFAULT (_TIMER_CC_CTRL_CUFOA_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_NONE (_TIMER_CC_CTRL_CUFOA_NONE << 12) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_TOGGLE (_TIMER_CC_CTRL_CUFOA_TOGGLE << 12) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_CLEAR (_TIMER_CC_CTRL_CUFOA_CLEAR << 12) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_SET (_TIMER_CC_CTRL_CUFOA_SET << 12) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_SHIFT 24 /**< Shift value for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_MASK 0x3000000UL /**< Bit mask for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_RISING 0x00000000UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_FALLING 0x00000001UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_BOTH 0x00000002UL /**< Mode BOTH for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_NONE 0x00000003UL /**< Mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_DEFAULT (_TIMER_CC_CTRL_ICEDGE_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_RISING (_TIMER_CC_CTRL_ICEDGE_RISING << 24) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_FALLING (_TIMER_CC_CTRL_ICEDGE_FALLING << 24) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_BOTH (_TIMER_CC_CTRL_ICEDGE_BOTH << 24) /**< Shifted mode BOTH for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_NONE (_TIMER_CC_CTRL_ICEDGE_NONE << 24) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_SHIFT 26 /**< Shift value for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_MASK 0xC000000UL /**< Bit mask for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE 0x00000000UL /**< Mode EVERYEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE 0x00000001UL /**< Mode EVERYSECONDEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_RISING 0x00000002UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_FALLING 0x00000003UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_DEFAULT (_TIMER_CC_CTRL_ICEVCTRL_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE << 26) /**< Shifted mode EVERYEDGE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE << 26) /**< Shifted mode EVERYSECONDEDGE for TIMER_CC_CTRL*/
+#define TIMER_CC_CTRL_ICEVCTRL_RISING (_TIMER_CC_CTRL_ICEVCTRL_RISING << 26) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_FALLING (_TIMER_CC_CTRL_ICEVCTRL_FALLING << 26) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+
+/* Bit fields for TIMER CC_OC */
+#define _TIMER_CC_OC_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OC */
+#define _TIMER_CC_OC_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OC */
+#define _TIMER_CC_OC_OC_SHIFT 0 /**< Shift value for TIMER_OC */
+#define _TIMER_CC_OC_OC_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OC */
+#define _TIMER_CC_OC_OC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OC */
+#define TIMER_CC_OC_OC_DEFAULT (_TIMER_CC_OC_OC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OC */
+
+/* Bit fields for TIMER CC_OCB */
+#define _TIMER_CC_OCB_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_OCB_SHIFT 0 /**< Shift value for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OCB */
+#define TIMER_CC_OCB_OCB_DEFAULT (_TIMER_CC_OCB_OCB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OCB */
+
+/* Bit fields for TIMER CC_ICF */
+#define _TIMER_CC_ICF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_ICF_SHIFT 0 /**< Shift value for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICF */
+#define TIMER_CC_ICF_ICF_DEFAULT (_TIMER_CC_ICF_ICF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICF */
+
+/* Bit fields for TIMER CC_ICOF */
+#define _TIMER_CC_ICOF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_ICOF_SHIFT 0 /**< Shift value for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICOF */
+#define TIMER_CC_ICOF_ICOF_DEFAULT (_TIMER_CC_ICOF_ICOF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICOF */
+
+/* Bit fields for TIMER DTCFG */
+#define _TIMER_DTCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCFG */
+#define _TIMER_DTCFG_MASK 0x00000E03UL /**< Mask for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN (0x1UL << 0) /**< DTI Enable */
+#define _TIMER_DTCFG_DTEN_SHIFT 0 /**< Shift value for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_MASK 0x1UL /**< Bit mask for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN_DEFAULT (_TIMER_DTCFG_DTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS (0x1UL << 1) /**< DTI Automatic Start-up Functionality */
+#define _TIMER_DTCFG_DTDAS_SHIFT 1 /**< Shift value for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_MASK 0x2UL /**< Bit mask for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_NORESTART 0x00000000UL /**< Mode NORESTART for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_RESTART 0x00000001UL /**< Mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_DEFAULT (_TIMER_DTCFG_DTDAS_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_NORESTART (_TIMER_DTCFG_DTDAS_NORESTART << 1) /**< Shifted mode NORESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_RESTART (_TIMER_DTCFG_DTDAS_RESTART << 1) /**< Shifted mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR (0x1UL << 9) /**< DTI Always Run */
+#define _TIMER_DTCFG_DTAR_SHIFT 9 /**< Shift value for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_MASK 0x200UL /**< Bit mask for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR_DEFAULT (_TIMER_DTCFG_DTAR_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS (0x1UL << 10) /**< DTI Fault Action on Timer Stop */
+#define _TIMER_DTCFG_DTFATS_SHIFT 10 /**< Shift value for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_MASK 0x400UL /**< Bit mask for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS_DEFAULT (_TIMER_DTCFG_DTFATS_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN (0x1UL << 11) /**< DTI PRS Source Enable */
+#define _TIMER_DTCFG_DTPRSEN_SHIFT 11 /**< Shift value for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_MASK 0x800UL /**< Bit mask for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN_DEFAULT (_TIMER_DTCFG_DTPRSEN_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+
+/* Bit fields for TIMER DTTIMECFG */
+#define _TIMER_DTTIMECFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_MASK 0x003FFFFFUL /**< Mask for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTPRESC_SHIFT 0 /**< Shift value for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_MASK 0x3FFUL /**< Bit mask for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTPRESC_DEFAULT (_TIMER_DTTIMECFG_DTPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTRISET_SHIFT 10 /**< Shift value for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_MASK 0xFC00UL /**< Bit mask for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTRISET_DEFAULT (_TIMER_DTTIMECFG_DTRISET_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTFALLT_SHIFT 16 /**< Shift value for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_MASK 0x3F0000UL /**< Bit mask for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTFALLT_DEFAULT (_TIMER_DTTIMECFG_DTFALLT_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+
+/* Bit fields for TIMER DTFCFG */
+#define _TIMER_DTFCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_MASK 0x1F030000UL /**< Mask for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_SHIFT 16 /**< Shift value for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_MASK 0x30000UL /**< Bit mask for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_NONE 0x00000000UL /**< Mode NONE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_INACTIVE 0x00000001UL /**< Mode INACTIVE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_TRISTATE 0x00000003UL /**< Mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_DEFAULT (_TIMER_DTFCFG_DTFA_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_NONE (_TIMER_DTFCFG_DTFA_NONE << 16) /**< Shifted mode NONE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_INACTIVE (_TIMER_DTFCFG_DTFA_INACTIVE << 16) /**< Shifted mode INACTIVE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_CLEAR (_TIMER_DTFCFG_DTFA_CLEAR << 16) /**< Shifted mode CLEAR for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_TRISTATE (_TIMER_DTFCFG_DTFA_TRISTATE << 16) /**< Shifted mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN (0x1UL << 24) /**< DTI PRS 0 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS0FEN_SHIFT 24 /**< Shift value for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_MASK 0x1000000UL /**< Bit mask for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN_DEFAULT (_TIMER_DTFCFG_DTPRS0FEN_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN (0x1UL << 25) /**< DTI PRS 1 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS1FEN_SHIFT 25 /**< Shift value for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_MASK 0x2000000UL /**< Bit mask for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN_DEFAULT (_TIMER_DTFCFG_DTPRS1FEN_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN (0x1UL << 26) /**< DTI Debugger Fault Enable */
+#define _TIMER_DTFCFG_DTDBGFEN_SHIFT 26 /**< Shift value for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_MASK 0x4000000UL /**< Bit mask for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN_DEFAULT (_TIMER_DTFCFG_DTDBGFEN_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN (0x1UL << 27) /**< DTI Lockup Fault Enable */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_SHIFT 27 /**< Shift value for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_MASK 0x8000000UL /**< Bit mask for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT (_TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT << 27) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN (0x1UL << 28) /**< DTI EM23 Fault Enable */
+#define _TIMER_DTFCFG_DTEM23FEN_SHIFT 28 /**< Shift value for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_MASK 0x10000000UL /**< Bit mask for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN_DEFAULT (_TIMER_DTFCFG_DTEM23FEN_DEFAULT << 28) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+
+/* Bit fields for TIMER DTCTRL */
+#define _TIMER_DTCTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCTRL */
+#define _TIMER_DTCTRL_MASK 0x00000003UL /**< Mask for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV (0x1UL << 0) /**< DTI Complementary Output Invert. */
+#define _TIMER_DTCTRL_DTCINV_SHIFT 0 /**< Shift value for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_MASK 0x1UL /**< Bit mask for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV_DEFAULT (_TIMER_DTCTRL_DTCINV_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL (0x1UL << 1) /**< DTI Inactive Polarity */
+#define _TIMER_DTCTRL_DTIPOL_SHIFT 1 /**< Shift value for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_MASK 0x2UL /**< Bit mask for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL_DEFAULT (_TIMER_DTCTRL_DTIPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+
+/* Bit fields for TIMER DTOGEN */
+#define _TIMER_DTOGEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTOGEN */
+#define _TIMER_DTOGEN_MASK 0x0000003FUL /**< Mask for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN (0x1UL << 0) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC0EN_SHIFT 0 /**< Shift value for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_MASK 0x1UL /**< Bit mask for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN_DEFAULT (_TIMER_DTOGEN_DTOGCC0EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN (0x1UL << 1) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC1EN_SHIFT 1 /**< Shift value for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_MASK 0x2UL /**< Bit mask for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN_DEFAULT (_TIMER_DTOGEN_DTOGCC1EN_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN (0x1UL << 2) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC2EN_SHIFT 2 /**< Shift value for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_MASK 0x4UL /**< Bit mask for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN_DEFAULT (_TIMER_DTOGEN_DTOGCC2EN_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN (0x1UL << 3) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_SHIFT 3 /**< Shift value for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_MASK 0x8UL /**< Bit mask for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN (0x1UL << 4) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_SHIFT 4 /**< Shift value for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_MASK 0x10UL /**< Bit mask for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN (0x1UL << 5) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_SHIFT 5 /**< Shift value for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_MASK 0x20UL /**< Bit mask for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+
+/* Bit fields for TIMER DTFAULT */
+#define _TIMER_DTFAULT_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULT */
+#define _TIMER_DTFAULT_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F (0x1UL << 0) /**< DTI PRS 0 Fault */
+#define _TIMER_DTFAULT_DTPRS0F_SHIFT 0 /**< Shift value for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F_DEFAULT (_TIMER_DTFAULT_DTPRS0F_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F (0x1UL << 1) /**< DTI PRS 1 Fault */
+#define _TIMER_DTFAULT_DTPRS1F_SHIFT 1 /**< Shift value for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F_DEFAULT (_TIMER_DTFAULT_DTPRS1F_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF (0x1UL << 2) /**< DTI Debugger Fault */
+#define _TIMER_DTFAULT_DTDBGF_SHIFT 2 /**< Shift value for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_MASK 0x4UL /**< Bit mask for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF_DEFAULT (_TIMER_DTFAULT_DTDBGF_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF (0x1UL << 3) /**< DTI Lockup Fault */
+#define _TIMER_DTFAULT_DTLOCKUPF_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF_DEFAULT (_TIMER_DTFAULT_DTLOCKUPF_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F (0x1UL << 4) /**< DTI EM23 Entry Fault */
+#define _TIMER_DTFAULT_DTEM23F_SHIFT 4 /**< Shift value for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_MASK 0x10UL /**< Bit mask for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F_DEFAULT (_TIMER_DTFAULT_DTEM23F_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+
+/* Bit fields for TIMER DTFAULTC */
+#define _TIMER_DTFAULTC_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULTC */
+#define _TIMER_DTFAULTC_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC (0x1UL << 0) /**< DTI PRS0 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS0FC_SHIFT 0 /**< Shift value for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC_DEFAULT (_TIMER_DTFAULTC_DTPRS0FC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC (0x1UL << 1) /**< DTI PRS1 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS1FC_SHIFT 1 /**< Shift value for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC_DEFAULT (_TIMER_DTFAULTC_DTPRS1FC_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC (0x1UL << 2) /**< DTI Debugger Fault Clear */
+#define _TIMER_DTFAULTC_DTDBGFC_SHIFT 2 /**< Shift value for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_MASK 0x4UL /**< Bit mask for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC_DEFAULT (_TIMER_DTFAULTC_DTDBGFC_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC (0x1UL << 3) /**< DTI Lockup Fault Clear */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT (_TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC (0x1UL << 4) /**< DTI EM23 Fault Clear */
+#define _TIMER_DTFAULTC_DTEM23FC_SHIFT 4 /**< Shift value for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_MASK 0x10UL /**< Bit mask for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC_DEFAULT (_TIMER_DTFAULTC_DTEM23FC_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+
+/* Bit fields for TIMER DTLOCK */
+#define _TIMER_DTLOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_SHIFT 0 /**< Shift value for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_DEFAULT (_TIMER_DTLOCK_DTILOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_UNLOCK (_TIMER_DTLOCK_DTILOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_DTLOCK */
+
+/** @} End of group EFR32BG29_TIMER_BitFields */
+/** @} End of group EFR32BG29_TIMER */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_TIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ulfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ulfrco.h
new file mode 100644
index 000000000..55207fca9
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_ulfrco.h
@@ -0,0 +1,147 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 ULFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_ULFRCO_H
+#define EFR32BG29_ULFRCO_H
+#define ULFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_ULFRCO ULFRCO
+ * @{
+ * @brief EFR32BG29 ULFRCO Register Declaration.
+ *****************************************************************************/
+
+/** ULFRCO Register Declaration. */
+typedef struct ulfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED8[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED10[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} ULFRCO_TypeDef;
+/** @} End of group EFR32BG29_ULFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_ULFRCO
+ * @{
+ * @defgroup EFR32BG29_ULFRCO_BitFields ULFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ULFRCO IPVERSION */
+#define _ULFRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IPVERSION */
+#define ULFRCO_IPVERSION_IPVERSION_DEFAULT (_ULFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IPVERSION */
+
+/* Bit fields for ULFRCO STATUS */
+#define _ULFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_STATUS */
+#define _ULFRCO_STATUS_MASK 0x00010001UL /**< Mask for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _ULFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY_DEFAULT (_ULFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _ULFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS_DEFAULT (_ULFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+
+/* Bit fields for ULFRCO IF */
+#define _ULFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IF */
+#define _ULFRCO_IF_MASK 0x00000007UL /**< Mask for ULFRCO_IF */
+#define ULFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _ULFRCO_IF_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_RDY_DEFAULT (_ULFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE (0x1UL << 1) /**< Positive Edge Interrupt Flag */
+#define _ULFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE_DEFAULT (_ULFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE (0x1UL << 2) /**< Negative Edge Interrupt Flag */
+#define _ULFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE_DEFAULT (_ULFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IF */
+
+/* Bit fields for ULFRCO IEN */
+#define _ULFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IEN */
+#define _ULFRCO_IEN_MASK 0x00000007UL /**< Mask for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY (0x1UL << 0) /**< Enable Ready Interrupt */
+#define _ULFRCO_IEN_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY_DEFAULT (_ULFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE (0x1UL << 1) /**< Enable Positive Edge Interrupt */
+#define _ULFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE_DEFAULT (_ULFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Enable Negative Edge Interrupt */
+#define _ULFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE_DEFAULT (_ULFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+
+/** @} End of group EFR32BG29_ULFRCO_BitFields */
+/** @} End of group EFR32BG29_ULFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_ULFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_usart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_usart.h
new file mode 100644
index 000000000..7d7601bf7
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_usart.h
@@ -0,0 +1,1431 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 USART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_USART_H
+#define EFR32BG29_USART_H
+#define USART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_USART USART
+ * @{
+ * @brief EFR32BG29 USART Register Declaration.
+ *****************************************************************************/
+
+/** USART Register Declaration. */
+typedef struct usart_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< USART Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t FRAME; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< USART Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Control Register */
+ __IM uint32_t RXDATAX; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL; /**< I2S Control Register */
+ __IOM uint32_t TIMING; /**< Timing Register */
+ __IOM uint32_t CTRLX; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2; /**< Timer Compare 2 */
+ uint32_t RESERVED0[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< USART Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t FRAME_SET; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_SET; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_SET; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_SET; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_SET; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_SET; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_SET; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_SET; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_SET; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_SET; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_SET; /**< I2S Control Register */
+ __IOM uint32_t TIMING_SET; /**< Timing Register */
+ __IOM uint32_t CTRLX_SET; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_SET; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_SET; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_SET; /**< Timer Compare 2 */
+ uint32_t RESERVED1[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< USART Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t FRAME_CLR; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_CLR; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_CLR; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_CLR; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_CLR; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_CLR; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_CLR; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_CLR; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_CLR; /**< I2S Control Register */
+ __IOM uint32_t TIMING_CLR; /**< Timing Register */
+ __IOM uint32_t CTRLX_CLR; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_CLR; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_CLR; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_CLR; /**< Timer Compare 2 */
+ uint32_t RESERVED2[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< USART Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t FRAME_TGL; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_TGL; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_TGL; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_TGL; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_TGL; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_TGL; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_TGL; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_TGL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_TGL; /**< I2S Control Register */
+ __IOM uint32_t TIMING_TGL; /**< Timing Register */
+ __IOM uint32_t CTRLX_TGL; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_TGL; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_TGL; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_TGL; /**< Timer Compare 2 */
+} USART_TypeDef;
+/** @} End of group EFR32BG29_USART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_USART
+ * @{
+ * @defgroup EFR32BG29_USART_BitFields USART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for USART IPVERSION */
+#define _USART_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for USART_IPVERSION */
+#define _USART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IPVERSION */
+#define USART_IPVERSION_IPVERSION_DEFAULT (_USART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IPVERSION */
+
+/* Bit fields for USART EN */
+#define _USART_EN_RESETVALUE 0x00000000UL /**< Default value for USART_EN */
+#define _USART_EN_MASK 0x00000001UL /**< Mask for USART_EN */
+#define USART_EN_EN (0x1UL << 0) /**< USART Enable */
+#define _USART_EN_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_EN_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_EN */
+#define USART_EN_EN_DEFAULT (_USART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_EN */
+
+/* Bit fields for USART CTRL */
+#define _USART_CTRL_RESETVALUE 0x00000000UL /**< Default value for USART_CTRL */
+#define _USART_CTRL_MASK 0xF3FFFF7FUL /**< Mask for USART_CTRL */
+#define USART_CTRL_SYNC (0x1UL << 0) /**< USART Synchronous Mode */
+#define _USART_CTRL_SYNC_SHIFT 0 /**< Shift value for USART_SYNC */
+#define _USART_CTRL_SYNC_MASK 0x1UL /**< Bit mask for USART_SYNC */
+#define _USART_CTRL_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_SYNC_DEFAULT (_USART_CTRL_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SYNC_DISABLE (_USART_CTRL_SYNC_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_SYNC_ENABLE (_USART_CTRL_SYNC_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _USART_CTRL_LOOPBK_SHIFT 1 /**< Shift value for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_MASK 0x2UL /**< Bit mask for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_DEFAULT (_USART_CTRL_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_LOOPBK_DISABLE (_USART_CTRL_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_ENABLE (_USART_CTRL_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _USART_CTRL_CCEN_SHIFT 2 /**< Shift value for USART_CCEN */
+#define _USART_CTRL_CCEN_MASK 0x4UL /**< Bit mask for USART_CCEN */
+#define _USART_CTRL_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN_DEFAULT (_USART_CTRL_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CCEN_DISABLE (_USART_CTRL_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CCEN_ENABLE (_USART_CTRL_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _USART_CTRL_MPM_SHIFT 3 /**< Shift value for USART_MPM */
+#define _USART_CTRL_MPM_MASK 0x8UL /**< Bit mask for USART_MPM */
+#define _USART_CTRL_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM_DEFAULT (_USART_CTRL_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPM_DISABLE (_USART_CTRL_MPM_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MPM_ENABLE (_USART_CTRL_MPM_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _USART_CTRL_MPAB_SHIFT 4 /**< Shift value for USART_MPAB */
+#define _USART_CTRL_MPAB_MASK 0x10UL /**< Bit mask for USART_MPAB */
+#define _USART_CTRL_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPAB_DEFAULT (_USART_CTRL_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_SHIFT 5 /**< Shift value for USART_OVS */
+#define _USART_CTRL_OVS_MASK 0x60UL /**< Bit mask for USART_OVS */
+#define _USART_CTRL_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_X16 0x00000000UL /**< Mode X16 for USART_CTRL */
+#define _USART_CTRL_OVS_X8 0x00000001UL /**< Mode X8 for USART_CTRL */
+#define _USART_CTRL_OVS_X6 0x00000002UL /**< Mode X6 for USART_CTRL */
+#define _USART_CTRL_OVS_X4 0x00000003UL /**< Mode X4 for USART_CTRL */
+#define USART_CTRL_OVS_DEFAULT (_USART_CTRL_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_OVS_X16 (_USART_CTRL_OVS_X16 << 5) /**< Shifted mode X16 for USART_CTRL */
+#define USART_CTRL_OVS_X8 (_USART_CTRL_OVS_X8 << 5) /**< Shifted mode X8 for USART_CTRL */
+#define USART_CTRL_OVS_X6 (_USART_CTRL_OVS_X6 << 5) /**< Shifted mode X6 for USART_CTRL */
+#define USART_CTRL_OVS_X4 (_USART_CTRL_OVS_X4 << 5) /**< Shifted mode X4 for USART_CTRL */
+#define USART_CTRL_CLKPOL (0x1UL << 8) /**< Clock Polarity */
+#define _USART_CTRL_CLKPOL_SHIFT 8 /**< Shift value for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_MASK 0x100UL /**< Bit mask for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPOL_DEFAULT (_USART_CTRL_CLKPOL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLELOW (_USART_CTRL_CLKPOL_IDLELOW << 8) /**< Shifted mode IDLELOW for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLEHIGH (_USART_CTRL_CLKPOL_IDLEHIGH << 8) /**< Shifted mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPHA (0x1UL << 9) /**< Clock Edge For Setup/Sample */
+#define _USART_CTRL_CLKPHA_SHIFT 9 /**< Shift value for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_MASK 0x200UL /**< Bit mask for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_CLKPHA_DEFAULT (_USART_CTRL_CLKPHA_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLELEADING (_USART_CTRL_CLKPHA_SAMPLELEADING << 9) /**< Shifted mode SAMPLELEADING for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLETRAILING (_USART_CTRL_CLKPHA_SAMPLETRAILING << 9) /**< Shifted mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _USART_CTRL_MSBF_SHIFT 10 /**< Shift value for USART_MSBF */
+#define _USART_CTRL_MSBF_MASK 0x400UL /**< Bit mask for USART_MSBF */
+#define _USART_CTRL_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MSBF_DEFAULT (_USART_CTRL_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MSBF_DISABLE (_USART_CTRL_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MSBF_ENABLE (_USART_CTRL_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSMA (0x1UL << 11) /**< Action On Chip Select In Main Mode */
+#define _USART_CTRL_CSMA_SHIFT 11 /**< Shift value for USART_CSMA */
+#define _USART_CTRL_CSMA_MASK 0x800UL /**< Bit mask for USART_CSMA */
+#define _USART_CTRL_CSMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSMA_NOACTION 0x00000000UL /**< Mode NOACTION for USART_CTRL */
+#define _USART_CTRL_CSMA_GOTOSLAVEMODE 0x00000001UL /**< Mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_CSMA_DEFAULT (_USART_CTRL_CSMA_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSMA_NOACTION (_USART_CTRL_CSMA_NOACTION << 11) /**< Shifted mode NOACTION for USART_CTRL */
+#define USART_CTRL_CSMA_GOTOSLAVEMODE (_USART_CTRL_CSMA_GOTOSLAVEMODE << 11) /**< Shifted mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_TXBIL (0x1UL << 12) /**< TX Buffer Interrupt Level */
+#define _USART_CTRL_TXBIL_SHIFT 12 /**< Shift value for USART_TXBIL */
+#define _USART_CTRL_TXBIL_MASK 0x1000UL /**< Bit mask for USART_TXBIL */
+#define _USART_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for USART_CTRL */
+#define _USART_CTRL_TXBIL_HALFFULL 0x00000001UL /**< Mode HALFFULL for USART_CTRL */
+#define USART_CTRL_TXBIL_DEFAULT (_USART_CTRL_TXBIL_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXBIL_EMPTY (_USART_CTRL_TXBIL_EMPTY << 12) /**< Shifted mode EMPTY for USART_CTRL */
+#define USART_CTRL_TXBIL_HALFFULL (_USART_CTRL_TXBIL_HALFFULL << 12) /**< Shifted mode HALFFULL for USART_CTRL */
+#define USART_CTRL_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _USART_CTRL_RXINV_SHIFT 13 /**< Shift value for USART_RXINV */
+#define _USART_CTRL_RXINV_MASK 0x2000UL /**< Bit mask for USART_RXINV */
+#define _USART_CTRL_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_RXINV_DEFAULT (_USART_CTRL_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_RXINV_DISABLE (_USART_CTRL_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_RXINV_ENABLE (_USART_CTRL_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _USART_CTRL_TXINV_SHIFT 14 /**< Shift value for USART_TXINV */
+#define _USART_CTRL_TXINV_MASK 0x4000UL /**< Bit mask for USART_TXINV */
+#define _USART_CTRL_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV_DEFAULT (_USART_CTRL_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXINV_DISABLE (_USART_CTRL_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_TXINV_ENABLE (_USART_CTRL_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV (0x1UL << 15) /**< Chip Select Invert */
+#define _USART_CTRL_CSINV_SHIFT 15 /**< Shift value for USART_CSINV */
+#define _USART_CTRL_CSINV_MASK 0x8000UL /**< Bit mask for USART_CSINV */
+#define _USART_CTRL_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV_DEFAULT (_USART_CTRL_CSINV_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSINV_DISABLE (_USART_CTRL_CSINV_DISABLE << 15) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CSINV_ENABLE (_USART_CTRL_CSINV_ENABLE << 15) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOCS (0x1UL << 16) /**< Automatic Chip Select */
+#define _USART_CTRL_AUTOCS_SHIFT 16 /**< Shift value for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_MASK 0x10000UL /**< Bit mask for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOCS_DEFAULT (_USART_CTRL_AUTOCS_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _USART_CTRL_AUTOTRI_SHIFT 17 /**< Shift value for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_MASK 0x20000UL /**< Bit mask for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DEFAULT (_USART_CTRL_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DISABLE (_USART_CTRL_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_ENABLE (_USART_CTRL_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SCMODE (0x1UL << 18) /**< SmartCard Mode */
+#define _USART_CTRL_SCMODE_SHIFT 18 /**< Shift value for USART_SCMODE */
+#define _USART_CTRL_SCMODE_MASK 0x40000UL /**< Bit mask for USART_SCMODE */
+#define _USART_CTRL_SCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCMODE_DEFAULT (_USART_CTRL_SCMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS (0x1UL << 19) /**< SmartCard Retransmit */
+#define _USART_CTRL_SCRETRANS_SHIFT 19 /**< Shift value for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_MASK 0x80000UL /**< Bit mask for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS_DEFAULT (_USART_CTRL_SCRETRANS_DEFAULT << 19) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _USART_CTRL_SKIPPERRF_SHIFT 20 /**< Shift value for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_MASK 0x100000UL /**< Bit mask for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF_DEFAULT (_USART_CTRL_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV (0x1UL << 21) /**< Bit 8 Default Value */
+#define _USART_CTRL_BIT8DV_SHIFT 21 /**< Shift value for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_MASK 0x200000UL /**< Bit mask for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV_DEFAULT (_USART_CTRL_BIT8DV_DEFAULT << 21) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA (0x1UL << 22) /**< Halt DMA On Error */
+#define _USART_CTRL_ERRSDMA_SHIFT 22 /**< Shift value for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_MASK 0x400000UL /**< Bit mask for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DEFAULT (_USART_CTRL_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DISABLE (_USART_CTRL_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_ENABLE (_USART_CTRL_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _USART_CTRL_ERRSRX_SHIFT 23 /**< Shift value for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_MASK 0x800000UL /**< Bit mask for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_DEFAULT (_USART_CTRL_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSRX_DISABLE (_USART_CTRL_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_ENABLE (_USART_CTRL_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _USART_CTRL_ERRSTX_SHIFT 24 /**< Shift value for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_MASK 0x1000000UL /**< Bit mask for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_DEFAULT (_USART_CTRL_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSTX_DISABLE (_USART_CTRL_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_ENABLE (_USART_CTRL_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SSSEARLY (0x1UL << 25) /**< Synchronous Secondary Setup Early */
+#define _USART_CTRL_SSSEARLY_SHIFT 25 /**< Shift value for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_MASK 0x2000000UL /**< Bit mask for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SSSEARLY_DEFAULT (_USART_CTRL_SSSEARLY_DEFAULT << 25) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP (0x1UL << 28) /**< Byteswap In Double Accesses */
+#define _USART_CTRL_BYTESWAP_SHIFT 28 /**< Shift value for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_MASK 0x10000000UL /**< Bit mask for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DEFAULT (_USART_CTRL_BYTESWAP_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DISABLE (_USART_CTRL_BYTESWAP_DISABLE << 28) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_ENABLE (_USART_CTRL_BYTESWAP_ENABLE << 28) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTX (0x1UL << 29) /**< Always Transmit When RX Not Full */
+#define _USART_CTRL_AUTOTX_SHIFT 29 /**< Shift value for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_MASK 0x20000000UL /**< Bit mask for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTX_DEFAULT (_USART_CTRL_AUTOTX_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _USART_CTRL_MVDIS_SHIFT 30 /**< Shift value for USART_MVDIS */
+#define _USART_CTRL_MVDIS_MASK 0x40000000UL /**< Bit mask for USART_MVDIS */
+#define _USART_CTRL_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS_DEFAULT (_USART_CTRL_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY (0x1UL << 31) /**< Synchronous Main Sample Delay */
+#define _USART_CTRL_SMSDELAY_SHIFT 31 /**< Shift value for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_MASK 0x80000000UL /**< Bit mask for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY_DEFAULT (_USART_CTRL_SMSDELAY_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CTRL */
+
+/* Bit fields for USART FRAME */
+#define _USART_FRAME_RESETVALUE 0x00001005UL /**< Default value for USART_FRAME */
+#define _USART_FRAME_MASK 0x0000330FUL /**< Mask for USART_FRAME */
+#define _USART_FRAME_DATABITS_SHIFT 0 /**< Shift value for USART_DATABITS */
+#define _USART_FRAME_DATABITS_MASK 0xFUL /**< Bit mask for USART_DATABITS */
+#define _USART_FRAME_DATABITS_DEFAULT 0x00000005UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOUR 0x00000001UL /**< Mode FOUR for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIVE 0x00000002UL /**< Mode FIVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIX 0x00000003UL /**< Mode SIX for USART_FRAME */
+#define _USART_FRAME_DATABITS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_EIGHT 0x00000005UL /**< Mode EIGHT for USART_FRAME */
+#define _USART_FRAME_DATABITS_NINE 0x00000006UL /**< Mode NINE for USART_FRAME */
+#define _USART_FRAME_DATABITS_TEN 0x00000007UL /**< Mode TEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_ELEVEN 0x00000008UL /**< Mode ELEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_TWELVE 0x00000009UL /**< Mode TWELVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_THIRTEEN 0x0000000AUL /**< Mode THIRTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOURTEEN 0x0000000BUL /**< Mode FOURTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIFTEEN 0x0000000CUL /**< Mode FIFTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIXTEEN 0x0000000DUL /**< Mode SIXTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_DEFAULT (_USART_FRAME_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_DATABITS_FOUR (_USART_FRAME_DATABITS_FOUR << 0) /**< Shifted mode FOUR for USART_FRAME */
+#define USART_FRAME_DATABITS_FIVE (_USART_FRAME_DATABITS_FIVE << 0) /**< Shifted mode FIVE for USART_FRAME */
+#define USART_FRAME_DATABITS_SIX (_USART_FRAME_DATABITS_SIX << 0) /**< Shifted mode SIX for USART_FRAME */
+#define USART_FRAME_DATABITS_SEVEN (_USART_FRAME_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_EIGHT (_USART_FRAME_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for USART_FRAME */
+#define USART_FRAME_DATABITS_NINE (_USART_FRAME_DATABITS_NINE << 0) /**< Shifted mode NINE for USART_FRAME */
+#define USART_FRAME_DATABITS_TEN (_USART_FRAME_DATABITS_TEN << 0) /**< Shifted mode TEN for USART_FRAME */
+#define USART_FRAME_DATABITS_ELEVEN (_USART_FRAME_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_TWELVE (_USART_FRAME_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for USART_FRAME */
+#define USART_FRAME_DATABITS_THIRTEEN (_USART_FRAME_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FOURTEEN (_USART_FRAME_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FIFTEEN (_USART_FRAME_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_SIXTEEN (_USART_FRAME_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for USART_FRAME */
+#define _USART_FRAME_PARITY_SHIFT 8 /**< Shift value for USART_PARITY */
+#define _USART_FRAME_PARITY_MASK 0x300UL /**< Bit mask for USART_PARITY */
+#define _USART_FRAME_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_PARITY_NONE 0x00000000UL /**< Mode NONE for USART_FRAME */
+#define _USART_FRAME_PARITY_EVEN 0x00000002UL /**< Mode EVEN for USART_FRAME */
+#define _USART_FRAME_PARITY_ODD 0x00000003UL /**< Mode ODD for USART_FRAME */
+#define USART_FRAME_PARITY_DEFAULT (_USART_FRAME_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_PARITY_NONE (_USART_FRAME_PARITY_NONE << 8) /**< Shifted mode NONE for USART_FRAME */
+#define USART_FRAME_PARITY_EVEN (_USART_FRAME_PARITY_EVEN << 8) /**< Shifted mode EVEN for USART_FRAME */
+#define USART_FRAME_PARITY_ODD (_USART_FRAME_PARITY_ODD << 8) /**< Shifted mode ODD for USART_FRAME */
+#define _USART_FRAME_STOPBITS_SHIFT 12 /**< Shift value for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_MASK 0x3000UL /**< Bit mask for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_STOPBITS_HALF 0x00000000UL /**< Mode HALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONE 0x00000001UL /**< Mode ONE for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_TWO 0x00000003UL /**< Mode TWO for USART_FRAME */
+#define USART_FRAME_STOPBITS_DEFAULT (_USART_FRAME_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_STOPBITS_HALF (_USART_FRAME_STOPBITS_HALF << 12) /**< Shifted mode HALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONE (_USART_FRAME_STOPBITS_ONE << 12) /**< Shifted mode ONE for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONEANDAHALF (_USART_FRAME_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_TWO (_USART_FRAME_STOPBITS_TWO << 12) /**< Shifted mode TWO for USART_FRAME */
+
+/* Bit fields for USART TRIGCTRL */
+#define _USART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_TRIGCTRL */
+#define _USART_TRIGCTRL_MASK 0x00001FF0UL /**< Mask for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN (0x1UL << 4) /**< Receive Trigger Enable */
+#define _USART_TRIGCTRL_RXTEN_SHIFT 4 /**< Shift value for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_MASK 0x10UL /**< Bit mask for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN_DEFAULT (_USART_TRIGCTRL_RXTEN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN (0x1UL << 5) /**< Transmit Trigger Enable */
+#define _USART_TRIGCTRL_TXTEN_SHIFT 5 /**< Shift value for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_MASK 0x20UL /**< Bit mask for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN_DEFAULT (_USART_TRIGCTRL_TXTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN (0x1UL << 6) /**< AUTOTX Trigger Enable */
+#define _USART_TRIGCTRL_AUTOTXTEN_SHIFT 6 /**< Shift value for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_MASK 0x40UL /**< Bit mask for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN_DEFAULT (_USART_TRIGCTRL_AUTOTXTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN (0x1UL << 7) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX0EN_SHIFT 7 /**< Shift value for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_MASK 0x80UL /**< Bit mask for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN_DEFAULT (_USART_TRIGCTRL_TXARX0EN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN (0x1UL << 8) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX1EN_SHIFT 8 /**< Shift value for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_MASK 0x100UL /**< Bit mask for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN_DEFAULT (_USART_TRIGCTRL_TXARX1EN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN (0x1UL << 9) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX2EN_SHIFT 9 /**< Shift value for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_MASK 0x200UL /**< Bit mask for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN_DEFAULT (_USART_TRIGCTRL_TXARX2EN_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN (0x1UL << 10) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX0EN_SHIFT 10 /**< Shift value for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_MASK 0x400UL /**< Bit mask for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN_DEFAULT (_USART_TRIGCTRL_RXATX0EN_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN (0x1UL << 11) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX1EN_SHIFT 11 /**< Shift value for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_MASK 0x800UL /**< Bit mask for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN_DEFAULT (_USART_TRIGCTRL_RXATX1EN_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN (0x1UL << 12) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX2EN_SHIFT 12 /**< Shift value for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_MASK 0x1000UL /**< Bit mask for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN_DEFAULT (_USART_TRIGCTRL_RXATX2EN_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+
+/* Bit fields for USART CMD */
+#define _USART_CMD_RESETVALUE 0x00000000UL /**< Default value for USART_CMD */
+#define _USART_CMD_MASK 0x00000FFFUL /**< Mask for USART_CMD */
+#define USART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _USART_CMD_RXEN_SHIFT 0 /**< Shift value for USART_RXEN */
+#define _USART_CMD_RXEN_MASK 0x1UL /**< Bit mask for USART_RXEN */
+#define _USART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXEN_DEFAULT (_USART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _USART_CMD_RXDIS_SHIFT 1 /**< Shift value for USART_RXDIS */
+#define _USART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for USART_RXDIS */
+#define _USART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS_DEFAULT (_USART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _USART_CMD_TXEN_SHIFT 2 /**< Shift value for USART_TXEN */
+#define _USART_CMD_TXEN_MASK 0x4UL /**< Bit mask for USART_TXEN */
+#define _USART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN_DEFAULT (_USART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _USART_CMD_TXDIS_SHIFT 3 /**< Shift value for USART_TXDIS */
+#define _USART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for USART_TXDIS */
+#define _USART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS_DEFAULT (_USART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN (0x1UL << 4) /**< Main Mode Enable */
+#define _USART_CMD_MASTEREN_SHIFT 4 /**< Shift value for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_MASK 0x10UL /**< Bit mask for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN_DEFAULT (_USART_CMD_MASTEREN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS (0x1UL << 5) /**< Main Mode Disable */
+#define _USART_CMD_MASTERDIS_SHIFT 5 /**< Shift value for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_MASK 0x20UL /**< Bit mask for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS_DEFAULT (_USART_CMD_MASTERDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN (0x1UL << 6) /**< Receiver Block Enable */
+#define _USART_CMD_RXBLOCKEN_SHIFT 6 /**< Shift value for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_MASK 0x40UL /**< Bit mask for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN_DEFAULT (_USART_CMD_RXBLOCKEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS (0x1UL << 7) /**< Receiver Block Disable */
+#define _USART_CMD_RXBLOCKDIS_SHIFT 7 /**< Shift value for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_MASK 0x80UL /**< Bit mask for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS_DEFAULT (_USART_CMD_RXBLOCKDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN (0x1UL << 8) /**< Transmitter Tristate Enable */
+#define _USART_CMD_TXTRIEN_SHIFT 8 /**< Shift value for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_MASK 0x100UL /**< Bit mask for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN_DEFAULT (_USART_CMD_TXTRIEN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS (0x1UL << 9) /**< Transmitter Tristate Disable */
+#define _USART_CMD_TXTRIDIS_SHIFT 9 /**< Shift value for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_MASK 0x200UL /**< Bit mask for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS_DEFAULT (_USART_CMD_TXTRIDIS_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX (0x1UL << 10) /**< Clear TX */
+#define _USART_CMD_CLEARTX_SHIFT 10 /**< Shift value for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_MASK 0x400UL /**< Bit mask for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX_DEFAULT (_USART_CMD_CLEARTX_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX (0x1UL << 11) /**< Clear RX */
+#define _USART_CMD_CLEARRX_SHIFT 11 /**< Shift value for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_MASK 0x800UL /**< Bit mask for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX_DEFAULT (_USART_CMD_CLEARRX_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CMD */
+
+/* Bit fields for USART STATUS */
+#define _USART_STATUS_RESETVALUE 0x00002040UL /**< Default value for USART_STATUS */
+#define _USART_STATUS_MASK 0x00037FFFUL /**< Mask for USART_STATUS */
+#define USART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _USART_STATUS_RXENS_SHIFT 0 /**< Shift value for USART_RXENS */
+#define _USART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for USART_RXENS */
+#define _USART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXENS_DEFAULT (_USART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _USART_STATUS_TXENS_SHIFT 1 /**< Shift value for USART_TXENS */
+#define _USART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for USART_TXENS */
+#define _USART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS_DEFAULT (_USART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER (0x1UL << 2) /**< SPI Main Mode */
+#define _USART_STATUS_MASTER_SHIFT 2 /**< Shift value for USART_MASTER */
+#define _USART_STATUS_MASTER_MASK 0x4UL /**< Bit mask for USART_MASTER */
+#define _USART_STATUS_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER_DEFAULT (_USART_STATUS_MASTER_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _USART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK_DEFAULT (_USART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _USART_STATUS_TXTRI_SHIFT 4 /**< Shift value for USART_TXTRI */
+#define _USART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for USART_TXTRI */
+#define _USART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI_DEFAULT (_USART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _USART_STATUS_TXC_SHIFT 5 /**< Shift value for USART_TXC */
+#define _USART_STATUS_TXC_MASK 0x20UL /**< Bit mask for USART_TXC */
+#define _USART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC_DEFAULT (_USART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL (0x1UL << 6) /**< TX Buffer Level */
+#define _USART_STATUS_TXBL_SHIFT 6 /**< Shift value for USART_TXBL */
+#define _USART_STATUS_TXBL_MASK 0x40UL /**< Bit mask for USART_TXBL */
+#define _USART_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL_DEFAULT (_USART_STATUS_TXBL_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV (0x1UL << 7) /**< RX Data Valid */
+#define _USART_STATUS_RXDATAV_SHIFT 7 /**< Shift value for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_MASK 0x80UL /**< Bit mask for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV_DEFAULT (_USART_STATUS_RXDATAV_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _USART_STATUS_RXFULL_SHIFT 8 /**< Shift value for USART_RXFULL */
+#define _USART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for USART_RXFULL */
+#define _USART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL_DEFAULT (_USART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT (0x1UL << 9) /**< TX Buffer Expects Double Right Data */
+#define _USART_STATUS_TXBDRIGHT_SHIFT 9 /**< Shift value for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_MASK 0x200UL /**< Bit mask for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT_DEFAULT (_USART_STATUS_TXBDRIGHT_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT (0x1UL << 10) /**< TX Buffer Expects Single Right Data */
+#define _USART_STATUS_TXBSRIGHT_SHIFT 10 /**< Shift value for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_MASK 0x400UL /**< Bit mask for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT_DEFAULT (_USART_STATUS_TXBSRIGHT_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT (0x1UL << 11) /**< RX Data Right */
+#define _USART_STATUS_RXDATAVRIGHT_SHIFT 11 /**< Shift value for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_MASK 0x800UL /**< Bit mask for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT_DEFAULT (_USART_STATUS_RXDATAVRIGHT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT (0x1UL << 12) /**< RX Full of Right Data */
+#define _USART_STATUS_RXFULLRIGHT_SHIFT 12 /**< Shift value for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_MASK 0x1000UL /**< Bit mask for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT_DEFAULT (_USART_STATUS_RXFULLRIGHT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _USART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE_DEFAULT (_USART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED (0x1UL << 14) /**< The USART Timer restarted itself */
+#define _USART_STATUS_TIMERRESTARTED_SHIFT 14 /**< Shift value for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_MASK 0x4000UL /**< Bit mask for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED_DEFAULT (_USART_STATUS_TIMERRESTARTED_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_STATUS */
+#define _USART_STATUS_TXBUFCNT_SHIFT 16 /**< Shift value for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_MASK 0x30000UL /**< Bit mask for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBUFCNT_DEFAULT (_USART_STATUS_TXBUFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_STATUS */
+
+/* Bit fields for USART CLKDIV */
+#define _USART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for USART_CLKDIV */
+#define _USART_CLKDIV_MASK 0x807FFFF8UL /**< Mask for USART_CLKDIV */
+#define _USART_CLKDIV_DIV_SHIFT 3 /**< Shift value for USART_DIV */
+#define _USART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for USART_DIV */
+#define _USART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_DIV_DEFAULT (_USART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _USART_CLKDIV_AUTOBAUDEN_SHIFT 31 /**< Shift value for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN_DEFAULT (_USART_CLKDIV_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CLKDIV */
+
+/* Bit fields for USART RXDATAX */
+#define _USART_RXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAX */
+#define _USART_RXDATAX_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAX */
+#define _USART_RXDATAX_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_MASK 0x1FFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_RXDATA_DEFAULT (_USART_RXDATAX_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR (0x1UL << 14) /**< Data Parity Error */
+#define _USART_RXDATAX_PERR_SHIFT 14 /**< Shift value for USART_PERR */
+#define _USART_RXDATAX_PERR_MASK 0x4000UL /**< Bit mask for USART_PERR */
+#define _USART_RXDATAX_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR_DEFAULT (_USART_RXDATAX_PERR_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR (0x1UL << 15) /**< Data Framing Error */
+#define _USART_RXDATAX_FERR_SHIFT 15 /**< Shift value for USART_FERR */
+#define _USART_RXDATAX_FERR_MASK 0x8000UL /**< Bit mask for USART_FERR */
+#define _USART_RXDATAX_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR_DEFAULT (_USART_RXDATAX_FERR_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAX */
+
+/* Bit fields for USART RXDATA */
+#define _USART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATA */
+#define _USART_RXDATA_MASK 0x000000FFUL /**< Mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATA */
+#define USART_RXDATA_RXDATA_DEFAULT (_USART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATA */
+
+/* Bit fields for USART RXDOUBLEX */
+#define _USART_RXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_MASK 0x1FFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA0_DEFAULT (_USART_RXDOUBLEX_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0 (0x1UL << 14) /**< Data Parity Error 0 */
+#define _USART_RXDOUBLEX_PERR0_SHIFT 14 /**< Shift value for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_MASK 0x4000UL /**< Bit mask for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0_DEFAULT (_USART_RXDOUBLEX_PERR0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0 (0x1UL << 15) /**< Data Framing Error 0 */
+#define _USART_RXDOUBLEX_FERR0_SHIFT 15 /**< Shift value for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_MASK 0x8000UL /**< Bit mask for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0_DEFAULT (_USART_RXDOUBLEX_FERR0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA1_SHIFT 16 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA1_DEFAULT (_USART_RXDOUBLEX_RXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1 (0x1UL << 30) /**< Data Parity Error 1 */
+#define _USART_RXDOUBLEX_PERR1_SHIFT 30 /**< Shift value for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_MASK 0x40000000UL /**< Bit mask for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1_DEFAULT (_USART_RXDOUBLEX_PERR1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1 (0x1UL << 31) /**< Data Framing Error 1 */
+#define _USART_RXDOUBLEX_FERR1_SHIFT 31 /**< Shift value for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_MASK 0x80000000UL /**< Bit mask for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1_DEFAULT (_USART_RXDOUBLEX_FERR1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+
+/* Bit fields for USART RXDOUBLE */
+#define _USART_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA0_DEFAULT (_USART_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA1_DEFAULT (_USART_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+
+/* Bit fields for USART RXDATAXP */
+#define _USART_RXDATAXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAXP */
+#define _USART_RXDATAXP_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAXP */
+#define _USART_RXDATAXP_RXDATAP_SHIFT 0 /**< Shift value for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_RXDATAP_DEFAULT (_USART_RXDATAXP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP (0x1UL << 14) /**< Data Parity Error Peek */
+#define _USART_RXDATAXP_PERRP_SHIFT 14 /**< Shift value for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_MASK 0x4000UL /**< Bit mask for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP_DEFAULT (_USART_RXDATAXP_PERRP_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP (0x1UL << 15) /**< Data Framing Error Peek */
+#define _USART_RXDATAXP_FERRP_SHIFT 15 /**< Shift value for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_MASK 0x8000UL /**< Bit mask for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP_DEFAULT (_USART_RXDATAXP_FERRP_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+
+/* Bit fields for USART RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP0_SHIFT 0 /**< Shift value for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP0_DEFAULT (_USART_RXDOUBLEXP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0 (0x1UL << 14) /**< Data Parity Error 0 Peek */
+#define _USART_RXDOUBLEXP_PERRP0_SHIFT 14 /**< Shift value for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_MASK 0x4000UL /**< Bit mask for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0_DEFAULT (_USART_RXDOUBLEXP_PERRP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0 (0x1UL << 15) /**< Data Framing Error 0 Peek */
+#define _USART_RXDOUBLEXP_FERRP0_SHIFT 15 /**< Shift value for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_MASK 0x8000UL /**< Bit mask for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0_DEFAULT (_USART_RXDOUBLEXP_FERRP0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP1_SHIFT 16 /**< Shift value for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP1_DEFAULT (_USART_RXDOUBLEXP_RXDATAP1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1 (0x1UL << 30) /**< Data Parity Error 1 Peek */
+#define _USART_RXDOUBLEXP_PERRP1_SHIFT 30 /**< Shift value for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_MASK 0x40000000UL /**< Bit mask for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1_DEFAULT (_USART_RXDOUBLEXP_PERRP1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1 (0x1UL << 31) /**< Data Framing Error 1 Peek */
+#define _USART_RXDOUBLEXP_FERRP1_SHIFT 31 /**< Shift value for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_MASK 0x80000000UL /**< Bit mask for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1_DEFAULT (_USART_RXDOUBLEXP_FERRP1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+
+/* Bit fields for USART TXDATAX */
+#define _USART_TXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATAX */
+#define _USART_TXDATAX_MASK 0x0000F9FFUL /**< Mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_SHIFT 0 /**< Shift value for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_MASK 0x1FFUL /**< Bit mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDATAX_DEFAULT (_USART_TXDATAX_TXDATAX_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDATAX_UBRXAT_SHIFT 11 /**< Shift value for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_MASK 0x800UL /**< Bit mask for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT_DEFAULT (_USART_TXDATAX_UBRXAT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDATAX_TXTRIAT_SHIFT 12 /**< Shift value for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT_DEFAULT (_USART_TXDATAX_TXTRIAT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDATAX_TXBREAK_SHIFT 13 /**< Shift value for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_MASK 0x2000UL /**< Bit mask for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK_DEFAULT (_USART_TXDATAX_TXBREAK_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDATAX_TXDISAT_SHIFT 14 /**< Shift value for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_MASK 0x4000UL /**< Bit mask for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT_DEFAULT (_USART_TXDATAX_TXDISAT_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDATAX_RXENAT_SHIFT 15 /**< Shift value for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_MASK 0x8000UL /**< Bit mask for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT_DEFAULT (_USART_TXDATAX_RXENAT_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDATAX */
+
+/* Bit fields for USART TXDATA */
+#define _USART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATA */
+#define _USART_TXDATA_MASK 0x000000FFUL /**< Mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATA */
+#define USART_TXDATA_TXDATA_DEFAULT (_USART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATA */
+
+/* Bit fields for USART TXDOUBLEX */
+#define _USART_TXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_MASK 0xF9FFF9FFUL /**< Mask for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_MASK 0x1FFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA0_DEFAULT (_USART_TXDOUBLEX_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0 (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT0_SHIFT 11 /**< Shift value for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_MASK 0x800UL /**< Bit mask for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0_DEFAULT (_USART_TXDOUBLEX_UBRXAT0_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0 (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT0_SHIFT 12 /**< Shift value for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0_DEFAULT (_USART_TXDOUBLEX_TXTRIAT0_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0 (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK0_SHIFT 13 /**< Shift value for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_MASK 0x2000UL /**< Bit mask for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0_DEFAULT (_USART_TXDOUBLEX_TXBREAK0_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0 (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT0_SHIFT 14 /**< Shift value for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_MASK 0x4000UL /**< Bit mask for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0_DEFAULT (_USART_TXDOUBLEX_TXDISAT0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0 (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT0_SHIFT 15 /**< Shift value for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_MASK 0x8000UL /**< Bit mask for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0_DEFAULT (_USART_TXDOUBLEX_RXENAT0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA1_SHIFT 16 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA1_DEFAULT (_USART_TXDOUBLEX_TXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1 (0x1UL << 27) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT1_SHIFT 27 /**< Shift value for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_MASK 0x8000000UL /**< Bit mask for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1_DEFAULT (_USART_TXDOUBLEX_UBRXAT1_DEFAULT << 27) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1 (0x1UL << 28) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT1_SHIFT 28 /**< Shift value for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_MASK 0x10000000UL /**< Bit mask for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1_DEFAULT (_USART_TXDOUBLEX_TXTRIAT1_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1 (0x1UL << 29) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK1_SHIFT 29 /**< Shift value for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_MASK 0x20000000UL /**< Bit mask for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1_DEFAULT (_USART_TXDOUBLEX_TXBREAK1_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1 (0x1UL << 30) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT1_SHIFT 30 /**< Shift value for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_MASK 0x40000000UL /**< Bit mask for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1_DEFAULT (_USART_TXDOUBLEX_TXDISAT1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1 (0x1UL << 31) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT1_SHIFT 31 /**< Shift value for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_MASK 0x80000000UL /**< Bit mask for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1_DEFAULT (_USART_TXDOUBLEX_RXENAT1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+
+/* Bit fields for USART TXDOUBLE */
+#define _USART_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA0_DEFAULT (_USART_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA1_DEFAULT (_USART_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+
+/* Bit fields for USART IF */
+#define _USART_IF_RESETVALUE 0x00000002UL /**< Default value for USART_IF */
+#define _USART_IF_MASK 0x0001FFFFUL /**< Mask for USART_IF */
+#define USART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _USART_IF_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IF_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXC_DEFAULT (_USART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Flag */
+#define _USART_IF_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IF_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IF_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXBL_DEFAULT (_USART_IF_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Flag */
+#define _USART_IF_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IF_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV_DEFAULT (_USART_IF_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Flag */
+#define _USART_IF_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IF_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL_DEFAULT (_USART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Flag */
+#define _USART_IF_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IF_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXOF_DEFAULT (_USART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Flag */
+#define _USART_IF_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IF_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXUF_DEFAULT (_USART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Flag */
+#define _USART_IF_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IF_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXOF_DEFAULT (_USART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Flag */
+#define _USART_IF_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IF_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXUF_DEFAULT (_USART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _USART_IF_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IF_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_PERR_DEFAULT (_USART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _USART_IF_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IF_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_FERR_DEFAULT (_USART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IF_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IF_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_MPAF_DEFAULT (_USART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IF_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IF_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IF_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_SSM_DEFAULT (_USART_IF_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _USART_IF_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IF_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_CCF_DEFAULT (_USART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _USART_IF_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE_DEFAULT (_USART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Flag */
+#define _USART_IF_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IF_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IF_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0_DEFAULT (_USART_IF_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Flag */
+#define _USART_IF_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IF_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IF_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1_DEFAULT (_USART_IF_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Flag */
+#define _USART_IF_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IF_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IF_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2_DEFAULT (_USART_IF_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IF */
+
+/* Bit fields for USART IEN */
+#define _USART_IEN_RESETVALUE 0x00000000UL /**< Default value for USART_IEN */
+#define _USART_IEN_MASK 0x0001FFFFUL /**< Mask for USART_IEN */
+#define USART_IEN_TXC (0x1UL << 0) /**< TX Complete Interrupt Enable */
+#define _USART_IEN_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IEN_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXC_DEFAULT (_USART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Enable */
+#define _USART_IEN_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IEN_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL_DEFAULT (_USART_IEN_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Enable */
+#define _USART_IEN_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV_DEFAULT (_USART_IEN_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Enable */
+#define _USART_IEN_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL_DEFAULT (_USART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Enable */
+#define _USART_IEN_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IEN_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF_DEFAULT (_USART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Enable */
+#define _USART_IEN_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IEN_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF_DEFAULT (_USART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Enable */
+#define _USART_IEN_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IEN_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF_DEFAULT (_USART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Enable */
+#define _USART_IEN_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IEN_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF_DEFAULT (_USART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR (0x1UL << 8) /**< Parity Error Interrupt Enable */
+#define _USART_IEN_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IEN_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR_DEFAULT (_USART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR (0x1UL << 9) /**< Framing Error Interrupt Enable */
+#define _USART_IEN_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IEN_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR_DEFAULT (_USART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IEN_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IEN_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF_DEFAULT (_USART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IEN_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IEN_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IEN_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM_DEFAULT (_USART_IEN_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Enable */
+#define _USART_IEN_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IEN_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF_DEFAULT (_USART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Enable */
+#define _USART_IEN_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE_DEFAULT (_USART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Enable */
+#define _USART_IEN_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IEN_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IEN_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0_DEFAULT (_USART_IEN_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Enable */
+#define _USART_IEN_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IEN_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IEN_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1_DEFAULT (_USART_IEN_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Enable */
+#define _USART_IEN_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IEN_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IEN_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2_DEFAULT (_USART_IEN_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IEN */
+
+/* Bit fields for USART IRCTRL */
+#define _USART_IRCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_IRCTRL */
+#define _USART_IRCTRL_MASK 0x0000008FUL /**< Mask for USART_IRCTRL */
+#define USART_IRCTRL_IREN (0x1UL << 0) /**< Enable IrDA Module */
+#define _USART_IRCTRL_IREN_SHIFT 0 /**< Shift value for USART_IREN */
+#define _USART_IRCTRL_IREN_MASK 0x1UL /**< Bit mask for USART_IREN */
+#define _USART_IRCTRL_IREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IREN_DEFAULT (_USART_IRCTRL_IREN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_SHIFT 1 /**< Shift value for USART_IRPW */
+#define _USART_IRCTRL_IRPW_MASK 0x6UL /**< Bit mask for USART_IRPW */
+#define _USART_IRCTRL_IRPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_ONE 0x00000000UL /**< Mode ONE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_TWO 0x00000001UL /**< Mode TWO for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_THREE 0x00000002UL /**< Mode THREE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_FOUR 0x00000003UL /**< Mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_DEFAULT (_USART_IRCTRL_IRPW_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_ONE (_USART_IRCTRL_IRPW_ONE << 1) /**< Shifted mode ONE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_TWO (_USART_IRCTRL_IRPW_TWO << 1) /**< Shifted mode TWO for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_THREE (_USART_IRCTRL_IRPW_THREE << 1) /**< Shifted mode THREE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_FOUR (_USART_IRCTRL_IRPW_FOUR << 1) /**< Shifted mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _USART_IRCTRL_IRFILT_SHIFT 3 /**< Shift value for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_MASK 0x8UL /**< Bit mask for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DEFAULT (_USART_IRCTRL_IRFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DISABLE (_USART_IRCTRL_IRFILT_DISABLE << 3) /**< Shifted mode DISABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_ENABLE (_USART_IRCTRL_IRFILT_ENABLE << 3) /**< Shifted mode ENABLE for USART_IRCTRL */
+
+/* Bit fields for USART I2SCTRL */
+#define _USART_I2SCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_I2SCTRL */
+#define _USART_I2SCTRL_MASK 0x0000071FUL /**< Mask for USART_I2SCTRL */
+#define USART_I2SCTRL_EN (0x1UL << 0) /**< Enable I2S Mode */
+#define _USART_I2SCTRL_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_I2SCTRL_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_I2SCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_EN_DEFAULT (_USART_I2SCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO (0x1UL << 1) /**< Stero or Mono */
+#define _USART_I2SCTRL_MONO_SHIFT 1 /**< Shift value for USART_MONO */
+#define _USART_I2SCTRL_MONO_MASK 0x2UL /**< Bit mask for USART_MONO */
+#define _USART_I2SCTRL_MONO_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO_DEFAULT (_USART_I2SCTRL_MONO_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY (0x1UL << 2) /**< Justification of I2S Data */
+#define _USART_I2SCTRL_JUSTIFY_SHIFT 2 /**< Shift value for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_MASK 0x4UL /**< Bit mask for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_LEFT 0x00000000UL /**< Mode LEFT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_RIGHT 0x00000001UL /**< Mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_DEFAULT (_USART_I2SCTRL_JUSTIFY_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_LEFT (_USART_I2SCTRL_JUSTIFY_LEFT << 2) /**< Shifted mode LEFT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_RIGHT (_USART_I2SCTRL_JUSTIFY_RIGHT << 2) /**< Shifted mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT (0x1UL << 3) /**< Separate DMA Request For Left/Right Data */
+#define _USART_I2SCTRL_DMASPLIT_SHIFT 3 /**< Shift value for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_MASK 0x8UL /**< Bit mask for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT_DEFAULT (_USART_I2SCTRL_DMASPLIT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY (0x1UL << 4) /**< Delay on I2S data */
+#define _USART_I2SCTRL_DELAY_SHIFT 4 /**< Shift value for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_MASK 0x10UL /**< Bit mask for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY_DEFAULT (_USART_I2SCTRL_DELAY_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_SHIFT 8 /**< Shift value for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_MASK 0x700UL /**< Bit mask for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D32 0x00000000UL /**< Mode W32D32 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24M 0x00000001UL /**< Mode W32D24M for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24 0x00000002UL /**< Mode W32D24 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D16 0x00000003UL /**< Mode W32D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D8 0x00000004UL /**< Mode W32D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D16 0x00000005UL /**< Mode W16D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D8 0x00000006UL /**< Mode W16D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W8D8 0x00000007UL /**< Mode W8D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_DEFAULT (_USART_I2SCTRL_FORMAT_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D32 (_USART_I2SCTRL_FORMAT_W32D32 << 8) /**< Shifted mode W32D32 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24M (_USART_I2SCTRL_FORMAT_W32D24M << 8) /**< Shifted mode W32D24M for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24 (_USART_I2SCTRL_FORMAT_W32D24 << 8) /**< Shifted mode W32D24 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D16 (_USART_I2SCTRL_FORMAT_W32D16 << 8) /**< Shifted mode W32D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D8 (_USART_I2SCTRL_FORMAT_W32D8 << 8) /**< Shifted mode W32D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D16 (_USART_I2SCTRL_FORMAT_W16D16 << 8) /**< Shifted mode W16D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D8 (_USART_I2SCTRL_FORMAT_W16D8 << 8) /**< Shifted mode W16D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W8D8 (_USART_I2SCTRL_FORMAT_W8D8 << 8) /**< Shifted mode W8D8 for USART_I2SCTRL */
+
+/* Bit fields for USART TIMING */
+#define _USART_TIMING_RESETVALUE 0x00000000UL /**< Default value for USART_TIMING */
+#define _USART_TIMING_MASK 0x77770000UL /**< Mask for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SHIFT 16 /**< Shift value for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_MASK 0x70000UL /**< Bit mask for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_TXDELAY_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_TXDELAY_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_TXDELAY_DEFAULT (_USART_TIMING_TXDELAY_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_TXDELAY_DISABLE (_USART_TIMING_TXDELAY_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMING */
+#define USART_TIMING_TXDELAY_ONE (_USART_TIMING_TXDELAY_ONE << 16) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_TXDELAY_TWO (_USART_TIMING_TXDELAY_TWO << 16) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_TXDELAY_THREE (_USART_TIMING_TXDELAY_THREE << 16) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_TXDELAY_SEVEN (_USART_TIMING_TXDELAY_SEVEN << 16) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP0 (_USART_TIMING_TXDELAY_TCMP0 << 16) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP1 (_USART_TIMING_TXDELAY_TCMP1 << 16) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP2 (_USART_TIMING_TXDELAY_TCMP2 << 16) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SHIFT 20 /**< Shift value for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_MASK 0x700000UL /**< Bit mask for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSSETUP_DEFAULT (_USART_TIMING_CSSETUP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSSETUP_ZERO (_USART_TIMING_CSSETUP_ZERO << 20) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSSETUP_ONE (_USART_TIMING_CSSETUP_ONE << 20) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSSETUP_TWO (_USART_TIMING_CSSETUP_TWO << 20) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSSETUP_THREE (_USART_TIMING_CSSETUP_THREE << 20) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSSETUP_SEVEN (_USART_TIMING_CSSETUP_SEVEN << 20) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP0 (_USART_TIMING_CSSETUP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP1 (_USART_TIMING_CSSETUP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP2 (_USART_TIMING_CSSETUP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_ICS_SHIFT 24 /**< Shift value for USART_ICS */
+#define _USART_TIMING_ICS_MASK 0x7000000UL /**< Bit mask for USART_ICS */
+#define _USART_TIMING_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_ICS_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_ICS_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_ICS_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_ICS_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_ICS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_ICS_DEFAULT (_USART_TIMING_ICS_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_ICS_ZERO (_USART_TIMING_ICS_ZERO << 24) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_ICS_ONE (_USART_TIMING_ICS_ONE << 24) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_ICS_TWO (_USART_TIMING_ICS_TWO << 24) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_ICS_THREE (_USART_TIMING_ICS_THREE << 24) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_ICS_SEVEN (_USART_TIMING_ICS_SEVEN << 24) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_ICS_TCMP0 (_USART_TIMING_ICS_TCMP0 << 24) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP1 (_USART_TIMING_ICS_TCMP1 << 24) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP2 (_USART_TIMING_ICS_TCMP2 << 24) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SHIFT 28 /**< Shift value for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_MASK 0x70000000UL /**< Bit mask for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSHOLD_DEFAULT (_USART_TIMING_CSHOLD_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSHOLD_ZERO (_USART_TIMING_CSHOLD_ZERO << 28) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSHOLD_ONE (_USART_TIMING_CSHOLD_ONE << 28) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSHOLD_TWO (_USART_TIMING_CSHOLD_TWO << 28) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSHOLD_THREE (_USART_TIMING_CSHOLD_THREE << 28) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSHOLD_SEVEN (_USART_TIMING_CSHOLD_SEVEN << 28) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP0 (_USART_TIMING_CSHOLD_TCMP0 << 28) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP1 (_USART_TIMING_CSHOLD_TCMP1 << 28) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP2 (_USART_TIMING_CSHOLD_TCMP2 << 28) /**< Shifted mode TCMP2 for USART_TIMING */
+
+/* Bit fields for USART CTRLX */
+#define _USART_CTRLX_RESETVALUE 0x00000000UL /**< Default value for USART_CTRLX */
+#define _USART_CTRLX_MASK 0x8000808FUL /**< Mask for USART_CTRLX */
+#define USART_CTRLX_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _USART_CTRLX_DBGHALT_SHIFT 0 /**< Shift value for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_MASK 0x1UL /**< Bit mask for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DEFAULT (_USART_CTRLX_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DISABLE (_USART_CTRLX_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_ENABLE (_USART_CTRLX_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV (0x1UL << 1) /**< CTS Pin Inversion */
+#define _USART_CTRLX_CTSINV_SHIFT 1 /**< Shift value for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_MASK 0x2UL /**< Bit mask for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DEFAULT (_USART_CTRLX_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DISABLE (_USART_CTRLX_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_ENABLE (_USART_CTRLX_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN (0x1UL << 2) /**< CTS Function enabled */
+#define _USART_CTRLX_CTSEN_SHIFT 2 /**< Shift value for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_MASK 0x4UL /**< Bit mask for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DEFAULT (_USART_CTRLX_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DISABLE (_USART_CTRLX_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_ENABLE (_USART_CTRLX_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV (0x1UL << 3) /**< RTS Pin Inversion */
+#define _USART_CTRLX_RTSINV_SHIFT 3 /**< Shift value for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_MASK 0x8UL /**< Bit mask for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DEFAULT (_USART_CTRLX_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DISABLE (_USART_CTRLX_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_ENABLE (_USART_CTRLX_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN (0x1UL << 7) /**< PRS RX Enable */
+#define _USART_CTRLX_RXPRSEN_SHIFT 7 /**< Shift value for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_MASK 0x80UL /**< Bit mask for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN_DEFAULT (_USART_CTRLX_RXPRSEN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN (0x1UL << 15) /**< PRS CLK Enable */
+#define _USART_CTRLX_CLKPRSEN_SHIFT 15 /**< Shift value for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_MASK 0x8000UL /**< Bit mask for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN_DEFAULT (_USART_CTRLX_CLKPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRLX */
+
+/* Bit fields for USART TIMECMP0 */
+#define _USART_TIMECMP0_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP0 */
+#define _USART_TIMECMP0_MASK 0x017700FFUL /**< Mask for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TCMPVAL_DEFAULT (_USART_TIMECMP0_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DEFAULT (_USART_TIMECMP0_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DISABLE (_USART_TIMECMP0_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXEOF (_USART_TIMECMP0_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXC (_USART_TIMECMP0_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXACT (_USART_TIMECMP0_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXEOF (_USART_TIMECMP0_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TCMP0 0x00000000UL /**< Mode TCMP0 for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_DEFAULT (_USART_TIMECMP0_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TCMP0 (_USART_TIMECMP0_TSTOP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TXST (_USART_TIMECMP0_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACT (_USART_TIMECMP0_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACTN (_USART_TIMECMP0_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP0 */
+#define _USART_TIMECMP0_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DEFAULT (_USART_TIMECMP0_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DISABLE (_USART_TIMECMP0_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_ENABLE (_USART_TIMECMP0_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP0 */
+
+/* Bit fields for USART TIMECMP1 */
+#define _USART_TIMECMP1_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP1 */
+#define _USART_TIMECMP1_MASK 0x017700FFUL /**< Mask for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TCMPVAL_DEFAULT (_USART_TIMECMP1_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DEFAULT (_USART_TIMECMP1_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DISABLE (_USART_TIMECMP1_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXEOF (_USART_TIMECMP1_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXC (_USART_TIMECMP1_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXACT (_USART_TIMECMP1_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXEOF (_USART_TIMECMP1_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TCMP1 0x00000000UL /**< Mode TCMP1 for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_DEFAULT (_USART_TIMECMP1_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TCMP1 (_USART_TIMECMP1_TSTOP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TXST (_USART_TIMECMP1_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACT (_USART_TIMECMP1_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACTN (_USART_TIMECMP1_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP1 */
+#define _USART_TIMECMP1_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DEFAULT (_USART_TIMECMP1_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DISABLE (_USART_TIMECMP1_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_ENABLE (_USART_TIMECMP1_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP1 */
+
+/* Bit fields for USART TIMECMP2 */
+#define _USART_TIMECMP2_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP2 */
+#define _USART_TIMECMP2_MASK 0x017700FFUL /**< Mask for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TCMPVAL_DEFAULT (_USART_TIMECMP2_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DEFAULT (_USART_TIMECMP2_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DISABLE (_USART_TIMECMP2_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXEOF (_USART_TIMECMP2_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXC (_USART_TIMECMP2_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXACT (_USART_TIMECMP2_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXEOF (_USART_TIMECMP2_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TCMP2 0x00000000UL /**< Mode TCMP2 for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_DEFAULT (_USART_TIMECMP2_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TCMP2 (_USART_TIMECMP2_TSTOP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TXST (_USART_TIMECMP2_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACT (_USART_TIMECMP2_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACTN (_USART_TIMECMP2_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP2 */
+#define _USART_TIMECMP2_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DEFAULT (_USART_TIMECMP2_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DISABLE (_USART_TIMECMP2_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_ENABLE (_USART_TIMECMP2_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP2 */
+
+/** @} End of group EFR32BG29_USART_BitFields */
+/** @} End of group EFR32BG29_USART */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_USART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_wdog.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_wdog.h
new file mode 100644
index 000000000..fd3d20877
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29_wdog.h
@@ -0,0 +1,361 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32BG29 WDOG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29_WDOG_H
+#define EFR32BG29_WDOG_H
+#define WDOG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32BG29_WDOG WDOG
+ * @{
+ * @brief EFR32BG29 WDOG Register Declaration.
+ *****************************************************************************/
+
+/** WDOG Register Declaration. */
+typedef struct wdog_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+} WDOG_TypeDef;
+/** @} End of group EFR32BG29_WDOG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32BG29_WDOG
+ * @{
+ * @defgroup EFR32BG29_WDOG_BitFields WDOG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for WDOG IPVERSION */
+#define _WDOG_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IPVERSION */
+#define WDOG_IPVERSION_IPVERSION_DEFAULT (_WDOG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IPVERSION */
+
+/* Bit fields for WDOG EN */
+#define _WDOG_EN_RESETVALUE 0x00000000UL /**< Default value for WDOG_EN */
+#define _WDOG_EN_MASK 0x00000001UL /**< Mask for WDOG_EN */
+#define WDOG_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _WDOG_EN_EN_SHIFT 0 /**< Shift value for WDOG_EN */
+#define _WDOG_EN_EN_MASK 0x1UL /**< Bit mask for WDOG_EN */
+#define _WDOG_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_EN */
+#define WDOG_EN_EN_DEFAULT (_WDOG_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_EN */
+
+/* Bit fields for WDOG CFG */
+#define _WDOG_CFG_RESETVALUE 0x000F0000UL /**< Default value for WDOG_CFG */
+#define _WDOG_CFG_MASK 0x730F071FUL /**< Mask for WDOG_CFG */
+#define WDOG_CFG_CLRSRC (0x1UL << 0) /**< WDOG Clear Source */
+#define _WDOG_CFG_CLRSRC_SHIFT 0 /**< Shift value for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_MASK 0x1UL /**< Bit mask for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_SW 0x00000000UL /**< Mode SW for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_PRSSRC0 0x00000001UL /**< Mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_DEFAULT (_WDOG_CFG_CLRSRC_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_SW (_WDOG_CFG_CLRSRC_SW << 0) /**< Shifted mode SW for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_PRSSRC0 (_WDOG_CFG_CLRSRC_PRSSRC0 << 0) /**< Shifted mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_EM2RUN (0x1UL << 1) /**< EM2 Run */
+#define _WDOG_CFG_EM2RUN_SHIFT 1 /**< Shift value for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_MASK 0x2UL /**< Bit mask for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DEFAULT (_WDOG_CFG_EM2RUN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DISABLE (_WDOG_CFG_EM2RUN_DISABLE << 1) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_ENABLE (_WDOG_CFG_EM2RUN_ENABLE << 1) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN (0x1UL << 2) /**< EM3 Run */
+#define _WDOG_CFG_EM3RUN_SHIFT 2 /**< Shift value for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_MASK 0x4UL /**< Bit mask for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DEFAULT (_WDOG_CFG_EM3RUN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DISABLE (_WDOG_CFG_EM3RUN_DISABLE << 2) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_ENABLE (_WDOG_CFG_EM3RUN_ENABLE << 2) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK (0x1UL << 3) /**< EM4 Block */
+#define _WDOG_CFG_EM4BLOCK_SHIFT 3 /**< Shift value for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_MASK 0x8UL /**< Bit mask for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DEFAULT (_WDOG_CFG_EM4BLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DISABLE (_WDOG_CFG_EM4BLOCK_DISABLE << 3) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_ENABLE (_WDOG_CFG_EM4BLOCK_ENABLE << 3) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN (0x1UL << 4) /**< Debug Mode Run */
+#define _WDOG_CFG_DEBUGRUN_SHIFT 4 /**< Shift value for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_MASK 0x10UL /**< Bit mask for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DEFAULT (_WDOG_CFG_DEBUGRUN_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DISABLE (_WDOG_CFG_DEBUGRUN_DISABLE << 4) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_ENABLE (_WDOG_CFG_DEBUGRUN_ENABLE << 4) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS (0x1UL << 8) /**< WDOG Reset Disable */
+#define _WDOG_CFG_WDOGRSTDIS_SHIFT 8 /**< Shift value for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_MASK 0x100UL /**< Bit mask for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_EN 0x00000000UL /**< Mode EN for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_DIS 0x00000001UL /**< Mode DIS for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DEFAULT (_WDOG_CFG_WDOGRSTDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_EN (_WDOG_CFG_WDOGRSTDIS_EN << 8) /**< Shifted mode EN for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DIS (_WDOG_CFG_WDOGRSTDIS_DIS << 8) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN (0x1UL << 9) /**< PRS Src0 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS0MISSRSTEN_SHIFT 9 /**< Shift value for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_MASK 0x200UL /**< Bit mask for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN_DEFAULT (_WDOG_CFG_PRS0MISSRSTEN_DEFAULT << 9) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN (0x1UL << 10) /**< PRS Src1 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS1MISSRSTEN_SHIFT 10 /**< Shift value for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_MASK 0x400UL /**< Bit mask for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN_DEFAULT (_WDOG_CFG_PRS1MISSRSTEN_DEFAULT << 10) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SHIFT 16 /**< Shift value for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_MASK 0xF0000UL /**< Bit mask for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_DEFAULT 0x0000000FUL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL0 0x00000000UL /**< Mode SEL0 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL8 0x00000008UL /**< Mode SEL8 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL9 0x00000009UL /**< Mode SEL9 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL10 0x0000000AUL /**< Mode SEL10 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL11 0x0000000BUL /**< Mode SEL11 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL12 0x0000000CUL /**< Mode SEL12 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL13 0x0000000DUL /**< Mode SEL13 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL14 0x0000000EUL /**< Mode SEL14 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL15 0x0000000FUL /**< Mode SEL15 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_DEFAULT (_WDOG_CFG_PERSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL0 (_WDOG_CFG_PERSEL_SEL0 << 16) /**< Shifted mode SEL0 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL1 (_WDOG_CFG_PERSEL_SEL1 << 16) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL2 (_WDOG_CFG_PERSEL_SEL2 << 16) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL3 (_WDOG_CFG_PERSEL_SEL3 << 16) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL4 (_WDOG_CFG_PERSEL_SEL4 << 16) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL5 (_WDOG_CFG_PERSEL_SEL5 << 16) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL6 (_WDOG_CFG_PERSEL_SEL6 << 16) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL7 (_WDOG_CFG_PERSEL_SEL7 << 16) /**< Shifted mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL8 (_WDOG_CFG_PERSEL_SEL8 << 16) /**< Shifted mode SEL8 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL9 (_WDOG_CFG_PERSEL_SEL9 << 16) /**< Shifted mode SEL9 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL10 (_WDOG_CFG_PERSEL_SEL10 << 16) /**< Shifted mode SEL10 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL11 (_WDOG_CFG_PERSEL_SEL11 << 16) /**< Shifted mode SEL11 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL12 (_WDOG_CFG_PERSEL_SEL12 << 16) /**< Shifted mode SEL12 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL13 (_WDOG_CFG_PERSEL_SEL13 << 16) /**< Shifted mode SEL13 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL14 (_WDOG_CFG_PERSEL_SEL14 << 16) /**< Shifted mode SEL14 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL15 (_WDOG_CFG_PERSEL_SEL15 << 16) /**< Shifted mode SEL15 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SHIFT 24 /**< Shift value for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_MASK 0x3000000UL /**< Bit mask for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DEFAULT (_WDOG_CFG_WARNSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DIS (_WDOG_CFG_WARNSEL_DIS << 24) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL1 (_WDOG_CFG_WARNSEL_SEL1 << 24) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL2 (_WDOG_CFG_WARNSEL_SEL2 << 24) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL3 (_WDOG_CFG_WARNSEL_SEL3 << 24) /**< Shifted mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SHIFT 28 /**< Shift value for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_MASK 0x70000000UL /**< Bit mask for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DEFAULT (_WDOG_CFG_WINSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DIS (_WDOG_CFG_WINSEL_DIS << 28) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL1 (_WDOG_CFG_WINSEL_SEL1 << 28) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL2 (_WDOG_CFG_WINSEL_SEL2 << 28) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL3 (_WDOG_CFG_WINSEL_SEL3 << 28) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL4 (_WDOG_CFG_WINSEL_SEL4 << 28) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL5 (_WDOG_CFG_WINSEL_SEL5 << 28) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL6 (_WDOG_CFG_WINSEL_SEL6 << 28) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL7 (_WDOG_CFG_WINSEL_SEL7 << 28) /**< Shifted mode SEL7 for WDOG_CFG */
+
+/* Bit fields for WDOG CMD */
+#define _WDOG_CMD_RESETVALUE 0x00000000UL /**< Default value for WDOG_CMD */
+#define _WDOG_CMD_MASK 0x00000001UL /**< Mask for WDOG_CMD */
+#define WDOG_CMD_CLEAR (0x1UL << 0) /**< WDOG Timer Clear */
+#define _WDOG_CMD_CLEAR_SHIFT 0 /**< Shift value for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_MASK 0x1UL /**< Bit mask for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_UNCHANGED 0x00000000UL /**< Mode UNCHANGED for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_CLEARED 0x00000001UL /**< Mode CLEARED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_DEFAULT (_WDOG_CMD_CLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CMD */
+#define WDOG_CMD_CLEAR_UNCHANGED (_WDOG_CMD_CLEAR_UNCHANGED << 0) /**< Shifted mode UNCHANGED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_CLEARED (_WDOG_CMD_CLEAR_CLEARED << 0) /**< Shifted mode CLEARED for WDOG_CMD */
+
+/* Bit fields for WDOG STATUS */
+#define _WDOG_STATUS_RESETVALUE 0x00000000UL /**< Default value for WDOG_STATUS */
+#define _WDOG_STATUS_MASK 0x80000000UL /**< Mask for WDOG_STATUS */
+#define WDOG_STATUS_LOCK (0x1UL << 31) /**< WDOG Configuration Lock Status */
+#define _WDOG_STATUS_LOCK_SHIFT 31 /**< Shift value for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_DEFAULT (_WDOG_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_UNLOCKED (_WDOG_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_LOCKED (_WDOG_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for WDOG_STATUS */
+
+/* Bit fields for WDOG IF */
+#define _WDOG_IF_RESETVALUE 0x00000000UL /**< Default value for WDOG_IF */
+#define _WDOG_IF_MASK 0x0000001FUL /**< Mask for WDOG_IF */
+#define WDOG_IF_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Flag */
+#define _WDOG_IF_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IF_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IF_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_TOUT_DEFAULT (_WDOG_IF_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Flag */
+#define _WDOG_IF_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IF_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IF_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN_DEFAULT (_WDOG_IF_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN (0x1UL << 2) /**< WDOG Window Interrupt Flag */
+#define _WDOG_IF_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IF_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IF_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN_DEFAULT (_WDOG_IF_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0_DEFAULT (_WDOG_IF_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1_DEFAULT (_WDOG_IF_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IF */
+
+/* Bit fields for WDOG IEN */
+#define _WDOG_IEN_RESETVALUE 0x00000000UL /**< Default value for WDOG_IEN */
+#define _WDOG_IEN_MASK 0x0000001FUL /**< Mask for WDOG_IEN */
+#define WDOG_IEN_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Enable */
+#define _WDOG_IEN_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_TOUT_DEFAULT (_WDOG_IEN_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Enable */
+#define _WDOG_IEN_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IEN_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IEN_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN_DEFAULT (_WDOG_IEN_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN (0x1UL << 2) /**< WDOG Window Interrupt Enable */
+#define _WDOG_IEN_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IEN_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IEN_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN_DEFAULT (_WDOG_IEN_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0_DEFAULT (_WDOG_IEN_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1_DEFAULT (_WDOG_IEN_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IEN */
+
+/* Bit fields for WDOG LOCK */
+#define _WDOG_LOCK_RESETVALUE 0x0000ABE8UL /**< Default value for WDOG_LOCK */
+#define _WDOG_LOCK_MASK 0x0000FFFFUL /**< Mask for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_DEFAULT 0x0000ABE8UL /**< Mode DEFAULT for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_UNLOCK 0x0000ABE8UL /**< Mode UNLOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_DEFAULT (_WDOG_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_LOCK (_WDOG_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_UNLOCK (_WDOG_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for WDOG_LOCK */
+
+/* Bit fields for WDOG SYNCBUSY */
+#define _WDOG_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for WDOG_SYNCBUSY */
+#define _WDOG_SYNCBUSY_MASK 0x00000001UL /**< Mask for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD (0x1UL << 0) /**< Sync Busy for Cmd Register */
+#define _WDOG_SYNCBUSY_CMD_SHIFT 0 /**< Shift value for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_MASK 0x1UL /**< Bit mask for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD_DEFAULT (_WDOG_SYNCBUSY_CMD_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_SYNCBUSY */
+
+/** @} End of group EFR32BG29_WDOG_BitFields */
+/** @} End of group EFR32BG29_WDOG */
+/** @} End of group Parts */
+
+#endif // EFR32BG29_WDOG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b140f1024im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b140f1024im40.h
new file mode 100644
index 000000000..ea8aaaac3
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b140f1024im40.h
@@ -0,0 +1,1471 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32BG29B140F1024IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29B140F1024IM40_H
+#define EFR32BG29B140F1024IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40 EFR32BG29B140F1024IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32BG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40_Core EFR32BG29B140F1024IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32BG29B140F1024IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32BG29B140F1024IM40_Part EFR32BG29B140F1024IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32BG29B140F1024IM40)
+#define EFR32BG29B140F1024IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32BG29B140F1024IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_BLUE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_BG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 8 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32BG29B140F1024IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00040000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 5U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x001FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PB_PIN4 1U /**< GPIO pin PB4 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32bg29.h" /* System Header File */
+
+/** @} End of group EFR32BG29B140F1024IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40_Peripheral_TypeDefs EFR32BG29B140F1024IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32bg29_emu.h"
+#include "efr32bg29_cmu.h"
+#include "efr32bg29_hfxo.h"
+#include "efr32bg29_hfrco.h"
+#include "efr32bg29_fsrco.h"
+#include "efr32bg29_dpll.h"
+#include "efr32bg29_lfxo.h"
+#include "efr32bg29_lfrco.h"
+#include "efr32bg29_ulfrco.h"
+#include "efr32bg29_msc.h"
+#include "efr32bg29_icache.h"
+#include "efr32bg29_prs.h"
+#include "efr32bg29_gpio.h"
+#include "efr32bg29_ldma.h"
+#include "efr32bg29_ldmaxbar.h"
+#include "efr32bg29_timer.h"
+#include "efr32bg29_usart.h"
+#include "efr32bg29_burtc.h"
+#include "efr32bg29_i2c.h"
+#include "efr32bg29_syscfg.h"
+#include "efr32bg29_buram.h"
+#include "efr32bg29_gpcrc.h"
+#include "efr32bg29_dcdc.h"
+#include "efr32bg29_pdm.h"
+#include "efr32bg29_etampdet.h"
+#include "efr32bg29_mpahbram.h"
+#include "efr32bg29_eusart.h"
+#include "efr32bg29_aes.h"
+#include "efr32bg29_smu.h"
+#include "efr32bg29_rtcc.h"
+#include "efr32bg29_wdog.h"
+#include "efr32bg29_letimer.h"
+#include "efr32bg29_iadc.h"
+#include "efr32bg29_acmp.h"
+#include "efr32bg29_semailbox.h"
+#include "efr32bg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32bg29_prs_signals.h"
+#include "efr32bg29_dma_descriptor.h"
+#include "efr32bg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32BG29B140F1024IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40_Peripheral_Base EFR32BG29B140F1024IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32BG29B140F1024IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40_Peripheral_Declaration EFR32BG29B140F1024IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32BG29B140F1024IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B140F1024IM40_Peripheral_Parameters EFR32BG29B140F1024IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32BG29B140F1024IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32BG29B140F1024IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b220f1024cj45.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b220f1024cj45.h
new file mode 100644
index 000000000..94d4038dd
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b220f1024cj45.h
@@ -0,0 +1,1456 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32BG29B220F1024CJ45
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29B220F1024CJ45_H
+#define EFR32BG29B220F1024CJ45_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45 EFR32BG29B220F1024CJ45
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32BG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45_Core EFR32BG29B220F1024CJ45 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32BG29B220F1024CJ45_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32BG29B220F1024CJ45_Part EFR32BG29B220F1024CJ45 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32BG29B220F1024CJ45)
+#define EFR32BG29B220F1024CJ45 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32BG29B220F1024CJ45" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_BLUE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_BG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 4 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32BG29B220F1024CJ45 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00040000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 7U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x007FUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 3U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0007UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 7U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x007FUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 2U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x0003UL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32bg29.h" /* System Header File */
+
+/** @} End of group EFR32BG29B220F1024CJ45_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45_Peripheral_TypeDefs EFR32BG29B220F1024CJ45 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32bg29_emu.h"
+#include "efr32bg29_cmu.h"
+#include "efr32bg29_hfxo.h"
+#include "efr32bg29_hfrco.h"
+#include "efr32bg29_fsrco.h"
+#include "efr32bg29_dpll.h"
+#include "efr32bg29_lfxo.h"
+#include "efr32bg29_lfrco.h"
+#include "efr32bg29_ulfrco.h"
+#include "efr32bg29_msc.h"
+#include "efr32bg29_icache.h"
+#include "efr32bg29_prs.h"
+#include "efr32bg29_gpio.h"
+#include "efr32bg29_ldma.h"
+#include "efr32bg29_ldmaxbar.h"
+#include "efr32bg29_timer.h"
+#include "efr32bg29_usart.h"
+#include "efr32bg29_burtc.h"
+#include "efr32bg29_i2c.h"
+#include "efr32bg29_syscfg.h"
+#include "efr32bg29_buram.h"
+#include "efr32bg29_gpcrc.h"
+#include "efr32bg29_dcdc.h"
+#include "efr32bg29_pdm.h"
+#include "efr32bg29_etampdet.h"
+#include "efr32bg29_mpahbram.h"
+#include "efr32bg29_eusart.h"
+#include "efr32bg29_aes.h"
+#include "efr32bg29_smu.h"
+#include "efr32bg29_rtcc.h"
+#include "efr32bg29_wdog.h"
+#include "efr32bg29_letimer.h"
+#include "efr32bg29_iadc.h"
+#include "efr32bg29_acmp.h"
+#include "efr32bg29_semailbox.h"
+#include "efr32bg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32bg29_prs_signals.h"
+#include "efr32bg29_dma_descriptor.h"
+#include "efr32bg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32BG29B220F1024CJ45_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45_Peripheral_Base EFR32BG29B220F1024CJ45 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32BG29B220F1024CJ45_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45_Peripheral_Declaration EFR32BG29B220F1024CJ45 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32BG29B220F1024CJ45_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B220F1024CJ45_Peripheral_Parameters EFR32BG29B220F1024CJ45 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32BG29B220F1024CJ45_Peripheral_Parameters */
+
+/** @} End of group EFR32BG29B220F1024CJ45 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b221f1024cj45.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b221f1024cj45.h
new file mode 100644
index 000000000..c5aaf2770
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b221f1024cj45.h
@@ -0,0 +1,1456 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32BG29B221F1024CJ45
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29B221F1024CJ45_H
+#define EFR32BG29B221F1024CJ45_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45 EFR32BG29B221F1024CJ45
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32BG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45_Core EFR32BG29B221F1024CJ45 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32BG29B221F1024CJ45_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32BG29B221F1024CJ45_Part EFR32BG29B221F1024CJ45 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32BG29B221F1024CJ45)
+#define EFR32BG29B221F1024CJ45 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32BG29B221F1024CJ45" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_BLUE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_BG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 4 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32BG29B221F1024CJ45 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00030000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 7U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x007FUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 3U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0007UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 7U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x007FUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 2U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x0003UL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32bg29.h" /* System Header File */
+
+/** @} End of group EFR32BG29B221F1024CJ45_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45_Peripheral_TypeDefs EFR32BG29B221F1024CJ45 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32bg29_emu.h"
+#include "efr32bg29_cmu.h"
+#include "efr32bg29_hfxo.h"
+#include "efr32bg29_hfrco.h"
+#include "efr32bg29_fsrco.h"
+#include "efr32bg29_dpll.h"
+#include "efr32bg29_lfxo.h"
+#include "efr32bg29_lfrco.h"
+#include "efr32bg29_ulfrco.h"
+#include "efr32bg29_msc.h"
+#include "efr32bg29_icache.h"
+#include "efr32bg29_prs.h"
+#include "efr32bg29_gpio.h"
+#include "efr32bg29_ldma.h"
+#include "efr32bg29_ldmaxbar.h"
+#include "efr32bg29_timer.h"
+#include "efr32bg29_usart.h"
+#include "efr32bg29_burtc.h"
+#include "efr32bg29_i2c.h"
+#include "efr32bg29_syscfg.h"
+#include "efr32bg29_buram.h"
+#include "efr32bg29_gpcrc.h"
+#include "efr32bg29_dcdc.h"
+#include "efr32bg29_pdm.h"
+#include "efr32bg29_etampdet.h"
+#include "efr32bg29_mpahbram.h"
+#include "efr32bg29_eusart.h"
+#include "efr32bg29_aes.h"
+#include "efr32bg29_smu.h"
+#include "efr32bg29_rtcc.h"
+#include "efr32bg29_wdog.h"
+#include "efr32bg29_letimer.h"
+#include "efr32bg29_iadc.h"
+#include "efr32bg29_acmp.h"
+#include "efr32bg29_semailbox.h"
+#include "efr32bg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32bg29_prs_signals.h"
+#include "efr32bg29_dma_descriptor.h"
+#include "efr32bg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32BG29B221F1024CJ45_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45_Peripheral_Base EFR32BG29B221F1024CJ45 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32BG29B221F1024CJ45_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45_Peripheral_Declaration EFR32BG29B221F1024CJ45 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32BG29B221F1024CJ45_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B221F1024CJ45_Peripheral_Parameters EFR32BG29B221F1024CJ45 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32BG29B221F1024CJ45_Peripheral_Parameters */
+
+/** @} End of group EFR32BG29B221F1024CJ45 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b230f1024cm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b230f1024cm40.h
new file mode 100644
index 000000000..c2d0c3b95
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/efr32bg29b230f1024cm40.h
@@ -0,0 +1,1470 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32BG29B230F1024CM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32BG29B230F1024CM40_H
+#define EFR32BG29B230F1024CM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40 EFR32BG29B230F1024CM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32BG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40_Core EFR32BG29B230F1024CM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32BG29B230F1024CM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32BG29B230F1024CM40_Part EFR32BG29B230F1024CM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32BG29B230F1024CM40)
+#define EFR32BG29B230F1024CM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32BG29B230F1024CM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_BLUE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_BG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 6 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32BG29B230F1024CM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00040000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 8U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x00FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 5U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x001FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PB_PIN4 1U /**< GPIO pin PB4 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32bg29.h" /* System Header File */
+
+/** @} End of group EFR32BG29B230F1024CM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40_Peripheral_TypeDefs EFR32BG29B230F1024CM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32bg29_emu.h"
+#include "efr32bg29_cmu.h"
+#include "efr32bg29_hfxo.h"
+#include "efr32bg29_hfrco.h"
+#include "efr32bg29_fsrco.h"
+#include "efr32bg29_dpll.h"
+#include "efr32bg29_lfxo.h"
+#include "efr32bg29_lfrco.h"
+#include "efr32bg29_ulfrco.h"
+#include "efr32bg29_msc.h"
+#include "efr32bg29_icache.h"
+#include "efr32bg29_prs.h"
+#include "efr32bg29_gpio.h"
+#include "efr32bg29_ldma.h"
+#include "efr32bg29_ldmaxbar.h"
+#include "efr32bg29_timer.h"
+#include "efr32bg29_usart.h"
+#include "efr32bg29_burtc.h"
+#include "efr32bg29_i2c.h"
+#include "efr32bg29_syscfg.h"
+#include "efr32bg29_buram.h"
+#include "efr32bg29_gpcrc.h"
+#include "efr32bg29_dcdc.h"
+#include "efr32bg29_pdm.h"
+#include "efr32bg29_etampdet.h"
+#include "efr32bg29_mpahbram.h"
+#include "efr32bg29_eusart.h"
+#include "efr32bg29_aes.h"
+#include "efr32bg29_smu.h"
+#include "efr32bg29_rtcc.h"
+#include "efr32bg29_wdog.h"
+#include "efr32bg29_letimer.h"
+#include "efr32bg29_iadc.h"
+#include "efr32bg29_acmp.h"
+#include "efr32bg29_semailbox.h"
+#include "efr32bg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32bg29_prs_signals.h"
+#include "efr32bg29_dma_descriptor.h"
+#include "efr32bg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32BG29B230F1024CM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40_Peripheral_Base EFR32BG29B230F1024CM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32BG29B230F1024CM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40_Peripheral_Declaration EFR32BG29B230F1024CM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32BG29B230F1024CM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32BG29B230F1024CM40_Peripheral_Parameters EFR32BG29B230F1024CM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32BG29B230F1024CM40_Peripheral_Parameters */
+
+/** @} End of group EFR32BG29B230F1024CM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/em_device.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/em_device.h
new file mode 100644
index 000000000..afe035565
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/em_device.h
@@ -0,0 +1,67 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories
+ * microcontroller devices
+ *
+ * This is a convenience header file for defining the part number on the
+ * build command line, instead of specifying the part specific header file.
+ *
+ * @verbatim
+ * Example: Add "-DEFM32G890F128" to your build options, to define part
+ * Add "#include "em_device.h" to your source files
+
+ *
+ * @endverbatim
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef EM_DEVICE_H
+#define EM_DEVICE_H
+#if defined(EFR32BG29B140F1024IM40)
+#include "efr32bg29b140f1024im40.h"
+
+#elif defined(EFR32BG29B220F1024CJ45)
+#include "efr32bg29b220f1024cj45.h"
+
+#elif defined(EFR32BG29B221F1024CJ45)
+#include "efr32bg29b221f1024cj45.h"
+
+#elif defined(EFR32BG29B230F1024CM40)
+#include "efr32bg29b230f1024cm40.h"
+
+#else
+#error "em_device.h: PART NUMBER undefined"
+#endif
+
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+
+#if defined(SL_TRUSTZONE_SECURE) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_TRUSTZONE_SECURE and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+#endif /* EM_DEVICE_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/system_efr32bg29.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/system_efr32bg29.h
new file mode 100644
index 000000000..981c25e74
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Include/system_efr32bg29.h
@@ -0,0 +1,247 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS system header file for EFR32BG29
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef SYSTEM_EFR32BG29_H
+#define SYSTEM_EFR32BG29_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include "sl_code_classification.h"
+
+/***************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ ******************************************************************************/
+/***************************************************************************//**
+ * @addtogroup EFR32BG29 EFR32BG29
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ****************************** TYPEDEFS ***********************************
+ ******************************************************************************/
+
+/* Interrupt vectortable entry */
+typedef union {
+ void (*VECTOR_TABLE_Type)(void);
+ void *topOfStack;
+} tVectorEntry;
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+extern uint32_t SystemCoreClock; /**< System Clock Frequency (Core Clock) */
+extern uint32_t SystemHfrcoFreq; /**< System HFRCO frequency */
+#endif
+
+/*Re-direction of IRQn.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQn SMU_S_PRIVILEGED_IRQn
+#else
+#define SMU_PRIVILEGED_IRQn SMU_NS_PRIVILEGED_IRQn
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*Re-direction of IRQHandler.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQHandler SMU_S_PRIVILEGED_IRQHandler
+#else
+#define SMU_PRIVILEGED_IRQHandler SMU_NS_PRIVILEGED_IRQHandler
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*******************************************************************************
+ ***************************** PROTOTYPES **********************************
+ ******************************************************************************/
+
+void Reset_Handler(void); /**< Reset Handler */
+void NMI_Handler(void); /**< NMI Handler */
+void HardFault_Handler(void); /**< Hard Fault Handler */
+void MemManage_Handler(void); /**< MPU Fault Handler */
+void BusFault_Handler(void); /**< Bus Fault Handler */
+void UsageFault_Handler(void); /**< Usage Fault Handler */
+void SecureFault_Handler(void); /**< Secure Fault Handler */
+void SVC_Handler(void); /**< SVCall Handler */
+void DebugMon_Handler(void); /**< Debug Monitor Handler */
+void PendSV_Handler(void); /**< PendSV Handler */
+void SysTick_Handler(void); /**< SysTick Handler */
+
+/* Part Specific Interrupts */
+void SETAMPERHOST_IRQHandler(void); /**< SETAMPERHOST IRQ Handler */
+void SEMBRX_IRQHandler(void); /**< SEMBRX IRQ Handler */
+void SEMBTX_IRQHandler(void); /**< SEMBTX IRQ Handler */
+void SMU_SECURE_IRQHandler(void); /**< SMU_SECURE IRQ Handler */
+void SMU_S_PRIVILEGED_IRQHandler(void); /**< SMU_S_PRIVILEGED IRQ Handler */
+void SMU_NS_PRIVILEGED_IRQHandler(void); /**< SMU_NS_PRIVILEGED IRQ Handler */
+void EMU_IRQHandler(void); /**< EMU IRQ Handler */
+void EMUEFP_IRQHandler(void); /**< EMUEFP IRQ Handler */
+void DCDC_IRQHandler(void); /**< DCDC IRQ Handler */
+void ETAMPDET_IRQHandler(void); /**< ETAMPDET IRQ Handler */
+void TIMER0_IRQHandler(void); /**< TIMER0 IRQ Handler */
+void TIMER1_IRQHandler(void); /**< TIMER1 IRQ Handler */
+void TIMER2_IRQHandler(void); /**< TIMER2 IRQ Handler */
+void TIMER3_IRQHandler(void); /**< TIMER3 IRQ Handler */
+void TIMER4_IRQHandler(void); /**< TIMER4 IRQ Handler */
+void RTCC_IRQHandler(void); /**< RTCC IRQ Handler */
+void USART0_RX_IRQHandler(void); /**< USART0_RX IRQ Handler */
+void USART0_TX_IRQHandler(void); /**< USART0_TX IRQ Handler */
+void USART1_RX_IRQHandler(void); /**< USART1_RX IRQ Handler */
+void USART1_TX_IRQHandler(void); /**< USART1_TX IRQ Handler */
+void EUSART0_RX_IRQHandler(void); /**< EUSART0_RX IRQ Handler */
+void EUSART0_TX_IRQHandler(void); /**< EUSART0_TX IRQ Handler */
+void ICACHE0_IRQHandler(void); /**< ICACHE0 IRQ Handler */
+void BURTC_IRQHandler(void); /**< BURTC IRQ Handler */
+void LETIMER0_IRQHandler(void); /**< LETIMER0 IRQ Handler */
+void SYSCFG_IRQHandler(void); /**< SYSCFG IRQ Handler */
+void LDMA_IRQHandler(void); /**< LDMA IRQ Handler */
+void LFXO_IRQHandler(void); /**< LFXO IRQ Handler */
+void LFRCO_IRQHandler(void); /**< LFRCO IRQ Handler */
+void ULFRCO_IRQHandler(void); /**< ULFRCO IRQ Handler */
+void GPIO_ODD_IRQHandler(void); /**< GPIO_ODD IRQ Handler */
+void GPIO_EVEN_IRQHandler(void); /**< GPIO_EVEN IRQ Handler */
+void I2C0_IRQHandler(void); /**< I2C0 IRQ Handler */
+void I2C1_IRQHandler(void); /**< I2C1 IRQ Handler */
+void EMUDG_IRQHandler(void); /**< EMUDG IRQ Handler */
+void EMUSE_IRQHandler(void); /**< EMUSE IRQ Handler */
+void AGC_IRQHandler(void); /**< AGC IRQ Handler */
+void BUFC_IRQHandler(void); /**< BUFC IRQ Handler */
+void FRC_PRI_IRQHandler(void); /**< FRC_PRI IRQ Handler */
+void FRC_IRQHandler(void); /**< FRC IRQ Handler */
+void MODEM_IRQHandler(void); /**< MODEM IRQ Handler */
+void PROTIMER_IRQHandler(void); /**< PROTIMER IRQ Handler */
+void RAC_RSM_IRQHandler(void); /**< RAC_RSM IRQ Handler */
+void RAC_SEQ_IRQHandler(void); /**< RAC_SEQ IRQ Handler */
+void RDMAILBOX_IRQHandler(void); /**< RDMAILBOX IRQ Handler */
+void RFSENSE_IRQHandler(void); /**< RFSENSE IRQ Handler */
+void SYNTH_IRQHandler(void); /**< SYNTH IRQ Handler */
+void PRORTC_IRQHandler(void); /**< PRORTC IRQ Handler */
+void ACMP0_IRQHandler(void); /**< ACMP0 IRQ Handler */
+void WDOG0_IRQHandler(void); /**< WDOG0 IRQ Handler */
+void HFXO0_IRQHandler(void); /**< HFXO0 IRQ Handler */
+void HFRCO0_IRQHandler(void); /**< HFRCO0 IRQ Handler */
+void CMU_IRQHandler(void); /**< CMU IRQ Handler */
+void AES_IRQHandler(void); /**< AES IRQ Handler */
+void IADC_IRQHandler(void); /**< IADC IRQ Handler */
+void MSC_IRQHandler(void); /**< MSC IRQ Handler */
+void DPLL0_IRQHandler(void); /**< DPLL0 IRQ Handler */
+void PDM_IRQHandler(void); /**< PDM IRQ Handler */
+void SW0_IRQHandler(void); /**< SW0 IRQ Handler */
+void SW1_IRQHandler(void); /**< SW1 IRQ Handler */
+void SW2_IRQHandler(void); /**< SW2 IRQ Handler */
+void SW3_IRQHandler(void); /**< SW3 IRQ Handler */
+void KERNEL0_IRQHandler(void); /**< KERNEL0 IRQ Handler */
+void KERNEL1_IRQHandler(void); /**< KERNEL1 IRQ Handler */
+void M33CTI0_IRQHandler(void); /**< M33CTI0 IRQ Handler */
+void M33CTI1_IRQHandler(void); /**< M33CTI1 IRQ Handler */
+void FPUEXH_IRQHandler(void); /**< FPUEXH IRQ Handler */
+void MPAHBRAM_IRQHandler(void); /**< MPAHBRAM IRQ Handler */
+void EUSART1_RX_IRQHandler(void); /**< EUSART1_RX IRQ Handler */
+void EUSART1_TX_IRQHandler(void); /**< EUSART1_TX IRQ Handler */
+
+#if (__FPU_PRESENT == 1)
+void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
+#endif
+
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHCLKGet(void);
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE uint32_t SystemCoreClockGet(void)
+{
+ return SystemHCLKGet();
+}
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE void SystemCoreClockUpdate(void)
+{
+ SystemHCLKGet();
+}
+
+void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFRCODPLLClockGet(void);
+void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFXOClockGet(void);
+void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFXOClockGet(void);
+void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemULFRCOClockGet(void);
+
+/** @} End of group */
+/** @} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SYSTEM_EFR32BG29_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Source/system_efr32bg29.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Source/system_efr32bg29.c
new file mode 100644
index 000000000..3ba78ea4b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32BG29/Source/system_efr32bg29.c
@@ -0,0 +1,598 @@
+/***************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M33 system support for EFR32BG29 devices.
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#include
+#include "em_device.h"
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
+/*******************************************************************************
+ ****************************** DEFINES ************************************
+ ******************************************************************************/
+
+// System oscillator frequencies. These frequencies are normally constant
+// for a target, but they are made configurable in order to allow run-time
+// handling of different boards. The crystal oscillator clocks can be set
+// compile time to a non-default value by defining respective nFXO_FREQ
+// values according to board design. By defining the nFXO_FREQ to 0,
+// one indicates that the oscillator is not present, in order to save some
+// SW footprint.
+
+#if !defined(FSRCO_FREQ)
+// FSRCO frequency
+#define FSRCO_FREQ (20000000UL)
+#endif
+
+#if !defined(HFXO_FREQ)
+// HFXO frequency
+#define HFXO_FREQ (38400000UL)
+#endif
+
+#if !defined(HFRCODPLL_STARTUP_FREQ)
+// HFRCODPLL startup frequency
+#define HFRCODPLL_STARTUP_FREQ (19000000UL)
+#endif
+
+#if !defined(HFRCODPLL_MAX_FREQ)
+// Maximum HFRCODPLL frequency
+#define HFRCODPLL_MAX_FREQ (80000000UL)
+#endif
+
+// CLKIN0 input
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
+#define CLKIN0_FREQ (0UL)
+#endif
+
+#if !defined(LFRCO_MAX_FREQ)
+// LFRCO frequency, tuned to below frequency during manufacturing.
+#define LFRCO_FREQ (32768UL)
+#endif
+
+#if !defined(ULFRCO_FREQ)
+// ULFRCO frequency
+#define ULFRCO_FREQ (1000UL)
+#endif
+
+#if !defined(LFXO_FREQ)
+// LFXO frequency
+#define LFXO_FREQ (LFRCO_FREQ)
+#endif
+
+/*******************************************************************************
+ ************************** LOCAL VARIABLES ********************************
+ ******************************************************************************/
+
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// NOTE: Gecko bootloaders can't have static variable allocation.
+// System HFXO clock frequency
+static uint32_t SystemHFXOClock = HFXO_FREQ;
+#endif
+
+#if (LFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// System LFXO clock frequency
+static uint32_t SystemLFXOClock = LFXO_FREQ;
+#endif
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+// System HFRCODPLL clock frequency
+static uint32_t SystemHFRCODPLLClock = HFRCODPLL_STARTUP_FREQ;
+#endif
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+
+/**
+ * @brief
+ * System System Clock Frequency (Core Clock).
+ *
+ * @details
+ * Required CMSIS global variable that must be kept up-to-date.
+ */
+uint32_t SystemCoreClock = HFRCODPLL_STARTUP_FREQ;
+
+#endif
+
+/*---------------------------------------------------------------------------
+ * Exception / Interrupt Vector table
+ *---------------------------------------------------------------------------*/
+extern const tVectorEntry __VECTOR_TABLE[16 + EXT_IRQ_COUNT];
+
+/*******************************************************************************
+ ************************** GLOBAL FUNCTIONS *******************************
+ ******************************************************************************/
+
+/**************************************************************************//**
+ * @brief
+ * Initialize the system.
+ *
+ * @details
+ * Do required generic HW system init.
+ *
+ * @note
+ * This function is invoked during system init, before the main() routine
+ * and any data has been initialized. For this reason, it cannot do any
+ * initialization of variables etc.
+ *****************************************************************************/
+void SystemInit(void)
+{
+#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
+ SCB->VTOR = (uint32_t) (&__VECTOR_TABLE[0]);
+#endif
+
+#if defined(UNALIGNED_SUPPORT_DISABLE)
+ SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
+#endif
+
+#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3U << 10U * 2U) /* set CP10 Full Access */
+ | (3U << 11U * 2U)); /* set CP11 Full Access */
+#endif
+
+/* Secure app takes care of moving between the security states.
+ * SL_TRUSTZONE_SECURE MACRO is for secure access.
+ * SL_TRUSTZONE_NONSECURE MACRO is for non-secure access.
+ * When both the MACROS are not defined, during start-up below code makes sure
+ * that all the peripherals are accessed from non-secure address except SMU,
+ * as SMU is used to configure the trustzone state of the system. */
+#if !defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_NONSECURE) \
+ && defined(__TZ_PRESENT)
+ CMU->CLKEN1_SET = CMU_CLKEN1_SMU;
+
+ // config SMU to Secure and other peripherals to Non-Secure.
+ SMU->PPUSATD0_CLR = _SMU_PPUSATD0_MASK;
+#if defined (SEMAILBOX_PRESENT)
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & (~SMU_PPUSATD1_SMU & ~SMU_PPUSATD1_SEMAILBOX));
+#else
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & ~SMU_PPUSATD1_SMU);
+#endif
+
+ // SAU treats all accesses as non-secure
+#if defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
+ SAU->CTRL = SAU_CTRL_ALLNS_Msk;
+ __DSB();
+ __ISB();
+#else
+ #error "The startup code requires access to the CMSE toolchain extension to set proper SAU settings."
+#endif // __ARM_FEATURE_CMSE
+
+// Clear and Enable the SMU PPUSEC and BMPUSEC interrupt.
+ NVIC_ClearPendingIRQ(SMU_SECURE_IRQn);
+ SMU->IF_CLR = SMU_IF_PPUSEC | SMU_IF_BMPUSEC;
+ NVIC_EnableIRQ(SMU_SECURE_IRQn);
+ SMU->IEN = SMU_IEN_PPUSEC | SMU_IEN_BMPUSEC;
+#endif //SL_TRUSTZONE_SECURE
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current HFRCODPLL frequency.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemHFRCODPLLClockGet(void)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ return SystemHFRCODPLLClock;
+#else
+ uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
+
+ // Get oscillator frequency band
+ switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
+ >> _HFRCO_CAL_FREQRANGE_SHIFT) {
+ case 0:
+ switch (HFRCO0->CAL & _HFRCO_CAL_CLKDIV_MASK) {
+ case HFRCO_CAL_CLKDIV_DIV1:
+ ret = 4000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV2:
+ ret = 2000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV4:
+ ret = 1000000UL;
+ break;
+
+ default:
+ ret = 0UL;
+ break;
+ }
+ break;
+
+ case 3:
+ ret = 7000000UL;
+ break;
+
+ case 6:
+ ret = 13000000UL;
+ break;
+
+ case 7:
+ ret = 16000000UL;
+ break;
+
+ case 8:
+ ret = 19000000UL;
+ break;
+
+ case 10:
+ ret = 26000000UL;
+ break;
+
+ case 11:
+ ret = 32000000UL;
+ break;
+
+ case 12:
+ ret = 38000000UL;
+ break;
+
+ case 13:
+ ret = 48000000UL;
+ break;
+
+ case 14:
+ ret = 56000000UL;
+ break;
+
+ case 15:
+ ret = 64000000UL;
+ break;
+
+ case 16:
+ ret = 80000000UL;
+ break;
+
+ default:
+ break;
+ }
+ return ret;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set HFRCODPLL frequency value.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+void SystemHFRCODPLLClockSet(uint32_t freq)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFRCODPLLClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system clock frequency (SYSCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * hardware configuration.
+ *
+ * @note
+ * This is an EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * Current system clock (SYSCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemSYSCLKGet(void)
+{
+ uint32_t ret = 0U;
+
+ // Find clock source
+ switch (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK) {
+ case _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL:
+ ret = SystemHFRCODPLLClockGet();
+ break;
+
+#if (HFXO_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_HFXO:
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ ret = HFXO_FREQ;
+#else
+ ret = SystemHFXOClock;
+#endif
+ break;
+#endif
+
+#if (CLKIN0_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_CLKIN0:
+ ret = CLKIN0_FREQ;
+ break;
+#endif
+
+ case _CMU_SYSCLKCTRL_CLKSEL_FSRCO:
+ ret = FSRCO_FREQ;
+ break;
+
+ default:
+ // Unknown clock source.
+ while (1) {
+ }
+ }
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system core clock frequency (HCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * configuration. Assuming that the SystemCoreClock global variable is
+ * maintained, the core clock frequency is stored in that variable as well.
+ * This function will however calculate the core clock based on actual HW
+ * configuration. It will also update the SystemCoreClock global variable.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The current core clock (HCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemHCLKGet(void)
+{
+ uint32_t presc, ret;
+
+ ret = SystemSYSCLKGet();
+
+ presc = (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_HCLKPRESC_MASK)
+ >> _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT;
+
+ ret /= presc + 1U;
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ // Keep CMSIS system clock variable up-to-date
+ SystemCoreClock = ret;
+#endif
+
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the maximum core clock frequency.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The maximum core clock frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemMaxCoreClockGet(void)
+{
+ return(HFRCODPLL_MAX_FREQ > HFXO_FREQ \
+ ? HFRCODPLL_MAX_FREQ : HFXO_FREQ);
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFXO frequency in Hz. 0 if the external crystal oscillator is not present.
+ *****************************************************************************/
+uint32_t SystemHFXOClockGet(void)
+{
+ // The external crystal oscillator is not present if HFXO_FREQ==0
+#if (HFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return HFXO_FREQ;
+#else
+ return SystemHFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemHFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFXOClock = freq;
+
+ // Update core clock frequency if HFXO is used to clock core
+ if ((CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK)
+ == _CMU_SYSCLKCTRL_CLKSEL_HFXO) {
+ // This function will update the global variable
+ SystemHCLKGet();
+ }
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current CLKIN0 frequency.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * CLKIN0 frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemCLKIN0Get(void)
+{
+ return CLKIN0_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get FSRCO frequency.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * FSRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemFSRCOClockGet(void)
+{
+ return FSRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFRCOClockGet(void)
+{
+ return LFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get ultra low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * ULFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemULFRCOClockGet(void)
+{
+ // The ULFRCO frequency is not tuned, and can be very inaccurate
+ return ULFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFXO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFXOClockGet(void)
+{
+ // External crystal present?
+#if (LFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return LFXO_FREQ;
+#else
+ return SystemLFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32BG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * LFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemLFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (LFXO_FREQ > 0U) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemLFXOClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f128gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f128gm40.h
index ea5fb87fd..aacfec87e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f128gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f128gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A010F128GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm40.h
index 45276dc96..8fcce9b43 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A010F256GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm48.h
index 72fb94e56..1fa107069 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f256gm48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1440,119 +1441,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A010F256GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm40.h
index 0a579e596..5c3d576e4 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A010F512GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm48.h
index 758b0a86b..189bfc4e5 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a010f512gm48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1440,119 +1441,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A010F512GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a011f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a011f512gm40.h
index bfc77c232..e7a860a10 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a011f512gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a011f512gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1340,119 +1341,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A011F512GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f128gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f128gm40.h
index 0aecbe560..51d3b2b2e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f128gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f128gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A020F128GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm40.h
index 85462cf77..c144a6583 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A020F256GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm48.h
index 73cbb0610..55cba48d0 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f256gm48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1440,119 +1441,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A020F256GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm40.h
index 8e74855ce..73b05a04e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1343,119 +1344,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A020F512GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm48.h
index 0528f1b6e..41123e659 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a020f512gm48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1440,119 +1441,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A020F512GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a021f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a021f512gm40.h
index cdd240918..bd25bb102 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a021f512gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23a021f512gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1340,119 +1341,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23A021F512GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f128gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f128gm40.h
index 27c98f721..57f696e64 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f128gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f128gm40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1344,119 +1345,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B010F128GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512gm48.h
index 70c0a74ea..a507b61ff 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512gm48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1441,119 +1442,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B010F512GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im40.h
index dcf91d95b..66cc12ba3 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1344,119 +1345,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B010F512IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im48.h
index 993bc3d50..35c8b514f 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b010f512im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1441,119 +1442,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B010F512IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f128gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f128gm40.h
index 230cea932..ad6d557d7 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f128gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f128gm40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1344,119 +1345,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B020F128GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im40.h
index be70e9a62..309add85e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1344,119 +1345,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B020F512IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im48.h
index 7c0ef9d11..7a4dd804b 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b020f512im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1441,119 +1442,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B020F512IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im40.h
index d94aa9bb5..c1d4fe2cf 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1341,119 +1342,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B021F512IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im48.h
index 2a1197792..576edd9d7 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/efr32fg23b021f512im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1444,119 +1445,105 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : ((n) == 2) ? EUSART2 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : ((ref) == EUSART2) ? 2 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32FG23B021F512IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h
index 8e79649db..04e928874 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Include/system_efr32fg23.h
@@ -36,6 +36,7 @@ extern "C" {
#endif
#include
+#include "sl_code_classification.h"
/***************************************************************************//**
* @addtogroup Parts
@@ -177,6 +178,7 @@ void RFECA1_IRQHandler(void); /**< RFECA1 IRQ Handler */
void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
#endif
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHCLKGet(void);
/**************************************************************************//**
@@ -193,6 +195,7 @@ uint32_t SystemHCLKGet(void);
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE uint32_t SystemCoreClockGet(void)
{
return SystemHCLKGet();
@@ -212,24 +215,35 @@ static __INLINE uint32_t SystemCoreClockGet(void)
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE void SystemCoreClockUpdate(void)
{
SystemHCLKGet();
}
void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCODPLLClockGet(void);
void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFXOClockGet(void);
void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCOEM23ClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFXOClockGet(void);
void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemULFRCOClockGet(void);
/** @} End of group */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c
index cc8265676..86f20fa13 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32FG23/Source/system_efr32fg23.c
@@ -31,6 +31,15 @@
#include
#include "em_device.h"
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
/*******************************************************************************
****************************** DEFINES ************************************
******************************************************************************/
@@ -64,7 +73,10 @@
#endif
// CLKIN0 input
-#if !defined(CLKIN0_FREQ)
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
#define CLKIN0_FREQ (0UL)
#endif
@@ -204,12 +216,11 @@ void SystemInit(void)
*****************************************************************************/
uint32_t SystemHFRCODPLLClockGet(void)
{
-#if defined(BOOTLOADER_SYSTEM_NO_STATIC_MEMORY)
- return HFRCODPLL_STARTUP_FREQ;
-#elif !defined(SYSTEM_NO_STATIC_MEMORY)
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
return SystemHFRCODPLLClock;
#else
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
// Get oscillator frequency band
switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
@@ -516,6 +527,7 @@ uint32_t SystemFSRCOClockGet(void)
uint32_t SystemHFRCOEM23ClockGet(void)
{
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCOEM23;
// Get oscillator frequency band
switch ((HFRCOEM23->CAL & _HFRCO_CAL_FREQRANGE_MASK)
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f1024im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f1024im32.h
index a23c6f263..e5b7ac554 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f1024im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f1024im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f512im32.h
index 8a0585c67..e597e8f4d 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f512im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f768im32.h
index bb413a5ac..5f84a0652 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a010f768im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f1024im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f1024im32.h
index 94eaf3f1f..a5c19bc24 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f1024im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f1024im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f512im32.h
index 583889522..53745acf1 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f512im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f768im32.h
index c5262e441..e2acda177 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21a020f768im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f1024im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f1024im32.h
index ebcade29e..d53245420 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f1024im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f1024im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f512im32.h
index 9f8a01f09..39db5a4ce 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f512im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f768im32.h
index ff7dfb2b1..46a1ec890 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b010f768im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1174,14 +1175,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f1024im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f1024im32.h
index d28c02ef7..56b7ba1ca 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f1024im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f1024im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f512im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f512im32.h
index a994b8fd5..a80f9c66d 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f512im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f512im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f768im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f768im32.h
index 3e9b12f31..0d244e0dc 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f768im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/efr32mg21b020f768im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1176,14 +1177,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/rm21z000f1024im32.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/rm21z000f1024im32.h
index 721c99e58..7471285bd 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/rm21z000f1024im32.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/rm21z000f1024im32.h
@@ -132,6 +132,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0003U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1172,14 +1173,6 @@ typedef enum IRQn{
: ((n) == 1) ? ACMP1_EXT_OVR_IF \
: 0x0UL)
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-
/* Instance macros for I2C */
#define I2C(n) (((n) == 0) ? I2C0 \
: ((n) == 1) ? I2C1 \
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h
index 6222190e4..d002283b4 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Include/system_efr32mg21.h
@@ -36,6 +36,7 @@ extern "C" {
#endif
#include
+#include "sl_code_classification.h"
/***************************************************************************//**
* @addtogroup Parts
@@ -148,6 +149,7 @@ void M33CTI1_IRQHandler(void); /**< M33CTI1 IRQ Handler */
void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
#endif
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHCLKGet(void);
/**************************************************************************//**
@@ -164,6 +166,7 @@ uint32_t SystemHCLKGet(void);
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE uint32_t SystemCoreClockGet(void)
{
return SystemHCLKGet();
@@ -183,24 +186,35 @@ static __INLINE uint32_t SystemCoreClockGet(void)
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE void SystemCoreClockUpdate(void)
{
SystemHCLKGet();
}
void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCODPLLClockGet(void);
void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFXOClockGet(void);
void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCOEM23ClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFXOClockGet(void);
void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemULFRCOClockGet(void);
/** @} End of group */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c
index 0239a0c8b..347d42b22 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG21/Source/system_efr32mg21.c
@@ -31,6 +31,15 @@
#include
#include "em_device.h"
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
/*******************************************************************************
****************************** DEFINES ************************************
******************************************************************************/
@@ -64,7 +73,10 @@
#endif
// CLKIN0 input
-#if !defined(CLKIN0_FREQ)
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
#define CLKIN0_FREQ (0UL)
#endif
@@ -203,13 +215,10 @@ void SystemInit(void)
*****************************************************************************/
uint32_t SystemHFRCODPLLClockGet(void)
{
-#if defined(BOOTLOADER_SYSTEM_NO_STATIC_MEMORY)
- return HFRCODPLL_STARTUP_FREQ;
-#elif !defined(SYSTEM_NO_STATIC_MEMORY)
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
return SystemHFRCODPLLClock;
#else
uint32_t ret = 0UL;
-
// Get oscillator frequency band
switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
>> _HFRCO_CAL_FREQRANGE_SHIFT) {
@@ -515,7 +524,6 @@ uint32_t SystemFSRCOClockGet(void)
uint32_t SystemHFRCOEM23ClockGet(void)
{
uint32_t ret = 0UL;
-
// Get oscillator frequency band
switch ((HFRCOEM23->CAL & _HFRCO_CAL_FREQRANGE_MASK)
>> _HFRCO_CAL_FREQRANGE_SHIFT) {
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im40.h
index d753c07a7..047a1891a 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1024IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im48.h
index ff30c96b2..e3432ae49 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1024im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1364,141 +1365,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1024IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm40.h
index 113787cad..5e6e2998e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1536GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm48.h
index 9cae88956..e21bec61a 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1364,141 +1365,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im40.h
index 5b3e652ef..c1f99d754 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im48.h
index 419f045a3..9ea8bd490 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f1536im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1364,141 +1365,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im40.h
index 6a6de1882..026f3d2c9 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F768IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im48.h
index 9f7949a3b..6a0ab7682 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a010f768im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1364,141 +1365,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A010F768IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im40.h
index 904275a8d..c051bd429 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1024IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im48.h
index b46c706e7..744b8cd32 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1024im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1024IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm40.h
index 8b18ca2e4..f6f6f070b 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1536GM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm48.h
index 3ca9e9a36..7798dbe4e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im40.h
index 939f28e78..bc71e578f 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im48.h
index 197321ca5..1365060a8 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f1536im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f768im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f768im40.h
index a0ffa2521..0db02dc46 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f768im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a020f768im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A020F768IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a021f1024im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a021f1024im40.h
index 8e3a371df..b3a23c743 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a021f1024im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a021f1024im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1357,141 +1358,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A021F1024IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1024im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1024im48.h
index 5b4494700..6353b7f01 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1024im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1024im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A110F1024IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1536gm48.h
index 37525e7c3..01ff228f7 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a110f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A110F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a111f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a111f1536gm48.h
index 102e6aa8a..df39e7c19 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a111f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a111f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1359,141 +1360,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A111F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a120f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a120f1536gm48.h
index 91f39e014..4ca7636c2 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a120f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a120f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1358,141 +1359,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A120F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a121f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a121f1536gm48.h
index 499fcc1db..c7f90cd01 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a121f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a121f1536gm48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1357,141 +1358,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A121F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im40.h
index 7e451b63a..d1e72d8ca 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A410F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im48.h
index 6dfefc2b2..4c8f5bd6e 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a410f1536im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1364,141 +1365,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A410F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im40.h
index 80f829de6..17134d4d5 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A420F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im48.h
index c75e60b1e..e07e238f5 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a420f1536im48.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A420F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a610f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a610f1536im40.h
index 0c3908fa1..4e7383155 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a610f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a610f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1362,141 +1363,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A610F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a620f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a620f1536im40.h
index 56e700fc7..c68de9603 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a620f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24a620f1536im40.h
@@ -145,6 +145,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1360,141 +1361,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24A620F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1024im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1024im48.h
index 5d3ba86e6..bec976462 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1024im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1024im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1365,141 +1366,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B010F1024IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im40.h
index a1cfe5869..052752d3c 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1363,141 +1364,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B010F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im48.h
index 678dc2005..db8625dca 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b010f1536im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1365,141 +1366,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B010F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1024im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1024im48.h
index 9646aca2d..609e5fe16 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1024im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1024im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1363,141 +1364,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B020F1024IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im40.h
index 4f3ad9e0a..8674db732 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1361,141 +1362,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B020F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im48.h
index 7a648e866..bfbfef459 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b020f1536im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1363,141 +1364,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B020F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536gm48.h
index 628235677..96e8e82e6 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536gm48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536gm48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1361,141 +1362,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B110F1536GM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536im48.h
index 003a82387..e229efe71 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b110f1536im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1361,141 +1362,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B110F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b120f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b120f1536im48.h
index 1b217bfe4..3c07373e4 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b120f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b120f1536im48.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1359,141 +1360,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B120F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im40.h
index 1ddfa10c0..ddf74ceb2 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im40.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1377,141 +1378,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B210F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im48.h
index 37d7e4387..31ef6966d 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b210f1536im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1379,141 +1380,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B210F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b220f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b220f1536im48.h
index 8eb064612..d8bc4efd7 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b220f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b220f1536im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1377,141 +1378,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B220F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b310f1536im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b310f1536im48.h
index fd169f21b..81babb424 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b310f1536im48.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b310f1536im48.h
@@ -147,6 +147,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1375,141 +1376,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B310F1536IM48_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b610f1536im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b610f1536im40.h
index 229cb7df6..70bc32cc7 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b610f1536im40.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/efr32mg24b610f1536im40.h
@@ -146,6 +146,7 @@ typedef enum IRQn{
* @brief Processor and Core Peripheral Section
*****************************************************************************/
+#define __CORTEXM 1U /**< Core architecture */
#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
#define __DSP_PRESENT 1U /**< Presence of DSP */
#define __FPU_PRESENT 1U /**< Presence of FPU */
@@ -1363,141 +1364,127 @@ typedef enum IRQn{
#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
/* Instance macros for ACMP */
-#define ACMP(n) (((n) == 0) ? ACMP0 \
- : ((n) == 1) ? ACMP1 \
- : 0x0UL)
-#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
- : ((ref) == ACMP1) ? 1 \
- : -1)
-#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
- : ((n) == 1) ? ACMP1_DAC_INPUT \
- : 0x0UL)
-#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
- : ((n) == 1) ? ACMP1_EXT_OVR_IF \
- : 0x0UL)
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
/* Instance macros for EUSART */
-#define EUSART(n) (((n) == 0) ? EUSART0 \
- : ((n) == 1) ? EUSART1 \
- : 0x0UL)
-#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
- : ((ref) == EUSART1) ? 1 \
- : -1)
-#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_EM2_CAPABLE \
- : 0x0UL)
-#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
- : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
- : 0x0UL)
-
-/* Instance macros for HFRCO */
-#define HFRCO(n) (((n) == 0) ? HFRCO0 \
- : ((n) == 1) ? HFRCOEM23 \
- : 0x0UL)
-#define HFRCO_NUM(ref) (((ref) == HFRCO0) ? 0 \
- : ((ref) == HFRCOEM23) ? 1 \
- : -1)
-#define HFRCO_EM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EM23ONDEMAND \
- : 0x0UL)
-#define HFRCO_EXCLUDEEM23ONDEMAND(n) (((n) == 0) ? HFRCO0_EXCLUDEEM23ONDEMAND \
- : ((n) == 1) ? HFRCOEM23_EXCLUDEEM23ONDEMAND \
- : 0x0UL)
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
/* Instance macros for I2C */
-#define I2C(n) (((n) == 0) ? I2C0 \
- : ((n) == 1) ? I2C1 \
- : 0x0UL)
-#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
- : ((ref) == I2C1) ? 1 \
- : -1)
-#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
- : ((n) == 1) ? I2C1_DELAY \
- : 0x0UL)
-#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
- : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
- : 0x0UL)
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
/* Instance macros for TIMER */
-#define TIMER(n) (((n) == 0) ? TIMER0 \
- : ((n) == 1) ? TIMER1 \
- : ((n) == 2) ? TIMER2 \
- : ((n) == 3) ? TIMER3 \
- : ((n) == 4) ? TIMER4 \
- : 0x0UL)
-#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
- : ((ref) == TIMER1) ? 1 \
- : ((ref) == TIMER2) ? 2 \
- : ((ref) == TIMER3) ? 3 \
- : ((ref) == TIMER4) ? 4 \
- : -1)
-#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
- : ((n) == 1) ? TIMER1_CC_NUM \
- : ((n) == 2) ? TIMER2_CC_NUM \
- : ((n) == 3) ? TIMER3_CC_NUM \
- : ((n) == 4) ? TIMER4_CC_NUM \
- : 0x0UL)
-#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
- : ((n) == 1) ? TIMER1_CNTWIDTH \
- : ((n) == 2) ? TIMER2_CNTWIDTH \
- : ((n) == 3) ? TIMER3_CNTWIDTH \
- : ((n) == 4) ? TIMER4_CNTWIDTH \
- : 0x0UL)
-#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
- : ((n) == 1) ? TIMER1_DTI \
- : ((n) == 2) ? TIMER2_DTI \
- : ((n) == 3) ? TIMER3_DTI \
- : ((n) == 4) ? TIMER4_DTI \
- : 0x0UL)
-#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
- : ((n) == 1) ? TIMER1_DTI_CC_NUM \
- : ((n) == 2) ? TIMER2_DTI_CC_NUM \
- : ((n) == 3) ? TIMER3_DTI_CC_NUM \
- : ((n) == 4) ? TIMER4_DTI_CC_NUM \
- : 0x0UL)
-#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
- : ((n) == 1) ? TIMER1_NO_DTI \
- : ((n) == 2) ? TIMER2_NO_DTI \
- : ((n) == 3) ? TIMER3_NO_DTI \
- : ((n) == 4) ? TIMER4_NO_DTI \
- : 0x0UL)
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
/* Instance macros for VDAC */
-#define VDAC(n) (((n) == 0) ? VDAC0 \
- : ((n) == 1) ? VDAC1 \
- : 0x0UL)
-#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
- : ((ref) == VDAC1) ? 1 \
- : -1)
-#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
- : ((n) == 1) ? VDAC1_ALT_WIDTH \
- : 0x0UL)
-#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
- : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
- : 0x0UL)
-#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
- : ((n) == 1) ? VDAC1_FIFO_DEPTH \
- : 0x0UL)
-#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
- : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
- : 0x0UL)
-#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
- : ((n) == 1) ? VDAC1_RESOLUTION \
- : 0x0UL)
+#define VDAC(n) (((n) == 0) ? VDAC0 \
+ : ((n) == 1) ? VDAC1 \
+ : 0x0UL)
+#define VDAC_NUM(ref) (((ref) == VDAC0) ? 0 \
+ : ((ref) == VDAC1) ? 1 \
+ : -1)
+#define VDAC_ALT_WIDTH(n) (((n) == 0) ? VDAC0_ALT_WIDTH \
+ : ((n) == 1) ? VDAC1_ALT_WIDTH \
+ : 0x0UL)
+#define VDAC_CH0_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH0_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH0_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_CH1_TRIG_LESENSE(n) (((n) == 0) ? VDAC0_CH1_TRIG_LESENSE \
+ : ((n) == 1) ? VDAC1_CH1_TRIG_LESENSE \
+ : 0x0UL)
+#define VDAC_FIFO_DEPTH(n) (((n) == 0) ? VDAC0_FIFO_DEPTH \
+ : ((n) == 1) ? VDAC1_FIFO_DEPTH \
+ : 0x0UL)
+#define VDAC_INT_PRESC_WIDTH(n) (((n) == 0) ? VDAC0_INT_PRESC_WIDTH \
+ : ((n) == 1) ? VDAC1_INT_PRESC_WIDTH \
+ : 0x0UL)
+#define VDAC_RESOLUTION(n) (((n) == 0) ? VDAC0_RESOLUTION \
+ : ((n) == 1) ? VDAC1_RESOLUTION \
+ : 0x0UL)
/* Instance macros for WDOG */
-#define WDOG(n) (((n) == 0) ? WDOG0 \
- : ((n) == 1) ? WDOG1 \
- : 0x0UL)
-#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
- : ((ref) == WDOG1) ? 1 \
- : -1)
-#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
- : ((n) == 1) ? WDOG1_PCNUM \
- : 0x0UL)
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
/** @} End of group EFR32MG24B610F1536IM40_Peripheral_Parameters */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h
index 7271f9c38..a9764f2d8 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Include/system_efr32mg24.h
@@ -36,6 +36,7 @@ extern "C" {
#endif
#include
+#include "sl_code_classification.h"
/***************************************************************************//**
* @addtogroup Parts
@@ -177,6 +178,7 @@ void AHB2AHB1_IRQHandler(void); /**< AHB2AHB1 IRQ Handler */
void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
#endif
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHCLKGet(void);
/**************************************************************************//**
@@ -193,6 +195,7 @@ uint32_t SystemHCLKGet(void);
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE uint32_t SystemCoreClockGet(void)
{
return SystemHCLKGet();
@@ -212,24 +215,35 @@ static __INLINE uint32_t SystemCoreClockGet(void)
* provided for CMSIS compliance and if a user modifies the the core clock
* outside the EMLIB CMU API.
*****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
static __INLINE void SystemCoreClockUpdate(void)
{
SystemHCLKGet();
}
void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCODPLLClockGet(void);
void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFXOClockGet(void);
void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemHFRCOEM23ClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFXOClockGet(void);
void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t SystemULFRCOClockGet(void);
/** @} End of group */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c
index 1fe9aa3fb..7a8dbfd19 100644
--- a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG24/Source/system_efr32mg24.c
@@ -31,6 +31,15 @@
#include
#include "em_device.h"
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
/*******************************************************************************
****************************** DEFINES ************************************
******************************************************************************/
@@ -64,7 +73,10 @@
#endif
// CLKIN0 input
-#if !defined(CLKIN0_FREQ)
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
#define CLKIN0_FREQ (0UL)
#endif
@@ -204,12 +216,11 @@ void SystemInit(void)
*****************************************************************************/
uint32_t SystemHFRCODPLLClockGet(void)
{
-#if defined(BOOTLOADER_SYSTEM_NO_STATIC_MEMORY)
- return HFRCODPLL_STARTUP_FREQ;
-#elif !defined(SYSTEM_NO_STATIC_MEMORY)
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
return SystemHFRCODPLLClock;
#else
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
// Get oscillator frequency band
switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
@@ -516,6 +527,7 @@ uint32_t SystemFSRCOClockGet(void)
uint32_t SystemHFRCOEM23ClockGet(void)
{
uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCOEM23;
// Get oscillator frequency band
switch ((HFRCOEM23->CAL & _HFRCO_CAL_FREQRANGE_MASK)
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_acmp.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_acmp.h
new file mode 100644
index 000000000..e87ceef22
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_acmp.h
@@ -0,0 +1,650 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 ACMP register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_ACMP_H
+#define EFR32MG29_ACMP_H
+#define ACMP_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_ACMP ACMP
+ * @{
+ * @brief EFR32MG29 ACMP Register Declaration.
+ *****************************************************************************/
+
+/** ACMP Register Declaration. */
+typedef struct acmp_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< ACMP enable */
+ __IOM uint32_t SWRST; /**< Software reset */
+ __IOM uint32_t CFG; /**< Configuration register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL; /**< Input Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< ACMP enable */
+ __IOM uint32_t SWRST_SET; /**< Software reset */
+ __IOM uint32_t CFG_SET; /**< Configuration register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_SET; /**< Input Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< ACMP enable */
+ __IOM uint32_t SWRST_CLR; /**< Software reset */
+ __IOM uint32_t CFG_CLR; /**< Configuration register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_CLR; /**< Input Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< ACMP enable */
+ __IOM uint32_t SWRST_TGL; /**< Software reset */
+ __IOM uint32_t CFG_TGL; /**< Configuration register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_TGL; /**< Input Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy */
+} ACMP_TypeDef;
+/** @} End of group EFR32MG29_ACMP */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_ACMP
+ * @{
+ * @defgroup EFR32MG29_ACMP_BitFields ACMP Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ACMP IPVERSION */
+#define _ACMP_IPVERSION_RESETVALUE 0x00000006UL /**< Default value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_DEFAULT 0x00000006UL /**< Mode DEFAULT for ACMP_IPVERSION */
+#define ACMP_IPVERSION_IPVERSION_DEFAULT (_ACMP_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IPVERSION */
+
+/* Bit fields for ACMP EN */
+#define _ACMP_EN_RESETVALUE 0x00000000UL /**< Default value for ACMP_EN */
+#define _ACMP_EN_MASK 0x00000003UL /**< Mask for ACMP_EN */
+#define ACMP_EN_EN (0x1UL << 0) /**< Module enable */
+#define _ACMP_EN_EN_SHIFT 0 /**< Shift value for ACMP_EN */
+#define _ACMP_EN_EN_MASK 0x1UL /**< Bit mask for ACMP_EN */
+#define _ACMP_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_EN_DEFAULT (_ACMP_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _ACMP_EN_DISABLING_SHIFT 1 /**< Shift value for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_MASK 0x2UL /**< Bit mask for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING_DEFAULT (_ACMP_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_EN */
+
+/* Bit fields for ACMP SWRST */
+#define _ACMP_SWRST_RESETVALUE 0x00000000UL /**< Default value for ACMP_SWRST */
+#define _ACMP_SWRST_MASK 0x00000003UL /**< Mask for ACMP_SWRST */
+#define ACMP_SWRST_SWRST (0x1UL << 0) /**< Software reset */
+#define _ACMP_SWRST_SWRST_SHIFT 0 /**< Shift value for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_MASK 0x1UL /**< Bit mask for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_SWRST_DEFAULT (_ACMP_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _ACMP_SWRST_RESETTING_SHIFT 1 /**< Shift value for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING_DEFAULT (_ACMP_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_SWRST */
+
+/* Bit fields for ACMP CFG */
+#define _ACMP_CFG_RESETVALUE 0x00000004UL /**< Default value for ACMP_CFG */
+#define _ACMP_CFG_MASK 0x00030F07UL /**< Mask for ACMP_CFG */
+#define _ACMP_CFG_BIAS_SHIFT 0 /**< Shift value for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_MASK 0x7UL /**< Bit mask for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_DEFAULT 0x00000004UL /**< Mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_BIAS_DEFAULT (_ACMP_CFG_BIAS_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_SHIFT 8 /**< Shift value for ACMP_HYST */
+#define _ACMP_CFG_HYST_MASK 0xF00UL /**< Bit mask for ACMP_HYST */
+#define _ACMP_CFG_HYST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_DISABLED 0x00000000UL /**< Mode DISABLED for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM10MV 0x00000001UL /**< Mode SYM10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM20MV 0x00000002UL /**< Mode SYM20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM30MV 0x00000003UL /**< Mode SYM30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS10MV 0x00000004UL /**< Mode POS10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS20MV 0x00000005UL /**< Mode POS20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS30MV 0x00000006UL /**< Mode POS30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG10MV 0x00000008UL /**< Mode NEG10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG20MV 0x00000009UL /**< Mode NEG20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG30MV 0x0000000AUL /**< Mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_DEFAULT (_ACMP_CFG_HYST_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_HYST_DISABLED (_ACMP_CFG_HYST_DISABLED << 8) /**< Shifted mode DISABLED for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM10MV (_ACMP_CFG_HYST_SYM10MV << 8) /**< Shifted mode SYM10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM20MV (_ACMP_CFG_HYST_SYM20MV << 8) /**< Shifted mode SYM20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM30MV (_ACMP_CFG_HYST_SYM30MV << 8) /**< Shifted mode SYM30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS10MV (_ACMP_CFG_HYST_POS10MV << 8) /**< Shifted mode POS10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS20MV (_ACMP_CFG_HYST_POS20MV << 8) /**< Shifted mode POS20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS30MV (_ACMP_CFG_HYST_POS30MV << 8) /**< Shifted mode POS30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG10MV (_ACMP_CFG_HYST_NEG10MV << 8) /**< Shifted mode NEG10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG20MV (_ACMP_CFG_HYST_NEG20MV << 8) /**< Shifted mode NEG20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG30MV (_ACMP_CFG_HYST_NEG30MV << 8) /**< Shifted mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE (0x1UL << 16) /**< Input Range */
+#define _ACMP_CFG_INPUTRANGE_SHIFT 16 /**< Shift value for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_MASK 0x10000UL /**< Bit mask for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_FULL 0x00000000UL /**< Mode FULL for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_REDUCED 0x00000001UL /**< Mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_DEFAULT (_ACMP_CFG_INPUTRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_FULL (_ACMP_CFG_INPUTRANGE_FULL << 16) /**< Shifted mode FULL for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_REDUCED (_ACMP_CFG_INPUTRANGE_REDUCED << 16) /**< Shifted mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_ACCURACY (0x1UL << 17) /**< ACMP accuracy mode */
+#define _ACMP_CFG_ACCURACY_SHIFT 17 /**< Shift value for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_MASK 0x20000UL /**< Bit mask for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_LOW 0x00000000UL /**< Mode LOW for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_DEFAULT (_ACMP_CFG_ACCURACY_DEFAULT << 17) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_LOW (_ACMP_CFG_ACCURACY_LOW << 17) /**< Shifted mode LOW for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_HIGH (_ACMP_CFG_ACCURACY_HIGH << 17) /**< Shifted mode HIGH for ACMP_CFG */
+
+/* Bit fields for ACMP CTRL */
+#define _ACMP_CTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_CTRL */
+#define _ACMP_CTRL_MASK 0x00000003UL /**< Mask for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL (0x1UL << 0) /**< Not Ready Value */
+#define _ACMP_CTRL_NOTRDYVAL_SHIFT 0 /**< Shift value for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_MASK 0x1UL /**< Bit mask for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_LOW 0x00000000UL /**< Mode LOW for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_DEFAULT (_ACMP_CTRL_NOTRDYVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_LOW (_ACMP_CTRL_NOTRDYVAL_LOW << 0) /**< Shifted mode LOW for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_HIGH (_ACMP_CTRL_NOTRDYVAL_HIGH << 0) /**< Shifted mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV (0x1UL << 1) /**< Comparator GPIO Output Invert */
+#define _ACMP_CTRL_GPIOINV_SHIFT 1 /**< Shift value for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_MASK 0x2UL /**< Bit mask for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_NOTINV 0x00000000UL /**< Mode NOTINV for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_INV 0x00000001UL /**< Mode INV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_DEFAULT (_ACMP_CTRL_GPIOINV_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_NOTINV (_ACMP_CTRL_GPIOINV_NOTINV << 1) /**< Shifted mode NOTINV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_INV (_ACMP_CTRL_GPIOINV_INV << 1) /**< Shifted mode INV for ACMP_CTRL */
+
+/* Bit fields for ACMP INPUTCTRL */
+#define _ACMP_INPUTCTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_MASK 0x703FFFFFUL /**< Mask for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_SHIFT 0 /**< Shift value for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_MASK 0xFFUL /**< Bit mask for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPA 0x00000050UL /**< Mode EXTPA for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPB 0x00000051UL /**< Mode EXTPB for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPC 0x00000052UL /**< Mode EXTPC for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPD 0x00000053UL /**< Mode EXTPD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_DEFAULT (_ACMP_INPUTCTRL_POSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VSS (_ACMP_INPUTCTRL_POSSEL_VSS << 0) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD << 0) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP << 0) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 << 0) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP << 0) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 << 0) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP << 0) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 << 0) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP << 0) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 << 0) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP << 0) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_EXTPA (_ACMP_INPUTCTRL_POSSEL_EXTPA << 0) /**< Shifted mode EXTPA for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPB (_ACMP_INPUTCTRL_POSSEL_EXTPB << 0) /**< Shifted mode EXTPB for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPC (_ACMP_INPUTCTRL_POSSEL_EXTPC << 0) /**< Shifted mode EXTPC for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPD (_ACMP_INPUTCTRL_POSSEL_EXTPD << 0) /**< Shifted mode EXTPD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA0 (_ACMP_INPUTCTRL_POSSEL_PA0 << 0) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA1 (_ACMP_INPUTCTRL_POSSEL_PA1 << 0) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA2 (_ACMP_INPUTCTRL_POSSEL_PA2 << 0) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA3 (_ACMP_INPUTCTRL_POSSEL_PA3 << 0) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA4 (_ACMP_INPUTCTRL_POSSEL_PA4 << 0) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA5 (_ACMP_INPUTCTRL_POSSEL_PA5 << 0) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA6 (_ACMP_INPUTCTRL_POSSEL_PA6 << 0) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA7 (_ACMP_INPUTCTRL_POSSEL_PA7 << 0) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA8 (_ACMP_INPUTCTRL_POSSEL_PA8 << 0) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA9 (_ACMP_INPUTCTRL_POSSEL_PA9 << 0) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA10 (_ACMP_INPUTCTRL_POSSEL_PA10 << 0) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA11 (_ACMP_INPUTCTRL_POSSEL_PA11 << 0) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA12 (_ACMP_INPUTCTRL_POSSEL_PA12 << 0) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA13 (_ACMP_INPUTCTRL_POSSEL_PA13 << 0) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA14 (_ACMP_INPUTCTRL_POSSEL_PA14 << 0) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA15 (_ACMP_INPUTCTRL_POSSEL_PA15 << 0) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB0 (_ACMP_INPUTCTRL_POSSEL_PB0 << 0) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB1 (_ACMP_INPUTCTRL_POSSEL_PB1 << 0) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB2 (_ACMP_INPUTCTRL_POSSEL_PB2 << 0) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB3 (_ACMP_INPUTCTRL_POSSEL_PB3 << 0) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB4 (_ACMP_INPUTCTRL_POSSEL_PB4 << 0) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB5 (_ACMP_INPUTCTRL_POSSEL_PB5 << 0) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB6 (_ACMP_INPUTCTRL_POSSEL_PB6 << 0) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB7 (_ACMP_INPUTCTRL_POSSEL_PB7 << 0) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB8 (_ACMP_INPUTCTRL_POSSEL_PB8 << 0) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB9 (_ACMP_INPUTCTRL_POSSEL_PB9 << 0) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB10 (_ACMP_INPUTCTRL_POSSEL_PB10 << 0) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB11 (_ACMP_INPUTCTRL_POSSEL_PB11 << 0) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB12 (_ACMP_INPUTCTRL_POSSEL_PB12 << 0) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB13 (_ACMP_INPUTCTRL_POSSEL_PB13 << 0) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB14 (_ACMP_INPUTCTRL_POSSEL_PB14 << 0) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB15 (_ACMP_INPUTCTRL_POSSEL_PB15 << 0) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC0 (_ACMP_INPUTCTRL_POSSEL_PC0 << 0) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC1 (_ACMP_INPUTCTRL_POSSEL_PC1 << 0) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC2 (_ACMP_INPUTCTRL_POSSEL_PC2 << 0) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC3 (_ACMP_INPUTCTRL_POSSEL_PC3 << 0) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC4 (_ACMP_INPUTCTRL_POSSEL_PC4 << 0) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC5 (_ACMP_INPUTCTRL_POSSEL_PC5 << 0) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC6 (_ACMP_INPUTCTRL_POSSEL_PC6 << 0) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC7 (_ACMP_INPUTCTRL_POSSEL_PC7 << 0) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC8 (_ACMP_INPUTCTRL_POSSEL_PC8 << 0) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC9 (_ACMP_INPUTCTRL_POSSEL_PC9 << 0) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC10 (_ACMP_INPUTCTRL_POSSEL_PC10 << 0) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC11 (_ACMP_INPUTCTRL_POSSEL_PC11 << 0) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC12 (_ACMP_INPUTCTRL_POSSEL_PC12 << 0) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC13 (_ACMP_INPUTCTRL_POSSEL_PC13 << 0) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC14 (_ACMP_INPUTCTRL_POSSEL_PC14 << 0) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC15 (_ACMP_INPUTCTRL_POSSEL_PC15 << 0) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD0 (_ACMP_INPUTCTRL_POSSEL_PD0 << 0) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD1 (_ACMP_INPUTCTRL_POSSEL_PD1 << 0) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD2 (_ACMP_INPUTCTRL_POSSEL_PD2 << 0) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD3 (_ACMP_INPUTCTRL_POSSEL_PD3 << 0) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD4 (_ACMP_INPUTCTRL_POSSEL_PD4 << 0) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD5 (_ACMP_INPUTCTRL_POSSEL_PD5 << 0) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD6 (_ACMP_INPUTCTRL_POSSEL_PD6 << 0) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD7 (_ACMP_INPUTCTRL_POSSEL_PD7 << 0) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD8 (_ACMP_INPUTCTRL_POSSEL_PD8 << 0) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD9 (_ACMP_INPUTCTRL_POSSEL_PD9 << 0) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD10 (_ACMP_INPUTCTRL_POSSEL_PD10 << 0) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD11 (_ACMP_INPUTCTRL_POSSEL_PD11 << 0) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD12 (_ACMP_INPUTCTRL_POSSEL_PD12 << 0) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD13 (_ACMP_INPUTCTRL_POSSEL_PD13 << 0) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD14 (_ACMP_INPUTCTRL_POSSEL_PD14 << 0) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD15 (_ACMP_INPUTCTRL_POSSEL_PD15 << 0) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_SHIFT 8 /**< Shift value for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_MASK 0xFF00UL /**< Bit mask for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_CAPSENSE 0x00000030UL /**< Mode CAPSENSE for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 0x00000040UL /**< Mode VDAC0OUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 0x00000042UL /**< Mode VDAC1OUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_DEFAULT (_ACMP_INPUTCTRL_NEGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VSS (_ACMP_INPUTCTRL_NEGSEL_VSS << 8) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD << 8) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP << 8) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 << 8) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP << 8) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 << 8) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP << 8) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 << 8) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP << 8) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 << 8) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP << 8) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_CAPSENSE (_ACMP_INPUTCTRL_NEGSEL_CAPSENSE << 8) /**< Shifted mode CAPSENSE for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 (_ACMP_INPUTCTRL_NEGSEL_VDAC0OUT0 << 8) /**< Shifted mode VDAC0OUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 (_ACMP_INPUTCTRL_NEGSEL_VDAC1OUT0 << 8) /**< Shifted mode VDAC1OUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA0 (_ACMP_INPUTCTRL_NEGSEL_PA0 << 8) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA1 (_ACMP_INPUTCTRL_NEGSEL_PA1 << 8) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA2 (_ACMP_INPUTCTRL_NEGSEL_PA2 << 8) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA3 (_ACMP_INPUTCTRL_NEGSEL_PA3 << 8) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA4 (_ACMP_INPUTCTRL_NEGSEL_PA4 << 8) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA5 (_ACMP_INPUTCTRL_NEGSEL_PA5 << 8) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA6 (_ACMP_INPUTCTRL_NEGSEL_PA6 << 8) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA7 (_ACMP_INPUTCTRL_NEGSEL_PA7 << 8) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA8 (_ACMP_INPUTCTRL_NEGSEL_PA8 << 8) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA9 (_ACMP_INPUTCTRL_NEGSEL_PA9 << 8) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA10 (_ACMP_INPUTCTRL_NEGSEL_PA10 << 8) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA11 (_ACMP_INPUTCTRL_NEGSEL_PA11 << 8) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA12 (_ACMP_INPUTCTRL_NEGSEL_PA12 << 8) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA13 (_ACMP_INPUTCTRL_NEGSEL_PA13 << 8) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA14 (_ACMP_INPUTCTRL_NEGSEL_PA14 << 8) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA15 (_ACMP_INPUTCTRL_NEGSEL_PA15 << 8) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB0 (_ACMP_INPUTCTRL_NEGSEL_PB0 << 8) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB1 (_ACMP_INPUTCTRL_NEGSEL_PB1 << 8) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB2 (_ACMP_INPUTCTRL_NEGSEL_PB2 << 8) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB3 (_ACMP_INPUTCTRL_NEGSEL_PB3 << 8) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB4 (_ACMP_INPUTCTRL_NEGSEL_PB4 << 8) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB5 (_ACMP_INPUTCTRL_NEGSEL_PB5 << 8) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB6 (_ACMP_INPUTCTRL_NEGSEL_PB6 << 8) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB7 (_ACMP_INPUTCTRL_NEGSEL_PB7 << 8) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB8 (_ACMP_INPUTCTRL_NEGSEL_PB8 << 8) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB9 (_ACMP_INPUTCTRL_NEGSEL_PB9 << 8) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB10 (_ACMP_INPUTCTRL_NEGSEL_PB10 << 8) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB11 (_ACMP_INPUTCTRL_NEGSEL_PB11 << 8) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB12 (_ACMP_INPUTCTRL_NEGSEL_PB12 << 8) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB13 (_ACMP_INPUTCTRL_NEGSEL_PB13 << 8) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB14 (_ACMP_INPUTCTRL_NEGSEL_PB14 << 8) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB15 (_ACMP_INPUTCTRL_NEGSEL_PB15 << 8) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC0 (_ACMP_INPUTCTRL_NEGSEL_PC0 << 8) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC1 (_ACMP_INPUTCTRL_NEGSEL_PC1 << 8) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC2 (_ACMP_INPUTCTRL_NEGSEL_PC2 << 8) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC3 (_ACMP_INPUTCTRL_NEGSEL_PC3 << 8) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC4 (_ACMP_INPUTCTRL_NEGSEL_PC4 << 8) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC5 (_ACMP_INPUTCTRL_NEGSEL_PC5 << 8) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC6 (_ACMP_INPUTCTRL_NEGSEL_PC6 << 8) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC7 (_ACMP_INPUTCTRL_NEGSEL_PC7 << 8) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC8 (_ACMP_INPUTCTRL_NEGSEL_PC8 << 8) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC9 (_ACMP_INPUTCTRL_NEGSEL_PC9 << 8) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC10 (_ACMP_INPUTCTRL_NEGSEL_PC10 << 8) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC11 (_ACMP_INPUTCTRL_NEGSEL_PC11 << 8) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC12 (_ACMP_INPUTCTRL_NEGSEL_PC12 << 8) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC13 (_ACMP_INPUTCTRL_NEGSEL_PC13 << 8) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC14 (_ACMP_INPUTCTRL_NEGSEL_PC14 << 8) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC15 (_ACMP_INPUTCTRL_NEGSEL_PC15 << 8) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD0 (_ACMP_INPUTCTRL_NEGSEL_PD0 << 8) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD1 (_ACMP_INPUTCTRL_NEGSEL_PD1 << 8) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD2 (_ACMP_INPUTCTRL_NEGSEL_PD2 << 8) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD3 (_ACMP_INPUTCTRL_NEGSEL_PD3 << 8) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD4 (_ACMP_INPUTCTRL_NEGSEL_PD4 << 8) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD5 (_ACMP_INPUTCTRL_NEGSEL_PD5 << 8) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD6 (_ACMP_INPUTCTRL_NEGSEL_PD6 << 8) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD7 (_ACMP_INPUTCTRL_NEGSEL_PD7 << 8) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD8 (_ACMP_INPUTCTRL_NEGSEL_PD8 << 8) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD9 (_ACMP_INPUTCTRL_NEGSEL_PD9 << 8) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD10 (_ACMP_INPUTCTRL_NEGSEL_PD10 << 8) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD11 (_ACMP_INPUTCTRL_NEGSEL_PD11 << 8) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD12 (_ACMP_INPUTCTRL_NEGSEL_PD12 << 8) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD13 (_ACMP_INPUTCTRL_NEGSEL_PD13 << 8) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD14 (_ACMP_INPUTCTRL_NEGSEL_PD14 << 8) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD15 (_ACMP_INPUTCTRL_NEGSEL_PD15 << 8) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_VREFDIV_SHIFT 16 /**< Shift value for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_MASK 0x3F0000UL /**< Bit mask for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_VREFDIV_DEFAULT (_ACMP_INPUTCTRL_VREFDIV_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_SHIFT 28 /**< Shift value for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_MASK 0x70000000UL /**< Bit mask for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES0 0x00000000UL /**< Mode RES0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES1 0x00000001UL /**< Mode RES1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES2 0x00000002UL /**< Mode RES2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES3 0x00000003UL /**< Mode RES3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES4 0x00000004UL /**< Mode RES4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES5 0x00000005UL /**< Mode RES5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES6 0x00000006UL /**< Mode RES6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_DEFAULT (_ACMP_INPUTCTRL_CSRESSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES0 (_ACMP_INPUTCTRL_CSRESSEL_RES0 << 28) /**< Shifted mode RES0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES1 (_ACMP_INPUTCTRL_CSRESSEL_RES1 << 28) /**< Shifted mode RES1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES2 (_ACMP_INPUTCTRL_CSRESSEL_RES2 << 28) /**< Shifted mode RES2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES3 (_ACMP_INPUTCTRL_CSRESSEL_RES3 << 28) /**< Shifted mode RES3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES4 (_ACMP_INPUTCTRL_CSRESSEL_RES4 << 28) /**< Shifted mode RES4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES5 (_ACMP_INPUTCTRL_CSRESSEL_RES5 << 28) /**< Shifted mode RES5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES6 (_ACMP_INPUTCTRL_CSRESSEL_RES6 << 28) /**< Shifted mode RES6 for ACMP_INPUTCTRL */
+
+/* Bit fields for ACMP STATUS */
+#define _ACMP_STATUS_RESETVALUE 0x00000000UL /**< Default value for ACMP_STATUS */
+#define _ACMP_STATUS_MASK 0x0000001DUL /**< Mask for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT (0x1UL << 0) /**< Analog Comparator Output */
+#define _ACMP_STATUS_ACMPOUT_SHIFT 0 /**< Shift value for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_MASK 0x1UL /**< Bit mask for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT_DEFAULT (_ACMP_STATUS_ACMPOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY (0x1UL << 2) /**< Analog Comparator Ready */
+#define _ACMP_STATUS_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY_DEFAULT (_ACMP_STATUS_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT (0x1UL << 3) /**< INPUT conflict */
+#define _ACMP_STATUS_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT_DEFAULT (_ACMP_STATUS_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_STATUS_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR_DEFAULT (_ACMP_STATUS_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_STATUS */
+
+/* Bit fields for ACMP IF */
+#define _ACMP_IF_RESETVALUE 0x00000000UL /**< Default value for ACMP_IF */
+#define _ACMP_IF_MASK 0x0000001FUL /**< Mask for ACMP_IF */
+#define ACMP_IF_RISE (0x1UL << 0) /**< Rising Edge Triggered Interrupt Flag */
+#define _ACMP_IF_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IF_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IF_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_RISE_DEFAULT (_ACMP_IF_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL (0x1UL << 1) /**< Falling Edge Triggered Interrupt Flag */
+#define _ACMP_IF_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IF_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IF_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL_DEFAULT (_ACMP_IF_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY (0x1UL << 2) /**< ACMP ready Interrupt flag */
+#define _ACMP_IF_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY_DEFAULT (_ACMP_IF_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT (0x1UL << 3) /**< Input conflict */
+#define _ACMP_IF_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT_DEFAULT (_ACMP_IF_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_IF_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR_DEFAULT (_ACMP_IF_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IF */
+
+/* Bit fields for ACMP IEN */
+#define _ACMP_IEN_RESETVALUE 0x00000000UL /**< Default value for ACMP_IEN */
+#define _ACMP_IEN_MASK 0x0000001FUL /**< Mask for ACMP_IEN */
+#define ACMP_IEN_RISE (0x1UL << 0) /**< Rising edge interrupt enable */
+#define _ACMP_IEN_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IEN_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IEN_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_RISE_DEFAULT (_ACMP_IEN_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL (0x1UL << 1) /**< Falling edge interrupt enable */
+#define _ACMP_IEN_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IEN_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IEN_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL_DEFAULT (_ACMP_IEN_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY (0x1UL << 2) /**< ACMP ready interrupt enable */
+#define _ACMP_IEN_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY_DEFAULT (_ACMP_IEN_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT (0x1UL << 3) /**< Input conflict interrupt enable */
+#define _ACMP_IEN_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT_DEFAULT (_ACMP_IEN_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR (0x1UL << 4) /**< Port allocation error interrupt enable */
+#define _ACMP_IEN_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR_DEFAULT (_ACMP_IEN_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IEN */
+
+/* Bit fields for ACMP SYNCBUSY */
+#define _ACMP_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for ACMP_SYNCBUSY */
+#define _ACMP_SYNCBUSY_MASK 0x00000001UL /**< Mask for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL (0x1UL << 0) /**< Syncbusy for INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_SHIFT 0 /**< Shift value for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_MASK 0x1UL /**< Bit mask for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL_DEFAULT (_ACMP_SYNCBUSY_INPUTCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SYNCBUSY */
+
+/** @} End of group EFR32MG29_ACMP_BitFields */
+/** @} End of group EFR32MG29_ACMP */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_ACMP_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_aes.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_aes.h
new file mode 100644
index 000000000..56a3f1e2d
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_aes.h
@@ -0,0 +1,453 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 AES register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_AES_H
+#define EFR32MG29_AES_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_AES AES
+ * @{
+ * @brief EFR32MG29 AES Register Declaration.
+ *****************************************************************************/
+
+/** AES Register Declaration. */
+typedef struct aes_typedef{
+ __IOM uint32_t FETCHADDR; /**< Fetcher Address */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t FETCHLEN; /**< Fetcher Length */
+ __IOM uint32_t FETCHTAG; /**< Fetcher Tag */
+ __IOM uint32_t PUSHADDR; /**< Pusher Address */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t PUSHLEN; /**< Pusher Length */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IM uint32_t IF; /**< Interrupt Flags */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt status clear */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IOM uint32_t CMD; /**< Command register */
+ __IM uint32_t STATUS; /**< Status register */
+ uint32_t RESERVED4[240U]; /**< Reserved for future use */
+ __IM uint32_t INCL_IPS_HW_CFG; /**< INCL_IPS_HW_CFG */
+ __IM uint32_t BA411E_HW_CFG_1; /**< BA411E_HW_CFG_1 */
+ __IM uint32_t BA411E_HW_CFG_2; /**< BA411E_HW_CFG_2 */
+ __IM uint32_t BA413_HW_CFG; /**< BA413_HW_CFG */
+ __IM uint32_t BA418_HW_CFG; /**< BA418_HW_CFG */
+ __IM uint32_t BA419_HW_CFG; /**< BA419_HW_CFG */
+} AES_TypeDef;
+/** @} End of group EFR32MG29_AES */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_AES
+ * @{
+ * @defgroup EFR32MG29_AES_BitFields AES Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for AES FETCHADDR */
+#define _AES_FETCHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHADDR */
+#define _AES_FETCHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHADDR */
+#define _AES_FETCHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHADDR */
+#define AES_FETCHADDR_ADDR_DEFAULT (_AES_FETCHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHADDR */
+
+/* Bit fields for AES FETCHLEN */
+#define _AES_FETCHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHLEN */
+#define _AES_FETCHLEN_MASK 0x3FFFFFFFUL /**< Mask for AES_FETCHLEN */
+#define _AES_FETCHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_LENGTH_DEFAULT (_AES_FETCHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_FETCHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR_DEFAULT (_AES_FETCHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN (0x1UL << 29) /**< Realign lengh */
+#define _AES_FETCHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN_DEFAULT (_AES_FETCHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+
+/* Bit fields for AES FETCHTAG */
+#define _AES_FETCHTAG_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHTAG */
+#define _AES_FETCHTAG_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHTAG */
+#define _AES_FETCHTAG_TAG_SHIFT 0 /**< Shift value for AES_TAG */
+#define _AES_FETCHTAG_TAG_MASK 0xFFFFFFFFUL /**< Bit mask for AES_TAG */
+#define _AES_FETCHTAG_TAG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHTAG */
+#define AES_FETCHTAG_TAG_DEFAULT (_AES_FETCHTAG_TAG_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHTAG */
+
+/* Bit fields for AES PUSHADDR */
+#define _AES_PUSHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHADDR */
+#define _AES_PUSHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_PUSHADDR */
+#define _AES_PUSHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHADDR */
+#define AES_PUSHADDR_ADDR_DEFAULT (_AES_PUSHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHADDR */
+
+/* Bit fields for AES PUSHLEN */
+#define _AES_PUSHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHLEN */
+#define _AES_PUSHLEN_MASK 0x7FFFFFFFUL /**< Mask for AES_PUSHLEN */
+#define _AES_PUSHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_LENGTH_DEFAULT (_AES_PUSHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_PUSHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR_DEFAULT (_AES_PUSHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN (0x1UL << 29) /**< Realign length */
+#define _AES_PUSHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN_DEFAULT (_AES_PUSHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD (0x1UL << 30) /**< Discard data */
+#define _AES_PUSHLEN_DISCARD_SHIFT 30 /**< Shift value for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_MASK 0x40000000UL /**< Bit mask for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD_DEFAULT (_AES_PUSHLEN_DISCARD_DEFAULT << 30) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+
+/* Bit fields for AES IEN */
+#define _AES_IEN_RESETVALUE 0x00000000UL /**< Default value for AES_IEN */
+#define _AES_IEN_MASK 0x0000003FUL /**< Mask for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt enable */
+#define _AES_IEN_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK_DEFAULT (_AES_IEN_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt enable */
+#define _AES_IEN_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED_DEFAULT (_AES_IEN_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR (0x1UL << 2) /**< Error interrupt enable */
+#define _AES_IEN_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR_DEFAULT (_AES_IEN_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt enable */
+#define _AES_IEN_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK_DEFAULT (_AES_IEN_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt enable */
+#define _AES_IEN_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED_DEFAULT (_AES_IEN_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR (0x1UL << 5) /**< Error interrupt enable */
+#define _AES_IEN_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR_DEFAULT (_AES_IEN_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IEN */
+
+/* Bit fields for AES IF */
+#define _AES_IF_RESETVALUE 0x00000000UL /**< Default value for AES_IF */
+#define _AES_IF_MASK 0x0000003FUL /**< Mask for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag */
+#define _AES_IF_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag */
+#define _AES_IF_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED_DEFAULT (_AES_IF_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag */
+#define _AES_IF_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR_DEFAULT (_AES_IF_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt flag */
+#define _AES_IF_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt flag */
+#define _AES_IF_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED_DEFAULT (_AES_IF_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR (0x1UL << 5) /**< Error interrupt flag */
+#define _AES_IF_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR_DEFAULT (_AES_IF_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF */
+
+/* Bit fields for AES IF_CLR */
+#define _AES_IF_CLR_RESETVALUE 0x00000000UL /**< Default value for AES_IF_CLR */
+#define _AES_IF_CLR_MASK 0x0000003FUL /**< Mask for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag clear */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag clear */
+#define _AES_IF_CLR_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED_DEFAULT (_AES_IF_CLR_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag clear */
+#define _AES_IF_CLR_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR_DEFAULT (_AES_IF_CLR_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK (0x1UL << 3) /**< FETCHERENDOFBLOCKIFC */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED (0x1UL << 4) /**< FETCHERSTOPPEDIFC */
+#define _AES_IF_CLR_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED_DEFAULT (_AES_IF_CLR_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR (0x1UL << 5) /**< FETCHERERRORIFC */
+#define _AES_IF_CLR_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR_DEFAULT (_AES_IF_CLR_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF_CLR */
+
+/* Bit fields for AES CTRL */
+#define _AES_CTRL_RESETVALUE 0x00000000UL /**< Default value for AES_CTRL */
+#define _AES_CTRL_MASK 0x0000001FUL /**< Mask for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER (0x1UL << 0) /**< Fetcher scatter/gather */
+#define _AES_CTRL_FETCHERSCATTERGATHER_SHIFT 0 /**< Shift value for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_MASK 0x1UL /**< Bit mask for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER_DEFAULT (_AES_CTRL_FETCHERSCATTERGATHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER (0x1UL << 1) /**< Pusher scatter/gather */
+#define _AES_CTRL_PUSHERSCATTERGATHER_SHIFT 1 /**< Shift value for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_MASK 0x2UL /**< Bit mask for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER_DEFAULT (_AES_CTRL_PUSHERSCATTERGATHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER (0x1UL << 2) /**< Stop fetcher */
+#define _AES_CTRL_STOPFETCHER_SHIFT 2 /**< Shift value for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_MASK 0x4UL /**< Bit mask for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER_DEFAULT (_AES_CTRL_STOPFETCHER_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER (0x1UL << 3) /**< Stop pusher */
+#define _AES_CTRL_STOPPUSHER_SHIFT 3 /**< Shift value for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_MASK 0x8UL /**< Bit mask for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER_DEFAULT (_AES_CTRL_STOPPUSHER_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET (0x1UL << 4) /**< Software reset */
+#define _AES_CTRL_SWRESET_SHIFT 4 /**< Shift value for AES_SWRESET */
+#define _AES_CTRL_SWRESET_MASK 0x10UL /**< Bit mask for AES_SWRESET */
+#define _AES_CTRL_SWRESET_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET_DEFAULT (_AES_CTRL_SWRESET_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_CTRL */
+
+/* Bit fields for AES CMD */
+#define _AES_CMD_RESETVALUE 0x00000000UL /**< Default value for AES_CMD */
+#define _AES_CMD_MASK 0x00000003UL /**< Mask for AES_CMD */
+#define AES_CMD_STARTFETCHER (0x1UL << 0) /**< Start fetch */
+#define _AES_CMD_STARTFETCHER_SHIFT 0 /**< Shift value for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_MASK 0x1UL /**< Bit mask for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTFETCHER_DEFAULT (_AES_CMD_STARTFETCHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER (0x1UL << 1) /**< Start push */
+#define _AES_CMD_STARTPUSHER_SHIFT 1 /**< Shift value for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_MASK 0x2UL /**< Bit mask for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER_DEFAULT (_AES_CMD_STARTPUSHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CMD */
+
+/* Bit fields for AES STATUS */
+#define _AES_STATUS_RESETVALUE 0x00000000UL /**< Default value for AES_STATUS */
+#define _AES_STATUS_MASK 0xFFFF0073UL /**< Mask for AES_STATUS */
+#define AES_STATUS_FETCHERBSY (0x1UL << 0) /**< Fetcher busy */
+#define _AES_STATUS_FETCHERBSY_SHIFT 0 /**< Shift value for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_MASK 0x1UL /**< Bit mask for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FETCHERBSY_DEFAULT (_AES_STATUS_FETCHERBSY_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY (0x1UL << 1) /**< Pusher busy */
+#define _AES_STATUS_PUSHERBSY_SHIFT 1 /**< Shift value for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_MASK 0x2UL /**< Bit mask for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY_DEFAULT (_AES_STATUS_PUSHERBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY (0x1UL << 4) /**< Not empty flag from input FIFO (fetcher) */
+#define _AES_STATUS_NOTEMPTY_SHIFT 4 /**< Shift value for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_MASK 0x10UL /**< Bit mask for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY_DEFAULT (_AES_STATUS_NOTEMPTY_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING (0x1UL << 5) /**< Pusher waiting for FIFO */
+#define _AES_STATUS_WAITING_SHIFT 5 /**< Shift value for AES_WAITING */
+#define _AES_STATUS_WAITING_MASK 0x20UL /**< Bit mask for AES_WAITING */
+#define _AES_STATUS_WAITING_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING_DEFAULT (_AES_STATUS_WAITING_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY (0x1UL << 6) /**< Software reset busy */
+#define _AES_STATUS_SOFTRSTBSY_SHIFT 6 /**< Shift value for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_MASK 0x40UL /**< Bit mask for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY_DEFAULT (_AES_STATUS_SOFTRSTBSY_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_STATUS */
+#define _AES_STATUS_FIFODATANUM_SHIFT 16 /**< Shift value for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_MASK 0xFFFF0000UL /**< Bit mask for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FIFODATANUM_DEFAULT (_AES_STATUS_FIFODATANUM_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_STATUS */
+
+/* Bit fields for AES INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_MASK 0x000007FFUL /**< Mask for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES (0x1UL << 0) /**< Generic g_IncludeAES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_SHIFT 0 /**< Shift value for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_MASK 0x1UL /**< Bit mask for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM (0x1UL << 1) /**< Generic g_IncludeAESGCM value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_SHIFT 1 /**< Shift value for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_MASK 0x2UL /**< Bit mask for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS (0x1UL << 2) /**< Generic g_IncludeAESXTS value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_SHIFT 2 /**< Shift value for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_MASK 0x4UL /**< Bit mask for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES (0x1UL << 3) /**< Generic g_IncludeDES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_SHIFT 3 /**< Shift value for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_MASK 0x8UL /**< Bit mask for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH (0x1UL << 4) /**< Generic g_IncludeHASH value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_SHIFT 4 /**< Shift value for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_MASK 0x10UL /**< Bit mask for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly (0x1UL << 5) /**< Generic g_IncludeChachaPoly value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_SHIFT 5 /**< Shift value for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_MASK 0x20UL /**< Bit mask for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3 (0x1UL << 6) /**< Generic g_IncludeSHA3 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_SHIFT 6 /**< Shift value for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_MASK 0x40UL /**< Bit mask for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC (0x1UL << 7) /**< Generic g_IncludeZUC value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_SHIFT 7 /**< Shift value for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_MASK 0x80UL /**< Bit mask for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT << 7) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4 (0x1UL << 8) /**< Generic g_IncludeSM4 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_SHIFT 8 /**< Shift value for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_MASK 0x100UL /**< Bit mask for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT << 8) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE (0x1UL << 9) /**< Generic g_IncludePKE value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_SHIFT 9 /**< Shift value for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_MASK 0x200UL /**< Bit mask for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT << 9) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG (0x1UL << 10) /**< Generic g_IncludeNDRNG value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_SHIFT 10 /**< Shift value for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_MASK 0x400UL /**< Bit mask for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT << 10) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+
+/* Bit fields for AES BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_RESETVALUE 0x05010127UL /**< Default value for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_MASK 0x070301FFUL /**< Mask for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_SHIFT 0 /**< Shift value for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_MASK 0x1FFUL /**< Bit mask for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT 0x00000127UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT (_AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_CS (0x1UL << 16) /**< Generic g_CS value */
+#define _AES_BA411E_HW_CFG_1_g_CS_SHIFT 16 /**< Shift value for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_MASK 0x10000UL /**< Bit mask for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_CS_DEFAULT (_AES_BA411E_HW_CFG_1_g_CS_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_UseMasking (0x1UL << 17) /**< Generic g_UseMasking value */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_SHIFT 17 /**< Shift value for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_MASK 0x20000UL /**< Bit mask for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT (_AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define _AES_BA411E_HW_CFG_1_g_Keysize_SHIFT 24 /**< Shift value for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_MASK 0x7000000UL /**< Bit mask for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT 0x00000005UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT (_AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT << 24) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+
+/* Bit fields for AES BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_RESETVALUE 0x00000080UL /**< Default value for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_MASK 0x0000FFFFUL /**< Mask for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_SHIFT 0 /**< Shift value for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_MASK 0xFFFFUL /**< Bit mask for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT 0x00000080UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_2 */
+#define AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT (_AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_2*/
+
+/* Bit fields for AES BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_MASK 0x0007007FUL /**< Mask for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_SHIFT 0 /**< Shift value for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_MASK 0x7FUL /**< Bit mask for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT (_AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding (0x1UL << 16) /**< Generic g_HashPadding value */
+#define _AES_BA413_HW_CFG_g_HashPadding_SHIFT 16 /**< Shift value for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_MASK 0x10000UL /**< Bit mask for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding_DEFAULT (_AES_BA413_HW_CFG_g_HashPadding_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled (0x1UL << 17) /**< Generic g_HMAC_enabled value */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_SHIFT 17 /**< Shift value for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_MASK 0x20000UL /**< Bit mask for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT (_AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest (0x1UL << 18) /**< Generic g_HashVerifyDigest value */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_SHIFT 18 /**< Shift value for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_MASK 0x40000UL /**< Bit mask for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT (_AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT << 18) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+
+/* Bit fields for AES BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_MASK 0x00000001UL /**< Mask for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn (0x1UL << 0) /**< Generic g_Sha3CtxtEn value */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_SHIFT 0 /**< Shift value for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_MASK 0x1UL /**< Bit mask for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT (_AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA418_HW_CFG */
+
+/* Bit fields for AES BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_MASK 0x0000007FUL /**< Mask for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_SHIFT 0 /**< Shift value for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_MASK 0x7FUL /**< Bit mask for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA419_HW_CFG */
+#define AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT (_AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA419_HW_CFG */
+
+/** @} End of group EFR32MG29_AES_BitFields */
+/** @} End of group EFR32MG29_AES */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_AES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_buram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_buram.h
new file mode 100644
index 000000000..929b00f63
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_buram.h
@@ -0,0 +1,80 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 BURAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_BURAM_H
+#define EFR32MG29_BURAM_H
+#define BURAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_BURAM BURAM
+ * @{
+ * @brief EFR32MG29 BURAM Register Declaration.
+ *****************************************************************************/
+
+/** BURAM RET Register Group Declaration. */
+typedef struct buram_ret_typedef{
+ __IOM uint32_t REG; /**< Retention Register */
+} BURAM_RET_TypeDef;
+
+/** BURAM Register Declaration. */
+typedef struct buram_typedef{
+ BURAM_RET_TypeDef RET[32U]; /**< RetentionReg */
+ uint32_t RESERVED0[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_SET[32U]; /**< RetentionReg */
+ uint32_t RESERVED1[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_CLR[32U]; /**< RetentionReg */
+ uint32_t RESERVED2[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_TGL[32U]; /**< RetentionReg */
+} BURAM_TypeDef;
+/** @} End of group EFR32MG29_BURAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_BURAM
+ * @{
+ * @defgroup EFR32MG29_BURAM_BitFields BURAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURAM RET_REG */
+#define _BURAM_RET_REG_RESETVALUE 0x00000000UL /**< Default value for BURAM_RET_REG */
+#define _BURAM_RET_REG_MASK 0xFFFFFFFFUL /**< Mask for BURAM_RET_REG */
+#define _BURAM_RET_REG_RETREG_SHIFT 0 /**< Shift value for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_MASK 0xFFFFFFFFUL /**< Bit mask for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURAM_RET_REG */
+#define BURAM_RET_REG_RETREG_DEFAULT (_BURAM_RET_REG_RETREG_DEFAULT << 0) /**< Shifted mode DEFAULT for BURAM_RET_REG */
+
+/** @} End of group EFR32MG29_BURAM_BitFields */
+/** @} End of group EFR32MG29_BURAM */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_BURAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_burtc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_burtc.h
new file mode 100644
index 000000000..94ec1878b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_burtc.h
@@ -0,0 +1,332 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 BURTC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_BURTC_H
+#define EFR32MG29_BURTC_H
+#define BURTC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_BURTC BURTC
+ * @{
+ * @brief EFR32MG29 BURTC Register Declaration.
+ *****************************************************************************/
+
+/** BURTC Register Declaration. */
+typedef struct burtc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t COMP; /**< Compare Value Register */
+ uint32_t RESERVED0[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_SET; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_SET; /**< Compare Value Register */
+ uint32_t RESERVED1[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_CLR; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_CLR; /**< Compare Value Register */
+ uint32_t RESERVED2[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_TGL; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_TGL; /**< Compare Value Register */
+} BURTC_TypeDef;
+/** @} End of group EFR32MG29_BURTC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_BURTC
+ * @{
+ * @defgroup EFR32MG29_BURTC_BitFields BURTC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURTC IPVERSION */
+#define _BURTC_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IPVERSION */
+#define BURTC_IPVERSION_IPVERSION_DEFAULT (_BURTC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IPVERSION */
+
+/* Bit fields for BURTC EN */
+#define _BURTC_EN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EN */
+#define _BURTC_EN_MASK 0x00000001UL /**< Mask for BURTC_EN */
+#define BURTC_EN_EN (0x1UL << 0) /**< BURTC Enable */
+#define _BURTC_EN_EN_SHIFT 0 /**< Shift value for BURTC_EN */
+#define _BURTC_EN_EN_MASK 0x1UL /**< Bit mask for BURTC_EN */
+#define _BURTC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EN */
+#define BURTC_EN_EN_DEFAULT (_BURTC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EN */
+
+/* Bit fields for BURTC CFG */
+#define _BURTC_CFG_RESETVALUE 0x00000000UL /**< Default value for BURTC_CFG */
+#define _BURTC_CFG_MASK 0x000000F3UL /**< Mask for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _BURTC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_DEFAULT (_BURTC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_DISABLE (_BURTC_CFG_DEBUGRUN_DISABLE << 0) /**< Shifted mode DISABLE for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_ENABLE (_BURTC_CFG_DEBUGRUN_ENABLE << 0) /**< Shifted mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP (0x1UL << 1) /**< Compare Channel is Top Value */
+#define _BURTC_CFG_COMPTOP_SHIFT 1 /**< Shift value for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_MASK 0x2UL /**< Bit mask for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_DISABLE 0x00000000UL /**< Mode DISABLE for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_ENABLE 0x00000001UL /**< Mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DEFAULT (_BURTC_CFG_COMPTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DISABLE (_BURTC_CFG_COMPTOP_DISABLE << 1) /**< Shifted mode DISABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_ENABLE (_BURTC_CFG_COMPTOP_ENABLE << 1) /**< Shifted mode ENABLE for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_SHIFT 4 /**< Shift value for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_MASK 0xF0UL /**< Bit mask for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV512 0x00000009UL /**< Mode DIV512 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1024 0x0000000AUL /**< Mode DIV1024 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2048 0x0000000BUL /**< Mode DIV2048 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4096 0x0000000CUL /**< Mode DIV4096 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8192 0x0000000DUL /**< Mode DIV8192 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16384 0x0000000EUL /**< Mode DIV16384 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32768 0x0000000FUL /**< Mode DIV32768 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DEFAULT (_BURTC_CFG_CNTPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1 (_BURTC_CFG_CNTPRESC_DIV1 << 4) /**< Shifted mode DIV1 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2 (_BURTC_CFG_CNTPRESC_DIV2 << 4) /**< Shifted mode DIV2 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4 (_BURTC_CFG_CNTPRESC_DIV4 << 4) /**< Shifted mode DIV4 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8 (_BURTC_CFG_CNTPRESC_DIV8 << 4) /**< Shifted mode DIV8 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16 (_BURTC_CFG_CNTPRESC_DIV16 << 4) /**< Shifted mode DIV16 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32 (_BURTC_CFG_CNTPRESC_DIV32 << 4) /**< Shifted mode DIV32 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV64 (_BURTC_CFG_CNTPRESC_DIV64 << 4) /**< Shifted mode DIV64 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV128 (_BURTC_CFG_CNTPRESC_DIV128 << 4) /**< Shifted mode DIV128 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV256 (_BURTC_CFG_CNTPRESC_DIV256 << 4) /**< Shifted mode DIV256 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV512 (_BURTC_CFG_CNTPRESC_DIV512 << 4) /**< Shifted mode DIV512 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1024 (_BURTC_CFG_CNTPRESC_DIV1024 << 4) /**< Shifted mode DIV1024 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2048 (_BURTC_CFG_CNTPRESC_DIV2048 << 4) /**< Shifted mode DIV2048 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4096 (_BURTC_CFG_CNTPRESC_DIV4096 << 4) /**< Shifted mode DIV4096 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8192 (_BURTC_CFG_CNTPRESC_DIV8192 << 4) /**< Shifted mode DIV8192 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16384 (_BURTC_CFG_CNTPRESC_DIV16384 << 4) /**< Shifted mode DIV16384 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32768 (_BURTC_CFG_CNTPRESC_DIV32768 << 4) /**< Shifted mode DIV32768 for BURTC_CFG */
+
+/* Bit fields for BURTC CMD */
+#define _BURTC_CMD_RESETVALUE 0x00000000UL /**< Default value for BURTC_CMD */
+#define _BURTC_CMD_MASK 0x00000003UL /**< Mask for BURTC_CMD */
+#define BURTC_CMD_START (0x1UL << 0) /**< Start BURTC counter */
+#define _BURTC_CMD_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_CMD_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_START_DEFAULT (_BURTC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP (0x1UL << 1) /**< Stop BURTC counter */
+#define _BURTC_CMD_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_CMD_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP_DEFAULT (_BURTC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CMD */
+
+/* Bit fields for BURTC STATUS */
+#define _BURTC_STATUS_RESETVALUE 0x00000000UL /**< Default value for BURTC_STATUS */
+#define _BURTC_STATUS_MASK 0x00000003UL /**< Mask for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING (0x1UL << 0) /**< BURTC running status */
+#define _BURTC_STATUS_RUNNING_SHIFT 0 /**< Shift value for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING_DEFAULT (_BURTC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK (0x1UL << 1) /**< Configuration Lock Status */
+#define _BURTC_STATUS_LOCK_SHIFT 1 /**< Shift value for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_MASK 0x2UL /**< Bit mask for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_DEFAULT (_BURTC_STATUS_LOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_UNLOCKED (_BURTC_STATUS_LOCK_UNLOCKED << 1) /**< Shifted mode UNLOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_LOCKED (_BURTC_STATUS_LOCK_LOCKED << 1) /**< Shifted mode LOCKED for BURTC_STATUS */
+
+/* Bit fields for BURTC IF */
+#define _BURTC_IF_RESETVALUE 0x00000000UL /**< Default value for BURTC_IF */
+#define _BURTC_IF_MASK 0x00000003UL /**< Mask for BURTC_IF */
+#define BURTC_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IF_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IF_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_OF_DEFAULT (_BURTC_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IF_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IF_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IF_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP_DEFAULT (_BURTC_IF_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IF */
+
+/* Bit fields for BURTC IEN */
+#define _BURTC_IEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_IEN */
+#define _BURTC_IEN_MASK 0x00000003UL /**< Mask for BURTC_IEN */
+#define BURTC_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IEN_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IEN_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_OF_DEFAULT (_BURTC_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IEN_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IEN_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IEN_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP_DEFAULT (_BURTC_IEN_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IEN */
+
+/* Bit fields for BURTC PRECNT */
+#define _BURTC_PRECNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_PRECNT */
+#define _BURTC_PRECNT_MASK 0x00007FFFUL /**< Mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_SHIFT 0 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_PRECNT */
+#define BURTC_PRECNT_PRECNT_DEFAULT (_BURTC_PRECNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_PRECNT */
+
+/* Bit fields for BURTC CNT */
+#define _BURTC_CNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_CNT */
+#define _BURTC_CNT_MASK 0xFFFFFFFFUL /**< Mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_SHIFT 0 /**< Shift value for BURTC_CNT */
+#define _BURTC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CNT */
+#define BURTC_CNT_CNT_DEFAULT (_BURTC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CNT */
+
+/* Bit fields for BURTC EM4WUEN */
+#define _BURTC_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EM4WUEN */
+#define _BURTC_EM4WUEN_MASK 0x00000003UL /**< Mask for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN (0x1UL << 0) /**< Overflow EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_OFEM4WUEN_SHIFT 0 /**< Shift value for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_MASK 0x1UL /**< Bit mask for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN_DEFAULT (_BURTC_EM4WUEN_OFEM4WUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN (0x1UL << 1) /**< Compare Match EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_SHIFT 1 /**< Shift value for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_MASK 0x2UL /**< Bit mask for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT (_BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+
+/* Bit fields for BURTC SYNCBUSY */
+#define _BURTC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for BURTC_SYNCBUSY */
+#define _BURTC_SYNCBUSY_MASK 0x0000003FUL /**< Mask for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START */
+#define _BURTC_SYNCBUSY_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START_DEFAULT (_BURTC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP */
+#define _BURTC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP_DEFAULT (_BURTC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT (0x1UL << 2) /**< Sync busy for PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_SHIFT 2 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_MASK 0x4UL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT_DEFAULT (_BURTC_SYNCBUSY_PRECNT_DEFAULT << 2) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT (0x1UL << 3) /**< Sync busy for CNT */
+#define _BURTC_SYNCBUSY_CNT_SHIFT 3 /**< Shift value for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_MASK 0x8UL /**< Bit mask for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT_DEFAULT (_BURTC_SYNCBUSY_CNT_DEFAULT << 3) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP (0x1UL << 4) /**< Sync busy for COMP */
+#define _BURTC_SYNCBUSY_COMP_SHIFT 4 /**< Shift value for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_MASK 0x10UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP_DEFAULT (_BURTC_SYNCBUSY_COMP_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_EN (0x1UL << 5) /**< Sync busy for EN */
+#define _BURTC_SYNCBUSY_EN_SHIFT 5 /**< Shift value for BURTC_EN */
+#define _BURTC_SYNCBUSY_EN_MASK 0x20UL /**< Bit mask for BURTC_EN */
+#define _BURTC_SYNCBUSY_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_EN_DEFAULT (_BURTC_SYNCBUSY_EN_DEFAULT << 5) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+
+/* Bit fields for BURTC LOCK */
+#define _BURTC_LOCK_RESETVALUE 0x0000AEE8UL /**< Default value for BURTC_LOCK */
+#define _BURTC_LOCK_MASK 0x0000FFFFUL /**< Mask for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_DEFAULT 0x0000AEE8UL /**< Mode DEFAULT for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_DEFAULT (_BURTC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_UNLOCK (_BURTC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for BURTC_LOCK */
+
+/* Bit fields for BURTC COMP */
+#define _BURTC_COMP_RESETVALUE 0x00000000UL /**< Default value for BURTC_COMP */
+#define _BURTC_COMP_MASK 0xFFFFFFFFUL /**< Mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_SHIFT 0 /**< Shift value for BURTC_COMP */
+#define _BURTC_COMP_COMP_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_COMP */
+#define BURTC_COMP_COMP_DEFAULT (_BURTC_COMP_COMP_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_COMP */
+
+/** @} End of group EFR32MG29_BURTC_BitFields */
+/** @} End of group EFR32MG29_BURTC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_BURTC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_cmu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_cmu.h
new file mode 100644
index 000000000..2444dbcd2
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_cmu.h
@@ -0,0 +1,1017 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 CMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_CMU_H
+#define EFR32MG29_CMU_H
+#define CMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_CMU CMU
+ * @{
+ * @brief EFR32MG29 CMU Register Declaration.
+ *****************************************************************************/
+
+/** CMU Register Declaration. */
+typedef struct cmu_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED3[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT; /**< Calibration Result Counter Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1; /**< Clock Enable Register 1 */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL; /**< System Clock Control */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL; /**< Export Clock Control */
+ uint32_t RESERVED8[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED10[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED11[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL; /**< IADC Clock Control */
+ uint32_t RESERVED13[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED14[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL; /**< RTCC Clock Control */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED16[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_SET; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED22[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED23[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_SET; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_SET; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_SET; /**< Calibration Result Counter Register */
+ uint32_t RESERVED24[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_SET; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_SET; /**< Clock Enable Register 1 */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_SET; /**< System Clock Control */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_SET; /**< Debug Trace Clock Control */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_SET; /**< Export Clock Control */
+ uint32_t RESERVED28[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_SET; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED29[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_SET; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_SET; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_SET; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED30[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_SET; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED31[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_SET; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED32[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_SET; /**< IADC Clock Control */
+ uint32_t RESERVED33[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_SET; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED34[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_SET; /**< RTCC Clock Control */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_SET; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED36[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_SET; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_SET; /**< EUSART0 Clock Control */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ uint32_t RESERVED39[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED41[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_CLR; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED43[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_CLR; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_CLR; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_CLR; /**< Calibration Result Counter Register */
+ uint32_t RESERVED44[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_CLR; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_CLR; /**< Clock Enable Register 1 */
+ uint32_t RESERVED45[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_CLR; /**< System Clock Control */
+ uint32_t RESERVED46[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_CLR; /**< Debug Trace Clock Control */
+ uint32_t RESERVED47[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_CLR; /**< Export Clock Control */
+ uint32_t RESERVED48[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_CLR; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED49[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_CLR; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_CLR; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_CLR; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED50[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_CLR; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED51[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_CLR; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED52[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_CLR; /**< IADC Clock Control */
+ uint32_t RESERVED53[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_CLR; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED54[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_CLR; /**< RTCC Clock Control */
+ uint32_t RESERVED55[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_CLR; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED56[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_CLR; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_CLR; /**< EUSART0 Clock Control */
+ uint32_t RESERVED57[1U]; /**< Reserved for future use */
+ uint32_t RESERVED58[1U]; /**< Reserved for future use */
+ uint32_t RESERVED59[860U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED60[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED61[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_TGL; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED62[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED63[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_TGL; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_TGL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_TGL; /**< Calibration Result Counter Register */
+ uint32_t RESERVED64[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_TGL; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_TGL; /**< Clock Enable Register 1 */
+ uint32_t RESERVED65[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_TGL; /**< System Clock Control */
+ uint32_t RESERVED66[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_TGL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED67[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_TGL; /**< Export Clock Control */
+ uint32_t RESERVED68[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_TGL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED69[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_TGL; /**< EM01 Peripheral Group A Clock Control */
+ __IOM uint32_t EM01GRPBCLKCTRL_TGL; /**< EM01 Peripheral Group B Clock Control */
+ __IOM uint32_t EM01GRPCCLKCTRL_TGL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED70[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_TGL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED71[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_TGL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED72[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_TGL; /**< IADC Clock Control */
+ uint32_t RESERVED73[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_TGL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED74[15U]; /**< Reserved for future use */
+ __IOM uint32_t RTCCCLKCTRL_TGL; /**< RTCC Clock Control */
+ uint32_t RESERVED75[1U]; /**< Reserved for future use */
+ __IOM uint32_t PRORTCCLKCTRL_TGL; /**< Protocol RTC Clock Control */
+ uint32_t RESERVED76[13U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_TGL; /**< Radio Clock Control */
+ __IOM uint32_t EUSART0CLKCTRL_TGL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED77[1U]; /**< Reserved for future use */
+ uint32_t RESERVED78[1U]; /**< Reserved for future use */
+} CMU_TypeDef;
+/** @} End of group EFR32MG29_CMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_CMU
+ * @{
+ * @defgroup EFR32MG29_CMU_BitFields CMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for CMU IPVERSION */
+#define _CMU_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for CMU_IPVERSION */
+#define _CMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for CMU_IPVERSION */
+#define CMU_IPVERSION_IPVERSION_DEFAULT (_CMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IPVERSION */
+
+/* Bit fields for CMU STATUS */
+#define _CMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for CMU_STATUS */
+#define _CMU_STATUS_MASK 0xC0030001UL /**< Mask for CMU_STATUS */
+#define CMU_STATUS_CALRDY (0x1UL << 0) /**< Calibration Ready */
+#define _CMU_STATUS_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_CALRDY_DEFAULT (_CMU_STATUS_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK (0x1UL << 30) /**< Configuration Lock Status for WDOG */
+#define _CMU_STATUS_WDOGLOCK_SHIFT 30 /**< Shift value for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_MASK 0x40000000UL /**< Bit mask for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_DEFAULT (_CMU_STATUS_WDOGLOCK_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_UNLOCKED (_CMU_STATUS_WDOGLOCK_UNLOCKED << 30) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_LOCKED (_CMU_STATUS_WDOGLOCK_LOCKED << 30) /**< Shifted mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _CMU_STATUS_LOCK_SHIFT 31 /**< Shift value for CMU_LOCK */
+#define _CMU_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for CMU_LOCK */
+#define _CMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_DEFAULT (_CMU_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_LOCK_UNLOCKED (_CMU_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_LOCKED (_CMU_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for CMU_STATUS */
+
+/* Bit fields for CMU LOCK */
+#define _CMU_LOCK_RESETVALUE 0x000093F7UL /**< Default value for CMU_LOCK */
+#define _CMU_LOCK_MASK 0x0000FFFFUL /**< Mask for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_DEFAULT 0x000093F7UL /**< Mode DEFAULT for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_DEFAULT (_CMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_UNLOCK (_CMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_LOCK */
+
+/* Bit fields for CMU WDOGLOCK */
+#define _CMU_WDOGLOCK_RESETVALUE 0x00005257UL /**< Default value for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_MASK 0x0000FFFFUL /**< Mask for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_DEFAULT 0x00005257UL /**< Mode DEFAULT for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_DEFAULT (_CMU_WDOGLOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_UNLOCK (_CMU_WDOGLOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_WDOGLOCK */
+
+/* Bit fields for CMU IF */
+#define _CMU_IF_RESETVALUE 0x00000000UL /**< Default value for CMU_IF */
+#define _CMU_IF_MASK 0x00000003UL /**< Mask for CMU_IF */
+#define CMU_IF_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Flag */
+#define _CMU_IF_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IF_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IF_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALRDY_DEFAULT (_CMU_IF_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Flag */
+#define _CMU_IF_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IF_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IF_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF_DEFAULT (_CMU_IF_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IF */
+
+/* Bit fields for CMU IEN */
+#define _CMU_IEN_RESETVALUE 0x00000000UL /**< Default value for CMU_IEN */
+#define _CMU_IEN_MASK 0x00000003UL /**< Mask for CMU_IEN */
+#define CMU_IEN_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Enable */
+#define _CMU_IEN_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALRDY_DEFAULT (_CMU_IEN_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Enable */
+#define _CMU_IEN_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IEN_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IEN_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF_DEFAULT (_CMU_IEN_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IEN */
+
+/* Bit fields for CMU CALCMD */
+#define _CMU_CALCMD_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCMD */
+#define _CMU_CALCMD_MASK 0x00000003UL /**< Mask for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART (0x1UL << 0) /**< Calibration Start */
+#define _CMU_CALCMD_CALSTART_SHIFT 0 /**< Shift value for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_MASK 0x1UL /**< Bit mask for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART_DEFAULT (_CMU_CALCMD_CALSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP (0x1UL << 1) /**< Calibration Stop */
+#define _CMU_CALCMD_CALSTOP_SHIFT 1 /**< Shift value for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_MASK 0x2UL /**< Bit mask for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP_DEFAULT (_CMU_CALCMD_CALSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CALCMD */
+
+/* Bit fields for CMU CALCTRL */
+#define _CMU_CALCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCTRL */
+#define _CMU_CALCTRL_MASK 0xFF8FFFFFUL /**< Mask for CMU_CALCTRL */
+#define _CMU_CALCTRL_CALTOP_SHIFT 0 /**< Shift value for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_MASK 0xFFFFFUL /**< Bit mask for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CALTOP_DEFAULT (_CMU_CALCTRL_CALTOP_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT (0x1UL << 23) /**< Continuous Calibration */
+#define _CMU_CALCTRL_CONT_SHIFT 23 /**< Shift value for CMU_CONT */
+#define _CMU_CALCTRL_CONT_MASK 0x800000UL /**< Bit mask for CMU_CONT */
+#define _CMU_CALCTRL_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT_DEFAULT (_CMU_CALCTRL_CONT_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_SHIFT 24 /**< Shift value for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_MASK 0xF000000UL /**< Bit mask for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_PRS 0x00000001UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFXO 0x00000003UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFRCODPLL 0x00000004UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFRCO 0x00000009UL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_ULFRCO 0x0000000AUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DEFAULT (_CMU_CALCTRL_UPSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DISABLED (_CMU_CALCTRL_UPSEL_DISABLED << 24) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_PRS (_CMU_CALCTRL_UPSEL_PRS << 24) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFXO (_CMU_CALCTRL_UPSEL_HFXO << 24) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFXO (_CMU_CALCTRL_UPSEL_LFXO << 24) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFRCODPLL (_CMU_CALCTRL_UPSEL_HFRCODPLL << 24) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_FSRCO (_CMU_CALCTRL_UPSEL_FSRCO << 24) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFRCO (_CMU_CALCTRL_UPSEL_LFRCO << 24) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_ULFRCO (_CMU_CALCTRL_UPSEL_ULFRCO << 24) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_SHIFT 28 /**< Shift value for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_MASK 0xF0000000UL /**< Bit mask for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HCLK 0x00000001UL /**< Mode HCLK for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_PRS 0x00000002UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFXO 0x00000004UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFRCODPLL 0x00000005UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_FSRCO 0x00000009UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFRCO 0x0000000AUL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_ULFRCO 0x0000000BUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DEFAULT (_CMU_CALCTRL_DOWNSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DISABLED (_CMU_CALCTRL_DOWNSEL_DISABLED << 28) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HCLK (_CMU_CALCTRL_DOWNSEL_HCLK << 28) /**< Shifted mode HCLK for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_PRS (_CMU_CALCTRL_DOWNSEL_PRS << 28) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFXO (_CMU_CALCTRL_DOWNSEL_HFXO << 28) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFXO (_CMU_CALCTRL_DOWNSEL_LFXO << 28) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFRCODPLL (_CMU_CALCTRL_DOWNSEL_HFRCODPLL << 28) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_FSRCO (_CMU_CALCTRL_DOWNSEL_FSRCO << 28) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFRCO (_CMU_CALCTRL_DOWNSEL_LFRCO << 28) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_ULFRCO (_CMU_CALCTRL_DOWNSEL_ULFRCO << 28) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+
+/* Bit fields for CMU CALCNT */
+#define _CMU_CALCNT_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCNT */
+#define _CMU_CALCNT_MASK 0x000FFFFFUL /**< Mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_SHIFT 0 /**< Shift value for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_MASK 0xFFFFFUL /**< Bit mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCNT */
+#define CMU_CALCNT_CALCNT_DEFAULT (_CMU_CALCNT_CALCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCNT */
+
+/* Bit fields for CMU CLKEN0 */
+#define _CMU_CLKEN0_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN0 */
+#define _CMU_CLKEN0_MASK 0xFEFFFFFFUL /**< Mask for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMA_SHIFT 0 /**< Shift value for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_MASK 0x1UL /**< Bit mask for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA_DEFAULT (_CMU_CLKEN0_LDMA_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMAXBAR_SHIFT 1 /**< Shift value for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_MASK 0x2UL /**< Bit mask for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR_DEFAULT (_CMU_CLKEN0_LDMAXBAR_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_RADIOAES_SHIFT 2 /**< Shift value for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_MASK 0x4UL /**< Bit mask for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES_DEFAULT (_CMU_CLKEN0_RADIOAES_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPCRC_SHIFT 3 /**< Shift value for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_MASK 0x8UL /**< Bit mask for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC_DEFAULT (_CMU_CLKEN0_GPCRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0 (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER0_SHIFT 4 /**< Shift value for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_MASK 0x10UL /**< Bit mask for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0_DEFAULT (_CMU_CLKEN0_TIMER0_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1 (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER1_SHIFT 5 /**< Shift value for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_MASK 0x20UL /**< Bit mask for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1_DEFAULT (_CMU_CLKEN0_TIMER1_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2 (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER2_SHIFT 6 /**< Shift value for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_MASK 0x40UL /**< Bit mask for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2_DEFAULT (_CMU_CLKEN0_TIMER2_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3 (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER3_SHIFT 7 /**< Shift value for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_MASK 0x80UL /**< Bit mask for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3_DEFAULT (_CMU_CLKEN0_TIMER3_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0 (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_USART0_SHIFT 8 /**< Shift value for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_MASK 0x100UL /**< Bit mask for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0_DEFAULT (_CMU_CLKEN0_USART0_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART1 (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_USART1_SHIFT 9 /**< Shift value for CMU_USART1 */
+#define _CMU_CLKEN0_USART1_MASK 0x200UL /**< Bit mask for CMU_USART1 */
+#define _CMU_CLKEN0_USART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART1_DEFAULT (_CMU_CLKEN0_USART1_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0 (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_IADC0_SHIFT 10 /**< Shift value for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_MASK 0x400UL /**< Bit mask for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0_DEFAULT (_CMU_CLKEN0_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0 (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_AMUXCP0_SHIFT 11 /**< Shift value for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_MASK 0x800UL /**< Bit mask for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0_DEFAULT (_CMU_CLKEN0_AMUXCP0_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0 (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LETIMER0_SHIFT 12 /**< Shift value for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_MASK 0x1000UL /**< Bit mask for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0_DEFAULT (_CMU_CLKEN0_LETIMER0_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0 (0x1UL << 13) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_WDOG0_SHIFT 13 /**< Shift value for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_MASK 0x2000UL /**< Bit mask for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0_DEFAULT (_CMU_CLKEN0_WDOG0_DEFAULT << 13) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0 (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C0_SHIFT 14 /**< Shift value for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_MASK 0x4000UL /**< Bit mask for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0_DEFAULT (_CMU_CLKEN0_I2C0_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1 (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C1_SHIFT 15 /**< Shift value for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_MASK 0x8000UL /**< Bit mask for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1_DEFAULT (_CMU_CLKEN0_I2C1_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_SYSCFG_SHIFT 16 /**< Shift value for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_MASK 0x10000UL /**< Bit mask for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG_DEFAULT (_CMU_CLKEN0_SYSCFG_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0 (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DPLL0_SHIFT 17 /**< Shift value for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_MASK 0x20000UL /**< Bit mask for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0_DEFAULT (_CMU_CLKEN0_DPLL0_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFRCO0_SHIFT 18 /**< Shift value for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_MASK 0x40000UL /**< Bit mask for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0_DEFAULT (_CMU_CLKEN0_HFRCO0_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFXO0_SHIFT 19 /**< Shift value for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_MASK 0x80000UL /**< Bit mask for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0_DEFAULT (_CMU_CLKEN0_HFXO0_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_FSRCO_SHIFT 20 /**< Shift value for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_MASK 0x100000UL /**< Bit mask for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO_DEFAULT (_CMU_CLKEN0_FSRCO_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFRCO_SHIFT 21 /**< Shift value for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_MASK 0x200000UL /**< Bit mask for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO_DEFAULT (_CMU_CLKEN0_LFRCO_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFXO_SHIFT 22 /**< Shift value for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_MASK 0x400000UL /**< Bit mask for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO_DEFAULT (_CMU_CLKEN0_LFXO_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_ULFRCO_SHIFT 23 /**< Shift value for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_MASK 0x800000UL /**< Bit mask for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO_DEFAULT (_CMU_CLKEN0_ULFRCO_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PDM (0x1UL << 25) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_PDM_SHIFT 25 /**< Shift value for CMU_PDM */
+#define _CMU_CLKEN0_PDM_MASK 0x2000000UL /**< Bit mask for CMU_PDM */
+#define _CMU_CLKEN0_PDM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PDM_DEFAULT (_CMU_CLKEN0_PDM_DEFAULT << 25) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO (0x1UL << 26) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPIO_SHIFT 26 /**< Shift value for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_MASK 0x4000000UL /**< Bit mask for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO_DEFAULT (_CMU_CLKEN0_GPIO_DEFAULT << 26) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS (0x1UL << 27) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_PRS_SHIFT 27 /**< Shift value for CMU_PRS */
+#define _CMU_CLKEN0_PRS_MASK 0x8000000UL /**< Bit mask for CMU_PRS */
+#define _CMU_CLKEN0_PRS_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS_DEFAULT (_CMU_CLKEN0_PRS_DEFAULT << 27) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURAM_SHIFT 28 /**< Shift value for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_MASK 0x10000000UL /**< Bit mask for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM_DEFAULT (_CMU_CLKEN0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC (0x1UL << 29) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURTC_SHIFT 29 /**< Shift value for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_MASK 0x20000000UL /**< Bit mask for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC_DEFAULT (_CMU_CLKEN0_BURTC_DEFAULT << 29) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RTCC (0x1UL << 30) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_RTCC_SHIFT 30 /**< Shift value for CMU_RTCC */
+#define _CMU_CLKEN0_RTCC_MASK 0x40000000UL /**< Bit mask for CMU_RTCC */
+#define _CMU_CLKEN0_RTCC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RTCC_DEFAULT (_CMU_CLKEN0_RTCC_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC (0x1UL << 31) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DCDC_SHIFT 31 /**< Shift value for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_MASK 0x80000000UL /**< Bit mask for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC_DEFAULT (_CMU_CLKEN0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+
+/* Bit fields for CMU CLKEN1 */
+#define _CMU_CLKEN1_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN1 */
+#define _CMU_CLKEN1_MASK 0x10FFDFFFUL /**< Mask for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_AGC_SHIFT 0 /**< Shift value for CMU_AGC */
+#define _CMU_CLKEN1_AGC_MASK 0x1UL /**< Bit mask for CMU_AGC */
+#define _CMU_CLKEN1_AGC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC_DEFAULT (_CMU_CLKEN1_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MODEM_SHIFT 1 /**< Shift value for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_MASK 0x2UL /**< Bit mask for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM_DEFAULT (_CMU_CLKEN1_MODEM_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFCRC_SHIFT 2 /**< Shift value for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_MASK 0x4UL /**< Bit mask for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC_DEFAULT (_CMU_CLKEN1_RFCRC_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_FRC_SHIFT 3 /**< Shift value for CMU_FRC */
+#define _CMU_CLKEN1_FRC_MASK 0x8UL /**< Bit mask for CMU_FRC */
+#define _CMU_CLKEN1_FRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC_DEFAULT (_CMU_CLKEN1_FRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PROTIMER_SHIFT 4 /**< Shift value for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_MASK 0x10UL /**< Bit mask for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER_DEFAULT (_CMU_CLKEN1_PROTIMER_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RAC_SHIFT 5 /**< Shift value for CMU_RAC */
+#define _CMU_CLKEN1_RAC_MASK 0x20UL /**< Bit mask for CMU_RAC */
+#define _CMU_CLKEN1_RAC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC_DEFAULT (_CMU_CLKEN1_RAC_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SYNTH_SHIFT 6 /**< Shift value for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_MASK 0x40UL /**< Bit mask for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH_DEFAULT (_CMU_CLKEN1_SYNTH_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDSCRATCHPAD (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDSCRATCHPAD_SHIFT 7 /**< Shift value for CMU_RDSCRATCHPAD */
+#define _CMU_CLKEN1_RDSCRATCHPAD_MASK 0x80UL /**< Bit mask for CMU_RDSCRATCHPAD */
+#define _CMU_CLKEN1_RDSCRATCHPAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDSCRATCHPAD_DEFAULT (_CMU_CLKEN1_RDSCRATCHPAD_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX0 (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDMAILBOX0_SHIFT 8 /**< Shift value for CMU_RDMAILBOX0 */
+#define _CMU_CLKEN1_RDMAILBOX0_MASK 0x100UL /**< Bit mask for CMU_RDMAILBOX0 */
+#define _CMU_CLKEN1_RDMAILBOX0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX0_DEFAULT (_CMU_CLKEN1_RDMAILBOX0_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX1 (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RDMAILBOX1_SHIFT 9 /**< Shift value for CMU_RDMAILBOX1 */
+#define _CMU_CLKEN1_RDMAILBOX1_MASK 0x200UL /**< Bit mask for CMU_RDMAILBOX1 */
+#define _CMU_CLKEN1_RDMAILBOX1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RDMAILBOX1_DEFAULT (_CMU_CLKEN1_RDMAILBOX1_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PRORTC (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PRORTC_SHIFT 10 /**< Shift value for CMU_PRORTC */
+#define _CMU_CLKEN1_PRORTC_MASK 0x400UL /**< Bit mask for CMU_PRORTC */
+#define _CMU_CLKEN1_PRORTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PRORTC_DEFAULT (_CMU_CLKEN1_PRORTC_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_BUFC_SHIFT 11 /**< Shift value for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_MASK 0x800UL /**< Bit mask for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC_DEFAULT (_CMU_CLKEN1_BUFC_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_IFADCDEBUG (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_IFADCDEBUG_SHIFT 12 /**< Shift value for CMU_IFADCDEBUG */
+#define _CMU_CLKEN1_IFADCDEBUG_MASK 0x1000UL /**< Bit mask for CMU_IFADCDEBUG */
+#define _CMU_CLKEN1_IFADCDEBUG_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_IFADCDEBUG_DEFAULT (_CMU_CLKEN1_IFADCDEBUG_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSENSE (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFSENSE_SHIFT 14 /**< Shift value for CMU_RFSENSE */
+#define _CMU_CLKEN1_RFSENSE_MASK 0x4000UL /**< Bit mask for CMU_RFSENSE */
+#define _CMU_CLKEN1_RFSENSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSENSE_DEFAULT (_CMU_CLKEN1_RFSENSE_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SMU_SHIFT 15 /**< Shift value for CMU_SMU */
+#define _CMU_CLKEN1_SMU_MASK 0x8000UL /**< Bit mask for CMU_SMU */
+#define _CMU_CLKEN1_SMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU_DEFAULT (_CMU_CLKEN1_SMU_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0 (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ICACHE0_SHIFT 16 /**< Shift value for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_MASK 0x10000UL /**< Bit mask for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0_DEFAULT (_CMU_CLKEN1_ICACHE0_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MSC_SHIFT 17 /**< Shift value for CMU_MSC */
+#define _CMU_CLKEN1_MSC_MASK 0x20000UL /**< Bit mask for CMU_MSC */
+#define _CMU_CLKEN1_MSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC_DEFAULT (_CMU_CLKEN1_MSC_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_TIMER4 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_TIMER4_SHIFT 18 /**< Shift value for CMU_TIMER4 */
+#define _CMU_CLKEN1_TIMER4_MASK 0x40000UL /**< Bit mask for CMU_TIMER4 */
+#define _CMU_CLKEN1_TIMER4_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_TIMER4_DEFAULT (_CMU_CLKEN1_TIMER4_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ACMP0_SHIFT 19 /**< Shift value for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_MASK 0x80000UL /**< Bit mask for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0_DEFAULT (_CMU_CLKEN1_ACMP0_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0 (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART0_SHIFT 20 /**< Shift value for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_MASK 0x100000UL /**< Bit mask for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0_DEFAULT (_CMU_CLKEN1_EUSART0_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SEMAILBOXHOST_SHIFT 21 /**< Shift value for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_MASK 0x200000UL /**< Bit mask for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST_DEFAULT (_CMU_CLKEN1_SEMAILBOXHOST_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_DMEM_SHIFT 22 /**< Shift value for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_MASK 0x400000UL /**< Bit mask for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM_DEFAULT (_CMU_CLKEN1_DMEM_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1 (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART1_SHIFT 23 /**< Shift value for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_MASK 0x800000UL /**< Bit mask for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1_DEFAULT (_CMU_CLKEN1_EUSART1_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ETAMPDET (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ETAMPDET_SHIFT 28 /**< Shift value for CMU_ETAMPDET */
+#define _CMU_CLKEN1_ETAMPDET_MASK 0x10000000UL /**< Bit mask for CMU_ETAMPDET */
+#define _CMU_CLKEN1_ETAMPDET_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ETAMPDET_DEFAULT (_CMU_CLKEN1_ETAMPDET_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+
+/* Bit fields for CMU SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_MASK 0x0001F507UL /**< Mask for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_FSRCO 0x00000001UL /**< Mode FSRCO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL 0x00000002UL /**< Mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_CLKIN0 0x00000004UL /**< Mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_DEFAULT (_CMU_SYSCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_FSRCO (_CMU_SYSCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL (_CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFXO (_CMU_SYSCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_CLKIN0 (_CMU_SYSCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC (0x1UL << 10) /**< PCLK Prescaler */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_SHIFT 10 /**< Shift value for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_MASK 0x400UL /**< Bit mask for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV1 << 10) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV2 << 10) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT 12 /**< Shift value for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_MASK 0xF000UL /**< Bit mask for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV8 0x00000007UL /**< Mode DIV8 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV16 0x0000000FUL /**< Mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV1 << 12) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV2 << 12) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV4 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV4 << 12) /**< Shifted mode DIV4 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV8 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV8 << 12) /**< Shifted mode DIV8 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV16 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV16 << 12) /**< Shifted mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC (0x1UL << 16) /**< Radio HCLK Prescaler */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_SHIFT 16 /**< Shift value for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_MASK 0x10000UL /**< Bit mask for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 << 16) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 << 16) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+
+/* Bit fields for CMU TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_MASK 0x00000033UL /**< Mask for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_TRACECLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_TRACECLKCTRL_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_SYSCLK 0x00000001UL /**< Mode SYSCLK for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT 0x00000002UL /**< Mode HFRCODPLLRT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_DEFAULT (_CMU_TRACECLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_DISABLED (_CMU_TRACECLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_SYSCLK (_CMU_TRACECLKCTRL_CLKSEL_SYSCLK << 0) /**< Shifted mode SYSCLK for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_TRACECLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_TRACECLKCTRL*/
+#define _CMU_TRACECLKCTRL_PRESC_SHIFT 4 /**< Shift value for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_MASK 0x30UL /**< Bit mask for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV3 0x00000002UL /**< Mode DIV3 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DEFAULT (_CMU_TRACECLKCTRL_PRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV1 (_CMU_TRACECLKCTRL_PRESC_DIV1 << 4) /**< Shifted mode DIV1 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV2 (_CMU_TRACECLKCTRL_PRESC_DIV2 << 4) /**< Shifted mode DIV2 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV3 (_CMU_TRACECLKCTRL_PRESC_DIV3 << 4) /**< Shifted mode DIV3 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV4 (_CMU_TRACECLKCTRL_PRESC_DIV4 << 4) /**< Shifted mode DIV4 for CMU_TRACECLKCTRL */
+
+/* Bit fields for CMU EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_MASK 0x1F0F0F0FUL /**< Mask for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_SHIFT 0 /**< Shift value for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_MASK 0xFUL /**< Bit mask for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK << 0) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK << 0) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO << 0) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO << 0) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_SHIFT 8 /**< Shift value for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_MASK 0xF00UL /**< Bit mask for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED << 8) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK << 8) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK << 8) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO << 8) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO << 8) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO << 8) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL << 8) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO << 8) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO << 8) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_SHIFT 16 /**< Shift value for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_MASK 0xF0000UL /**< Bit mask for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED << 16) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK << 16) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK << 16) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO << 16) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO << 16) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO << 16) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL << 16) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO << 16) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO << 16) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_PRESC_SHIFT 24 /**< Shift value for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_MASK 0x1F000000UL /**< Bit mask for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_PRESC_DEFAULT (_CMU_EXPORTCLKCTRL_PRESC_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+
+/* Bit fields for CMU DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_HFXO 0x00000001UL /**< Mode HFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 0x00000003UL /**< Mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT (_CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED (_CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_DPLLREFCLKCTRL*/
+#define CMU_DPLLREFCLKCTRL_CLKSEL_HFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_LFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 (_CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+
+/* Bit fields for CMU EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPACLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPACLKCTRL */
+
+/* Bit fields for CMU EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_MASK 0x00000007UL /**< Mask for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 0x00000004UL /**< Mode CLKIN0 for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT 0x00000005UL /**< Mode HFRCODPLLRT for CMU_EM01GRPBCLKCTRL */
+#define _CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT 0x00000006UL /**< Mode HFXORT for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPBCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPBCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 (_CMU_EM01GRPBCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_EM01GRPBCLKCTRL */
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_EM01GRPBCLKCTRL*/
+#define CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT (_CMU_EM01GRPBCLKCTRL_CLKSEL_HFXORT << 0) /**< Shifted mode HFXORT for CMU_EM01GRPBCLKCTRL */
+
+/* Bit fields for CMU EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPCCLKCTRL */
+
+/* Bit fields for CMU EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM23GRPACLKCTRL*/
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM23GRPACLKCTRL */
+
+/* Bit fields for CMU EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM4GRPACLKCTRL */
+
+/* Bit fields for CMU IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_FSRCO 0x00000002UL /**< Mode FSRCO for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_DEFAULT (_CMU_IADCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK (_CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_IADCCLKCTRL*/
+#define CMU_IADCCLKCTRL_CLKSEL_FSRCO (_CMU_IADCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_IADCCLKCTRL */
+
+/* Bit fields for CMU WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 0x00000004UL /**< Mode HCLKDIV1024 for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT (_CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFXO (_CMU_WDOG0CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 (_CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 << 0) /**< Shifted mode HCLKDIV1024 for CMU_WDOG0CLKCTRL*/
+
+/* Bit fields for CMU RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_RTCCCLKCTRL */
+#define _CMU_RTCCCLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_DEFAULT (_CMU_RTCCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_LFRCO (_CMU_RTCCCLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_LFXO (_CMU_RTCCCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_RTCCCLKCTRL */
+#define CMU_RTCCCLKCTRL_CLKSEL_ULFRCO (_CMU_RTCCCLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_RTCCCLKCTRL */
+
+/* Bit fields for CMU PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_PRORTCCLKCTRL */
+#define _CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT (_CMU_PRORTCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_LFRCO (_CMU_PRORTCCLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_LFXO (_CMU_PRORTCCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_PRORTCCLKCTRL */
+#define CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO (_CMU_PRORTCCLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_PRORTCCLKCTRL */
+
+/* Bit fields for CMU RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_MASK 0x80000003UL /**< Mask for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN (0x1UL << 0) /**< Enable */
+#define _CMU_RADIOCLKCTRL_EN_SHIFT 0 /**< Shift value for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_MASK 0x1UL /**< Bit mask for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN_DEFAULT (_CMU_RADIOCLKCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_FORCECLKENRADIO (0x1UL << 1) /**< Force Radio Clock Enable in EM1P */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_SHIFT 1 /**< Shift value for CMU_FORCECLKENRADIO */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_MASK 0x2UL /**< Bit mask for CMU_FORCECLKENRADIO */
+#define _CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT (_CMU_RADIOCLKCTRL_FORCECLKENRADIO_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK (0x1UL << 31) /**< Enable Clock for Debugger */
+#define _CMU_RADIOCLKCTRL_DBGCLK_SHIFT 31 /**< Shift value for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_MASK 0x80000000UL /**< Bit mask for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK_DEFAULT (_CMU_RADIOCLKCTRL_DBGCLK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+
+/* Bit fields for CMU EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK 0x00000002UL /**< Mode EM23GRPACLK for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT (_CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DISABLED (_CMU_EUSART0CLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK (_CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK (_CMU_EUSART0CLKCTRL_CLKSEL_EM23GRPACLK << 0) /**< Shifted mode EM23GRPACLK for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_FSRCO (_CMU_EUSART0CLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EUSART0CLKCTRL */
+
+/** @} End of group EFR32MG29_CMU_BitFields */
+/** @} End of group EFR32MG29_CMU */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_CMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dcdc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dcdc.h
new file mode 100644
index 000000000..8bbc8b0ca
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dcdc.h
@@ -0,0 +1,718 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 DCDC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_DCDC_H
+#define EFR32MG29_DCDC_H
+#define DCDC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_DCDC DCDC
+ * @{
+ * @brief EFR32MG29 DCDC Register Declaration.
+ *****************************************************************************/
+
+/** DCDC Register Declaration. */
+typedef struct dcdc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t CTRL; /**< Control */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0; /**< EM23 Control */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL; /**< Boost Control Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL; /**< EM23 Boost Control */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy Status Register */
+ uint32_t RESERVED4[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS; /**< Coulomb Counter Status */
+ uint32_t RESERVED5[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS; /**< Lock Status Register */
+ uint32_t RESERVED6[2U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[7U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_SET; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_SET; /**< EM23 Control */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_SET; /**< Boost Control Register */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_SET; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_SET; /**< EM23 Boost Control */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy Status Register */
+ uint32_t RESERVED17[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_SET; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_SET; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_SET; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_SET; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_SET; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_SET; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_SET; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_SET; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_SET; /**< Coulomb Counter Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_SET; /**< Lock Status Register */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[7U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[7U]; /**< Reserved for future use */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_CLR; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_CLR; /**< EM23 Control */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_CLR; /**< Boost Control Register */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_CLR; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_CLR; /**< EM23 Boost Control */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy Status Register */
+ uint32_t RESERVED30[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_CLR; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_CLR; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_CLR; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_CLR; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_CLR; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_CLR; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_CLR; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_CLR; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_CLR; /**< Coulomb Counter Status */
+ uint32_t RESERVED31[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_CLR; /**< Lock Status Register */
+ uint32_t RESERVED32[2U]; /**< Reserved for future use */
+ uint32_t RESERVED33[1U]; /**< Reserved for future use */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ uint32_t RESERVED36[7U]; /**< Reserved for future use */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[967U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01CTRL0_TGL; /**< EM01 Control */
+ __IOM uint32_t EM23CTRL0_TGL; /**< EM23 Control */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t BSTCTRL_TGL; /**< Boost Control Register */
+ uint32_t RESERVED41[1U]; /**< Reserved for future use */
+ __IOM uint32_t BSTEM01CTRL_TGL; /**< EM01 Boost Control */
+ __IOM uint32_t BSTEM23CTRL_TGL; /**< EM23 Boost Control */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy Status Register */
+ uint32_t RESERVED43[7U]; /**< Reserved for future use */
+ __IOM uint32_t CCCTRL_TGL; /**< Coulomb Counter Control */
+ __IOM uint32_t CCCALCTRL_TGL; /**< Coulomb Counter Calibration Control */
+ __IOM uint32_t CCCMD_TGL; /**< Coulomb Counter Command */
+ __IM uint32_t CCEM0CNT_TGL; /**< Coulomb Counter EM0 Count Value */
+ __IM uint32_t CCEM2CNT_TGL; /**< Coulomb Counter EM2 Count Value */
+ __IOM uint32_t CCTHR_TGL; /**< Coulomb Counter Threshold */
+ __IOM uint32_t CCIF_TGL; /**< Coulomb Counter Interrupt Flag */
+ __IOM uint32_t CCIEN_TGL; /**< Coulomb Counter Interrupt Enable */
+ __IM uint32_t CCSTATUS_TGL; /**< Coulomb Counter Status */
+ uint32_t RESERVED44[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_TGL; /**< Lock Status Register */
+ uint32_t RESERVED45[2U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+ uint32_t RESERVED47[7U]; /**< Reserved for future use */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ uint32_t RESERVED49[7U]; /**< Reserved for future use */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+} DCDC_TypeDef;
+/** @} End of group EFR32MG29_DCDC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_DCDC
+ * @{
+ * @defgroup EFR32MG29_DCDC_BitFields DCDC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DCDC IPVERSION */
+#define _DCDC_IPVERSION_RESETVALUE 0x00000006UL /**< Default value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_DEFAULT 0x00000006UL /**< Mode DEFAULT for DCDC_IPVERSION */
+#define DCDC_IPVERSION_IPVERSION_DEFAULT (_DCDC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IPVERSION */
+
+/* Bit fields for DCDC CTRL */
+#define _DCDC_CTRL_RESETVALUE 0x00000040UL /**< Default value for DCDC_CTRL */
+#define _DCDC_CTRL_MASK 0x0000CF71UL /**< Mask for DCDC_CTRL */
+#define DCDC_CTRL_MODE (0x1UL << 0) /**< DCDC/Bypass Mode Control */
+#define _DCDC_CTRL_MODE_SHIFT 0 /**< Shift value for DCDC_MODE */
+#define _DCDC_CTRL_MODE_MASK 0x1UL /**< Bit mask for DCDC_MODE */
+#define _DCDC_CTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_BYPASS 0x00000000UL /**< Mode BYPASS for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_DCDCREGULATION 0x00000001UL /**< Mode DCDCREGULATION for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DEFAULT (_DCDC_CTRL_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_MODE_BYPASS (_DCDC_CTRL_MODE_BYPASS << 0) /**< Shifted mode BYPASS for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DCDCREGULATION (_DCDC_CTRL_MODE_DCDCREGULATION << 0) /**< Shifted mode DCDCREGULATION for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_SHIFT 4 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_MASK 0x70UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_DEFAULT 0x00000004UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_OFF 0x00000000UL /**< Mode OFF for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_DEFAULT (_DCDC_CTRL_IPKTMAXCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_OFF (_DCDC_CTRL_IPKTMAXCTRL_OFF << 4) /**< Shifted mode OFF for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P35us << 4) /**< Shifted mode TMAX_0P35us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P63us << 4) /**< Shifted mode TMAX_0P63us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_0P91us << 4) /**< Shifted mode TMAX_0P91us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P19us << 4) /**< Shifted mode TMAX_1P19us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P47us << 4) /**< Shifted mode TMAX_1P47us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_1P75us << 4) /**< Shifted mode TMAX_1P75us for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us (_DCDC_CTRL_IPKTMAXCTRL_TMAX_2P03us << 4) /**< Shifted mode TMAX_2P03us for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_SHIFT 8 /**< Shift value for DCDC_DVDDBSTPRG */
+#define _DCDC_CTRL_DVDDBSTPRG_MASK 0xF00UL /**< Bit mask for DCDC_DVDDBSTPRG */
+#define _DCDC_CTRL_DVDDBSTPRG_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 0x00000000UL /**< Mode BOOST_1V8 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 0x00000001UL /**< Mode BOOST_1V9 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V 0x00000002UL /**< Mode BOOST_2V for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 0x00000003UL /**< Mode BOOST_2V1 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 0x00000004UL /**< Mode BOOST_2V2 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 0x00000005UL /**< Mode BOOST_2V3 for DCDC_CTRL */
+#define _DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 0x00000006UL /**< Mode BOOST_2V4 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_DEFAULT (_DCDC_CTRL_DVDDBSTPRG_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 (_DCDC_CTRL_DVDDBSTPRG_BOOST_1V8 << 8) /**< Shifted mode BOOST_1V8 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 (_DCDC_CTRL_DVDDBSTPRG_BOOST_1V9 << 8) /**< Shifted mode BOOST_1V9 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V << 8) /**< Shifted mode BOOST_2V for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V1 << 8) /**< Shifted mode BOOST_2V1 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V2 << 8) /**< Shifted mode BOOST_2V2 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V3 << 8) /**< Shifted mode BOOST_2V3 for DCDC_CTRL */
+#define DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 (_DCDC_CTRL_DVDDBSTPRG_BOOST_2V4 << 8) /**< Shifted mode BOOST_2V4 for DCDC_CTRL */
+#define DCDC_CTRL_FORCEBIAS (0x1UL << 14) /**< Force Comparators to be biased */
+#define _DCDC_CTRL_FORCEBIAS_SHIFT 14 /**< Shift value for DCDC_FORCEBIAS */
+#define _DCDC_CTRL_FORCEBIAS_MASK 0x4000UL /**< Bit mask for DCDC_FORCEBIAS */
+#define _DCDC_CTRL_FORCEBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FORCEBIAS_DEFAULT (_DCDC_CTRL_FORCEBIAS_DEFAULT << 14) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FIXEDEMBIAS (0x1UL << 15) /**< Force EM2 config settings */
+#define _DCDC_CTRL_FIXEDEMBIAS_SHIFT 15 /**< Shift value for DCDC_FIXEDEMBIAS */
+#define _DCDC_CTRL_FIXEDEMBIAS_MASK 0x8000UL /**< Bit mask for DCDC_FIXEDEMBIAS */
+#define _DCDC_CTRL_FIXEDEMBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_FIXEDEMBIAS_DEFAULT (_DCDC_CTRL_FIXEDEMBIAS_DEFAULT << 15) /**< Shifted mode DEFAULT for DCDC_CTRL */
+
+/* Bit fields for DCDC EM01CTRL0 */
+#define _DCDC_EM01CTRL0_RESETVALUE 0x00000109UL /**< Default value for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_DEFAULT 0x00000009UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load36mA 0x00000003UL /**< Mode Load36mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load40mA 0x00000004UL /**< Mode Load40mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load44mA 0x00000005UL /**< Mode Load44mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load48mA 0x00000006UL /**< Mode Load48mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load52mA 0x00000007UL /**< Mode Load52mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load56mA 0x00000008UL /**< Mode Load56mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load60mA 0x00000009UL /**< Mode Load60mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_DEFAULT (_DCDC_EM01CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load36mA (_DCDC_EM01CTRL0_IPKVAL_Load36mA << 0) /**< Shifted mode Load36mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load40mA (_DCDC_EM01CTRL0_IPKVAL_Load40mA << 0) /**< Shifted mode Load40mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load44mA (_DCDC_EM01CTRL0_IPKVAL_Load44mA << 0) /**< Shifted mode Load44mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load48mA (_DCDC_EM01CTRL0_IPKVAL_Load48mA << 0) /**< Shifted mode Load48mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load52mA (_DCDC_EM01CTRL0_IPKVAL_Load52mA << 0) /**< Shifted mode Load52mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load56mA (_DCDC_EM01CTRL0_IPKVAL_Load56mA << 0) /**< Shifted mode Load56mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load60mA (_DCDC_EM01CTRL0_IPKVAL_Load60mA << 0) /**< Shifted mode Load60mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM01CTRL0*/
+
+/* Bit fields for DCDC EM23CTRL0 */
+#define _DCDC_EM23CTRL0_RESETVALUE 0x00000103UL /**< Default value for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_DEFAULT 0x00000003UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load5mA 0x00000003UL /**< Mode Load5mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load10mA 0x00000009UL /**< Mode Load10mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_DEFAULT (_DCDC_EM23CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load5mA (_DCDC_EM23CTRL0_IPKVAL_Load5mA << 0) /**< Shifted mode Load5mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load10mA (_DCDC_EM23CTRL0_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM23CTRL0*/
+
+/* Bit fields for DCDC BSTCTRL */
+#define _DCDC_BSTCTRL_RESETVALUE 0x00000047UL /**< Default value for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_MASK 0x00000077UL /**< Mask for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_SHIFT 0 /**< Shift value for DCDC_BSTTOFFMAX */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_MASK 0x7UL /**< Bit mask for DCDC_BSTTOFFMAX */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT 0x00000007UL /**< Mode DEFAULT for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_OFF 0x00000000UL /**< Mode OFF for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT (_DCDC_BSTCTRL_BSTTOFFMAX_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_OFF (_DCDC_BSTCTRL_BSTTOFFMAX_OFF << 0) /**< Shifted mode OFF for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P35us << 0) /**< Shifted mode TMAX_0P35us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P63us << 0) /**< Shifted mode TMAX_0P63us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_0P91us << 0) /**< Shifted mode TMAX_0P91us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P19us << 0) /**< Shifted mode TMAX_1P19us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P47us << 0) /**< Shifted mode TMAX_1P47us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_1P75us << 0) /**< Shifted mode TMAX_1P75us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us (_DCDC_BSTCTRL_BSTTOFFMAX_TMAX_2P03us << 0) /**< Shifted mode TMAX_2P03us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_SHIFT 4 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_MASK 0x70UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT 0x00000004UL /**< Mode DEFAULT for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_OFF 0x00000000UL /**< Mode OFF for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us 0x00000001UL /**< Mode TMAX_0P35us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us 0x00000002UL /**< Mode TMAX_0P63us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us 0x00000003UL /**< Mode TMAX_0P91us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us 0x00000004UL /**< Mode TMAX_1P19us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us 0x00000005UL /**< Mode TMAX_1P47us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us 0x00000006UL /**< Mode TMAX_1P75us for DCDC_BSTCTRL */
+#define _DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us 0x00000007UL /**< Mode TMAX_2P03us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT (_DCDC_BSTCTRL_IPKTMAXCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_OFF (_DCDC_BSTCTRL_IPKTMAXCTRL_OFF << 4) /**< Shifted mode OFF for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P35us << 4) /**< Shifted mode TMAX_0P35us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P63us << 4) /**< Shifted mode TMAX_0P63us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_0P91us << 4) /**< Shifted mode TMAX_0P91us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P19us << 4) /**< Shifted mode TMAX_1P19us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P47us << 4) /**< Shifted mode TMAX_1P47us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_1P75us << 4) /**< Shifted mode TMAX_1P75us for DCDC_BSTCTRL */
+#define DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us (_DCDC_BSTCTRL_IPKTMAXCTRL_TMAX_2P03us << 4) /**< Shifted mode TMAX_2P03us for DCDC_BSTCTRL */
+
+/* Bit fields for DCDC BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_RESETVALUE 0x0000010DUL /**< Default value for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_MASK 0x0000030FUL /**< Mask for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_DEFAULT 0x0000000DUL /**< Mode DEFAULT for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load10mA 0x00000004UL /**< Mode Load10mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load11mA 0x00000005UL /**< Mode Load11mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load13mA 0x00000006UL /**< Mode Load13mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load15mA 0x00000007UL /**< Mode Load15mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load16mA 0x00000008UL /**< Mode Load16mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load18mA 0x00000009UL /**< Mode Load18mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load20mA 0x0000000AUL /**< Mode Load20mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load21mA 0x0000000BUL /**< Mode Load21mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load23mA 0x0000000CUL /**< Mode Load23mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load25mA 0x0000000DUL /**< Mode Load25mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_IPKVAL_Load26mA 0x0000000EUL /**< Mode Load26mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_DEFAULT (_DCDC_BSTEM01CTRL_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load10mA (_DCDC_BSTEM01CTRL_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load11mA (_DCDC_BSTEM01CTRL_IPKVAL_Load11mA << 0) /**< Shifted mode Load11mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load13mA (_DCDC_BSTEM01CTRL_IPKVAL_Load13mA << 0) /**< Shifted mode Load13mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load15mA (_DCDC_BSTEM01CTRL_IPKVAL_Load15mA << 0) /**< Shifted mode Load15mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load16mA (_DCDC_BSTEM01CTRL_IPKVAL_Load16mA << 0) /**< Shifted mode Load16mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load18mA (_DCDC_BSTEM01CTRL_IPKVAL_Load18mA << 0) /**< Shifted mode Load18mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load20mA (_DCDC_BSTEM01CTRL_IPKVAL_Load20mA << 0) /**< Shifted mode Load20mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load21mA (_DCDC_BSTEM01CTRL_IPKVAL_Load21mA << 0) /**< Shifted mode Load21mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load23mA (_DCDC_BSTEM01CTRL_IPKVAL_Load23mA << 0) /**< Shifted mode Load23mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load25mA (_DCDC_BSTEM01CTRL_IPKVAL_Load25mA << 0) /**< Shifted mode Load25mA for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_IPKVAL_Load26mA (_DCDC_BSTEM01CTRL_IPKVAL_Load26mA << 0) /**< Shifted mode Load26mA for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_BSTEM01CTRL */
+#define _DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT (_DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_BSTEM01CTRL */
+#define DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING (_DCDC_BSTEM01CTRL_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_BSTEM01CTRL*/
+
+/* Bit fields for DCDC BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_RESETVALUE 0x0000010AUL /**< Default value for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_MASK 0x0000030FUL /**< Mask for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_DEFAULT 0x0000000AUL /**< Mode DEFAULT for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_Load5mA 0x00000004UL /**< Mode Load5mA for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_IPKVAL_Load10mA 0x0000000AUL /**< Mode Load10mA for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_DEFAULT (_DCDC_BSTEM23CTRL_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_Load5mA (_DCDC_BSTEM23CTRL_IPKVAL_Load5mA << 0) /**< Shifted mode Load5mA for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_IPKVAL_Load10mA (_DCDC_BSTEM23CTRL_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_BSTEM23CTRL */
+#define _DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT (_DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_BSTEM23CTRL */
+#define DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING (_DCDC_BSTEM23CTRL_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_BSTEM23CTRL*/
+
+/* Bit fields for DCDC IF */
+#define _DCDC_IF_RESETVALUE 0x00000000UL /**< Default value for DCDC_IF */
+#define _DCDC_IF_MASK 0x000000FFUL /**< Mask for DCDC_IF */
+#define DCDC_IF_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled */
+#define _DCDC_IF_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_BYPSW_DEFAULT (_DCDC_IF_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM (0x1UL << 1) /**< DCDC Warmup Time Done */
+#define _DCDC_IF_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IF_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IF_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM_DEFAULT (_DCDC_IF_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING (0x1UL << 2) /**< DCDC Running */
+#define _DCDC_IF_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING_DEFAULT (_DCDC_IF_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW (0x1UL << 3) /**< VREGVDD below threshold */
+#define _DCDC_IF_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW_DEFAULT (_DCDC_IF_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH (0x1UL << 4) /**< VREGVDD above threshold */
+#define _DCDC_IF_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH_DEFAULT (_DCDC_IF_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION (0x1UL << 5) /**< DCDC in regulation */
+#define _DCDC_IF_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION_DEFAULT (_DCDC_IF_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX (0x1UL << 6) /**< Buck Max Ton/Boost Max Toff reached */
+#define _DCDC_IF_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IF_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IF_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX_DEFAULT (_DCDC_IF_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR (0x1UL << 7) /**< EM4 Entry Request Error */
+#define _DCDC_IF_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR_DEFAULT (_DCDC_IF_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IF */
+
+/* Bit fields for DCDC IEN */
+#define _DCDC_IEN_RESETVALUE 0x00000000UL /**< Default value for DCDC_IEN */
+#define _DCDC_IEN_MASK 0x000000FFUL /**< Mask for DCDC_IEN */
+#define DCDC_IEN_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled Interrupt Enable */
+#define _DCDC_IEN_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_BYPSW_DEFAULT (_DCDC_IEN_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM (0x1UL << 1) /**< DCDC Warmup Time Done Interrupt Enable */
+#define _DCDC_IEN_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IEN_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IEN_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM_DEFAULT (_DCDC_IEN_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING (0x1UL << 2) /**< DCDC Running Interrupt Enable */
+#define _DCDC_IEN_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING_DEFAULT (_DCDC_IEN_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW (0x1UL << 3) /**< VREGVDD below threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW_DEFAULT (_DCDC_IEN_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH (0x1UL << 4) /**< VREGVDD above threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH_DEFAULT (_DCDC_IEN_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION (0x1UL << 5) /**< DCDC in Regulation Interrupt Enable */
+#define _DCDC_IEN_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION_DEFAULT (_DCDC_IEN_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX (0x1UL << 6) /**< Ton_max Timeout Interrupt Enable */
+#define _DCDC_IEN_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX_DEFAULT (_DCDC_IEN_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR (0x1UL << 7) /**< EM4 Entry Req Interrupt Enable */
+#define _DCDC_IEN_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR_DEFAULT (_DCDC_IEN_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IEN */
+
+/* Bit fields for DCDC STATUS */
+#define _DCDC_STATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_STATUS */
+#define _DCDC_STATUS_MASK 0x0000001FUL /**< Mask for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW (0x1UL << 0) /**< Bypass Switch is currently enabled */
+#define _DCDC_STATUS_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW_DEFAULT (_DCDC_STATUS_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM (0x1UL << 1) /**< DCDC Warmup Done */
+#define _DCDC_STATUS_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_STATUS_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_STATUS_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM_DEFAULT (_DCDC_STATUS_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING (0x1UL << 2) /**< DCDC is running */
+#define _DCDC_STATUS_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING_DEFAULT (_DCDC_STATUS_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN (0x1UL << 3) /**< VREGVDD comparator status */
+#define _DCDC_STATUS_VREGIN_SHIFT 3 /**< Shift value for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_MASK 0x8UL /**< Bit mask for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN_DEFAULT (_DCDC_STATUS_VREGIN_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT (0x1UL << 4) /**< Bypass Comparator Output */
+#define _DCDC_STATUS_BYPCMPOUT_SHIFT 4 /**< Shift value for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_MASK 0x10UL /**< Bit mask for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT_DEFAULT (_DCDC_STATUS_BYPCMPOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_STATUS */
+
+/* Bit fields for DCDC SYNCBUSY */
+#define _DCDC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_MASK 0x00000001UL /**< Mask for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_SYNCBUSY (0x1UL << 0) /**< Combined Sync Busy Status */
+#define _DCDC_SYNCBUSY_SYNCBUSY_SHIFT 0 /**< Shift value for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_SYNCBUSY_MASK 0x1UL /**< Bit mask for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_SYNCBUSY_DEFAULT (_DCDC_SYNCBUSY_SYNCBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+
+/* Bit fields for DCDC CCCTRL */
+#define _DCDC_CCCTRL_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCTRL */
+#define _DCDC_CCCTRL_MASK 0x00000001UL /**< Mask for DCDC_CCCTRL */
+#define DCDC_CCCTRL_CCEN (0x1UL << 0) /**< Coulomb Counter Enable */
+#define _DCDC_CCCTRL_CCEN_SHIFT 0 /**< Shift value for DCDC_CCEN */
+#define _DCDC_CCCTRL_CCEN_MASK 0x1UL /**< Bit mask for DCDC_CCEN */
+#define _DCDC_CCCTRL_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCTRL */
+#define DCDC_CCCTRL_CCEN_DEFAULT (_DCDC_CCCTRL_CCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCTRL */
+
+/* Bit fields for DCDC CCCALCTRL */
+#define _DCDC_CCCALCTRL_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_MASK 0x0000030FUL /**< Mask for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLOADEN (0x1UL << 0) /**< CC Load Circuit Enable */
+#define _DCDC_CCCALCTRL_CCLOADEN_SHIFT 0 /**< Shift value for DCDC_CCLOADEN */
+#define _DCDC_CCCALCTRL_CCLOADEN_MASK 0x1UL /**< Bit mask for DCDC_CCLOADEN */
+#define _DCDC_CCCALCTRL_CCLOADEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLOADEN_DEFAULT (_DCDC_CCCALCTRL_CCLOADEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_SHIFT 1 /**< Shift value for DCDC_CCLVL */
+#define _DCDC_CCCALCTRL_CCLVL_MASK 0xEUL /**< Bit mask for DCDC_CCLVL */
+#define _DCDC_CCCALCTRL_CCLVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD0 0x00000000UL /**< Mode LOAD0 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD1 0x00000001UL /**< Mode LOAD1 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD2 0x00000002UL /**< Mode LOAD2 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD3 0x00000003UL /**< Mode LOAD3 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD4 0x00000004UL /**< Mode LOAD4 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD5 0x00000005UL /**< Mode LOAD5 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD6 0x00000006UL /**< Mode LOAD6 for DCDC_CCCALCTRL */
+#define _DCDC_CCCALCTRL_CCLVL_LOAD7 0x00000007UL /**< Mode LOAD7 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_DEFAULT (_DCDC_CCCALCTRL_CCLVL_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD0 (_DCDC_CCCALCTRL_CCLVL_LOAD0 << 1) /**< Shifted mode LOAD0 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD1 (_DCDC_CCCALCTRL_CCLVL_LOAD1 << 1) /**< Shifted mode LOAD1 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD2 (_DCDC_CCCALCTRL_CCLVL_LOAD2 << 1) /**< Shifted mode LOAD2 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD3 (_DCDC_CCCALCTRL_CCLVL_LOAD3 << 1) /**< Shifted mode LOAD3 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD4 (_DCDC_CCCALCTRL_CCLVL_LOAD4 << 1) /**< Shifted mode LOAD4 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD5 (_DCDC_CCCALCTRL_CCLVL_LOAD5 << 1) /**< Shifted mode LOAD5 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD6 (_DCDC_CCCALCTRL_CCLVL_LOAD6 << 1) /**< Shifted mode LOAD6 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCLVL_LOAD7 (_DCDC_CCCALCTRL_CCLVL_LOAD7 << 1) /**< Shifted mode LOAD7 for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALEM2 (0x1UL << 8) /**< CC Calibrate EM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_SHIFT 8 /**< Shift value for DCDC_CCCALEM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_MASK 0x100UL /**< Bit mask for DCDC_CCCALEM2 */
+#define _DCDC_CCCALCTRL_CCCALEM2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALEM2_DEFAULT (_DCDC_CCCALCTRL_CCCALEM2_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALHALT (0x1UL << 9) /**< CC Calibration Halt Req */
+#define _DCDC_CCCALCTRL_CCCALHALT_SHIFT 9 /**< Shift value for DCDC_CCCALHALT */
+#define _DCDC_CCCALCTRL_CCCALHALT_MASK 0x200UL /**< Bit mask for DCDC_CCCALHALT */
+#define _DCDC_CCCALCTRL_CCCALHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCALCTRL */
+#define DCDC_CCCALCTRL_CCCALHALT_DEFAULT (_DCDC_CCCALCTRL_CCCALHALT_DEFAULT << 9) /**< Shifted mode DEFAULT for DCDC_CCCALCTRL */
+
+/* Bit fields for DCDC CCCMD */
+#define _DCDC_CCCMD_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCCMD */
+#define _DCDC_CCCMD_MASK 0x00000007UL /**< Mask for DCDC_CCCMD */
+#define DCDC_CCCMD_START (0x1UL << 0) /**< Start CC */
+#define _DCDC_CCCMD_START_SHIFT 0 /**< Shift value for DCDC_START */
+#define _DCDC_CCCMD_START_MASK 0x1UL /**< Bit mask for DCDC_START */
+#define _DCDC_CCCMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_START_DEFAULT (_DCDC_CCCMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_STOP (0x1UL << 1) /**< Stop CC */
+#define _DCDC_CCCMD_STOP_SHIFT 1 /**< Shift value for DCDC_STOP */
+#define _DCDC_CCCMD_STOP_MASK 0x2UL /**< Bit mask for DCDC_STOP */
+#define _DCDC_CCCMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_STOP_DEFAULT (_DCDC_CCCMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_CLR (0x1UL << 2) /**< Clear CC */
+#define _DCDC_CCCMD_CLR_SHIFT 2 /**< Shift value for DCDC_CLR */
+#define _DCDC_CCCMD_CLR_MASK 0x4UL /**< Bit mask for DCDC_CLR */
+#define _DCDC_CCCMD_CLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCCMD */
+#define DCDC_CCCMD_CLR_DEFAULT (_DCDC_CCCMD_CLR_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCCMD */
+
+/* Bit fields for DCDC CCEM0CNT */
+#define _DCDC_CCEM0CNT_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCEM0CNT */
+#define _DCDC_CCEM0CNT_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCEM0CNT */
+#define _DCDC_CCEM0CNT_CCCNT_SHIFT 0 /**< Shift value for DCDC_CCCNT */
+#define _DCDC_CCEM0CNT_CCCNT_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_CCCNT */
+#define _DCDC_CCEM0CNT_CCCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCEM0CNT */
+#define DCDC_CCEM0CNT_CCCNT_DEFAULT (_DCDC_CCEM0CNT_CCCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCEM0CNT */
+
+/* Bit fields for DCDC CCEM2CNT */
+#define _DCDC_CCEM2CNT_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCEM2CNT */
+#define _DCDC_CCEM2CNT_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCEM2CNT */
+#define _DCDC_CCEM2CNT_CCCNT_SHIFT 0 /**< Shift value for DCDC_CCCNT */
+#define _DCDC_CCEM2CNT_CCCNT_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_CCCNT */
+#define _DCDC_CCEM2CNT_CCCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCEM2CNT */
+#define DCDC_CCEM2CNT_CCCNT_DEFAULT (_DCDC_CCEM2CNT_CCCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCEM2CNT */
+
+/* Bit fields for DCDC CCTHR */
+#define _DCDC_CCTHR_RESETVALUE 0x00010001UL /**< Default value for DCDC_CCTHR */
+#define _DCDC_CCTHR_MASK 0xFFFFFFFFUL /**< Mask for DCDC_CCTHR */
+#define _DCDC_CCTHR_EM0CNT_SHIFT 0 /**< Shift value for DCDC_EM0CNT */
+#define _DCDC_CCTHR_EM0CNT_MASK 0xFFFFUL /**< Bit mask for DCDC_EM0CNT */
+#define _DCDC_CCTHR_EM0CNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_CCTHR */
+#define DCDC_CCTHR_EM0CNT_DEFAULT (_DCDC_CCTHR_EM0CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCTHR */
+#define _DCDC_CCTHR_EM2CNT_SHIFT 16 /**< Shift value for DCDC_EM2CNT */
+#define _DCDC_CCTHR_EM2CNT_MASK 0xFFFF0000UL /**< Bit mask for DCDC_EM2CNT */
+#define _DCDC_CCTHR_EM2CNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_CCTHR */
+#define DCDC_CCTHR_EM2CNT_DEFAULT (_DCDC_CCTHR_EM2CNT_DEFAULT << 16) /**< Shifted mode DEFAULT for DCDC_CCTHR */
+
+/* Bit fields for DCDC CCIF */
+#define _DCDC_CCIF_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCIF */
+#define _DCDC_CCIF_MASK 0x0000000FUL /**< Mask for DCDC_CCIF */
+#define DCDC_CCIF_EM0OF (0x1UL << 0) /**< EM0 Counter Overflow */
+#define _DCDC_CCIF_EM0OF_SHIFT 0 /**< Shift value for DCDC_EM0OF */
+#define _DCDC_CCIF_EM0OF_MASK 0x1UL /**< Bit mask for DCDC_EM0OF */
+#define _DCDC_CCIF_EM0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0OF_DEFAULT (_DCDC_CCIF_EM0OF_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2OF (0x1UL << 1) /**< EM2 Counter Overflow */
+#define _DCDC_CCIF_EM2OF_SHIFT 1 /**< Shift value for DCDC_EM2OF */
+#define _DCDC_CCIF_EM2OF_MASK 0x2UL /**< Bit mask for DCDC_EM2OF */
+#define _DCDC_CCIF_EM2OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2OF_DEFAULT (_DCDC_CCIF_EM2OF_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0CMP (0x1UL << 2) /**< EM0 Counter Compare Match */
+#define _DCDC_CCIF_EM0CMP_SHIFT 2 /**< Shift value for DCDC_EM0CMP */
+#define _DCDC_CCIF_EM0CMP_MASK 0x4UL /**< Bit mask for DCDC_EM0CMP */
+#define _DCDC_CCIF_EM0CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM0CMP_DEFAULT (_DCDC_CCIF_EM0CMP_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2CMP (0x1UL << 3) /**< EM2 Counter Compare Match */
+#define _DCDC_CCIF_EM2CMP_SHIFT 3 /**< Shift value for DCDC_EM2CMP */
+#define _DCDC_CCIF_EM2CMP_MASK 0x8UL /**< Bit mask for DCDC_EM2CMP */
+#define _DCDC_CCIF_EM2CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIF */
+#define DCDC_CCIF_EM2CMP_DEFAULT (_DCDC_CCIF_EM2CMP_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_CCIF */
+
+/* Bit fields for DCDC CCIEN */
+#define _DCDC_CCIEN_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCIEN */
+#define _DCDC_CCIEN_MASK 0x0000000FUL /**< Mask for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0OF (0x1UL << 0) /**< Clmb Cntr EM0 Overflow Interrupt Enable */
+#define _DCDC_CCIEN_EM0OF_SHIFT 0 /**< Shift value for DCDC_EM0OF */
+#define _DCDC_CCIEN_EM0OF_MASK 0x1UL /**< Bit mask for DCDC_EM0OF */
+#define _DCDC_CCIEN_EM0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0OF_DEFAULT (_DCDC_CCIEN_EM0OF_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2OF (0x1UL << 1) /**< Clmb Cntr EM2 Overflow Interrupt Enable */
+#define _DCDC_CCIEN_EM2OF_SHIFT 1 /**< Shift value for DCDC_EM2OF */
+#define _DCDC_CCIEN_EM2OF_MASK 0x2UL /**< Bit mask for DCDC_EM2OF */
+#define _DCDC_CCIEN_EM2OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2OF_DEFAULT (_DCDC_CCIEN_EM2OF_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0CMP (0x1UL << 2) /**< Clmb Cntr EM0 Cmp Match Interrupt Enable */
+#define _DCDC_CCIEN_EM0CMP_SHIFT 2 /**< Shift value for DCDC_EM0CMP */
+#define _DCDC_CCIEN_EM0CMP_MASK 0x4UL /**< Bit mask for DCDC_EM0CMP */
+#define _DCDC_CCIEN_EM0CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM0CMP_DEFAULT (_DCDC_CCIEN_EM0CMP_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2CMP (0x1UL << 3) /**< Clmb Cntr EM2 Cmp Match Interrupt Enable */
+#define _DCDC_CCIEN_EM2CMP_SHIFT 3 /**< Shift value for DCDC_EM2CMP */
+#define _DCDC_CCIEN_EM2CMP_MASK 0x8UL /**< Bit mask for DCDC_EM2CMP */
+#define _DCDC_CCIEN_EM2CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCIEN */
+#define DCDC_CCIEN_EM2CMP_DEFAULT (_DCDC_CCIEN_EM2CMP_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_CCIEN */
+
+/* Bit fields for DCDC CCSTATUS */
+#define _DCDC_CCSTATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_CCSTATUS */
+#define _DCDC_CCSTATUS_MASK 0x00000003UL /**< Mask for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CLRBSY (0x1UL << 0) /**< Coulomb Counter Clear Busy */
+#define _DCDC_CCSTATUS_CLRBSY_SHIFT 0 /**< Shift value for DCDC_CLRBSY */
+#define _DCDC_CCSTATUS_CLRBSY_MASK 0x1UL /**< Bit mask for DCDC_CLRBSY */
+#define _DCDC_CCSTATUS_CLRBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CLRBSY_DEFAULT (_DCDC_CCSTATUS_CLRBSY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CCRUNNING (0x1UL << 1) /**< Coulomb Counter Running */
+#define _DCDC_CCSTATUS_CCRUNNING_SHIFT 1 /**< Shift value for DCDC_CCRUNNING */
+#define _DCDC_CCSTATUS_CCRUNNING_MASK 0x2UL /**< Bit mask for DCDC_CCRUNNING */
+#define _DCDC_CCSTATUS_CCRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CCSTATUS */
+#define DCDC_CCSTATUS_CCRUNNING_DEFAULT (_DCDC_CCSTATUS_CCRUNNING_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_CCSTATUS */
+
+/* Bit fields for DCDC LOCK */
+#define _DCDC_LOCK_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCK */
+#define _DCDC_LOCK_MASK 0x0000FFFFUL /**< Mask for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_UNLOCKKEY 0x0000ABCDUL /**< Mode UNLOCKKEY for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_DEFAULT (_DCDC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_UNLOCKKEY (_DCDC_LOCK_LOCKKEY_UNLOCKKEY << 0) /**< Shifted mode UNLOCKKEY for DCDC_LOCK */
+
+/* Bit fields for DCDC LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_MASK 0x00000001UL /**< Mask for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK (0x1UL << 0) /**< Lock Status */
+#define _DCDC_LOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_DEFAULT (_DCDC_LOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_UNLOCKED (_DCDC_LOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_LOCKED (_DCDC_LOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for DCDC_LOCKSTATUS */
+
+/** @} End of group EFR32MG29_DCDC_BitFields */
+/** @} End of group EFR32MG29_DCDC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_DCDC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_devinfo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_devinfo.h
new file mode 100644
index 000000000..f124cda1c
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_devinfo.h
@@ -0,0 +1,954 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 DEVINFO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_DEVINFO_H
+#define EFR32MG29_DEVINFO_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_DEVINFO DEVINFO
+ * @{
+ * @brief EFR32MG29 DEVINFO Register Declaration.
+ *****************************************************************************/
+
+/** DEVINFO HFRCODPLLCAL Register Group Declaration. */
+typedef struct devinfo_hfrcodpllcal_typedef{
+ __IM uint32_t HFRCODPLLCAL; /**< HFRCODPLL Calibration */
+} DEVINFO_HFRCODPLLCAL_TypeDef;
+
+/** DEVINFO HFRCOEM23CAL Register Group Declaration. */
+typedef struct devinfo_hfrcoem23cal_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} DEVINFO_HFRCOEM23CAL_TypeDef;
+
+/** DEVINFO HFRCOSECAL Register Group Declaration. */
+typedef struct devinfo_hfrcosecal_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} DEVINFO_HFRCOSECAL_TypeDef;
+
+/** DEVINFO Register Declaration. */
+typedef struct devinfo_typedef{
+ __IM uint32_t INFO; /**< DI Information */
+ __IM uint32_t PART; /**< Part Info */
+ __IM uint32_t MEMINFO; /**< Memory Info */
+ __IM uint32_t MSIZE; /**< Memory Size */
+ __IM uint32_t PKGINFO; /**< Misc Device Info */
+ __IM uint32_t CUSTOMINFO; /**< Custom Part Info */
+ __IM uint32_t SWFIX; /**< SW Fix Register */
+ __IM uint32_t SWCAPA0; /**< Software Restriction */
+ __IM uint32_t SWCAPA1; /**< Software Restriction */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t EXTINFO; /**< External Component Info */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t EUI48L; /**< EUI 48 Low */
+ __IM uint32_t EUI48H; /**< EUI 48 High */
+ __IM uint32_t EUI64L; /**< EUI64 Low */
+ __IM uint32_t EUI64H; /**< EUI64 High */
+ __IM uint32_t CALTEMP; /**< Calibration temperature Information */
+ __IM uint32_t EMUTEMP; /**< EMU Temperature Sensor Calibration Information */
+ DEVINFO_HFRCODPLLCAL_TypeDef HFRCODPLLCAL[18U]; /**< */
+ DEVINFO_HFRCOEM23CAL_TypeDef HFRCOEM23CAL[18U]; /**< */
+ DEVINFO_HFRCOSECAL_TypeDef HFRCOSECAL[18U]; /**< */
+ __IM uint32_t MODULENAME0; /**< Module Name Information */
+ __IM uint32_t MODULENAME1; /**< Module Name Information */
+ __IM uint32_t MODULENAME2; /**< Module Name Information */
+ __IM uint32_t MODULENAME3; /**< Module Name Information */
+ __IM uint32_t MODULENAME4; /**< Module Name Information */
+ __IM uint32_t MODULENAME5; /**< Module Name Information */
+ __IM uint32_t MODULENAME6; /**< Module Name Information */
+ __IM uint32_t MODULEINFO; /**< Module Information */
+ __IM uint32_t MODXOCAL; /**< Module External Oscillator Calibration Information */
+ uint32_t RESERVED3[11U]; /**< Reserved for future use */
+ __IM uint32_t IADC0GAIN0; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0GAIN1; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0OFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL1; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL1; /**< IADC Offset Calibration */
+ uint32_t RESERVED4[24U]; /**< Reserved for future use */
+ __IM uint32_t LEGACY; /**< Legacy Device Info */
+ uint32_t RESERVED5[23U]; /**< Reserved for future use */
+ __IM uint32_t RTHERM; /**< Thermistor Calibration */
+ uint32_t RESERVED6[40U]; /**< Reserved for future use */
+ __IM uint32_t CCLOAD10; /**< Current level 1 and 0 */
+ __IM uint32_t CCLOAD32; /**< Current level 3 and 2 */
+ __IM uint32_t CCLOAD54; /**< Current level 5 and 4 */
+ __IM uint32_t CCLOAD76; /**< Current level 7 and 6 */
+ uint32_t RESERVED7[36U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+} DEVINFO_TypeDef;
+/** @} End of group EFR32MG29_DEVINFO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_DEVINFO
+ * @{
+ * @defgroup EFR32MG29_DEVINFO_BitFields DEVINFO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DEVINFO INFO */
+#define _DEVINFO_INFO_RESETVALUE 0x14000000UL /**< Default value for DEVINFO_INFO */
+#define _DEVINFO_INFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_INFO */
+#define _DEVINFO_INFO_CRC_SHIFT 0 /**< Shift value for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_CRC_DEFAULT (_DEVINFO_INFO_CRC_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_PRODREV_SHIFT 16 /**< Shift value for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_PRODREV_DEFAULT (_DEVINFO_INFO_PRODREV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_DEVINFOREV_SHIFT 24 /**< Shift value for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_MASK 0xFF000000UL /**< Bit mask for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_DEFAULT 0x00000014UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_DEVINFOREV_DEFAULT (_DEVINFO_INFO_DEVINFOREV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+
+/* Bit fields for DEVINFO PART */
+#define _DEVINFO_PART_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PART */
+#define _DEVINFO_PART_MASK 0x3F3FFFFFUL /**< Mask for DEVINFO_PART */
+#define _DEVINFO_PART_DEVICENUM_SHIFT 0 /**< Shift value for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_DEVICENUM_DEFAULT (_DEVINFO_PART_DEVICENUM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILYNUM_SHIFT 16 /**< Shift value for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_MASK 0x3F0000UL /**< Bit mask for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILYNUM_DEFAULT (_DEVINFO_PART_FAMILYNUM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_SHIFT 24 /**< Shift value for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_MASK 0x3F000000UL /**< Bit mask for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_MG 0x00000001UL /**< Mode MG for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_BG 0x00000002UL /**< Mode BG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_DEFAULT (_DEVINFO_PART_FAMILY_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_MG (_DEVINFO_PART_FAMILY_MG << 24) /**< Shifted mode MG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_BG (_DEVINFO_PART_FAMILY_BG << 24) /**< Shifted mode BG for DEVINFO_PART */
+
+/* Bit fields for DEVINFO MEMINFO */
+#define _DEVINFO_MEMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_SHIFT 0 /**< Shift value for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_MASK 0xFFUL /**< Bit mask for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_SHIFT 8 /**< Shift value for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_MASK 0xFF00UL /**< Bit mask for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_DILEN_SHIFT 16 /**< Shift value for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_DILEN_DEFAULT (_DEVINFO_MEMINFO_DILEN_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+
+/* Bit fields for DEVINFO MSIZE */
+#define _DEVINFO_MSIZE_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_MASK 0x07FFFFFFUL /**< Mask for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_FLASH_SHIFT 0 /**< Shift value for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_MASK 0xFFFFUL /**< Bit mask for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_FLASH_DEFAULT (_DEVINFO_MSIZE_FLASH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_SRAM_SHIFT 16 /**< Shift value for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_MASK 0x7FF0000UL /**< Bit mask for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_SRAM_DEFAULT (_DEVINFO_MSIZE_SRAM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+
+/* Bit fields for DEVINFO PKGINFO */
+#define _DEVINFO_PKGINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_SHIFT 0 /**< Shift value for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO85 0x00000000UL /**< Mode N40TO85 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO125 0x00000001UL /**< Mode N40TO125 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO105 0x00000002UL /**< Mode N40TO105 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N0TO70 0x00000003UL /**< Mode N0TO70 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N20TO55 0x00000004UL /**< Mode N20TO55 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_DEFAULT (_DEVINFO_PKGINFO_TEMPGRADE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO85 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO85 << 0) /**< Shifted mode N40TO85 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO125 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO125 << 0) /**< Shifted mode N40TO125 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO105 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO105 << 0) /**< Shifted mode N40TO105 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N0TO70 (_DEVINFO_PKGINFO_TEMPGRADE_N0TO70 << 0) /**< Shifted mode N0TO70 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N20TO55 (_DEVINFO_PKGINFO_TEMPGRADE_N20TO55 << 0) /**< Shifted mode N20TO55 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_SHIFT 8 /**< Shift value for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_MASK 0xFF00UL /**< Bit mask for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_WLCSP 0x0000004AUL /**< Mode WLCSP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_BGA 0x0000004CUL /**< Mode BGA for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFN 0x0000004DUL /**< Mode QFN for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFP 0x00000051UL /**< Mode QFP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_DEFAULT (_DEVINFO_PKGINFO_PKGTYPE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_WLCSP (_DEVINFO_PKGINFO_PKGTYPE_WLCSP << 8) /**< Shifted mode WLCSP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_BGA (_DEVINFO_PKGINFO_PKGTYPE_BGA << 8) /**< Shifted mode BGA for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFN (_DEVINFO_PKGINFO_PKGTYPE_QFN << 8) /**< Shifted mode QFN for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFP (_DEVINFO_PKGINFO_PKGTYPE_QFP << 8) /**< Shifted mode QFP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PINCOUNT_SHIFT 16 /**< Shift value for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PINCOUNT_DEFAULT (_DEVINFO_PKGINFO_PINCOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+
+/* Bit fields for DEVINFO CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_MASK 0xFFFF0000UL /**< Mask for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_SHIFT 16 /**< Shift value for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CUSTOMINFO */
+#define DEVINFO_CUSTOMINFO_PARTNO_DEFAULT (_DEVINFO_CUSTOMINFO_PARTNO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CUSTOMINFO */
+
+/* Bit fields for DEVINFO SWFIX */
+#define _DEVINFO_SWFIX_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_RSV_SHIFT 0 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_DEFAULT 0xFFFFFFFFUL /**< Mode DEFAULT for DEVINFO_SWFIX */
+#define DEVINFO_SWFIX_RSV_DEFAULT (_DEVINFO_SWFIX_RSV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWFIX */
+
+/* Bit fields for DEVINFO SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_MASK 0x00333333UL /**< Mask for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_SHIFT 0 /**< Shift value for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_MASK 0x3UL /**< Bit mask for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_DEFAULT (_DEVINFO_SWCAPA0_ZIGBEE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 << 0) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 << 0) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 << 0) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 << 0) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_SHIFT 4 /**< Shift value for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_MASK 0x30UL /**< Bit mask for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_DEFAULT (_DEVINFO_SWCAPA0_THREAD_DEFAULT << 4) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL0 (_DEVINFO_SWCAPA0_THREAD_LEVEL0 << 4) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL1 (_DEVINFO_SWCAPA0_THREAD_LEVEL1 << 4) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL2 (_DEVINFO_SWCAPA0_THREAD_LEVEL2 << 4) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL3 (_DEVINFO_SWCAPA0_THREAD_LEVEL3 << 4) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_SHIFT 8 /**< Shift value for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_MASK 0x300UL /**< Bit mask for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_DEFAULT (_DEVINFO_SWCAPA0_RF4CE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL0 (_DEVINFO_SWCAPA0_RF4CE_LEVEL0 << 8) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL1 (_DEVINFO_SWCAPA0_RF4CE_LEVEL1 << 8) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL2 (_DEVINFO_SWCAPA0_RF4CE_LEVEL2 << 8) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL3 (_DEVINFO_SWCAPA0_RF4CE_LEVEL3 << 8) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_SHIFT 12 /**< Shift value for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_MASK 0x3000UL /**< Bit mask for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_DEFAULT (_DEVINFO_SWCAPA0_BTSMART_DEFAULT << 12) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL0 (_DEVINFO_SWCAPA0_BTSMART_LEVEL0 << 12) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL1 (_DEVINFO_SWCAPA0_BTSMART_LEVEL1 << 12) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL2 (_DEVINFO_SWCAPA0_BTSMART_LEVEL2 << 12) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL3 (_DEVINFO_SWCAPA0_BTSMART_LEVEL3 << 12) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_SHIFT 16 /**< Shift value for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_MASK 0x30000UL /**< Bit mask for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_DEFAULT (_DEVINFO_SWCAPA0_CONNECT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL0 (_DEVINFO_SWCAPA0_CONNECT_LEVEL0 << 16) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL1 (_DEVINFO_SWCAPA0_CONNECT_LEVEL1 << 16) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL2 (_DEVINFO_SWCAPA0_CONNECT_LEVEL2 << 16) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL3 (_DEVINFO_SWCAPA0_CONNECT_LEVEL3 << 16) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_SHIFT 20 /**< Shift value for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_MASK 0x300000UL /**< Bit mask for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_DEFAULT (_DEVINFO_SWCAPA0_SRI_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL0 (_DEVINFO_SWCAPA0_SRI_LEVEL0 << 20) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL1 (_DEVINFO_SWCAPA0_SRI_LEVEL1 << 20) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL2 (_DEVINFO_SWCAPA0_SRI_LEVEL2 << 20) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL3 (_DEVINFO_SWCAPA0_SRI_LEVEL3 << 20) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+
+/* Bit fields for DEVINFO SWCAPA1 */
+#define _DEVINFO_SWCAPA1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA1 */
+#define _DEVINFO_SWCAPA1_MASK 0x00000007UL /**< Mask for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN (0x1UL << 0) /**< RF-MCU */
+#define _DEVINFO_SWCAPA1_RFMCUEN_SHIFT 0 /**< Shift value for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_MASK 0x1UL /**< Bit mask for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN_DEFAULT (_DEVINFO_SWCAPA1_RFMCUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN (0x1UL << 1) /**< NCP */
+#define _DEVINFO_SWCAPA1_NCPEN_SHIFT 1 /**< Shift value for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_MASK 0x2UL /**< Bit mask for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN_DEFAULT (_DEVINFO_SWCAPA1_NCPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN (0x1UL << 2) /**< Gateway */
+#define _DEVINFO_SWCAPA1_GWEN_SHIFT 2 /**< Shift value for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_MASK 0x4UL /**< Bit mask for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN_DEFAULT (_DEVINFO_SWCAPA1_GWEN_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+
+/* Bit fields for DEVINFO EXTINFO */
+#define _DEVINFO_EXTINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_SHIFT 0 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_MASK 0xFFUL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_DEFAULT (_DEVINFO_EXTINFO_TYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_NONE (_DEVINFO_EXTINFO_TYPE_NONE << 0) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SHIFT 8 /**< Shift value for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_MASK 0xFF00UL /**< Bit mask for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SPI 0x00000000UL /**< Mode SPI for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_DEFAULT (_DEVINFO_EXTINFO_CONNECTION_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_SPI (_DEVINFO_EXTINFO_CONNECTION_SPI << 8) /**< Shifted mode SPI for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_NONE (_DEVINFO_EXTINFO_CONNECTION_NONE << 8) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_REV_SHIFT 16 /**< Shift value for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_REV_DEFAULT (_DEVINFO_EXTINFO_REV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+
+/* Bit fields for DEVINFO EUI48L */
+#define _DEVINFO_EUI48L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_UNIQUEID_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_MASK 0xFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_UNIQUEID_DEFAULT (_DEVINFO_EUI48L_UNIQUEID_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_OUI48L_SHIFT 24 /**< Shift value for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_MASK 0xFF000000UL /**< Bit mask for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_OUI48L_DEFAULT (_DEVINFO_EUI48L_OUI48L_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+
+/* Bit fields for DEVINFO EUI48H */
+#define _DEVINFO_EUI48H_RESETVALUE 0xFFFF0000UL /**< Default value for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_OUI48H_SHIFT 0 /**< Shift value for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_OUI48H_DEFAULT (_DEVINFO_EUI48H_OUI48H_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_RESERVED_SHIFT 16 /**< Shift value for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_RESERVED_DEFAULT (_DEVINFO_EUI48H_RESERVED_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+
+/* Bit fields for DEVINFO EUI64L */
+#define _DEVINFO_EUI64L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_UNIQUEL_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64L */
+#define DEVINFO_EUI64L_UNIQUEL_DEFAULT (_DEVINFO_EUI64L_UNIQUEL_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64L */
+
+/* Bit fields for DEVINFO EUI64H */
+#define _DEVINFO_EUI64H_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_UNIQUEH_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_MASK 0xFFUL /**< Bit mask for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_UNIQUEH_DEFAULT (_DEVINFO_EUI64H_UNIQUEH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_OUI64_SHIFT 8 /**< Shift value for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_MASK 0xFFFFFF00UL /**< Bit mask for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_OUI64_DEFAULT (_DEVINFO_EUI64H_OUI64_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+
+/* Bit fields for DEVINFO CALTEMP */
+#define _DEVINFO_CALTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_MASK 0x000000FFUL /**< Mask for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_TEMP_SHIFT 0 /**< Shift value for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CALTEMP */
+#define DEVINFO_CALTEMP_TEMP_DEFAULT (_DEVINFO_CALTEMP_TEMP_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CALTEMP */
+
+/* Bit fields for DEVINFO EMUTEMP */
+#define _DEVINFO_EMUTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_MASK 0x1FFF07FCUL /**< Mask for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_SHIFT 2 /**< Shift value for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_MASK 0x7FCUL /**< Bit mask for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EMUTEMP */
+#define DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT (_DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_EMUTEMP */
+
+/* Bit fields for DEVINFO HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_MASK 0xFFFFBF7FUL /**< Mask for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_SHIFT 0 /**< Shift value for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_MASK 0x7FUL /**< Bit mask for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_SHIFT 8 /**< Shift value for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define DEVINFO_HFRCODPLLCAL_LDOHP (0x1UL << 15) /**< */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_SHIFT 15 /**< Shift value for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_MASK 0x8000UL /**< Bit mask for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT (_DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_SHIFT 16 /**< Shift value for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT (_DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_SHIFT 21 /**< Shift value for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_SHIFT 24 /**< Shift value for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT (_DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_SHIFT 26 /**< Shift value for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_SHIFT 28 /**< Shift value for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT (_DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+
+/* Bit fields for DEVINFO MODULENAME0 */
+#define _DEVINFO_MODULENAME0_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR1_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR2_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR2_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR2_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR3_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR3_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR3_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR4_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR4_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR4_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+
+/* Bit fields for DEVINFO MODULENAME1 */
+#define _DEVINFO_MODULENAME1_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR5_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR5_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR6_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR6_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR6_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR7_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR7_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR7_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR8_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR8_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR8_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+
+/* Bit fields for DEVINFO MODULENAME2 */
+#define _DEVINFO_MODULENAME2_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR9_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR9_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR10_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR10_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR10_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR11_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR11_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR11_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR12_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR12_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR12_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+
+/* Bit fields for DEVINFO MODULENAME3 */
+#define _DEVINFO_MODULENAME3_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR13_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR13_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR14_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR14_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR14_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR15_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR15_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR15_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR16_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR16_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR16_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+
+/* Bit fields for DEVINFO MODULENAME4 */
+#define _DEVINFO_MODULENAME4_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR17_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR17_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR18_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR18_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR18_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR19_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR19_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR19_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR20_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR20_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR20_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+
+/* Bit fields for DEVINFO MODULENAME5 */
+#define _DEVINFO_MODULENAME5_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR21_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR21_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR22_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR22_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR22_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR23_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR23_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR23_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR24_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR24_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR24_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+
+/* Bit fields for DEVINFO MODULENAME6 */
+#define _DEVINFO_MODULENAME6_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR25_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR25_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_MODCHAR26_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR26_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR26_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_RSV_SHIFT 16 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_RSV_DEFAULT (_DEVINFO_MODULENAME6_RSV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+
+/* Bit fields for DEVINFO MODULEINFO */
+#define _DEVINFO_MODULEINFO_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HWREV_SHIFT 0 /**< Shift value for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_MASK 0x1FUL /**< Bit mask for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_DEFAULT 0x0000001FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HWREV_DEFAULT (_DEVINFO_MODULEINFO_HWREV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_SHIFT 5 /**< Shift value for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_MASK 0xE0UL /**< Bit mask for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_DEFAULT 0x00000007UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_BUILTIN 0x00000000UL /**< Mode BUILTIN for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_CONNECTOR 0x00000001UL /**< Mode CONNECTOR for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_RFPAD 0x00000002UL /**< Mode RFPAD for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_INVERTEDF 0x00000003UL /**< Mode INVERTEDF for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_DEFAULT (_DEVINFO_MODULEINFO_ANTENNA_DEFAULT << 5) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_BUILTIN (_DEVINFO_MODULEINFO_ANTENNA_BUILTIN << 5) /**< Shifted mode BUILTIN for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_CONNECTOR (_DEVINFO_MODULEINFO_ANTENNA_CONNECTOR << 5) /**< Shifted mode CONNECTOR for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_ANTENNA_RFPAD (_DEVINFO_MODULEINFO_ANTENNA_RFPAD << 5) /**< Shifted mode RFPAD for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_INVERTEDF (_DEVINFO_MODULEINFO_ANTENNA_INVERTEDF << 5) /**< Shifted mode INVERTEDF for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBER_SHIFT 8 /**< Shift value for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_MASK 0x7F00UL /**< Bit mask for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBER_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBER_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE (0x1UL << 15) /**< */
+#define _DEVINFO_MODULEINFO_TYPE_SHIFT 15 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_MASK 0x8000UL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_PCB 0x00000000UL /**< Mode PCB for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_SIP 0x00000001UL /**< Mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_DEFAULT (_DEVINFO_MODULEINFO_TYPE_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_PCB (_DEVINFO_MODULEINFO_TYPE_PCB << 15) /**< Shifted mode PCB for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_SIP (_DEVINFO_MODULEINFO_TYPE_SIP << 15) /**< Shifted mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO (0x1UL << 16) /**< */
+#define _DEVINFO_MODULEINFO_LFXO_SHIFT 16 /**< Shift value for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_MASK 0x10000UL /**< Bit mask for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_NONE 0x00000000UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_PRESENT 0x00000001UL /**< Mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_DEFAULT (_DEVINFO_MODULEINFO_LFXO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_NONE (_DEVINFO_MODULEINFO_LFXO_NONE << 16) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_PRESENT (_DEVINFO_MODULEINFO_LFXO_PRESENT << 16) /**< Shifted mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS (0x1UL << 17) /**< */
+#define _DEVINFO_MODULEINFO_EXPRESS_SHIFT 17 /**< Shift value for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_MASK 0x20000UL /**< Bit mask for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_SUPPORTED 0x00000000UL /**< Mode SUPPORTED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_NONE 0x00000001UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_DEFAULT (_DEVINFO_MODULEINFO_EXPRESS_DEFAULT << 17) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_SUPPORTED (_DEVINFO_MODULEINFO_EXPRESS_SUPPORTED << 17) /**< Shifted mode SUPPORTED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXPRESS_NONE (_DEVINFO_MODULEINFO_EXPRESS_NONE << 17) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL (0x1UL << 18) /**< */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_SHIFT 18 /**< Shift value for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_MASK 0x40000UL /**< Bit mask for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT << 18) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_VALID (_DEVINFO_MODULEINFO_LFXOCALVAL_VALID << 18) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID << 18) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_HFXOCALVAL (0x1UL << 19) /**< */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_SHIFT 19 /**< Shift value for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_MASK 0x80000UL /**< Bit mask for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT << 19) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_VALID (_DEVINFO_MODULEINFO_HFXOCALVAL_VALID << 19) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID << 19) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_SHIFT 20 /**< Shift value for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_MASK 0x1FF00000UL /**< Bit mask for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT 0x000001FFUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC (0x1UL << 29) /**< */
+#define _DEVINFO_MODULEINFO_PADCDC_SHIFT 29 /**< Shift value for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_MASK 0x20000000UL /**< Bit mask for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_VDCDC 0x00000000UL /**< Mode VDCDC for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_OTHER 0x00000001UL /**< Mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_DEFAULT (_DEVINFO_MODULEINFO_PADCDC_DEFAULT << 29) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_VDCDC (_DEVINFO_MODULEINFO_PADCDC_VDCDC << 29) /**< Shifted mode VDCDC for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_OTHER (_DEVINFO_MODULEINFO_PADCDC_OTHER << 29) /**< Shifted mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED (0x1UL << 30) /**< */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_SHIFT 30 /**< Shift value for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_MASK 0x40000000UL /**< Bit mask for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_LIMITED 0x00000000UL /**< Mode LIMITED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED 0x00000001UL /**< Mode UNLIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT (_DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT << 30) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_LIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_LIMITED << 30) /**< Shifted mode LIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED << 30) /**< Shifted mode UNLIMITED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXTVALID (0x1UL << 31) /**< */
+#define _DEVINFO_MODULEINFO_EXTVALID_SHIFT 31 /**< Shift value for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_MASK 0x80000000UL /**< Bit mask for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUSED 0x00000000UL /**< Mode EXTUSED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED 0x00000001UL /**< Mode EXTUNUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_DEFAULT (_DEVINFO_MODULEINFO_EXTVALID_DEFAULT << 31) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUSED << 31) /**< Shifted mode EXTUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED << 31) /**< Shifted mode EXTUNUSED for DEVINFO_MODULEINFO*/
+
+/* Bit fields for DEVINFO MODXOCAL */
+#define _DEVINFO_MODXOCAL_RESETVALUE 0x007FFFFFUL /**< Default value for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_MASK 0x007FFFFFUL /**< Mask for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_SHIFT 0 /**< Shift value for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_MASK 0xFFUL /**< Bit mask for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_SHIFT 8 /**< Shift value for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_MASK 0xFF00UL /**< Bit mask for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_SHIFT 16 /**< Shift value for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_MASK 0x7F0000UL /**< Bit mask for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT (_DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+
+/* Bit fields for DEVINFO IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+
+/* Bit fields for DEVINFO IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+
+/* Bit fields for DEVINFO IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+
+/* Bit fields for DEVINFO LEGACY */
+#define _DEVINFO_LEGACY_RESETVALUE 0x00800000UL /**< Default value for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_MASK 0x00FF0000UL /**< Mask for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SHIFT 16 /**< Shift value for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_MASK 0xFF0000UL /**< Bit mask for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT 0x00000080UL /**< Mode DEFAULT for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P 0x00000010UL /**< Mode EFR32MG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B 0x00000011UL /**< Mode EFR32MG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V 0x00000012UL /**< Mode EFR32MG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P 0x00000013UL /**< Mode EFR32BG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B 0x00000014UL /**< Mode EFR32BG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V 0x00000015UL /**< Mode EFR32BG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P 0x00000019UL /**< Mode EFR32FG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B 0x0000001AUL /**< Mode EFR32FG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V 0x0000001BUL /**< Mode EFR32FG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P 0x0000001CUL /**< Mode EFR32MG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B 0x0000001DUL /**< Mode EFR32MG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V 0x0000001EUL /**< Mode EFR32MG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P 0x0000001FUL /**< Mode EFR32BG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B 0x00000020UL /**< Mode EFR32BG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V 0x00000021UL /**< Mode EFR32BG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P 0x00000025UL /**< Mode EFR32FG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B 0x00000026UL /**< Mode EFR32FG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V 0x00000027UL /**< Mode EFR32FG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P 0x00000028UL /**< Mode EFR32MG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B 0x00000029UL /**< Mode EFR32MG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V 0x0000002AUL /**< Mode EFR32MG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P 0x0000002BUL /**< Mode EFR32BG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B 0x0000002CUL /**< Mode EFR32BG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V 0x0000002DUL /**< Mode EFR32BG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P 0x00000031UL /**< Mode EFR32FG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B 0x00000032UL /**< Mode EFR32FG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V 0x00000033UL /**< Mode EFR32FG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P 0x00000034UL /**< Mode EFR32MG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B 0x00000035UL /**< Mode EFR32MG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V 0x00000036UL /**< Mode EFR32MG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P 0x00000037UL /**< Mode EFR32BG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B 0x00000038UL /**< Mode EFR32BG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V 0x00000039UL /**< Mode EFR32BG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P 0x0000003DUL /**< Mode EFR32FG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B 0x0000003EUL /**< Mode EFR32FG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V 0x0000003FUL /**< Mode EFR32FG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32G 0x00000047UL /**< Mode EFM32G for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG 0x00000048UL /**< Mode EFM32GG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG 0x00000049UL /**< Mode EFM32TG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG 0x0000004AUL /**< Mode EFM32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG 0x0000004BUL /**< Mode EFM32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG 0x0000004CUL /**< Mode EFM32ZG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG 0x0000004DUL /**< Mode EFM32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B 0x00000051UL /**< Mode EFM32PG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B 0x00000053UL /**< Mode EFM32JG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B 0x00000055UL /**< Mode EFM32PG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B 0x00000057UL /**< Mode EFM32JG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B 0x00000059UL /**< Mode EFM32PG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B 0x0000005BUL /**< Mode EFM32JG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B 0x00000064UL /**< Mode EFM32GG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B 0x00000067UL /**< Mode EFM32TG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG 0x00000078UL /**< Mode EZR32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG 0x00000079UL /**< Mode EZR32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG 0x0000007AUL /**< Mode EZR32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 0x00000080UL /**< Mode SERIES2V0 for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT (_DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P << 16) /**< Shifted mode EFR32MG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B << 16) /**< Shifted mode EFR32MG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V << 16) /**< Shifted mode EFR32MG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P << 16) /**< Shifted mode EFR32BG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B << 16) /**< Shifted mode EFR32BG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V << 16) /**< Shifted mode EFR32BG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P << 16) /**< Shifted mode EFR32FG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B << 16) /**< Shifted mode EFR32FG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V << 16) /**< Shifted mode EFR32FG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P << 16) /**< Shifted mode EFR32MG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B << 16) /**< Shifted mode EFR32MG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V << 16) /**< Shifted mode EFR32MG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P << 16) /**< Shifted mode EFR32BG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B << 16) /**< Shifted mode EFR32BG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V << 16) /**< Shifted mode EFR32BG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P << 16) /**< Shifted mode EFR32FG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B << 16) /**< Shifted mode EFR32FG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V << 16) /**< Shifted mode EFR32FG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P << 16) /**< Shifted mode EFR32MG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B << 16) /**< Shifted mode EFR32MG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V << 16) /**< Shifted mode EFR32MG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P << 16) /**< Shifted mode EFR32BG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B << 16) /**< Shifted mode EFR32BG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V << 16) /**< Shifted mode EFR32BG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P << 16) /**< Shifted mode EFR32FG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B << 16) /**< Shifted mode EFR32FG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V << 16) /**< Shifted mode EFR32FG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P << 16) /**< Shifted mode EFR32MG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B << 16) /**< Shifted mode EFR32MG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V << 16) /**< Shifted mode EFR32MG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P << 16) /**< Shifted mode EFR32BG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B << 16) /**< Shifted mode EFR32BG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V << 16) /**< Shifted mode EFR32BG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P << 16) /**< Shifted mode EFR32FG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B << 16) /**< Shifted mode EFR32FG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V << 16) /**< Shifted mode EFR32FG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32G (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32G << 16) /**< Shifted mode EFM32G for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG << 16) /**< Shifted mode EFM32GG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG << 16) /**< Shifted mode EFM32TG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG << 16) /**< Shifted mode EFM32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG << 16) /**< Shifted mode EFM32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG << 16) /**< Shifted mode EFM32ZG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG << 16) /**< Shifted mode EFM32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B << 16) /**< Shifted mode EFM32PG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B << 16) /**< Shifted mode EFM32JG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B << 16) /**< Shifted mode EFM32PG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B << 16) /**< Shifted mode EFM32JG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B << 16) /**< Shifted mode EFM32PG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B << 16) /**< Shifted mode EFM32JG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B << 16) /**< Shifted mode EFM32GG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B << 16) /**< Shifted mode EFM32TG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG << 16) /**< Shifted mode EZR32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG << 16) /**< Shifted mode EZR32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG << 16) /**< Shifted mode EZR32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 (_DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 << 16) /**< Shifted mode SERIES2V0 for DEVINFO_LEGACY */
+
+/* Bit fields for DEVINFO RTHERM */
+#define _DEVINFO_RTHERM_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_MASK 0x0000FFFFUL /**< Mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_SHIFT 0 /**< Shift value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_RTHERM */
+#define DEVINFO_RTHERM_RTHERM_DEFAULT (_DEVINFO_RTHERM_RTHERM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_RTHERM */
+
+/* Bit fields for DEVINFO CCLOAD10 */
+#define _DEVINFO_CCLOAD10_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD0 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD0 */
+#define _DEVINFO_CCLOAD10_CCLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD10 */
+#define DEVINFO_CCLOAD10_CCLOAD0_DEFAULT (_DEVINFO_CCLOAD10_CCLOAD0_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD10 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD1 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD1 */
+#define _DEVINFO_CCLOAD10_CCLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD10 */
+#define DEVINFO_CCLOAD10_CCLOAD1_DEFAULT (_DEVINFO_CCLOAD10_CCLOAD1_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD10 */
+
+/* Bit fields for DEVINFO CCLOAD32 */
+#define _DEVINFO_CCLOAD32_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD2 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD2 */
+#define _DEVINFO_CCLOAD32_CCLOAD2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD32 */
+#define DEVINFO_CCLOAD32_CCLOAD2_DEFAULT (_DEVINFO_CCLOAD32_CCLOAD2_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD32 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD3 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD3 */
+#define _DEVINFO_CCLOAD32_CCLOAD3_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD32 */
+#define DEVINFO_CCLOAD32_CCLOAD3_DEFAULT (_DEVINFO_CCLOAD32_CCLOAD3_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD32 */
+
+/* Bit fields for DEVINFO CCLOAD54 */
+#define _DEVINFO_CCLOAD54_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD4 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD4 */
+#define _DEVINFO_CCLOAD54_CCLOAD4_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD54 */
+#define DEVINFO_CCLOAD54_CCLOAD4_DEFAULT (_DEVINFO_CCLOAD54_CCLOAD4_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD54 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD5 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD5 */
+#define _DEVINFO_CCLOAD54_CCLOAD5_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD54 */
+#define DEVINFO_CCLOAD54_CCLOAD5_DEFAULT (_DEVINFO_CCLOAD54_CCLOAD5_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD54 */
+
+/* Bit fields for DEVINFO CCLOAD76 */
+#define _DEVINFO_CCLOAD76_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_SHIFT 0 /**< Shift value for DEVINFO_CCLOAD6 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CCLOAD6 */
+#define _DEVINFO_CCLOAD76_CCLOAD6_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD76 */
+#define DEVINFO_CCLOAD76_CCLOAD6_DEFAULT (_DEVINFO_CCLOAD76_CCLOAD6_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD76 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_SHIFT 16 /**< Shift value for DEVINFO_CCLOAD7 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_CCLOAD7 */
+#define _DEVINFO_CCLOAD76_CCLOAD7_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CCLOAD76 */
+#define DEVINFO_CCLOAD76_CCLOAD7_DEFAULT (_DEVINFO_CCLOAD76_CCLOAD7_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CCLOAD76 */
+
+/** @} End of group EFR32MG29_DEVINFO_BitFields */
+/** @} End of group EFR32MG29_DEVINFO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_DEVINFO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dma_descriptor.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dma_descriptor.h
new file mode 100644
index 000000000..b73022bf6
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dma_descriptor.h
@@ -0,0 +1,59 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 DMA descriptor bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_DMA_DESCRIPTOR_H
+#define EFR32MG29_DMA_DESCRIPTOR_H
+
+#if defined(__ICCARM__)
+#pragma system_include /* Treat file as system include file. */
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+#pragma clang system_header /* Treat file as system include file. */
+#endif
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup DMA_DESCRIPTOR DMA Descriptor
+ * @{
+ *****************************************************************************/
+/** DMA_DESCRIPTOR Register Declaration */
+typedef struct {
+ /* Note! Use of double __IOM (volatile) qualifier to ensure that both */
+ /* pointer and referenced memory are declared volatile. */
+ __IOM uint32_t CTRL; /**< DMA control register */
+ __IOM void * __IOM SRC; /**< DMA source address */
+ __IOM void * __IOM DST; /**< DMA destination address */
+ __IOM void * __IOM LINK; /**< DMA link address */
+} DMA_DESCRIPTOR_TypeDef; /**< @} */
+
+/** @} End of group Parts */
+
+#endif // EFR32MG29_DMA_DESCRIPTOR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dpll.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dpll.h
new file mode 100644
index 000000000..c7fa6428b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_dpll.h
@@ -0,0 +1,232 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 DPLL register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_DPLL_H
+#define EFR32MG29_DPLL_H
+#define DPLL_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_DPLL DPLL
+ * @{
+ * @brief EFR32MG29 DPLL Register Declaration.
+ *****************************************************************************/
+
+/** DPLL Register Declaration. */
+typedef struct dpll_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CFG; /**< Config */
+ __IOM uint32_t CFG1; /**< Config1 */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CFG_SET; /**< Config */
+ __IOM uint32_t CFG1_SET; /**< Config1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CFG_CLR; /**< Config */
+ __IOM uint32_t CFG1_CLR; /**< Config1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CFG_TGL; /**< Config */
+ __IOM uint32_t CFG1_TGL; /**< Config1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ uint32_t RESERVED6[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock */
+} DPLL_TypeDef;
+/** @} End of group EFR32MG29_DPLL */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_DPLL
+ * @{
+ * @defgroup EFR32MG29_DPLL_BitFields DPLL Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DPLL IPVERSION */
+#define _DPLL_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for DPLL_IPVERSION */
+#define DPLL_IPVERSION_IPVERSION_DEFAULT (_DPLL_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IPVERSION */
+
+/* Bit fields for DPLL EN */
+#define _DPLL_EN_RESETVALUE 0x00000000UL /**< Default value for DPLL_EN */
+#define _DPLL_EN_MASK 0x00000003UL /**< Mask for DPLL_EN */
+#define DPLL_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _DPLL_EN_EN_SHIFT 0 /**< Shift value for DPLL_EN */
+#define _DPLL_EN_EN_MASK 0x1UL /**< Bit mask for DPLL_EN */
+#define _DPLL_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_EN_DEFAULT (_DPLL_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING (0x1UL << 1) /**< Disablement Busy Status */
+#define _DPLL_EN_DISABLING_SHIFT 1 /**< Shift value for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_MASK 0x2UL /**< Bit mask for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING_DEFAULT (_DPLL_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_EN */
+
+/* Bit fields for DPLL CFG */
+#define _DPLL_CFG_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG */
+#define _DPLL_CFG_MASK 0x00000047UL /**< Mask for DPLL_CFG */
+#define DPLL_CFG_MODE (0x1UL << 0) /**< Operating Mode Control */
+#define _DPLL_CFG_MODE_SHIFT 0 /**< Shift value for DPLL_MODE */
+#define _DPLL_CFG_MODE_MASK 0x1UL /**< Bit mask for DPLL_MODE */
+#define _DPLL_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define _DPLL_CFG_MODE_FLL 0x00000000UL /**< Mode FLL for DPLL_CFG */
+#define _DPLL_CFG_MODE_PLL 0x00000001UL /**< Mode PLL for DPLL_CFG */
+#define DPLL_CFG_MODE_DEFAULT (_DPLL_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_MODE_FLL (_DPLL_CFG_MODE_FLL << 0) /**< Shifted mode FLL for DPLL_CFG */
+#define DPLL_CFG_MODE_PLL (_DPLL_CFG_MODE_PLL << 0) /**< Shifted mode PLL for DPLL_CFG */
+#define DPLL_CFG_EDGESEL (0x1UL << 1) /**< Reference Edge Select */
+#define _DPLL_CFG_EDGESEL_SHIFT 1 /**< Shift value for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_MASK 0x2UL /**< Bit mask for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_EDGESEL_DEFAULT (_DPLL_CFG_EDGESEL_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER (0x1UL << 2) /**< Automatic Recovery Control */
+#define _DPLL_CFG_AUTORECOVER_SHIFT 2 /**< Shift value for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_MASK 0x4UL /**< Bit mask for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER_DEFAULT (_DPLL_CFG_AUTORECOVER_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN (0x1UL << 6) /**< Dither Enable Control */
+#define _DPLL_CFG_DITHEN_SHIFT 6 /**< Shift value for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_MASK 0x40UL /**< Bit mask for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN_DEFAULT (_DPLL_CFG_DITHEN_DEFAULT << 6) /**< Shifted mode DEFAULT for DPLL_CFG */
+
+/* Bit fields for DPLL CFG1 */
+#define _DPLL_CFG1_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG1 */
+#define _DPLL_CFG1_MASK 0x0FFF0FFFUL /**< Mask for DPLL_CFG1 */
+#define _DPLL_CFG1_M_SHIFT 0 /**< Shift value for DPLL_M */
+#define _DPLL_CFG1_M_MASK 0xFFFUL /**< Bit mask for DPLL_M */
+#define _DPLL_CFG1_M_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_M_DEFAULT (_DPLL_CFG1_M_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+#define _DPLL_CFG1_N_SHIFT 16 /**< Shift value for DPLL_N */
+#define _DPLL_CFG1_N_MASK 0xFFF0000UL /**< Bit mask for DPLL_N */
+#define _DPLL_CFG1_N_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_N_DEFAULT (_DPLL_CFG1_N_DEFAULT << 16) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+
+/* Bit fields for DPLL IF */
+#define _DPLL_IF_RESETVALUE 0x00000000UL /**< Default value for DPLL_IF */
+#define _DPLL_IF_MASK 0x00000007UL /**< Mask for DPLL_IF */
+#define DPLL_IF_LOCK (0x1UL << 0) /**< Lock Interrupt Flag */
+#define _DPLL_IF_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IF_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IF_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCK_DEFAULT (_DPLL_IF_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW (0x1UL << 1) /**< Lock Failure Low Interrupt Flag */
+#define _DPLL_IF_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW_DEFAULT (_DPLL_IF_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH (0x1UL << 2) /**< Lock Failure High Interrupt Flag */
+#define _DPLL_IF_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH_DEFAULT (_DPLL_IF_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IF */
+
+/* Bit fields for DPLL IEN */
+#define _DPLL_IEN_RESETVALUE 0x00000000UL /**< Default value for DPLL_IEN */
+#define _DPLL_IEN_MASK 0x00000007UL /**< Mask for DPLL_IEN */
+#define DPLL_IEN_LOCK (0x1UL << 0) /**< LOCK interrupt Enable */
+#define _DPLL_IEN_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCK_DEFAULT (_DPLL_IEN_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW (0x1UL << 1) /**< LOCKFAILLOW Interrupe Enable */
+#define _DPLL_IEN_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW_DEFAULT (_DPLL_IEN_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH (0x1UL << 2) /**< LOCKFAILHIGH Interrupt Enable */
+#define _DPLL_IEN_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH_DEFAULT (_DPLL_IEN_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IEN */
+
+/* Bit fields for DPLL STATUS */
+#define _DPLL_STATUS_RESETVALUE 0x00000000UL /**< Default value for DPLL_STATUS */
+#define _DPLL_STATUS_MASK 0x80000003UL /**< Mask for DPLL_STATUS */
+#define DPLL_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _DPLL_STATUS_RDY_SHIFT 0 /**< Shift value for DPLL_RDY */
+#define _DPLL_STATUS_RDY_MASK 0x1UL /**< Bit mask for DPLL_RDY */
+#define _DPLL_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_RDY_DEFAULT (_DPLL_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS (0x1UL << 1) /**< Enable Status */
+#define _DPLL_STATUS_ENS_SHIFT 1 /**< Shift value for DPLL_ENS */
+#define _DPLL_STATUS_ENS_MASK 0x2UL /**< Bit mask for DPLL_ENS */
+#define _DPLL_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS_DEFAULT (_DPLL_STATUS_ENS_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _DPLL_STATUS_LOCK_SHIFT 31 /**< Shift value for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_DEFAULT (_DPLL_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_UNLOCKED (_DPLL_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_LOCKED (_DPLL_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for DPLL_STATUS */
+
+/* Bit fields for DPLL LOCK */
+#define _DPLL_LOCK_RESETVALUE 0x00007102UL /**< Default value for DPLL_LOCK */
+#define _DPLL_LOCK_MASK 0x0000FFFFUL /**< Mask for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_DEFAULT 0x00007102UL /**< Mode DEFAULT for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_UNLOCK 0x00007102UL /**< Mode UNLOCK for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_DEFAULT (_DPLL_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_UNLOCK (_DPLL_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for DPLL_LOCK */
+
+/** @} End of group EFR32MG29_DPLL_BitFields */
+/** @} End of group EFR32MG29_DPLL */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_DPLL_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_emu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_emu.h
new file mode 100644
index 000000000..4e2253c3c
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_emu.h
@@ -0,0 +1,862 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 EMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_EMU_H
+#define EFR32MG29_EMU_H
+#define EMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_EMU EMU
+ * @{
+ * @brief EFR32MG29 EMU Register Declaration.
+ *****************************************************************************/
+
+/** EMU Register Declaration. */
+typedef struct emu_typedef{
+ uint32_t RESERVED0[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE; /**< BOD3SENSE Control register */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED3[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t LOCK; /**< EMU Configuration lock register */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL; /**< EM4 Control */
+ __IOM uint32_t CMD; /**< EMU Command register */
+ __IOM uint32_t CTRL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS; /**< EMU Temperature thresholds */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< EMU Status register */
+ __IM uint32_t TEMP; /**< Temperature */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE; /**< Tamper Reset cause */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN; /**< Interrupt Enables Debug */
+ uint32_t RESERVED7[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL; /**< Boost Enable Control */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED10[2U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[27U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ uint32_t RESERVED15[926U]; /**< Reserved for future use */
+ uint32_t RESERVED16[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_SET; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED17[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_SET; /**< BOD3SENSE Control register */
+ uint32_t RESERVED18[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_SET; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_SET; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED19[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t LOCK_SET; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_SET; /**< EM4 Control */
+ __IOM uint32_t CMD_SET; /**< EMU Command register */
+ __IOM uint32_t CTRL_SET; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_SET; /**< EMU Temperature thresholds */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< EMU Status register */
+ __IM uint32_t TEMP_SET; /**< Temperature */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_SET; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_SET; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_SET; /**< Tamper Reset cause */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_SET; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_SET; /**< Interrupt Enables Debug */
+ uint32_t RESERVED23[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_SET; /**< Boost Enable Control */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_SET; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_SET; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED26[2U]; /**< Reserved for future use */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[27U]; /**< Reserved for future use */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ uint32_t RESERVED31[926U]; /**< Reserved for future use */
+ uint32_t RESERVED32[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_CLR; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_CLR; /**< BOD3SENSE Control register */
+ uint32_t RESERVED34[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_CLR; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_CLR; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED35[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t LOCK_CLR; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_CLR; /**< EM4 Control */
+ __IOM uint32_t CMD_CLR; /**< EMU Command register */
+ __IOM uint32_t CTRL_CLR; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_CLR; /**< EMU Temperature thresholds */
+ uint32_t RESERVED36[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< EMU Status register */
+ __IM uint32_t TEMP_CLR; /**< Temperature */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_CLR; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_CLR; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_CLR; /**< Tamper Reset cause */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_CLR; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_CLR; /**< Interrupt Enables Debug */
+ uint32_t RESERVED39[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_CLR; /**< Boost Enable Control */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ uint32_t RESERVED41[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_CLR; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_CLR; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ uint32_t RESERVED43[1U]; /**< Reserved for future use */
+ uint32_t RESERVED44[27U]; /**< Reserved for future use */
+ uint32_t RESERVED45[1U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+ uint32_t RESERVED47[926U]; /**< Reserved for future use */
+ uint32_t RESERVED48[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_TGL; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED49[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_TGL; /**< BOD3SENSE Control register */
+ uint32_t RESERVED50[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_TGL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_TGL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED51[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t LOCK_TGL; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_TGL; /**< EM4 Control */
+ __IOM uint32_t CMD_TGL; /**< EMU Command register */
+ __IOM uint32_t CTRL_TGL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_TGL; /**< EMU Temperature thresholds */
+ uint32_t RESERVED52[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< EMU Status register */
+ __IM uint32_t TEMP_TGL; /**< Temperature */
+ uint32_t RESERVED53[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_TGL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_TGL; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_TGL; /**< Tamper Reset cause */
+ uint32_t RESERVED54[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_TGL; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_TGL; /**< Interrupt Enables Debug */
+ uint32_t RESERVED55[5U]; /**< Reserved for future use */
+ __IOM uint32_t BOOSTCTRL_TGL; /**< Boost Enable Control */
+ uint32_t RESERVED56[1U]; /**< Reserved for future use */
+ uint32_t RESERVED57[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_TGL; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_TGL; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED58[2U]; /**< Reserved for future use */
+ uint32_t RESERVED59[1U]; /**< Reserved for future use */
+ uint32_t RESERVED60[27U]; /**< Reserved for future use */
+ uint32_t RESERVED61[1U]; /**< Reserved for future use */
+ uint32_t RESERVED62[1U]; /**< Reserved for future use */
+} EMU_TypeDef;
+/** @} End of group EFR32MG29_EMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_EMU
+ * @{
+ * @defgroup EFR32MG29_EMU_BitFields EMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EMU DECBOD */
+#define _EMU_DECBOD_RESETVALUE 0x00000022UL /**< Default value for EMU_DECBOD */
+#define _EMU_DECBOD_MASK 0x00000033UL /**< Mask for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN (0x1UL << 0) /**< DECBOD enable */
+#define _EMU_DECBOD_DECBODEN_SHIFT 0 /**< Shift value for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_MASK 0x1UL /**< Bit mask for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN_DEFAULT (_EMU_DECBOD_DECBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK (0x1UL << 1) /**< DECBOD Mask */
+#define _EMU_DECBOD_DECBODMASK_SHIFT 1 /**< Shift value for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_MASK 0x2UL /**< Bit mask for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK_DEFAULT (_EMU_DECBOD_DECBODMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN (0x1UL << 4) /**< Over Voltage Monitor enable */
+#define _EMU_DECBOD_DECOVMBODEN_SHIFT 4 /**< Shift value for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_MASK 0x10UL /**< Bit mask for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN_DEFAULT (_EMU_DECBOD_DECOVMBODEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK (0x1UL << 5) /**< Over Voltage Monitor Mask */
+#define _EMU_DECBOD_DECOVMBODMASK_SHIFT 5 /**< Shift value for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_MASK 0x20UL /**< Bit mask for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK_DEFAULT (_EMU_DECBOD_DECOVMBODMASK_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_DECBOD */
+
+/* Bit fields for EMU BOD3SENSE */
+#define _EMU_BOD3SENSE_RESETVALUE 0x00000000UL /**< Default value for EMU_BOD3SENSE */
+#define _EMU_BOD3SENSE_MASK 0x00000077UL /**< Mask for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN (0x1UL << 0) /**< AVDD BOD enable */
+#define _EMU_BOD3SENSE_AVDDBODEN_SHIFT 0 /**< Shift value for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_MASK 0x1UL /**< Bit mask for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN_DEFAULT (_EMU_BOD3SENSE_AVDDBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN (0x1UL << 1) /**< VDDIO0 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_SHIFT 1 /**< Shift value for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_MASK 0x2UL /**< Bit mask for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN (0x1UL << 2) /**< VDDIO1 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_SHIFT 2 /**< Shift value for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_MASK 0x4UL /**< Bit mask for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+
+/* Bit fields for EMU VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_RESETVALUE 0x00000006UL /**< Default value for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_MASK 0x00000007UL /**< Mask for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN (0x1UL << 0) /**< VREGVDD comparator enable */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_SHIFT 0 /**< Shift value for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_MASK 0x1UL /**< Bit mask for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT (_EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_SHIFT 1 /**< Shift value for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_MASK 0x6UL /**< Bit mask for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT (_EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+
+/* Bit fields for EMU PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_MASK 0x0000FFFFUL /**< Mask for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_SHIFT 0 /**< Shift value for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_MASK 0xFFFFUL /**< Bit mask for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN 0x00000000UL /**< Mode RETAIN for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN 0x00000001UL /**< Mode PERIPHNORETAIN for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN 0x00000002UL /**< Mode RADIONORETAIN for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT (_EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_RETAIN << 0) /**< Shifted mode RETAIN for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN << 0) /**< Shifted mode PERIPHNORETAIN for EMU_PD1PARETCTRL*/
+#define EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN << 0) /**< Shifted mode RADIONORETAIN for EMU_PD1PARETCTRL*/
+
+/* Bit fields for EMU IPVERSION */
+#define _EMU_IPVERSION_RESETVALUE 0x0000000AUL /**< Default value for EMU_IPVERSION */
+#define _EMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_DEFAULT 0x0000000AUL /**< Mode DEFAULT for EMU_IPVERSION */
+#define EMU_IPVERSION_IPVERSION_DEFAULT (_EMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_IPVERSION */
+
+/* Bit fields for EMU LOCK */
+#define _EMU_LOCK_RESETVALUE 0x0000ADE8UL /**< Default value for EMU_LOCK */
+#define _EMU_LOCK_MASK 0x0000FFFFUL /**< Mask for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_DEFAULT 0x0000ADE8UL /**< Mode DEFAULT for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_UNLOCK 0x0000ADE8UL /**< Mode UNLOCK for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_DEFAULT (_EMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_UNLOCK (_EMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for EMU_LOCK */
+
+/* Bit fields for EMU IF */
+#define _EMU_IF_RESETVALUE 0x00000000UL /**< Default value for EMU_IF */
+#define _EMU_IF_MASK 0xEB370000UL /**< Mask for EMU_IF */
+#define EMU_IF_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt flag */
+#define _EMU_IF_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_AVDDBOD_DEFAULT (_EMU_IF_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt flag */
+#define _EMU_IF_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD_DEFAULT (_EMU_IF_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTPOSEDGE (0x1UL << 20) /**< BOOST_EN Rising Edge Interrupt flag */
+#define _EMU_IF_BOOSTPOSEDGE_SHIFT 20 /**< Shift value for EMU_BOOSTPOSEDGE */
+#define _EMU_IF_BOOSTPOSEDGE_MASK 0x100000UL /**< Bit mask for EMU_BOOSTPOSEDGE */
+#define _EMU_IF_BOOSTPOSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTPOSEDGE_DEFAULT (_EMU_IF_BOOSTPOSEDGE_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTNEGEDGE (0x1UL << 21) /**< BOOST_EN Falling Edge Interrupt flag */
+#define _EMU_IF_BOOSTNEGEDGE_SHIFT 21 /**< Shift value for EMU_BOOSTNEGEDGE */
+#define _EMU_IF_BOOSTNEGEDGE_MASK 0x200000UL /**< Bit mask for EMU_BOOSTNEGEDGE */
+#define _EMU_IF_BOOSTNEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_BOOSTNEGEDGE_DEFAULT (_EMU_IF_BOOSTNEGEDGE_DEFAULT << 21) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_IF_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP_DEFAULT (_EMU_IF_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt flag */
+#define _EMU_IF_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE_DEFAULT (_EMU_IF_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG (0x1UL << 27) /**< Temperature Average Interrupt flag */
+#define _EMU_IF_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG_DEFAULT (_EMU_IF_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_IF_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IF_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IF_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP_DEFAULT (_EMU_IF_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_IF_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW_DEFAULT (_EMU_IF_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_IF_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH_DEFAULT (_EMU_IF_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IF */
+
+/* Bit fields for EMU IEN */
+#define _EMU_IEN_RESETVALUE 0x00000000UL /**< Default value for EMU_IEN */
+#define _EMU_IEN_MASK 0xEB370000UL /**< Mask for EMU_IEN */
+#define EMU_IEN_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt enable */
+#define _EMU_IEN_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_AVDDBOD_DEFAULT (_EMU_IEN_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt enable */
+#define _EMU_IEN_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD_DEFAULT (_EMU_IEN_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTPOSEDGE (0x1UL << 20) /**< BOOST_EN Rising edge Interrupt enable */
+#define _EMU_IEN_BOOSTPOSEDGE_SHIFT 20 /**< Shift value for EMU_BOOSTPOSEDGE */
+#define _EMU_IEN_BOOSTPOSEDGE_MASK 0x100000UL /**< Bit mask for EMU_BOOSTPOSEDGE */
+#define _EMU_IEN_BOOSTPOSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTPOSEDGE_DEFAULT (_EMU_IEN_BOOSTPOSEDGE_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTNEGEDGE (0x1UL << 21) /**< BOOST_EN Falling edge Interrupt enable */
+#define _EMU_IEN_BOOSTNEGEDGE_SHIFT 21 /**< Shift value for EMU_BOOSTNEGEDGE */
+#define _EMU_IEN_BOOSTNEGEDGE_MASK 0x200000UL /**< Bit mask for EMU_BOOSTNEGEDGE */
+#define _EMU_IEN_BOOSTNEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_BOOSTNEGEDGE_DEFAULT (_EMU_IEN_BOOSTNEGEDGE_DEFAULT << 21) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_IEN_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP_DEFAULT (_EMU_IEN_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt enable */
+#define _EMU_IEN_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE_DEFAULT (_EMU_IEN_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG (0x1UL << 27) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG_DEFAULT (_EMU_IEN_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IEN_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IEN_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP_DEFAULT (_EMU_IEN_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_IEN_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW_DEFAULT (_EMU_IEN_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_IEN_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH_DEFAULT (_EMU_IEN_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IEN */
+
+/* Bit fields for EMU EM4CTRL */
+#define _EMU_EM4CTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_MASK 0x00000133UL /**< Mask for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4ENTRY_SHIFT 0 /**< Shift value for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_MASK 0x3UL /**< Bit mask for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4ENTRY_DEFAULT (_EMU_EM4CTRL_EM4ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SHIFT 4 /**< Shift value for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_MASK 0x30UL /**< Bit mask for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_DISABLE 0x00000000UL /**< Mode DISABLE for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_EM4EXIT 0x00000001UL /**< Mode EM4EXIT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH 0x00000002UL /**< Mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DEFAULT (_EMU_EM4CTRL_EM4IORETMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DISABLE (_EMU_EM4CTRL_EM4IORETMODE_DISABLE << 4) /**< Shifted mode DISABLE for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_EM4EXIT (_EMU_EM4CTRL_EM4IORETMODE_EM4EXIT << 4) /**< Shifted mode EM4EXIT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH (_EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH << 4) /**< Shifted mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU (0x1UL << 8) /**< Set BOD3SENSE as EM4 wakeup */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_SHIFT 8 /**< Shift value for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_MASK 0x100UL /**< Bit mask for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT (_EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+
+/* Bit fields for EMU CMD */
+#define _EMU_CMD_RESETVALUE 0x00000000UL /**< Default value for EMU_CMD */
+#define _EMU_CMD_MASK 0x00060E12UL /**< Mask for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH (0x1UL << 1) /**< EM4 unlatch */
+#define _EMU_CMD_EM4UNLATCH_SHIFT 1 /**< Shift value for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_MASK 0x2UL /**< Bit mask for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH_DEFAULT (_EMU_CMD_EM4UNLATCH_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ (0x1UL << 4) /**< Temperature Average Request */
+#define _EMU_CMD_TEMPAVGREQ_SHIFT 4 /**< Shift value for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_MASK 0x10UL /**< Bit mask for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ_DEFAULT (_EMU_CMD_TEMPAVGREQ_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1 (0x1UL << 10) /**< Scale voltage to Vscale1 */
+#define _EMU_CMD_EM01VSCALE1_SHIFT 10 /**< Shift value for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_MASK 0x400UL /**< Bit mask for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1_DEFAULT (_EMU_CMD_EM01VSCALE1_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2 (0x1UL << 11) /**< Scale voltage to Vscale2 */
+#define _EMU_CMD_EM01VSCALE2_SHIFT 11 /**< Shift value for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_MASK 0x800UL /**< Bit mask for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2_DEFAULT (_EMU_CMD_EM01VSCALE2_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR (0x1UL << 17) /**< Reset Cause Clear */
+#define _EMU_CMD_RSTCAUSECLR_SHIFT 17 /**< Shift value for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_MASK 0x20000UL /**< Bit mask for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR_DEFAULT (_EMU_CMD_RSTCAUSECLR_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR (0x1UL << 18) /**< Tamper Reset Cause Clear */
+#define _EMU_CMD_TAMPERRCCLR_SHIFT 18 /**< Shift value for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_MASK 0x40000UL /**< Bit mask for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR_DEFAULT (_EMU_CMD_TAMPERRCCLR_DEFAULT << 18) /**< Shifted mode DEFAULT for EMU_CMD */
+
+/* Bit fields for EMU CTRL */
+#define _EMU_CTRL_RESETVALUE 0x00007200UL /**< Default value for EMU_CTRL */
+#define _EMU_CTRL_MASK 0xE0017B09UL /**< Mask for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN (0x1UL << 0) /**< Enable debugging in EM2 */
+#define _EMU_CTRL_EM2DBGEN_SHIFT 0 /**< Shift value for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_MASK 0x1UL /**< Bit mask for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN_DEFAULT (_EMU_CTRL_EM2DBGEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM (0x1UL << 3) /**< Averaged Temperature samples num */
+#define _EMU_CTRL_TEMPAVGNUM_SHIFT 3 /**< Shift value for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N16 0x00000000UL /**< Mode N16 for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N64 0x00000001UL /**< Mode N64 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_DEFAULT (_EMU_CTRL_TEMPAVGNUM_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N16 (_EMU_CTRL_TEMPAVGNUM_N16 << 3) /**< Shifted mode N16 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N64 (_EMU_CTRL_TEMPAVGNUM_N64 << 3) /**< Shifted mode N64 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_SHIFT 8 /**< Shift value for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_MASK 0x300UL /**< Bit mask for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_DEFAULT (_EMU_CTRL_EM23VSCALE_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE0 (_EMU_CTRL_EM23VSCALE_VSCALE0 << 8) /**< Shifted mode VSCALE0 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE1 (_EMU_CTRL_EM23VSCALE_VSCALE1 << 8) /**< Shifted mode VSCALE1 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE2 (_EMU_CTRL_EM23VSCALE_VSCALE2 << 8) /**< Shifted mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_HDREGEM2EXITCLIM (0x1UL << 11) /**< HDREG EM2 Exit current limit */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_SHIFT 11 /**< Shift value for EMU_HDREGEM2EXITCLIM */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_MASK 0x800UL /**< Bit mask for EMU_HDREGEM2EXITCLIM */
+#define _EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT (_EMU_CTRL_HDREGEM2EXITCLIM_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_SHIFT 12 /**< Shift value for EMU_HDREGSTOPGEAR */
+#define _EMU_CTRL_HDREGSTOPGEAR_MASK 0x7000UL /**< Bit mask for EMU_HDREGSTOPGEAR */
+#define _EMU_CTRL_HDREGSTOPGEAR_DEFAULT 0x00000007UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA 0x00000000UL /**< Mode ILMT_4MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA 0x00000001UL /**< Mode ILMT_8MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA 0x00000002UL /**< Mode ILMT_12MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA 0x00000003UL /**< Mode ILMT_16MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA 0x00000004UL /**< Mode ILMT_24MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA 0x00000005UL /**< Mode ILMT_48MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA 0x00000006UL /**< Mode ILMT_64MA for EMU_CTRL */
+#define _EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX 0x00000007UL /**< Mode ILMT_MAX for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_DEFAULT (_EMU_CTRL_HDREGSTOPGEAR_DEFAULT << 12) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA << 12) /**< Shifted mode ILMT_4MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA << 12) /**< Shifted mode ILMT_8MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA << 12) /**< Shifted mode ILMT_12MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA << 12) /**< Shifted mode ILMT_16MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA << 12) /**< Shifted mode ILMT_24MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA << 12) /**< Shifted mode ILMT_48MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA (_EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA << 12) /**< Shifted mode ILMT_64MA for EMU_CTRL */
+#define EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX (_EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX << 12) /**< Shifted mode ILMT_MAX for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND (0x1UL << 16) /**< Enable flash on demand wakeup */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_SHIFT 16 /**< Shift value for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_MASK 0x10000UL /**< Bit mask for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT (_EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN (0x1UL << 29) /**< EFP Direct Mode Enable */
+#define _EMU_CTRL_EFPDIRECTMODEEN_SHIFT 29 /**< Shift value for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_MASK 0x20000000UL /**< Bit mask for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN_DEFAULT (_EMU_CTRL_EFPDIRECTMODEEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE (0x1UL << 30) /**< EFP drives DECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_SHIFT 30 /**< Shift value for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_MASK 0x40000000UL /**< Bit mask for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE_DEFAULT (_EMU_CTRL_EFPDRVDECOUPLE_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD (0x1UL << 31) /**< EFP drives DVDD */
+#define _EMU_CTRL_EFPDRVDVDD_SHIFT 31 /**< Shift value for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_MASK 0x80000000UL /**< Bit mask for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD_DEFAULT (_EMU_CTRL_EFPDRVDVDD_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_CTRL */
+
+/* Bit fields for EMU TEMPLIMITS */
+#define _EMU_TEMPLIMITS_RESETVALUE 0x01FF0000UL /**< Default value for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_MASK 0x01FF01FFUL /**< Mask for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPLOW_SHIFT 0 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_MASK 0x1FFUL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPLOW_DEFAULT (_EMU_TEMPLIMITS_TEMPLOW_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPHIGH_SHIFT 16 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_MASK 0x1FF0000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_DEFAULT 0x000001FFUL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPHIGH_DEFAULT (_EMU_TEMPLIMITS_TEMPHIGH_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+
+/* Bit fields for EMU STATUS */
+#define _EMU_STATUS_RESETVALUE 0x00000080UL /**< Default value for EMU_STATUS */
+#define _EMU_STATUS_MASK 0xFFE154FFUL /**< Mask for EMU_STATUS */
+#define EMU_STATUS_LOCK (0x1UL << 0) /**< Lock status */
+#define _EMU_STATUS_LOCK_SHIFT 0 /**< Shift value for EMU_LOCK */
+#define _EMU_STATUS_LOCK_MASK 0x1UL /**< Bit mask for EMU_LOCK */
+#define _EMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for EMU_STATUS */
+#define _EMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_DEFAULT (_EMU_STATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_LOCK_UNLOCKED (_EMU_STATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_LOCKED (_EMU_STATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE (0x1UL << 1) /**< First Temp done */
+#define _EMU_STATUS_FIRSTTEMPDONE_SHIFT 1 /**< Shift value for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_MASK 0x2UL /**< Bit mask for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE_DEFAULT (_EMU_STATUS_FIRSTTEMPDONE_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE (0x1UL << 2) /**< Temp active */
+#define _EMU_STATUS_TEMPACTIVE_SHIFT 2 /**< Shift value for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_MASK 0x4UL /**< Bit mask for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE_DEFAULT (_EMU_STATUS_TEMPACTIVE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE (0x1UL << 3) /**< Temp Average active */
+#define _EMU_STATUS_TEMPAVGACTIVE_SHIFT 3 /**< Shift value for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE_DEFAULT (_EMU_STATUS_TEMPAVGACTIVE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY (0x1UL << 4) /**< Vscale busy */
+#define _EMU_STATUS_VSCALEBUSY_SHIFT 4 /**< Shift value for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_MASK 0x10UL /**< Bit mask for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY_DEFAULT (_EMU_STATUS_VSCALEBUSY_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED (0x1UL << 5) /**< Vscale failed */
+#define _EMU_STATUS_VSCALEFAILED_SHIFT 5 /**< Shift value for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_MASK 0x20UL /**< Bit mask for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED_DEFAULT (_EMU_STATUS_VSCALEFAILED_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_SHIFT 6 /**< Shift value for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_MASK 0xC0UL /**< Bit mask for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_DEFAULT (_EMU_STATUS_VSCALE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE0 (_EMU_STATUS_VSCALE_VSCALE0 << 6) /**< Shifted mode VSCALE0 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE1 (_EMU_STATUS_VSCALE_VSCALE1 << 6) /**< Shifted mode VSCALE1 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE2 (_EMU_STATUS_VSCALE_VSCALE2 << 6) /**< Shifted mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE (0x1UL << 10) /**< RAC active */
+#define _EMU_STATUS_RACACTIVE_SHIFT 10 /**< Shift value for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_MASK 0x400UL /**< Bit mask for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE_DEFAULT (_EMU_STATUS_RACACTIVE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET (0x1UL << 12) /**< EM4 IO retention status */
+#define _EMU_STATUS_EM4IORET_SHIFT 12 /**< Shift value for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_MASK 0x1000UL /**< Bit mask for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET_DEFAULT (_EMU_STATUS_EM4IORET_DEFAULT << 12) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED (0x1UL << 14) /**< EM2 entered */
+#define _EMU_STATUS_EM2ENTERED_SHIFT 14 /**< Shift value for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_MASK 0x4000UL /**< Bit mask for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED_DEFAULT (_EMU_STATUS_EM2ENTERED_DEFAULT << 14) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_BOOSTENPIN (0x1UL << 16) /**< BOOST_EN pin status */
+#define _EMU_STATUS_BOOSTENPIN_SHIFT 16 /**< Shift value for EMU_BOOSTENPIN */
+#define _EMU_STATUS_BOOSTENPIN_MASK 0x10000UL /**< Bit mask for EMU_BOOSTENPIN */
+#define _EMU_STATUS_BOOSTENPIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_BOOSTENPIN_DEFAULT (_EMU_STATUS_BOOSTENPIN_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_STATUS */
+
+/* Bit fields for EMU TEMP */
+#define _EMU_TEMP_RESETVALUE 0x00000000UL /**< Default value for EMU_TEMP */
+#define _EMU_TEMP_MASK 0x07FF07FFUL /**< Mask for EMU_TEMP */
+#define _EMU_TEMP_TEMPLSB_SHIFT 0 /**< Shift value for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_MASK 0x3UL /**< Bit mask for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPLSB_DEFAULT (_EMU_TEMP_TEMPLSB_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMP_SHIFT 2 /**< Shift value for EMU_TEMP */
+#define _EMU_TEMP_TEMP_MASK 0x7FCUL /**< Bit mask for EMU_TEMP */
+#define _EMU_TEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMP_DEFAULT (_EMU_TEMP_TEMP_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMPAVG_SHIFT 16 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_MASK 0x7FF0000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPAVG_DEFAULT (_EMU_TEMP_TEMPAVG_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMP */
+
+/* Bit fields for EMU RSTCTRL */
+#define _EMU_RSTCTRL_RESETVALUE 0x00070407UL /**< Default value for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_MASK 0xC007C5CFUL /**< Mask for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE (0x1UL << 0) /**< Enable WDOG0 reset */
+#define _EMU_RSTCTRL_WDOG0RMODE_SHIFT 0 /**< Shift value for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_MASK 0x1UL /**< Bit mask for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DEFAULT (_EMU_RSTCTRL_WDOG0RMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DISABLED (_EMU_RSTCTRL_WDOG0RMODE_DISABLED << 0) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_ENABLED (_EMU_RSTCTRL_WDOG0RMODE_ENABLED << 0) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE (0x1UL << 2) /**< Enable M33 System reset */
+#define _EMU_RSTCTRL_SYSRMODE_SHIFT 2 /**< Shift value for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_MASK 0x4UL /**< Bit mask for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DEFAULT (_EMU_RSTCTRL_SYSRMODE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DISABLED (_EMU_RSTCTRL_SYSRMODE_DISABLED << 2) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_ENABLED (_EMU_RSTCTRL_SYSRMODE_ENABLED << 2) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE (0x1UL << 3) /**< Enable M33 Lockup reset */
+#define _EMU_RSTCTRL_LOCKUPRMODE_SHIFT 3 /**< Shift value for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_MASK 0x8UL /**< Bit mask for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DEFAULT (_EMU_RSTCTRL_LOCKUPRMODE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DISABLED (_EMU_RSTCTRL_LOCKUPRMODE_DISABLED << 3) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_ENABLED (_EMU_RSTCTRL_LOCKUPRMODE_ENABLED << 3) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE (0x1UL << 6) /**< Enable AVDD BOD reset */
+#define _EMU_RSTCTRL_AVDDBODRMODE_SHIFT 6 /**< Shift value for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_MASK 0x40UL /**< Bit mask for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DEFAULT (_EMU_RSTCTRL_AVDDBODRMODE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DISABLED (_EMU_RSTCTRL_AVDDBODRMODE_DISABLED << 6) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_ENABLED (_EMU_RSTCTRL_AVDDBODRMODE_ENABLED << 6) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE (0x1UL << 7) /**< Enable VDDIO0 BOD reset */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_SHIFT 7 /**< Shift value for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_MASK 0x80UL /**< Bit mask for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT (_EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED << 7) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED << 7) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE (0x1UL << 10) /**< Enable DECBOD reset */
+#define _EMU_RSTCTRL_DECBODRMODE_SHIFT 10 /**< Shift value for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_MASK 0x400UL /**< Bit mask for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DEFAULT (_EMU_RSTCTRL_DECBODRMODE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DISABLED (_EMU_RSTCTRL_DECBODRMODE_DISABLED << 10) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_ENABLED (_EMU_RSTCTRL_DECBODRMODE_ENABLED << 10) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE (0x1UL << 16) /**< DCI System reset */
+#define _EMU_RSTCTRL_DCIRMODE_SHIFT 16 /**< Shift value for EMU_DCIRMODE */
+#define _EMU_RSTCTRL_DCIRMODE_MASK 0x10000UL /**< Bit mask for EMU_DCIRMODE */
+#define _EMU_RSTCTRL_DCIRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DCIRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DCIRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_DEFAULT (_EMU_RSTCTRL_DCIRMODE_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_DISABLED (_EMU_RSTCTRL_DCIRMODE_DISABLED << 16) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DCIRMODE_ENABLED (_EMU_RSTCTRL_DCIRMODE_ENABLED << 16) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+
+/* Bit fields for EMU RSTCAUSE */
+#define _EMU_RSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_RSTCAUSE */
+#define _EMU_RSTCAUSE_MASK 0x8017FFFFUL /**< Mask for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR (0x1UL << 0) /**< Power On Reset */
+#define _EMU_RSTCAUSE_POR_SHIFT 0 /**< Shift value for EMU_POR */
+#define _EMU_RSTCAUSE_POR_MASK 0x1UL /**< Bit mask for EMU_POR */
+#define _EMU_RSTCAUSE_POR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR_DEFAULT (_EMU_RSTCAUSE_POR_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN (0x1UL << 1) /**< Pin Reset */
+#define _EMU_RSTCAUSE_PIN_SHIFT 1 /**< Shift value for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_MASK 0x2UL /**< Bit mask for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN_DEFAULT (_EMU_RSTCAUSE_PIN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4 (0x1UL << 2) /**< EM4 Wakeup Reset */
+#define _EMU_RSTCAUSE_EM4_SHIFT 2 /**< Shift value for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_MASK 0x4UL /**< Bit mask for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4_DEFAULT (_EMU_RSTCAUSE_EM4_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0 (0x1UL << 3) /**< Watchdog 0 Reset */
+#define _EMU_RSTCAUSE_WDOG0_SHIFT 3 /**< Shift value for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_MASK 0x8UL /**< Bit mask for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0_DEFAULT (_EMU_RSTCAUSE_WDOG0_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP (0x1UL << 5) /**< M33 Core Lockup Reset */
+#define _EMU_RSTCAUSE_LOCKUP_SHIFT 5 /**< Shift value for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_MASK 0x20UL /**< Bit mask for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP_DEFAULT (_EMU_RSTCAUSE_LOCKUP_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ (0x1UL << 6) /**< M33 Core Sys Reset */
+#define _EMU_RSTCAUSE_SYSREQ_SHIFT 6 /**< Shift value for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_MASK 0x40UL /**< Bit mask for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ_DEFAULT (_EMU_RSTCAUSE_SYSREQ_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD (0x1UL << 7) /**< HVBOD Reset */
+#define _EMU_RSTCAUSE_DVDDBOD_SHIFT 7 /**< Shift value for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_MASK 0x80UL /**< Bit mask for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD_DEFAULT (_EMU_RSTCAUSE_DVDDBOD_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD (0x1UL << 8) /**< LEBOD Reset */
+#define _EMU_RSTCAUSE_DVDDLEBOD_SHIFT 8 /**< Shift value for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_MASK 0x100UL /**< Bit mask for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD_DEFAULT (_EMU_RSTCAUSE_DVDDLEBOD_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD (0x1UL << 9) /**< LVBOD Reset */
+#define _EMU_RSTCAUSE_DECBOD_SHIFT 9 /**< Shift value for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_MASK 0x200UL /**< Bit mask for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD_DEFAULT (_EMU_RSTCAUSE_DECBOD_DEFAULT << 9) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD (0x1UL << 10) /**< LEBOD1 Reset */
+#define _EMU_RSTCAUSE_AVDDBOD_SHIFT 10 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_MASK 0x400UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD_DEFAULT (_EMU_RSTCAUSE_AVDDBOD_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD (0x1UL << 11) /**< LEBOD2 Reset */
+#define _EMU_RSTCAUSE_IOVDD0BOD_SHIFT 11 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_MASK 0x800UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD_DEFAULT (_EMU_RSTCAUSE_IOVDD0BOD_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER (0x1UL << 13) /**< SE Tamper event Reset */
+#define _EMU_RSTCAUSE_SETAMPER_SHIFT 13 /**< Shift value for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_MASK 0x2000UL /**< Bit mask for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER_DEFAULT (_EMU_RSTCAUSE_SETAMPER_DEFAULT << 13) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DCI (0x1UL << 16) /**< DCI reset */
+#define _EMU_RSTCAUSE_DCI_SHIFT 16 /**< Shift value for EMU_DCI */
+#define _EMU_RSTCAUSE_DCI_MASK 0x10000UL /**< Bit mask for EMU_DCI */
+#define _EMU_RSTCAUSE_DCI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DCI_DEFAULT (_EMU_RSTCAUSE_DCI_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_BOOSTON (0x1UL << 20) /**< BOOST_EN pin reset */
+#define _EMU_RSTCAUSE_BOOSTON_SHIFT 20 /**< Shift value for EMU_BOOSTON */
+#define _EMU_RSTCAUSE_BOOSTON_MASK 0x100000UL /**< Bit mask for EMU_BOOSTON */
+#define _EMU_RSTCAUSE_BOOSTON_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_BOOSTON_DEFAULT (_EMU_RSTCAUSE_BOOSTON_DEFAULT << 20) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN (0x1UL << 31) /**< DCDC VREGIN comparator */
+#define _EMU_RSTCAUSE_VREGIN_SHIFT 31 /**< Shift value for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_MASK 0x80000000UL /**< Bit mask for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN_DEFAULT (_EMU_RSTCAUSE_VREGIN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+
+/* Bit fields for EMU TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_MASK 0xFFFFFFFFUL /**< Mask for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_SHIFT 0 /**< Shift value for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TAMPERRSTCAUSE */
+#define EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT (_EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TAMPERRSTCAUSE */
+
+/* Bit fields for EMU DGIF */
+#define _EMU_DGIF_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIF */
+#define _EMU_DGIF_MASK 0xE1000000UL /**< Mask for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_DGIF_EM23WAKEUPDGIF_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF_DEFAULT (_EMU_DGIF_EM23WAKEUPDGIF_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_DGIF_TEMPDGIF_SHIFT 29 /**< Shift value for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF_DEFAULT (_EMU_DGIF_TEMPDGIF_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_DGIF_TEMPLOWDGIF_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF_DEFAULT (_EMU_DGIF_TEMPLOWDGIF_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_DGIF_TEMPHIGHDGIF_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF_DEFAULT (_EMU_DGIF_TEMPHIGHDGIF_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIF */
+
+/* Bit fields for EMU DGIEN */
+#define _EMU_DGIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIEN */
+#define _EMU_DGIEN_MASK 0xE1000000UL /**< Mask for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT (_EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_DGIEN_TEMPDGIEN_SHIFT 29 /**< Shift value for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN_DEFAULT (_EMU_DGIEN_TEMPDGIEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_DGIEN_TEMPLOWDGIEN_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN_DEFAULT (_EMU_DGIEN_TEMPLOWDGIEN_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT (_EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIEN */
+
+/* Bit fields for EMU BOOSTCTRL */
+#define _EMU_BOOSTCTRL_RESETVALUE 0x00000001UL /**< Default value for EMU_BOOSTCTRL */
+#define _EMU_BOOSTCTRL_MASK 0x00000001UL /**< Mask for EMU_BOOSTCTRL */
+#define EMU_BOOSTCTRL_BOOSTENCTRL (0x1UL << 0) /**< BOOST_EN Control */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_SHIFT 0 /**< Shift value for EMU_BOOSTENCTRL */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_MASK 0x1UL /**< Bit mask for EMU_BOOSTENCTRL */
+#define _EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_BOOSTCTRL */
+#define EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT (_EMU_BOOSTCTRL_BOOSTENCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_BOOSTCTRL */
+
+/* Bit fields for EMU EFPIF */
+#define _EMU_EFPIF_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIF */
+#define _EMU_EFPIF_MASK 0x00000001UL /**< Mask for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF (0x1UL << 0) /**< EFP Interrupt Flag */
+#define _EMU_EFPIF_EFPIF_SHIFT 0 /**< Shift value for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_MASK 0x1UL /**< Bit mask for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF_DEFAULT (_EMU_EFPIF_EFPIF_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIF */
+
+/* Bit fields for EMU EFPIEN */
+#define _EMU_EFPIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIEN */
+#define _EMU_EFPIEN_MASK 0x00000001UL /**< Mask for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN (0x1UL << 0) /**< EFP Interrupt enable */
+#define _EMU_EFPIEN_EFPIEN_SHIFT 0 /**< Shift value for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_MASK 0x1UL /**< Bit mask for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN_DEFAULT (_EMU_EFPIEN_EFPIEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIEN */
+
+/** @} End of group EFR32MG29_EMU_BitFields */
+/** @} End of group EFR32MG29_EMU */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_EMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_etampdet.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_etampdet.h
new file mode 100644
index 000000000..e2089a721
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_etampdet.h
@@ -0,0 +1,646 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 ETAMPDET register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_ETAMPDET_H
+#define EFR32MG29_ETAMPDET_H
+#define ETAMPDET_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_ETAMPDET ETAMPDET
+ * @{
+ * @brief EFR32MG29 ETAMPDET Register Declaration.
+ *****************************************************************************/
+
+/** ETAMPDET Register Declaration. */
+typedef struct etampdet_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE; /**< Filter moving window size Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED2[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_SET; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_SET; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_SET; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_SET; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_SET; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_CLR; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_CLR; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_CLR; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_CLR; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_CLR; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED8[1005U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CNTMISMATCHMAX_TGL; /**< Filter Threshold Register */
+ __IOM uint32_t CHNLFILTWINSIZE_TGL; /**< Filter moving window size Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy Status Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup request Enable Register */
+ __IOM uint32_t CHNLSEEDVAL0_TGL; /**< CHNL0 LFSR Seed Ctrl Register */
+ __IOM uint32_t CHNLSEEDVAL1_TGL; /**< CHNL1 LFSR Seed Ctrl Register */
+ __IOM uint32_t CLKPRESCVAL_TGL; /**< Prescaler Ctrl Register */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} ETAMPDET_TypeDef;
+/** @} End of group EFR32MG29_ETAMPDET */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_ETAMPDET
+ * @{
+ * @defgroup EFR32MG29_ETAMPDET_BitFields ETAMPDET Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ETAMPDET IPVERSION */
+#define _ETAMPDET_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_IPVERSION */
+#define _ETAMPDET_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for ETAMPDET_IPVERSION */
+#define ETAMPDET_IPVERSION_IPVERSION_DEFAULT (_ETAMPDET_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IPVERSION */
+
+/* Bit fields for ETAMPDET EN */
+#define _ETAMPDET_EN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_EN */
+#define _ETAMPDET_EN_MASK 0x00000001UL /**< Mask for ETAMPDET_EN */
+#define ETAMPDET_EN_EN (0x1UL << 0) /**< ETAMPDET Enable */
+#define _ETAMPDET_EN_EN_SHIFT 0 /**< Shift value for ETAMPDET_EN */
+#define _ETAMPDET_EN_EN_MASK 0x1UL /**< Bit mask for ETAMPDET_EN */
+#define _ETAMPDET_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EN */
+#define ETAMPDET_EN_EN_DEFAULT (_ETAMPDET_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_EN */
+
+/* Bit fields for ETAMPDET CFG */
+#define _ETAMPDET_CFG_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_MASK 0x0000003FUL /**< Mask for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0 (0x1UL << 0) /**< enable delay for comparison */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLCMPDLYEN0 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLCMPDLYEN0 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_X0 0x00000000UL /**< Mode X0 for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN0_X1 0x00000001UL /**< Mode X1 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT (_ETAMPDET_CFG_CHNLCMPDLYEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_X0 (_ETAMPDET_CFG_CHNLCMPDLYEN0_X0 << 0) /**< Shifted mode X0 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN0_X1 (_ETAMPDET_CFG_CHNLCMPDLYEN0_X1 << 0) /**< Shifted mode X1 for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0 (0x1UL << 1) /**< enable detect filtering */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLTAMPDETFILTEN0 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLTAMPDETFILTEN0 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_DISABLE << 1) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN0_ENABLE << 1) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0 (0x1UL << 2) /**< enable driving pad */
+#define _ETAMPDET_CFG_CHNLPADEN0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLPADEN0 */
+#define _ETAMPDET_CFG_CHNLPADEN0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLPADEN0 */
+#define _ETAMPDET_CFG_CHNLPADEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN0_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN0_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_DEFAULT (_ETAMPDET_CFG_CHNLPADEN0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_DISABLE (_ETAMPDET_CFG_CHNLPADEN0_DISABLE << 2) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN0_ENABLE (_ETAMPDET_CFG_CHNLPADEN0_ENABLE << 2) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1 (0x1UL << 3) /**< enable delay for comparison */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLCMPDLYEN1 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLCMPDLYEN1 */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT (_ETAMPDET_CFG_CHNLCMPDLYEN1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE (_ETAMPDET_CFG_CHNLCMPDLYEN1_DISABLE << 3) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE (_ETAMPDET_CFG_CHNLCMPDLYEN1_ENABLE << 3) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1 (0x1UL << 4) /**< enable detect filtering */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLTAMPDETFILTEN1 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLTAMPDETFILTEN1 */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_DISABLE << 4) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE (_ETAMPDET_CFG_CHNLTAMPDETFILTEN1_ENABLE << 4) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1 (0x1UL << 5) /**< enable driving pad */
+#define _ETAMPDET_CFG_CHNLPADEN1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLPADEN1 */
+#define _ETAMPDET_CFG_CHNLPADEN1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLPADEN1 */
+#define _ETAMPDET_CFG_CHNLPADEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN1_DISABLE 0x00000000UL /**< Mode DISABLE for ETAMPDET_CFG */
+#define _ETAMPDET_CFG_CHNLPADEN1_ENABLE 0x00000001UL /**< Mode ENABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_DEFAULT (_ETAMPDET_CFG_CHNLPADEN1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_DISABLE (_ETAMPDET_CFG_CHNLPADEN1_DISABLE << 5) /**< Shifted mode DISABLE for ETAMPDET_CFG */
+#define ETAMPDET_CFG_CHNLPADEN1_ENABLE (_ETAMPDET_CFG_CHNLPADEN1_ENABLE << 5) /**< Shifted mode ENABLE for ETAMPDET_CFG */
+
+/* Bit fields for ETAMPDET CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_MASK 0x0000003FUL /**< Mask for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLCNTMISMATCHMAX0*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_MASK 0x7UL /**< Bit mask for ETAMPDET_CHNLCNTMISMATCHMAX0 */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 0x00000000UL /**< Mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 0x00000001UL /**< Mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 0x00000002UL /**< Mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 0x00000003UL /**< Mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 0x00000004UL /**< Mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 0x00000005UL /**< Mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 0x00000006UL /**< Mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 0x00000007UL /**< Mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold1 << 0) /**< Shifted mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold2 << 0) /**< Shifted mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold3 << 0) /**< Shifted mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold4 << 0) /**< Shifted mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold5 << 0) /**< Shifted mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold6 << 0) /**< Shifted mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold7 << 0) /**< Shifted mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX0_DetectFilterThreshold8 << 0) /**< Shifted mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLCNTMISMATCHMAX1*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_MASK 0x38UL /**< Bit mask for ETAMPDET_CHNLCNTMISMATCHMAX1 */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CNTMISMATCHMAX */
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 0x00000000UL /**< Mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 0x00000001UL /**< Mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 0x00000002UL /**< Mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 0x00000003UL /**< Mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 0x00000004UL /**< Mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 0x00000005UL /**< Mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 0x00000006UL /**< Mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define _ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 0x00000007UL /**< Mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold1 << 3) /**< Shifted mode DetectFilterThreshold1 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold2 << 3) /**< Shifted mode DetectFilterThreshold2 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold3 << 3) /**< Shifted mode DetectFilterThreshold3 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold4 << 3) /**< Shifted mode DetectFilterThreshold4 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold5 << 3) /**< Shifted mode DetectFilterThreshold5 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold6 << 3) /**< Shifted mode DetectFilterThreshold6 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold7 << 3) /**< Shifted mode DetectFilterThreshold7 for ETAMPDET_CNTMISMATCHMAX*/
+#define ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 (_ETAMPDET_CNTMISMATCHMAX_CHNLCNTMISMATCHMAX1_DetectFilterThreshold8 << 3) /**< Shifted mode DetectFilterThreshold8 for ETAMPDET_CNTMISMATCHMAX*/
+
+/* Bit fields for ETAMPDET CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_MASK 0x000000FFUL /**< Mask for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLFILTWINSIZE0 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_MASK 0xFUL /**< Bit mask for ETAMPDET_CHNLFILTWINSIZE0 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved 0x00000000UL /**< Mode Reserved for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 0x00000001UL /**< Mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 0x00000002UL /**< Mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 0x00000003UL /**< Mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 0x00000004UL /**< Mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 0x00000005UL /**< Mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 0x00000006UL /**< Mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 0x00000007UL /**< Mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 0x00000008UL /**< Mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 0x00000009UL /**< Mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 0x0000000AUL /**< Mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 0x0000000BUL /**< Mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 0x0000000CUL /**< Mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 0x0000000DUL /**< Mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 0x0000000EUL /**< Mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 0x0000000FUL /**< Mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_Reserved << 0) /**< Shifted mode Reserved for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize2 << 0) /**< Shifted mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize3 << 0) /**< Shifted mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize4 << 0) /**< Shifted mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize5 << 0) /**< Shifted mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize6 << 0) /**< Shifted mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize7 << 0) /**< Shifted mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize8 << 0) /**< Shifted mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize9 << 0) /**< Shifted mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize10 << 0) /**< Shifted mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize11 << 0) /**< Shifted mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize12 << 0) /**< Shifted mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize13 << 0) /**< Shifted mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize14 << 0) /**< Shifted mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize15 << 0) /**< Shifted mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE0_DetectFilterMovingWinSize16 << 0) /**< Shifted mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLFILTWINSIZE1 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_MASK 0xF0UL /**< Bit mask for ETAMPDET_CHNLFILTWINSIZE1 */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved 0x00000000UL /**< Mode Reserved for ETAMPDET_CHNLFILTWINSIZE */
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 0x00000001UL /**< Mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 0x00000002UL /**< Mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 0x00000003UL /**< Mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 0x00000004UL /**< Mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 0x00000005UL /**< Mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 0x00000006UL /**< Mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 0x00000007UL /**< Mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 0x00000008UL /**< Mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 0x00000009UL /**< Mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 0x0000000AUL /**< Mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 0x0000000BUL /**< Mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 0x0000000CUL /**< Mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 0x0000000DUL /**< Mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 0x0000000EUL /**< Mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define _ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 0x0000000FUL /**< Mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_Reserved << 4) /**< Shifted mode Reserved for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize2 << 4) /**< Shifted mode DetectFilterMovingWinSize2 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize3 << 4) /**< Shifted mode DetectFilterMovingWinSize3 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize4 << 4) /**< Shifted mode DetectFilterMovingWinSize4 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize5 << 4) /**< Shifted mode DetectFilterMovingWinSize5 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize6 << 4) /**< Shifted mode DetectFilterMovingWinSize6 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize7 << 4) /**< Shifted mode DetectFilterMovingWinSize7 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize8 << 4) /**< Shifted mode DetectFilterMovingWinSize8 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize9 << 4) /**< Shifted mode DetectFilterMovingWinSize9 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize10 << 4) /**< Shifted mode DetectFilterMovingWinSize10 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize11 << 4) /**< Shifted mode DetectFilterMovingWinSize11 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize12 << 4) /**< Shifted mode DetectFilterMovingWinSize12 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize13 << 4) /**< Shifted mode DetectFilterMovingWinSize13 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize14 << 4) /**< Shifted mode DetectFilterMovingWinSize14 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize15 << 4) /**< Shifted mode DetectFilterMovingWinSize15 for ETAMPDET_CHNLFILTWINSIZE*/
+#define ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 (_ETAMPDET_CHNLFILTWINSIZE_CHNLFILTWINSIZE1_DetectFilterMovingWinSize16 << 4) /**< Shifted mode DetectFilterMovingWinSize16 for ETAMPDET_CHNLFILTWINSIZE*/
+
+/* Bit fields for ETAMPDET CMD */
+#define _ETAMPDET_CMD_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CMD */
+#define _ETAMPDET_CMD_MASK 0x0000003FUL /**< Mask for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART0 (0x1UL << 0) /**< Start channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTART0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_CMD_CHNLSTART0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_CMD_CHNLSTART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART0_DEFAULT (_ETAMPDET_CMD_CHNLSTART0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP0 (0x1UL << 1) /**< Stop channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTOP0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_CMD_CHNLSTOP0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_CMD_CHNLSTOP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP0_DEFAULT (_ETAMPDET_CMD_CHNLSTOP0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD0 (0x1UL << 2) /**< Start channel 0 tamper detection */
+#define _ETAMPDET_CMD_CHNLLOAD0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_CMD_CHNLLOAD0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_CMD_CHNLLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD0_DEFAULT (_ETAMPDET_CMD_CHNLLOAD0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART1 (0x1UL << 3) /**< Start channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTART1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_CMD_CHNLSTART1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_CMD_CHNLSTART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTART1_DEFAULT (_ETAMPDET_CMD_CHNLSTART1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP1 (0x1UL << 4) /**< Stop channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLSTOP1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_CMD_CHNLSTOP1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_CMD_CHNLSTOP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLSTOP1_DEFAULT (_ETAMPDET_CMD_CHNLSTOP1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD1 (0x1UL << 5) /**< Start channel 1 tamper detection */
+#define _ETAMPDET_CMD_CHNLLOAD1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_CMD_CHNLLOAD1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_CMD_CHNLLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CMD */
+#define ETAMPDET_CMD_CHNLLOAD1_DEFAULT (_ETAMPDET_CMD_CHNLLOAD1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_CMD */
+
+/* Bit fields for ETAMPDET SYNCBUSY */
+#define _ETAMPDET_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_SYNCBUSY */
+#define _ETAMPDET_SYNCBUSY_MASK 0x0000007FUL /**< Mask for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART0 (0x1UL << 0) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLSTART0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTART0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP0 (0x1UL << 1) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_SHIFT 1 /**< Shift value for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLSTOP0 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTOP0_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD0 (0x1UL << 2) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_SHIFT 2 /**< Shift value for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_MASK 0x4UL /**< Bit mask for ETAMPDET_CHNLLOAD0 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLLOAD0_DEFAULT << 2) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART1 (0x1UL << 3) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_SHIFT 3 /**< Shift value for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_MASK 0x8UL /**< Bit mask for ETAMPDET_CHNLSTART1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTART1_DEFAULT << 3) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP1 (0x1UL << 4) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_SHIFT 4 /**< Shift value for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_MASK 0x10UL /**< Bit mask for ETAMPDET_CHNLSTOP1 */
+#define _ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLSTOP1_DEFAULT << 4) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD1 (0x1UL << 5) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_SHIFT 5 /**< Shift value for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_MASK 0x20UL /**< Bit mask for ETAMPDET_CHNLLOAD1 */
+#define _ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT (_ETAMPDET_SYNCBUSY_CHNLLOAD1_DEFAULT << 5) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_EN (0x1UL << 6) /**< Synchronizer busy status */
+#define _ETAMPDET_SYNCBUSY_EN_SHIFT 6 /**< Shift value for ETAMPDET_EN */
+#define _ETAMPDET_SYNCBUSY_EN_MASK 0x40UL /**< Bit mask for ETAMPDET_EN */
+#define _ETAMPDET_SYNCBUSY_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_SYNCBUSY */
+#define ETAMPDET_SYNCBUSY_EN_DEFAULT (_ETAMPDET_SYNCBUSY_EN_DEFAULT << 6) /**< Shifted mode DEFAULT for ETAMPDET_SYNCBUSY */
+
+/* Bit fields for ETAMPDET IEN */
+#define _ETAMPDET_IEN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_IEN */
+#define _ETAMPDET_IEN_MASK 0x00000003UL /**< Mask for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET0 (0x1UL << 0) /**< TAMPDET0 interrupt enable */
+#define _ETAMPDET_IEN_TAMPDET0_SHIFT 0 /**< Shift value for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IEN_TAMPDET0_MASK 0x1UL /**< Bit mask for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IEN_TAMPDET0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET0_DEFAULT (_ETAMPDET_IEN_TAMPDET0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET1 (0x1UL << 1) /**< TAMPDET1 interrupt enable */
+#define _ETAMPDET_IEN_TAMPDET1_SHIFT 1 /**< Shift value for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IEN_TAMPDET1_MASK 0x2UL /**< Bit mask for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IEN_TAMPDET1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IEN */
+#define ETAMPDET_IEN_TAMPDET1_DEFAULT (_ETAMPDET_IEN_TAMPDET1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_IEN */
+
+/* Bit fields for ETAMPDET IF */
+#define _ETAMPDET_IF_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_IF */
+#define _ETAMPDET_IF_MASK 0x00000003UL /**< Mask for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET0 (0x1UL << 0) /**< Tamper0 Detect Flag */
+#define _ETAMPDET_IF_TAMPDET0_SHIFT 0 /**< Shift value for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IF_TAMPDET0_MASK 0x1UL /**< Bit mask for ETAMPDET_TAMPDET0 */
+#define _ETAMPDET_IF_TAMPDET0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET0_DEFAULT (_ETAMPDET_IF_TAMPDET0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET1 (0x1UL << 1) /**< Tamper1 Detect Flag */
+#define _ETAMPDET_IF_TAMPDET1_SHIFT 1 /**< Shift value for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IF_TAMPDET1_MASK 0x2UL /**< Bit mask for ETAMPDET_TAMPDET1 */
+#define _ETAMPDET_IF_TAMPDET1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_IF */
+#define ETAMPDET_IF_TAMPDET1_DEFAULT (_ETAMPDET_IF_TAMPDET1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_IF */
+
+/* Bit fields for ETAMPDET STATUS */
+#define _ETAMPDET_STATUS_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_MASK 0x80000003UL /**< Mask for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING0 (0x1UL << 0) /**< Channel0 Running Status */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLRUNNING0 */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLRUNNING0 */
+#define _ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT (_ETAMPDET_STATUS_CHNLRUNNING0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING1 (0x1UL << 1) /**< Channel1 Running Status */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_SHIFT 1 /**< Shift value for ETAMPDET_CHNLRUNNING1 */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLRUNNING1 */
+#define _ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT (_ETAMPDET_STATUS_CHNLRUNNING1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS (0x1UL << 31) /**< Lock Status */
+#define _ETAMPDET_STATUS_LOCKSTATUS_SHIFT 31 /**< Shift value for ETAMPDET_LOCKSTATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_MASK 0x80000000UL /**< Bit mask for ETAMPDET_LOCKSTATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for ETAMPDET_STATUS */
+#define _ETAMPDET_STATUS_LOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_DEFAULT (_ETAMPDET_STATUS_LOCKSTATUS_DEFAULT << 31) /**< Shifted mode DEFAULT for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED (_ETAMPDET_STATUS_LOCKSTATUS_UNLOCKED << 31) /**< Shifted mode UNLOCKED for ETAMPDET_STATUS */
+#define ETAMPDET_STATUS_LOCKSTATUS_LOCKED (_ETAMPDET_STATUS_LOCKSTATUS_LOCKED << 31) /**< Shifted mode LOCKED for ETAMPDET_STATUS */
+
+/* Bit fields for ETAMPDET EM4WUEN */
+#define _ETAMPDET_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_EM4WUEN */
+#define _ETAMPDET_EM4WUEN_MASK 0x00000003UL /**< Mask for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN0 (0x1UL << 0) /**< Channel0 Tampdet EM4 Wakeup Enable */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLEM4WUEN0 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_MASK 0x1UL /**< Bit mask for ETAMPDET_CHNLEM4WUEN0 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT (_ETAMPDET_EM4WUEN_CHNLEM4WUEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN1 (0x1UL << 1) /**< Channel1 Tampdet EM4 Wakeup Enable */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_SHIFT 1 /**< Shift value for ETAMPDET_CHNLEM4WUEN1 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_MASK 0x2UL /**< Bit mask for ETAMPDET_CHNLEM4WUEN1 */
+#define _ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_EM4WUEN */
+#define ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT (_ETAMPDET_EM4WUEN_CHNLEM4WUEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for ETAMPDET_EM4WUEN */
+
+/* Bit fields for ETAMPDET CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_CHNLSEEDVAL0 */
+#define _ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLSEEDVAL0 */
+#define ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT (_ETAMPDET_CHNLSEEDVAL0_CHNLSEEDVAL0_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLSEEDVAL0*/
+
+/* Bit fields for ETAMPDET CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_MASK 0xFFFFFFFFUL /**< Mask for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_SHIFT 0 /**< Shift value for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_MASK 0xFFFFFFFFUL /**< Bit mask for ETAMPDET_CHNLSEEDVAL1 */
+#define _ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CHNLSEEDVAL1 */
+#define ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT (_ETAMPDET_CHNLSEEDVAL1_CHNLSEEDVAL1_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CHNLSEEDVAL1*/
+
+/* Bit fields for ETAMPDET CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_RESETVALUE 0x00000000UL /**< Default value for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_MASK 0x0000073FUL /**< Mask for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_SHIFT 0 /**< Shift value for ETAMPDET_LOWERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_MASK 0x3FUL /**< Bit mask for ETAMPDET_LOWERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass 0x00000000UL /**< Mode Bypass for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 0x00000001UL /**< Mode DivideBy2 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 0x00000002UL /**< Mode DivideBy3 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 0x00000003UL /**< Mode DivideBy4 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 0x00000004UL /**< Mode DivideBy5 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 0x00000005UL /**< Mode DivideBy6 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 0x00000006UL /**< Mode DivideBy7 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 0x00000007UL /**< Mode DivideBy8 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 0x00000008UL /**< Mode DivideBy9 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 0x00000009UL /**< Mode DivideBy10 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 0x0000000AUL /**< Mode DivideBy11 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 0x0000000BUL /**< Mode DivideBy12 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 0x0000000CUL /**< Mode DivideBy13 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 0x0000000DUL /**< Mode DivideBy14 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 0x0000000EUL /**< Mode DivideBy15 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 0x0000000FUL /**< Mode DivideBy16 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 0x00000010UL /**< Mode DivideBy17 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 0x00000011UL /**< Mode DivideBy18 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 0x00000012UL /**< Mode DivideBy19 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 0x00000013UL /**< Mode DivideBy20 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 0x00000014UL /**< Mode DivideBy21 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 0x00000015UL /**< Mode DivideBy22 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 0x00000016UL /**< Mode DivideBy23 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 0x00000017UL /**< Mode DivideBy24 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 0x00000018UL /**< Mode DivideBy25 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 0x00000019UL /**< Mode DivideBy26 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 0x0000001AUL /**< Mode DivideBy27 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 0x0000001BUL /**< Mode DivideBy28 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 0x0000001CUL /**< Mode DivideBy29 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 0x0000001DUL /**< Mode DivideBy30 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 0x0000001EUL /**< Mode DivideBy31 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 0x0000001FUL /**< Mode DivideBy32 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 0x00000020UL /**< Mode DivideBy33 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 0x00000021UL /**< Mode DivideBy34 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 0x00000022UL /**< Mode DivideBy35 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 0x00000023UL /**< Mode DivideBy36 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 0x00000024UL /**< Mode DivideBy37 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 0x00000025UL /**< Mode DivideBy38 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 0x00000026UL /**< Mode DivideBy39 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 0x00000027UL /**< Mode DivideBy40 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 0x00000028UL /**< Mode DivideBy41 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 0x00000029UL /**< Mode DivideBy42 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 0x0000002AUL /**< Mode DivideBy43 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 0x0000002BUL /**< Mode DivideBy44 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 0x0000002CUL /**< Mode DivideBy45 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 0x0000002DUL /**< Mode DivideBy46 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 0x0000002EUL /**< Mode DivideBy47 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 0x0000002FUL /**< Mode DivideBy48 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 0x00000030UL /**< Mode DivideBy49 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 0x00000031UL /**< Mode DivideBy50 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 0x00000032UL /**< Mode DivideBy51 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 0x00000033UL /**< Mode DivideBy52 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 0x00000034UL /**< Mode DivideBy53 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 0x00000035UL /**< Mode DivideBy54 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 0x00000036UL /**< Mode DivideBy55 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 0x00000037UL /**< Mode DivideBy56 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 0x00000038UL /**< Mode DivideBy57 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 0x00000039UL /**< Mode DivideBy58 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 0x0000003AUL /**< Mode DivideBy59 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 0x0000003BUL /**< Mode DivideBy60 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 0x0000003CUL /**< Mode DivideBy61 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 0x0000003DUL /**< Mode DivideBy62 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 0x0000003EUL /**< Mode DivideBy63 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 0x0000003FUL /**< Mode DivideBy64 for ETAMPDET_CLKPRESCVAL */
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_Bypass << 0) /**< Shifted mode Bypass for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy2 << 0) /**< Shifted mode DivideBy2 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy3 << 0) /**< Shifted mode DivideBy3 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy4 << 0) /**< Shifted mode DivideBy4 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy5 << 0) /**< Shifted mode DivideBy5 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy6 << 0) /**< Shifted mode DivideBy6 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy7 << 0) /**< Shifted mode DivideBy7 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy8 << 0) /**< Shifted mode DivideBy8 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy9 << 0) /**< Shifted mode DivideBy9 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy10 << 0) /**< Shifted mode DivideBy10 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy11 << 0) /**< Shifted mode DivideBy11 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy12 << 0) /**< Shifted mode DivideBy12 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy13 << 0) /**< Shifted mode DivideBy13 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy14 << 0) /**< Shifted mode DivideBy14 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy15 << 0) /**< Shifted mode DivideBy15 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy16 << 0) /**< Shifted mode DivideBy16 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy17 << 0) /**< Shifted mode DivideBy17 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy18 << 0) /**< Shifted mode DivideBy18 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy19 << 0) /**< Shifted mode DivideBy19 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy20 << 0) /**< Shifted mode DivideBy20 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy21 << 0) /**< Shifted mode DivideBy21 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy22 << 0) /**< Shifted mode DivideBy22 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy23 << 0) /**< Shifted mode DivideBy23 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy24 << 0) /**< Shifted mode DivideBy24 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy25 << 0) /**< Shifted mode DivideBy25 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy26 << 0) /**< Shifted mode DivideBy26 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy27 << 0) /**< Shifted mode DivideBy27 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy28 << 0) /**< Shifted mode DivideBy28 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy29 << 0) /**< Shifted mode DivideBy29 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy30 << 0) /**< Shifted mode DivideBy30 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy31 << 0) /**< Shifted mode DivideBy31 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy32 << 0) /**< Shifted mode DivideBy32 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy33 << 0) /**< Shifted mode DivideBy33 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy34 << 0) /**< Shifted mode DivideBy34 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy35 << 0) /**< Shifted mode DivideBy35 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy36 << 0) /**< Shifted mode DivideBy36 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy37 << 0) /**< Shifted mode DivideBy37 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy38 << 0) /**< Shifted mode DivideBy38 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy39 << 0) /**< Shifted mode DivideBy39 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy40 << 0) /**< Shifted mode DivideBy40 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy41 << 0) /**< Shifted mode DivideBy41 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy42 << 0) /**< Shifted mode DivideBy42 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy43 << 0) /**< Shifted mode DivideBy43 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy44 << 0) /**< Shifted mode DivideBy44 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy45 << 0) /**< Shifted mode DivideBy45 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy46 << 0) /**< Shifted mode DivideBy46 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy47 << 0) /**< Shifted mode DivideBy47 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy48 << 0) /**< Shifted mode DivideBy48 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy49 << 0) /**< Shifted mode DivideBy49 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy50 << 0) /**< Shifted mode DivideBy50 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy51 << 0) /**< Shifted mode DivideBy51 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy52 << 0) /**< Shifted mode DivideBy52 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy53 << 0) /**< Shifted mode DivideBy53 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy54 << 0) /**< Shifted mode DivideBy54 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy55 << 0) /**< Shifted mode DivideBy55 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy56 << 0) /**< Shifted mode DivideBy56 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy57 << 0) /**< Shifted mode DivideBy57 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy58 << 0) /**< Shifted mode DivideBy58 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy59 << 0) /**< Shifted mode DivideBy59 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy60 << 0) /**< Shifted mode DivideBy60 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy61 << 0) /**< Shifted mode DivideBy61 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy62 << 0) /**< Shifted mode DivideBy62 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy63 << 0) /**< Shifted mode DivideBy63 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 (_ETAMPDET_CLKPRESCVAL_LOWERPRESC_DivideBy64 << 0) /**< Shifted mode DivideBy64 for ETAMPDET_CLKPRESCVAL*/
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_SHIFT 8 /**< Shift value for ETAMPDET_UPPERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_MASK 0x700UL /**< Bit mask for ETAMPDET_UPPERPRESC */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass 0x00000000UL /**< Mode Bypass for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 0x00000001UL /**< Mode DivideBy2 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 0x00000002UL /**< Mode DivideBy4 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 0x00000003UL /**< Mode DivideBy8 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 0x00000004UL /**< Mode DivideBy16 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 0x00000005UL /**< Mode DivideBy32 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 0x00000006UL /**< Mode DivideBy64 for ETAMPDET_CLKPRESCVAL */
+#define _ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved 0x00000007UL /**< Mode Reserved for ETAMPDET_CLKPRESCVAL */
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DEFAULT << 8) /**< Shifted mode DEFAULT for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_Bypass << 8) /**< Shifted mode Bypass for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy2 << 8) /**< Shifted mode DivideBy2 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy4 << 8) /**< Shifted mode DivideBy4 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy8 << 8) /**< Shifted mode DivideBy8 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy16 << 8) /**< Shifted mode DivideBy16 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy32 << 8) /**< Shifted mode DivideBy32 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_DivideBy64 << 8) /**< Shifted mode DivideBy64 for ETAMPDET_CLKPRESCVAL*/
+#define ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved (_ETAMPDET_CLKPRESCVAL_UPPERPRESC_Reserved << 8) /**< Shifted mode Reserved for ETAMPDET_CLKPRESCVAL*/
+
+/* Bit fields for ETAMPDET LOCK */
+#define _ETAMPDET_LOCK_RESETVALUE 0x0000AEE8UL /**< Default value for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_MASK 0x0000FFFFUL /**< Mask for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for ETAMPDET_LOCKKEY */
+#define _ETAMPDET_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for ETAMPDET_LOCKKEY */
+#define _ETAMPDET_LOCK_LOCKKEY_DEFAULT 0x0000AEE8UL /**< Mode DEFAULT for ETAMPDET_LOCK */
+#define _ETAMPDET_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for ETAMPDET_LOCK */
+#define ETAMPDET_LOCK_LOCKKEY_DEFAULT (_ETAMPDET_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for ETAMPDET_LOCK */
+#define ETAMPDET_LOCK_LOCKKEY_UNLOCK (_ETAMPDET_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for ETAMPDET_LOCK */
+
+/** @} End of group EFR32MG29_ETAMPDET_BitFields */
+/** @} End of group EFR32MG29_ETAMPDET */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_ETAMPDET_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_eusart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_eusart.h
new file mode 100644
index 000000000..e2775c9d3
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_eusart.h
@@ -0,0 +1,1193 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 EUSART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_EUSART_H
+#define EFR32MG29_EUSART_H
+#define EUSART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_EUSART EUSART
+ * @{
+ * @brief EFR32MG29 EUSART Register Declaration.
+ *****************************************************************************/
+
+/** EUSART Register Declaration. */
+typedef struct eusart_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG0; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL; /**< Trigger Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t RXDATA; /**< RX Data Register */
+ __IM uint32_t RXDATAP; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA; /**< TX Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED0[42U]; /**< Reserved for future use */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ uint32_t RESERVED2[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG0_SET; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_SET; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_SET; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_SET; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_SET; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_SET; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_SET; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_SET; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_SET; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_SET; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< Trigger Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t RXDATA_SET; /**< RX Data Register */
+ __IM uint32_t RXDATAP_SET; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[42U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ uint32_t RESERVED5[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG0_CLR; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_CLR; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_CLR; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_CLR; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_CLR; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_CLR; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_CLR; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_CLR; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_CLR; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_CLR; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< Trigger Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[42U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG0_TGL; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_TGL; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_TGL; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_TGL; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_TGL; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_TGL; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_TGL; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_TGL; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_TGL; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_TGL; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< Trigger Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED9[42U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+} EUSART_TypeDef;
+/** @} End of group EFR32MG29_EUSART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_EUSART
+ * @{
+ * @defgroup EFR32MG29_EUSART_BitFields EUSART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EUSART IPVERSION */
+#define _EUSART_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for EUSART_IPVERSION */
+#define EUSART_IPVERSION_IPVERSION_DEFAULT (_EUSART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IPVERSION */
+
+/* Bit fields for EUSART EN */
+#define _EUSART_EN_RESETVALUE 0x00000000UL /**< Default value for EUSART_EN */
+#define _EUSART_EN_MASK 0x00000003UL /**< Mask for EUSART_EN */
+#define EUSART_EN_EN (0x1UL << 0) /**< Module enable */
+#define _EUSART_EN_EN_SHIFT 0 /**< Shift value for EUSART_EN */
+#define _EUSART_EN_EN_MASK 0x1UL /**< Bit mask for EUSART_EN */
+#define _EUSART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_EN_DEFAULT (_EUSART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _EUSART_EN_DISABLING_SHIFT 1 /**< Shift value for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_MASK 0x2UL /**< Bit mask for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING_DEFAULT (_EUSART_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_EN */
+
+/* Bit fields for EUSART CFG0 */
+#define _EUSART_CFG0_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG0 */
+#define _EUSART_CFG0_MASK 0xC1D264FFUL /**< Mask for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC (0x1UL << 0) /**< Synchronous Mode */
+#define _EUSART_CFG0_SYNC_SHIFT 0 /**< Shift value for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_MASK 0x1UL /**< Bit mask for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_ASYNC 0x00000000UL /**< Mode ASYNC for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_SYNC 0x00000001UL /**< Mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_DEFAULT (_EUSART_CFG0_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_ASYNC (_EUSART_CFG0_SYNC_ASYNC << 0) /**< Shifted mode ASYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_SYNC (_EUSART_CFG0_SYNC_SYNC << 0) /**< Shifted mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _EUSART_CFG0_LOOPBK_SHIFT 1 /**< Shift value for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_MASK 0x2UL /**< Bit mask for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DEFAULT (_EUSART_CFG0_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DISABLE (_EUSART_CFG0_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_ENABLE (_EUSART_CFG0_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _EUSART_CFG0_CCEN_SHIFT 2 /**< Shift value for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_MASK 0x4UL /**< Bit mask for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DEFAULT (_EUSART_CFG0_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DISABLE (_EUSART_CFG0_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_ENABLE (_EUSART_CFG0_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _EUSART_CFG0_MPM_SHIFT 3 /**< Shift value for EUSART_MPM */
+#define _EUSART_CFG0_MPM_MASK 0x8UL /**< Bit mask for EUSART_MPM */
+#define _EUSART_CFG0_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DEFAULT (_EUSART_CFG0_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DISABLE (_EUSART_CFG0_MPM_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_ENABLE (_EUSART_CFG0_MPM_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _EUSART_CFG0_MPAB_SHIFT 4 /**< Shift value for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_MASK 0x10UL /**< Bit mask for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB_DEFAULT (_EUSART_CFG0_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_SHIFT 5 /**< Shift value for EUSART_OVS */
+#define _EUSART_CFG0_OVS_MASK 0xE0UL /**< Bit mask for EUSART_OVS */
+#define _EUSART_CFG0_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X16 0x00000000UL /**< Mode X16 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X8 0x00000001UL /**< Mode X8 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X6 0x00000002UL /**< Mode X6 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X4 0x00000003UL /**< Mode X4 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_DISABLE 0x00000004UL /**< Mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DEFAULT (_EUSART_CFG0_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X16 (_EUSART_CFG0_OVS_X16 << 5) /**< Shifted mode X16 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X8 (_EUSART_CFG0_OVS_X8 << 5) /**< Shifted mode X8 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X6 (_EUSART_CFG0_OVS_X6 << 5) /**< Shifted mode X6 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X4 (_EUSART_CFG0_OVS_X4 << 5) /**< Shifted mode X4 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DISABLE (_EUSART_CFG0_OVS_DISABLE << 5) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _EUSART_CFG0_MSBF_SHIFT 10 /**< Shift value for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_MASK 0x400UL /**< Bit mask for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DEFAULT (_EUSART_CFG0_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DISABLE (_EUSART_CFG0_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_ENABLE (_EUSART_CFG0_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _EUSART_CFG0_RXINV_SHIFT 13 /**< Shift value for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_MASK 0x2000UL /**< Bit mask for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DEFAULT (_EUSART_CFG0_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DISABLE (_EUSART_CFG0_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_ENABLE (_EUSART_CFG0_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _EUSART_CFG0_TXINV_SHIFT 14 /**< Shift value for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_MASK 0x4000UL /**< Bit mask for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DEFAULT (_EUSART_CFG0_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DISABLE (_EUSART_CFG0_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_ENABLE (_EUSART_CFG0_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _EUSART_CFG0_AUTOTRI_SHIFT 17 /**< Shift value for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_MASK 0x20000UL /**< Bit mask for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DEFAULT (_EUSART_CFG0_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DISABLE (_EUSART_CFG0_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_ENABLE (_EUSART_CFG0_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _EUSART_CFG0_SKIPPERRF_SHIFT 20 /**< Shift value for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_MASK 0x100000UL /**< Bit mask for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF_DEFAULT (_EUSART_CFG0_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA (0x1UL << 22) /**< Halt DMA Read On Error */
+#define _EUSART_CFG0_ERRSDMA_SHIFT 22 /**< Shift value for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_MASK 0x400000UL /**< Bit mask for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DEFAULT (_EUSART_CFG0_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DISABLE (_EUSART_CFG0_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_ENABLE (_EUSART_CFG0_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _EUSART_CFG0_ERRSRX_SHIFT 23 /**< Shift value for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_MASK 0x800000UL /**< Bit mask for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DEFAULT (_EUSART_CFG0_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DISABLE (_EUSART_CFG0_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_ENABLE (_EUSART_CFG0_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _EUSART_CFG0_ERRSTX_SHIFT 24 /**< Shift value for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_MASK 0x1000000UL /**< Bit mask for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DEFAULT (_EUSART_CFG0_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DISABLE (_EUSART_CFG0_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_ENABLE (_EUSART_CFG0_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _EUSART_CFG0_MVDIS_SHIFT 30 /**< Shift value for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_MASK 0x40000000UL /**< Bit mask for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS_DEFAULT (_EUSART_CFG0_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _EUSART_CFG0_AUTOBAUDEN_SHIFT 31 /**< Shift value for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN_DEFAULT (_EUSART_CFG0_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+
+/* Bit fields for EUSART CFG1 */
+#define _EUSART_CFG1_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG1 */
+#define _EUSART_CFG1_MASK 0x7BCF8E7FUL /**< Mask for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _EUSART_CFG1_DBGHALT_SHIFT 0 /**< Shift value for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_MASK 0x1UL /**< Bit mask for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DEFAULT (_EUSART_CFG1_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DISABLE (_EUSART_CFG1_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_ENABLE (_EUSART_CFG1_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV (0x1UL << 1) /**< Clear-to-send Invert Enable */
+#define _EUSART_CFG1_CTSINV_SHIFT 1 /**< Shift value for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_MASK 0x2UL /**< Bit mask for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DEFAULT (_EUSART_CFG1_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DISABLE (_EUSART_CFG1_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_ENABLE (_EUSART_CFG1_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN (0x1UL << 2) /**< Clear-to-send Enable */
+#define _EUSART_CFG1_CTSEN_SHIFT 2 /**< Shift value for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_MASK 0x4UL /**< Bit mask for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DEFAULT (_EUSART_CFG1_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DISABLE (_EUSART_CFG1_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_ENABLE (_EUSART_CFG1_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV (0x1UL << 3) /**< Request-to-send Invert Enable */
+#define _EUSART_CFG1_RTSINV_SHIFT 3 /**< Shift value for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_MASK 0x8UL /**< Bit mask for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DEFAULT (_EUSART_CFG1_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DISABLE (_EUSART_CFG1_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_ENABLE (_EUSART_CFG1_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SHIFT 4 /**< Shift value for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_MASK 0x70UL /**< Bit mask for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_DISABLED 0x00000000UL /**< Mode DISABLED for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_ONEFRAME 0x00000001UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_TWOFRAMES 0x00000002UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_THREEFRAMES 0x00000003UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FOURFRAMES 0x00000004UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FIVEFRAMES 0x00000005UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SIXFRAMES 0x00000006UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SEVENFRAMES 0x00000007UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DEFAULT (_EUSART_CFG1_RXTIMEOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DISABLED (_EUSART_CFG1_RXTIMEOUT_DISABLED << 4) /**< Shifted mode DISABLED for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_ONEFRAME (_EUSART_CFG1_RXTIMEOUT_ONEFRAME << 4) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_TWOFRAMES (_EUSART_CFG1_RXTIMEOUT_TWOFRAMES << 4) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_THREEFRAMES (_EUSART_CFG1_RXTIMEOUT_THREEFRAMES << 4) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FOURFRAMES (_EUSART_CFG1_RXTIMEOUT_FOURFRAMES << 4) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FIVEFRAMES (_EUSART_CFG1_RXTIMEOUT_FIVEFRAMES << 4) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SIXFRAMES (_EUSART_CFG1_RXTIMEOUT_SIXFRAMES << 4) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SEVENFRAMES (_EUSART_CFG1_RXTIMEOUT_SEVENFRAMES << 4) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU (0x1UL << 9) /**< Transmitter DMA Wakeup */
+#define _EUSART_CFG1_TXDMAWU_SHIFT 9 /**< Shift value for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_MASK 0x200UL /**< Bit mask for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU_DEFAULT (_EUSART_CFG1_TXDMAWU_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU (0x1UL << 10) /**< Receiver DMA Wakeup */
+#define _EUSART_CFG1_RXDMAWU_SHIFT 10 /**< Shift value for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_MASK 0x400UL /**< Bit mask for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU_DEFAULT (_EUSART_CFG1_RXDMAWU_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX (0x1UL << 11) /**< Start Frame Unblock Receiver */
+#define _EUSART_CFG1_SFUBRX_SHIFT 11 /**< Shift value for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_MASK 0x800UL /**< Bit mask for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX_DEFAULT (_EUSART_CFG1_SFUBRX_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN (0x1UL << 15) /**< PRS RX Enable */
+#define _EUSART_CFG1_RXPRSEN_SHIFT 15 /**< Shift value for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_MASK 0x8000UL /**< Bit mask for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN_DEFAULT (_EUSART_CFG1_RXPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SHIFT 16 /**< Shift value for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_MASK 0xF0000UL /**< Bit mask for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_DEFAULT (_EUSART_CFG1_TXFIW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ONEFRAME (_EUSART_CFG1_TXFIW_ONEFRAME << 16) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWOFRAMES (_EUSART_CFG1_TXFIW_TWOFRAMES << 16) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THREEFRAMES (_EUSART_CFG1_TXFIW_THREEFRAMES << 16) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURFRAMES (_EUSART_CFG1_TXFIW_FOURFRAMES << 16) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIVEFRAMES (_EUSART_CFG1_TXFIW_FIVEFRAMES << 16) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXFRAMES (_EUSART_CFG1_TXFIW_SIXFRAMES << 16) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SEVENFRAMES (_EUSART_CFG1_TXFIW_SEVENFRAMES << 16) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_EIGHTFRAMES (_EUSART_CFG1_TXFIW_EIGHTFRAMES << 16) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_NINEFRAMES (_EUSART_CFG1_TXFIW_NINEFRAMES << 16) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TENFRAMES (_EUSART_CFG1_TXFIW_TENFRAMES << 16) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ELEVENFRAMES (_EUSART_CFG1_TXFIW_ELEVENFRAMES << 16) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWELVEFRAMES (_EUSART_CFG1_TXFIW_TWELVEFRAMES << 16) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THIRTEENFRAMES (_EUSART_CFG1_TXFIW_THIRTEENFRAMES << 16) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURTEENFRAMES (_EUSART_CFG1_TXFIW_FOURTEENFRAMES << 16) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIFTEENFRAMES (_EUSART_CFG1_TXFIW_FIFTEENFRAMES << 16) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXTEENFRAMES (_EUSART_CFG1_TXFIW_SIXTEENFRAMES << 16) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SHIFT 22 /**< Shift value for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_MASK 0x3C00000UL /**< Bit mask for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_DEFAULT (_EUSART_CFG1_RTSRXFW_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ONEFRAME (_EUSART_CFG1_RTSRXFW_ONEFRAME << 22) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWOFRAMES (_EUSART_CFG1_RTSRXFW_TWOFRAMES << 22) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THREEFRAMES (_EUSART_CFG1_RTSRXFW_THREEFRAMES << 22) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURFRAMES (_EUSART_CFG1_RTSRXFW_FOURFRAMES << 22) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIVEFRAMES (_EUSART_CFG1_RTSRXFW_FIVEFRAMES << 22) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXFRAMES (_EUSART_CFG1_RTSRXFW_SIXFRAMES << 22) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SEVENFRAMES (_EUSART_CFG1_RTSRXFW_SEVENFRAMES << 22) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_EIGHTFRAMES (_EUSART_CFG1_RTSRXFW_EIGHTFRAMES << 22) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_NINEFRAMES (_EUSART_CFG1_RTSRXFW_NINEFRAMES << 22) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TENFRAMES (_EUSART_CFG1_RTSRXFW_TENFRAMES << 22) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ELEVENFRAMES (_EUSART_CFG1_RTSRXFW_ELEVENFRAMES << 22) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWELVEFRAMES (_EUSART_CFG1_RTSRXFW_TWELVEFRAMES << 22) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THIRTEENFRAMES (_EUSART_CFG1_RTSRXFW_THIRTEENFRAMES << 22) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURTEENFRAMES (_EUSART_CFG1_RTSRXFW_FOURTEENFRAMES << 22) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIFTEENFRAMES (_EUSART_CFG1_RTSRXFW_FIFTEENFRAMES << 22) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXTEENFRAMES (_EUSART_CFG1_RTSRXFW_SIXTEENFRAMES << 22) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SHIFT 27 /**< Shift value for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_MASK 0x78000000UL /**< Bit mask for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_DEFAULT (_EUSART_CFG1_RXFIW_DEFAULT << 27) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ONEFRAME (_EUSART_CFG1_RXFIW_ONEFRAME << 27) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWOFRAMES (_EUSART_CFG1_RXFIW_TWOFRAMES << 27) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THREEFRAMES (_EUSART_CFG1_RXFIW_THREEFRAMES << 27) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURFRAMES (_EUSART_CFG1_RXFIW_FOURFRAMES << 27) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIVEFRAMES (_EUSART_CFG1_RXFIW_FIVEFRAMES << 27) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXFRAMES (_EUSART_CFG1_RXFIW_SIXFRAMES << 27) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SEVENFRAMES (_EUSART_CFG1_RXFIW_SEVENFRAMES << 27) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_EIGHTFRAMES (_EUSART_CFG1_RXFIW_EIGHTFRAMES << 27) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_NINEFRAMES (_EUSART_CFG1_RXFIW_NINEFRAMES << 27) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TENFRAMES (_EUSART_CFG1_RXFIW_TENFRAMES << 27) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ELEVENFRAMES (_EUSART_CFG1_RXFIW_ELEVENFRAMES << 27) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWELVEFRAMES (_EUSART_CFG1_RXFIW_TWELVEFRAMES << 27) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THIRTEENFRAMES (_EUSART_CFG1_RXFIW_THIRTEENFRAMES << 27) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURTEENFRAMES (_EUSART_CFG1_RXFIW_FOURTEENFRAMES << 27) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIFTEENFRAMES (_EUSART_CFG1_RXFIW_FIFTEENFRAMES << 27) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXTEENFRAMES (_EUSART_CFG1_RXFIW_SIXTEENFRAMES << 27) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+
+/* Bit fields for EUSART CFG2 */
+#define _EUSART_CFG2_RESETVALUE 0x00000020UL /**< Default value for EUSART_CFG2 */
+#define _EUSART_CFG2_MASK 0xFF0000FFUL /**< Mask for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER (0x1UL << 0) /**< Master mode */
+#define _EUSART_CFG2_MASTER_SHIFT 0 /**< Shift value for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_MASK 0x1UL /**< Bit mask for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_SLAVE 0x00000000UL /**< Mode SLAVE for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_MASTER 0x00000001UL /**< Mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_DEFAULT (_EUSART_CFG2_MASTER_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_SLAVE (_EUSART_CFG2_MASTER_SLAVE << 0) /**< Shifted mode SLAVE for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_MASTER (_EUSART_CFG2_MASTER_MASTER << 0) /**< Shifted mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL (0x1UL << 1) /**< Clock Polarity */
+#define _EUSART_CFG2_CLKPOL_SHIFT 1 /**< Shift value for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_MASK 0x2UL /**< Bit mask for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_DEFAULT (_EUSART_CFG2_CLKPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLELOW (_EUSART_CFG2_CLKPOL_IDLELOW << 1) /**< Shifted mode IDLELOW for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLEHIGH (_EUSART_CFG2_CLKPOL_IDLEHIGH << 1) /**< Shifted mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA (0x1UL << 2) /**< Clock Edge for Setup/Sample */
+#define _EUSART_CFG2_CLKPHA_SHIFT 2 /**< Shift value for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_MASK 0x4UL /**< Bit mask for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_DEFAULT (_EUSART_CFG2_CLKPHA_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLELEADING (_EUSART_CFG2_CLKPHA_SAMPLELEADING << 2) /**< Shifted mode SAMPLELEADING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLETRAILING (_EUSART_CFG2_CLKPHA_SAMPLETRAILING << 2) /**< Shifted mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV (0x1UL << 3) /**< Chip Select Invert */
+#define _EUSART_CFG2_CSINV_SHIFT 3 /**< Shift value for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_MASK 0x8UL /**< Bit mask for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AL 0x00000000UL /**< Mode AL for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AH 0x00000001UL /**< Mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_DEFAULT (_EUSART_CFG2_CSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AL (_EUSART_CFG2_CSINV_AL << 3) /**< Shifted mode AL for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AH (_EUSART_CFG2_CSINV_AH << 3) /**< Shifted mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX (0x1UL << 4) /**< Always Transmit When RXFIFO Not Full */
+#define _EUSART_CFG2_AUTOTX_SHIFT 4 /**< Shift value for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_MASK 0x10UL /**< Bit mask for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX_DEFAULT (_EUSART_CFG2_AUTOTX_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS (0x1UL << 5) /**< Automatic Chip Select */
+#define _EUSART_CFG2_AUTOCS_SHIFT 5 /**< Shift value for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_MASK 0x20UL /**< Bit mask for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS_DEFAULT (_EUSART_CFG2_AUTOCS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN (0x1UL << 6) /**< PRS CLK Enable */
+#define _EUSART_CFG2_CLKPRSEN_SHIFT 6 /**< Shift value for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_MASK 0x40UL /**< Bit mask for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN_DEFAULT (_EUSART_CFG2_CLKPRSEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD (0x1UL << 7) /**< Force Load to Shift Register */
+#define _EUSART_CFG2_FORCELOAD_SHIFT 7 /**< Shift value for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_MASK 0x80UL /**< Bit mask for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD_DEFAULT (_EUSART_CFG2_FORCELOAD_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_SDIV_SHIFT 24 /**< Shift value for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_MASK 0xFF000000UL /**< Bit mask for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_SDIV_DEFAULT (_EUSART_CFG2_SDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+
+/* Bit fields for EUSART FRAMECFG */
+#define _EUSART_FRAMECFG_RESETVALUE 0x00001002UL /**< Default value for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_MASK 0x0000330FUL /**< Mask for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SHIFT 0 /**< Shift value for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_MASK 0xFUL /**< Bit mask for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_DEFAULT 0x00000002UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SEVEN 0x00000001UL /**< Mode SEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_EIGHT 0x00000002UL /**< Mode EIGHT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_NINE 0x00000003UL /**< Mode NINE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TEN 0x00000004UL /**< Mode TEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_ELEVEN 0x00000005UL /**< Mode ELEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TWELVE 0x00000006UL /**< Mode TWELVE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_THIRTEEN 0x00000007UL /**< Mode THIRTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FOURTEEN 0x00000008UL /**< Mode FOURTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FIFTEEN 0x00000009UL /**< Mode FIFTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SIXTEEN 0x0000000AUL /**< Mode SIXTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_DEFAULT (_EUSART_FRAMECFG_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SEVEN (_EUSART_FRAMECFG_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_EIGHT (_EUSART_FRAMECFG_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_NINE (_EUSART_FRAMECFG_DATABITS_NINE << 0) /**< Shifted mode NINE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TEN (_EUSART_FRAMECFG_DATABITS_TEN << 0) /**< Shifted mode TEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_ELEVEN (_EUSART_FRAMECFG_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TWELVE (_EUSART_FRAMECFG_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_THIRTEEN (_EUSART_FRAMECFG_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FOURTEEN (_EUSART_FRAMECFG_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FIFTEEN (_EUSART_FRAMECFG_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SIXTEEN (_EUSART_FRAMECFG_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_SHIFT 8 /**< Shift value for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_MASK 0x300UL /**< Bit mask for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_NONE 0x00000000UL /**< Mode NONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_EVEN 0x00000002UL /**< Mode EVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_ODD 0x00000003UL /**< Mode ODD for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_DEFAULT (_EUSART_FRAMECFG_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_NONE (_EUSART_FRAMECFG_PARITY_NONE << 8) /**< Shifted mode NONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_EVEN (_EUSART_FRAMECFG_PARITY_EVEN << 8) /**< Shifted mode EVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_ODD (_EUSART_FRAMECFG_PARITY_ODD << 8) /**< Shifted mode ODD for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_SHIFT 12 /**< Shift value for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_MASK 0x3000UL /**< Bit mask for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_HALF 0x00000000UL /**< Mode HALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONE 0x00000001UL /**< Mode ONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_TWO 0x00000003UL /**< Mode TWO for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_DEFAULT (_EUSART_FRAMECFG_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_HALF (_EUSART_FRAMECFG_STOPBITS_HALF << 12) /**< Shifted mode HALF for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONE (_EUSART_FRAMECFG_STOPBITS_ONE << 12) /**< Shifted mode ONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONEANDAHALF (_EUSART_FRAMECFG_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for EUSART_FRAMECFG*/
+#define EUSART_FRAMECFG_STOPBITS_TWO (_EUSART_FRAMECFG_STOPBITS_TWO << 12) /**< Shifted mode TWO for EUSART_FRAMECFG */
+
+/* Bit fields for EUSART DTXDATCFG */
+#define _EUSART_DTXDATCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_MASK 0x0000FFFFUL /**< Mask for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_DTXDAT_SHIFT 0 /**< Shift value for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_MASK 0xFFFFUL /**< Bit mask for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_DTXDATCFG */
+#define EUSART_DTXDATCFG_DTXDAT_DEFAULT (_EUSART_DTXDATCFG_DTXDAT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_DTXDATCFG */
+
+/* Bit fields for EUSART IRHFCFG */
+#define _EUSART_IRHFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_MASK 0x0000000FUL /**< Mask for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN (0x1UL << 0) /**< Enable IrDA Module */
+#define _EUSART_IRHFCFG_IRHFEN_SHIFT 0 /**< Shift value for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_MASK 0x1UL /**< Bit mask for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN_DEFAULT (_EUSART_IRHFCFG_IRHFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_SHIFT 1 /**< Shift value for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_MASK 0x6UL /**< Bit mask for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_ONE 0x00000000UL /**< Mode ONE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_TWO 0x00000001UL /**< Mode TWO for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_THREE 0x00000002UL /**< Mode THREE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_FOUR 0x00000003UL /**< Mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_DEFAULT (_EUSART_IRHFCFG_IRHFPW_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_ONE (_EUSART_IRHFCFG_IRHFPW_ONE << 1) /**< Shifted mode ONE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_TWO (_EUSART_IRHFCFG_IRHFPW_TWO << 1) /**< Shifted mode TWO for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_THREE (_EUSART_IRHFCFG_IRHFPW_THREE << 1) /**< Shifted mode THREE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_FOUR (_EUSART_IRHFCFG_IRHFPW_FOUR << 1) /**< Shifted mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _EUSART_IRHFCFG_IRHFFILT_SHIFT 3 /**< Shift value for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_MASK 0x8UL /**< Bit mask for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DEFAULT (_EUSART_IRHFCFG_IRHFFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DISABLE (_EUSART_IRHFCFG_IRHFFILT_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_ENABLE (_EUSART_IRHFCFG_IRHFFILT_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_IRHFCFG */
+
+/* Bit fields for EUSART IRLFCFG */
+#define _EUSART_IRLFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRLFCFG */
+#define _EUSART_IRLFCFG_MASK 0x00000001UL /**< Mask for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN (0x1UL << 0) /**< Pulse Generator/Extender Enable */
+#define _EUSART_IRLFCFG_IRLFEN_SHIFT 0 /**< Shift value for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_MASK 0x1UL /**< Bit mask for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN_DEFAULT (_EUSART_IRLFCFG_IRLFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRLFCFG */
+
+/* Bit fields for EUSART TIMINGCFG */
+#define _EUSART_TIMINGCFG_RESETVALUE 0x00050000UL /**< Default value for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_MASK 0x000F7773UL /**< Mask for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SHIFT 0 /**< Shift value for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_MASK 0x3UL /**< Bit mask for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_NONE 0x00000000UL /**< Mode NONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SINGLE 0x00000001UL /**< Mode SINGLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_DOUBLE 0x00000002UL /**< Mode DOUBLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_TRIPPLE 0x00000003UL /**< Mode TRIPPLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DEFAULT (_EUSART_TIMINGCFG_TXDELAY_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_NONE (_EUSART_TIMINGCFG_TXDELAY_NONE << 0) /**< Shifted mode NONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_SINGLE (_EUSART_TIMINGCFG_TXDELAY_SINGLE << 0) /**< Shifted mode SINGLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DOUBLE (_EUSART_TIMINGCFG_TXDELAY_DOUBLE << 0) /**< Shifted mode DOUBLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_TRIPPLE (_EUSART_TIMINGCFG_TXDELAY_TRIPPLE << 0) /**< Shifted mode TRIPPLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SHIFT 4 /**< Shift value for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_MASK 0x70UL /**< Bit mask for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_DEFAULT (_EUSART_TIMINGCFG_CSSETUP_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ZERO (_EUSART_TIMINGCFG_CSSETUP_ZERO << 4) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ONE (_EUSART_TIMINGCFG_CSSETUP_ONE << 4) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_TWO (_EUSART_TIMINGCFG_CSSETUP_TWO << 4) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_THREE (_EUSART_TIMINGCFG_CSSETUP_THREE << 4) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FOUR (_EUSART_TIMINGCFG_CSSETUP_FOUR << 4) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FIVE (_EUSART_TIMINGCFG_CSSETUP_FIVE << 4) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SIX (_EUSART_TIMINGCFG_CSSETUP_SIX << 4) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SEVEN (_EUSART_TIMINGCFG_CSSETUP_SEVEN << 4) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SHIFT 8 /**< Shift value for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_MASK 0x700UL /**< Bit mask for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_DEFAULT (_EUSART_TIMINGCFG_CSHOLD_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ZERO (_EUSART_TIMINGCFG_CSHOLD_ZERO << 8) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ONE (_EUSART_TIMINGCFG_CSHOLD_ONE << 8) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_TWO (_EUSART_TIMINGCFG_CSHOLD_TWO << 8) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_THREE (_EUSART_TIMINGCFG_CSHOLD_THREE << 8) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FOUR (_EUSART_TIMINGCFG_CSHOLD_FOUR << 8) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FIVE (_EUSART_TIMINGCFG_CSHOLD_FIVE << 8) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SIX (_EUSART_TIMINGCFG_CSHOLD_SIX << 8) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SEVEN (_EUSART_TIMINGCFG_CSHOLD_SEVEN << 8) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SHIFT 12 /**< Shift value for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_MASK 0x7000UL /**< Bit mask for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_DEFAULT (_EUSART_TIMINGCFG_ICS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ZERO (_EUSART_TIMINGCFG_ICS_ZERO << 12) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ONE (_EUSART_TIMINGCFG_ICS_ONE << 12) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_TWO (_EUSART_TIMINGCFG_ICS_TWO << 12) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_THREE (_EUSART_TIMINGCFG_ICS_THREE << 12) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FOUR (_EUSART_TIMINGCFG_ICS_FOUR << 12) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FIVE (_EUSART_TIMINGCFG_ICS_FIVE << 12) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SIX (_EUSART_TIMINGCFG_ICS_SIX << 12) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SEVEN (_EUSART_TIMINGCFG_ICS_SEVEN << 12) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_SHIFT 16 /**< Shift value for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_MASK 0xF0000UL /**< Bit mask for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT 0x00000005UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT (_EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+
+/* Bit fields for EUSART STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_MASK 0x000001FFUL /**< Mask for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_SHIFT 0 /**< Shift value for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_MASK 0x1FFUL /**< Bit mask for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STARTFRAMECFG */
+#define EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT (_EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STARTFRAMECFG*/
+
+/* Bit fields for EUSART SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_MASK 0xFFFFFFFFUL /**< Mask for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_SHIFT 0 /**< Shift value for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_MASK 0xFFFFFFFFUL /**< Bit mask for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SIGFRAMECFG */
+#define EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT (_EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SIGFRAMECFG */
+
+/* Bit fields for EUSART CLKDIV */
+#define _EUSART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_MASK 0x007FFFF8UL /**< Mask for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_DIV_SHIFT 3 /**< Shift value for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CLKDIV */
+#define EUSART_CLKDIV_DIV_DEFAULT (_EUSART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CLKDIV */
+
+/* Bit fields for EUSART TRIGCTRL */
+#define _EUSART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for EUSART_TRIGCTRL */
+#define _EUSART_TRIGCTRL_MASK 0x00000007UL /**< Mask for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN (0x1UL << 0) /**< Receive Trigger Enable */
+#define _EUSART_TRIGCTRL_RXTEN_SHIFT 0 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_MASK 0x1UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN_DEFAULT (_EUSART_TRIGCTRL_RXTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN (0x1UL << 1) /**< Transmit Trigger Enable */
+#define _EUSART_TRIGCTRL_TXTEN_SHIFT 1 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_MASK 0x2UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN_DEFAULT (_EUSART_TRIGCTRL_TXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN (0x1UL << 2) /**< AUTOTX Trigger Enable */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_SHIFT 2 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_MASK 0x4UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT (_EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+
+/* Bit fields for EUSART CMD */
+#define _EUSART_CMD_RESETVALUE 0x00000000UL /**< Default value for EUSART_CMD */
+#define _EUSART_CMD_MASK 0x000001FFUL /**< Mask for EUSART_CMD */
+#define EUSART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _EUSART_CMD_RXEN_SHIFT 0 /**< Shift value for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_MASK 0x1UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXEN_DEFAULT (_EUSART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _EUSART_CMD_RXDIS_SHIFT 1 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS_DEFAULT (_EUSART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _EUSART_CMD_TXEN_SHIFT 2 /**< Shift value for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_MASK 0x4UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN_DEFAULT (_EUSART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _EUSART_CMD_TXDIS_SHIFT 3 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS_DEFAULT (_EUSART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN (0x1UL << 4) /**< Receiver Block Enable */
+#define _EUSART_CMD_RXBLOCKEN_SHIFT 4 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_MASK 0x10UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN_DEFAULT (_EUSART_CMD_RXBLOCKEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS (0x1UL << 5) /**< Receiver Block Disable */
+#define _EUSART_CMD_RXBLOCKDIS_SHIFT 5 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_MASK 0x20UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS_DEFAULT (_EUSART_CMD_RXBLOCKDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN (0x1UL << 6) /**< Transmitter Tristate Enable */
+#define _EUSART_CMD_TXTRIEN_SHIFT 6 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_MASK 0x40UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN_DEFAULT (_EUSART_CMD_TXTRIEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS (0x1UL << 7) /**< Transmitter Tristate Disable */
+#define _EUSART_CMD_TXTRIDIS_SHIFT 7 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_MASK 0x80UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS_DEFAULT (_EUSART_CMD_TXTRIDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX (0x1UL << 8) /**< Clear TX FIFO */
+#define _EUSART_CMD_CLEARTX_SHIFT 8 /**< Shift value for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_MASK 0x100UL /**< Bit mask for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX_DEFAULT (_EUSART_CMD_CLEARTX_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_CMD */
+
+/* Bit fields for EUSART RXDATA */
+#define _EUSART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATA */
+#define _EUSART_RXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATA */
+#define EUSART_RXDATA_RXDATA_DEFAULT (_EUSART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATA */
+
+/* Bit fields for EUSART RXDATAP */
+#define _EUSART_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATAP */
+#define EUSART_RXDATAP_RXDATAP_DEFAULT (_EUSART_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATAP */
+
+/* Bit fields for EUSART TXDATA */
+#define _EUSART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_TXDATA */
+#define _EUSART_TXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TXDATA */
+#define EUSART_TXDATA_TXDATA_DEFAULT (_EUSART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TXDATA */
+
+/* Bit fields for EUSART STATUS */
+#define _EUSART_STATUS_RESETVALUE 0x00003040UL /**< Default value for EUSART_STATUS */
+#define _EUSART_STATUS_MASK 0x031F31FBUL /**< Mask for EUSART_STATUS */
+#define EUSART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _EUSART_STATUS_RXENS_SHIFT 0 /**< Shift value for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXENS_DEFAULT (_EUSART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _EUSART_STATUS_TXENS_SHIFT 1 /**< Shift value for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS_DEFAULT (_EUSART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _EUSART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK_DEFAULT (_EUSART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _EUSART_STATUS_TXTRI_SHIFT 4 /**< Shift value for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI_DEFAULT (_EUSART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _EUSART_STATUS_TXC_SHIFT 5 /**< Shift value for EUSART_TXC */
+#define _EUSART_STATUS_TXC_MASK 0x20UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC_DEFAULT (_EUSART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL (0x1UL << 6) /**< TX FIFO Level */
+#define _EUSART_STATUS_TXFL_SHIFT 6 /**< Shift value for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_MASK 0x40UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL_DEFAULT (_EUSART_STATUS_TXFL_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL (0x1UL << 7) /**< RX FIFO Level */
+#define _EUSART_STATUS_RXFL_SHIFT 7 /**< Shift value for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_MASK 0x80UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL_DEFAULT (_EUSART_STATUS_RXFL_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _EUSART_STATUS_RXFULL_SHIFT 8 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL_DEFAULT (_EUSART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE (0x1UL << 12) /**< RX Idle */
+#define _EUSART_STATUS_RXIDLE_SHIFT 12 /**< Shift value for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_MASK 0x1000UL /**< Bit mask for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE_DEFAULT (_EUSART_STATUS_RXIDLE_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _EUSART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE_DEFAULT (_EUSART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define _EUSART_STATUS_TXFCNT_SHIFT 16 /**< Shift value for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_MASK 0x1F0000UL /**< Bit mask for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFCNT_DEFAULT (_EUSART_STATUS_TXFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Rate Detection Completed */
+#define _EUSART_STATUS_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE_DEFAULT (_EUSART_STATUS_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY (0x1UL << 25) /**< TX FIFO Clear Busy */
+#define _EUSART_STATUS_CLEARTXBUSY_SHIFT 25 /**< Shift value for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_MASK 0x2000000UL /**< Bit mask for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY_DEFAULT (_EUSART_STATUS_CLEARTXBUSY_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_STATUS */
+
+/* Bit fields for EUSART IF */
+#define _EUSART_IF_RESETVALUE 0x00000000UL /**< Default value for EUSART_IF */
+#define _EUSART_IF_MASK 0x030D3FFFUL /**< Mask for EUSART_IF */
+#define EUSART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _EUSART_IF_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IF_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXC_DEFAULT (_EUSART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL (0x1UL << 1) /**< TX FIFO Level Interrupt Flag */
+#define _EUSART_IF_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IF_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IF_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL_DEFAULT (_EUSART_IF_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL (0x1UL << 2) /**< RX FIFO Level Interrupt Flag */
+#define _EUSART_IF_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IF_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IF_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL_DEFAULT (_EUSART_IF_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL (0x1UL << 3) /**< RX FIFO Full Interrupt Flag */
+#define _EUSART_IF_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL_DEFAULT (_EUSART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF (0x1UL << 4) /**< RX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IF_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF_DEFAULT (_EUSART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF (0x1UL << 5) /**< RX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IF_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF_DEFAULT (_EUSART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF (0x1UL << 6) /**< TX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IF_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF_DEFAULT (_EUSART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF (0x1UL << 7) /**< TX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IF_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF_DEFAULT (_EUSART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _EUSART_IF_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IF_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR_DEFAULT (_EUSART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _EUSART_IF_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IF_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR_DEFAULT (_EUSART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _EUSART_IF_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IF_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF_DEFAULT (_EUSART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR (0x1UL << 11) /**< Load Error Interrupt Flag */
+#define _EUSART_IF_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR_DEFAULT (_EUSART_IF_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _EUSART_IF_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IF_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF_DEFAULT (_EUSART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _EUSART_IF_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE_DEFAULT (_EUSART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU (0x1UL << 16) /**< CS Wake-up Interrupt Flag */
+#define _EUSART_IF_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IF_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IF_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU_DEFAULT (_EUSART_IF_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF (0x1UL << 18) /**< Start Frame Interrupt Flag */
+#define _EUSART_IF_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IF_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IF_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF_DEFAULT (_EUSART_IF_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF (0x1UL << 19) /**< Signal Frame Interrupt Flag */
+#define _EUSART_IF_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IF_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IF_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF_DEFAULT (_EUSART_IF_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete Interrupt Flag */
+#define _EUSART_IF_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE_DEFAULT (_EUSART_IF_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO (0x1UL << 25) /**< RX Timeout Interrupt Flag */
+#define _EUSART_IF_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IF_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IF_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO_DEFAULT (_EUSART_IF_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IF */
+
+/* Bit fields for EUSART IEN */
+#define _EUSART_IEN_RESETVALUE 0x00000000UL /**< Default value for EUSART_IEN */
+#define _EUSART_IEN_MASK 0x030D3FFFUL /**< Mask for EUSART_IEN */
+#define EUSART_IEN_TXC (0x1UL << 0) /**< TX Complete IEN */
+#define _EUSART_IEN_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IEN_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXC_DEFAULT (_EUSART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL (0x1UL << 1) /**< TX FIFO Level IEN */
+#define _EUSART_IEN_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL_DEFAULT (_EUSART_IEN_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL (0x1UL << 2) /**< RX FIFO Level IEN */
+#define _EUSART_IEN_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL_DEFAULT (_EUSART_IEN_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL (0x1UL << 3) /**< RX FIFO Full IEN */
+#define _EUSART_IEN_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL_DEFAULT (_EUSART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF (0x1UL << 4) /**< RX FIFO Overflow IEN */
+#define _EUSART_IEN_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF_DEFAULT (_EUSART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF (0x1UL << 5) /**< RX FIFO Underflow IEN */
+#define _EUSART_IEN_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF_DEFAULT (_EUSART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF (0x1UL << 6) /**< TX FIFO Overflow IEN */
+#define _EUSART_IEN_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF_DEFAULT (_EUSART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF (0x1UL << 7) /**< TX FIFO Underflow IEN */
+#define _EUSART_IEN_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF_DEFAULT (_EUSART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR (0x1UL << 8) /**< Parity Error IEN */
+#define _EUSART_IEN_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IEN_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR_DEFAULT (_EUSART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR (0x1UL << 9) /**< Framing Error IEN */
+#define _EUSART_IEN_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IEN_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR_DEFAULT (_EUSART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Addr Frame IEN */
+#define _EUSART_IEN_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF_DEFAULT (_EUSART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR (0x1UL << 11) /**< Load Error IEN */
+#define _EUSART_IEN_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR_DEFAULT (_EUSART_IEN_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail IEN */
+#define _EUSART_IEN_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IEN_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF_DEFAULT (_EUSART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE (0x1UL << 13) /**< TX IDLE IEN */
+#define _EUSART_IEN_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE_DEFAULT (_EUSART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU (0x1UL << 16) /**< CS Wake-up IEN */
+#define _EUSART_IEN_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU_DEFAULT (_EUSART_IEN_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF (0x1UL << 18) /**< Start Frame IEN */
+#define _EUSART_IEN_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF_DEFAULT (_EUSART_IEN_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF (0x1UL << 19) /**< Signal Frame IEN */
+#define _EUSART_IEN_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF_DEFAULT (_EUSART_IEN_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete IEN */
+#define _EUSART_IEN_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE_DEFAULT (_EUSART_IEN_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO (0x1UL << 25) /**< RX Timeout IEN */
+#define _EUSART_IEN_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO_DEFAULT (_EUSART_IEN_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IEN */
+
+/* Bit fields for EUSART SYNCBUSY */
+#define _EUSART_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for EUSART_SYNCBUSY */
+#define _EUSART_SYNCBUSY_MASK 0x00000FFFUL /**< Mask for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV (0x1UL << 0) /**< SYNCBUSY for DIV in CLKDIV */
+#define _EUSART_SYNCBUSY_DIV_SHIFT 0 /**< Shift value for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_MASK 0x1UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV_DEFAULT (_EUSART_SYNCBUSY_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN (0x1UL << 1) /**< SYNCBUSY for RXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_RXTEN_SHIFT 1 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_MASK 0x2UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN_DEFAULT (_EUSART_SYNCBUSY_RXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN (0x1UL << 2) /**< SYNCBUSY for TXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_TXTEN_SHIFT 2 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_MASK 0x4UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN_DEFAULT (_EUSART_SYNCBUSY_TXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN (0x1UL << 3) /**< SYNCBUSY for RXEN in CMD */
+#define _EUSART_SYNCBUSY_RXEN_SHIFT 3 /**< Shift value for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_MASK 0x8UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN_DEFAULT (_EUSART_SYNCBUSY_RXEN_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS (0x1UL << 4) /**< SYNCBUSY for RXDIS in CMD */
+#define _EUSART_SYNCBUSY_RXDIS_SHIFT 4 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_MASK 0x10UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS_DEFAULT (_EUSART_SYNCBUSY_RXDIS_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN (0x1UL << 5) /**< SYNCBUSY for TXEN in CMD */
+#define _EUSART_SYNCBUSY_TXEN_SHIFT 5 /**< Shift value for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_MASK 0x20UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN_DEFAULT (_EUSART_SYNCBUSY_TXEN_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS (0x1UL << 6) /**< SYNCBUSY for TXDIS in CMD */
+#define _EUSART_SYNCBUSY_TXDIS_SHIFT 6 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_MASK 0x40UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS_DEFAULT (_EUSART_SYNCBUSY_TXDIS_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN (0x1UL << 7) /**< SYNCBUSY for RXBLOCKEN in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_SHIFT 7 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_MASK 0x80UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS (0x1UL << 8) /**< SYNCBUSY for RXBLOCKDIS in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_SHIFT 8 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_MASK 0x100UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN (0x1UL << 9) /**< SYNCBUSY for TXTRIEN in CMD */
+#define _EUSART_SYNCBUSY_TXTRIEN_SHIFT 9 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_MASK 0x200UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN_DEFAULT (_EUSART_SYNCBUSY_TXTRIEN_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS (0x1UL << 10) /**< SYNCBUSY in TXTRIDIS in CMD */
+#define _EUSART_SYNCBUSY_TXTRIDIS_SHIFT 10 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_MASK 0x400UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS_DEFAULT (_EUSART_SYNCBUSY_TXTRIDIS_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN (0x1UL << 11) /**< SYNCBUSY for AUTOTXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_SHIFT 11 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_MASK 0x800UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT (_EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+
+/** @} End of group EFR32MG29_EUSART_BitFields */
+/** @} End of group EFR32MG29_EUSART */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_EUSART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_fsrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_fsrco.h
new file mode 100644
index 000000000..d2c8df405
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_fsrco.h
@@ -0,0 +1,75 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 FSRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_FSRCO_H
+#define EFR32MG29_FSRCO_H
+#define FSRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_FSRCO FSRCO
+ * @{
+ * @brief EFR32MG29 FSRCO Register Declaration.
+ *****************************************************************************/
+
+/** FSRCO Register Declaration. */
+typedef struct fsrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ uint32_t RESERVED0[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ uint32_t RESERVED1[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ uint32_t RESERVED2[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+} FSRCO_TypeDef;
+/** @} End of group EFR32MG29_FSRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_FSRCO
+ * @{
+ * @defgroup EFR32MG29_FSRCO_BitFields FSRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for FSRCO IPVERSION */
+#define _FSRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for FSRCO_IPVERSION */
+#define FSRCO_IPVERSION_IPVERSION_DEFAULT (_FSRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for FSRCO_IPVERSION */
+
+/** @} End of group EFR32MG29_FSRCO_BitFields */
+/** @} End of group EFR32MG29_FSRCO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_FSRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpcrc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpcrc.h
new file mode 100644
index 000000000..b7f7f1423
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpcrc.h
@@ -0,0 +1,246 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 GPCRC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_GPCRC_H
+#define EFR32MG29_GPCRC_H
+#define GPCRC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_GPCRC GPCRC
+ * @{
+ * @brief EFR32MG29 GPCRC Register Declaration.
+ *****************************************************************************/
+
+/** GPCRC Register Declaration. */
+typedef struct gpcrc_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t EN; /**< CRC Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t INIT; /**< CRC Init Value */
+ __IOM uint32_t POLY; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA; /**< CRC Data Register */
+ __IM uint32_t DATAREV; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED0[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t EN_SET; /**< CRC Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t INIT_SET; /**< CRC Init Value */
+ __IOM uint32_t POLY_SET; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_SET; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_SET; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_SET; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_SET; /**< CRC Data Register */
+ __IM uint32_t DATAREV_SET; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_SET; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED1[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t EN_CLR; /**< CRC Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t INIT_CLR; /**< CRC Init Value */
+ __IOM uint32_t POLY_CLR; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_CLR; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_CLR; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_CLR; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_CLR; /**< CRC Data Register */
+ __IM uint32_t DATAREV_CLR; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_CLR; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED2[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t EN_TGL; /**< CRC Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t INIT_TGL; /**< CRC Init Value */
+ __IOM uint32_t POLY_TGL; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_TGL; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_TGL; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_TGL; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_TGL; /**< CRC Data Register */
+ __IM uint32_t DATAREV_TGL; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_TGL; /**< CRC Data Byte Reverse Register */
+} GPCRC_TypeDef;
+/** @} End of group EFR32MG29_GPCRC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_GPCRC
+ * @{
+ * @defgroup EFR32MG29_GPCRC_BitFields GPCRC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for GPCRC IPVERSION */
+#define _GPCRC_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_IPVERSION */
+#define GPCRC_IPVERSION_IPVERSION_DEFAULT (_GPCRC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_IPVERSION */
+
+/* Bit fields for GPCRC EN */
+#define _GPCRC_EN_RESETVALUE 0x00000000UL /**< Default value for GPCRC_EN */
+#define _GPCRC_EN_MASK 0x00000001UL /**< Mask for GPCRC_EN */
+#define GPCRC_EN_EN (0x1UL << 0) /**< CRC Enable */
+#define _GPCRC_EN_EN_SHIFT 0 /**< Shift value for GPCRC_EN */
+#define _GPCRC_EN_EN_MASK 0x1UL /**< Bit mask for GPCRC_EN */
+#define _GPCRC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_EN */
+#define _GPCRC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for GPCRC_EN */
+#define _GPCRC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for GPCRC_EN */
+#define GPCRC_EN_EN_DEFAULT (_GPCRC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_EN */
+#define GPCRC_EN_EN_DISABLE (_GPCRC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for GPCRC_EN */
+#define GPCRC_EN_EN_ENABLE (_GPCRC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for GPCRC_EN */
+
+/* Bit fields for GPCRC CTRL */
+#define _GPCRC_CTRL_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CTRL */
+#define _GPCRC_CTRL_MASK 0x00002710UL /**< Mask for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL (0x1UL << 4) /**< Polynomial Select */
+#define _GPCRC_CTRL_POLYSEL_SHIFT 4 /**< Shift value for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_MASK 0x10UL /**< Bit mask for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC32 0x00000000UL /**< Mode CRC32 for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC16 0x00000001UL /**< Mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_DEFAULT (_GPCRC_CTRL_POLYSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC32 (_GPCRC_CTRL_POLYSEL_CRC32 << 4) /**< Shifted mode CRC32 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC16 (_GPCRC_CTRL_POLYSEL_CRC16 << 4) /**< Shifted mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE (0x1UL << 8) /**< Byte Mode Enable */
+#define _GPCRC_CTRL_BYTEMODE_SHIFT 8 /**< Shift value for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_MASK 0x100UL /**< Bit mask for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE_DEFAULT (_GPCRC_CTRL_BYTEMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE (0x1UL << 9) /**< Byte-level Bit Reverse Enable */
+#define _GPCRC_CTRL_BITREVERSE_SHIFT 9 /**< Shift value for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_MASK 0x200UL /**< Bit mask for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_DEFAULT (_GPCRC_CTRL_BITREVERSE_DEFAULT << 9) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_NORMAL (_GPCRC_CTRL_BITREVERSE_NORMAL << 9) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_REVERSED (_GPCRC_CTRL_BITREVERSE_REVERSED << 9) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE (0x1UL << 10) /**< Byte Reverse Mode */
+#define _GPCRC_CTRL_BYTEREVERSE_SHIFT 10 /**< Shift value for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_MASK 0x400UL /**< Bit mask for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_DEFAULT (_GPCRC_CTRL_BYTEREVERSE_DEFAULT << 10) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_NORMAL (_GPCRC_CTRL_BYTEREVERSE_NORMAL << 10) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_REVERSED (_GPCRC_CTRL_BYTEREVERSE_REVERSED << 10) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT (0x1UL << 13) /**< Auto Init Enable */
+#define _GPCRC_CTRL_AUTOINIT_SHIFT 13 /**< Shift value for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_MASK 0x2000UL /**< Bit mask for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT_DEFAULT (_GPCRC_CTRL_AUTOINIT_DEFAULT << 13) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+
+/* Bit fields for GPCRC CMD */
+#define _GPCRC_CMD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CMD */
+#define _GPCRC_CMD_MASK 0x80000001UL /**< Mask for GPCRC_CMD */
+#define GPCRC_CMD_INIT (0x1UL << 0) /**< Initialization Enable */
+#define _GPCRC_CMD_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_MASK 0x1UL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CMD */
+#define GPCRC_CMD_INIT_DEFAULT (_GPCRC_CMD_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_CMD */
+
+/* Bit fields for GPCRC INIT */
+#define _GPCRC_INIT_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INIT */
+#define _GPCRC_INIT_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INIT */
+#define GPCRC_INIT_INIT_DEFAULT (_GPCRC_INIT_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INIT */
+
+/* Bit fields for GPCRC POLY */
+#define _GPCRC_POLY_RESETVALUE 0x00000000UL /**< Default value for GPCRC_POLY */
+#define _GPCRC_POLY_MASK 0x0000FFFFUL /**< Mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_SHIFT 0 /**< Shift value for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_MASK 0xFFFFUL /**< Bit mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_POLY */
+#define GPCRC_POLY_POLY_DEFAULT (_GPCRC_POLY_POLY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_POLY */
+
+/* Bit fields for GPCRC INPUTDATA */
+#define _GPCRC_INPUTDATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_SHIFT 0 /**< Shift value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATA */
+#define GPCRC_INPUTDATA_INPUTDATA_DEFAULT (_GPCRC_INPUTDATA_INPUTDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATA */
+
+/* Bit fields for GPCRC INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_MASK 0x0000FFFFUL /**< Mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_SHIFT 0 /**< Shift value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_MASK 0xFFFFUL /**< Bit mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATAHWORD */
+#define GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT (_GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATAHWORD*/
+
+/* Bit fields for GPCRC INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_MASK 0x000000FFUL /**< Mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_SHIFT 0 /**< Shift value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_MASK 0xFFUL /**< Bit mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATABYTE */
+#define GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT (_GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATABYTE*/
+
+/* Bit fields for GPCRC DATA */
+#define _GPCRC_DATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATA */
+#define _GPCRC_DATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_SHIFT 0 /**< Shift value for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATA */
+#define GPCRC_DATA_DATA_DEFAULT (_GPCRC_DATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATA */
+
+/* Bit fields for GPCRC DATAREV */
+#define _GPCRC_DATAREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_SHIFT 0 /**< Shift value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATAREV */
+#define GPCRC_DATAREV_DATAREV_DEFAULT (_GPCRC_DATAREV_DATAREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATAREV */
+
+/* Bit fields for GPCRC DATABYTEREV */
+#define _GPCRC_DATABYTEREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_SHIFT 0 /**< Shift value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATABYTEREV */
+#define GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT (_GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATABYTEREV */
+
+/** @} End of group EFR32MG29_GPCRC_BitFields */
+/** @} End of group EFR32MG29_GPCRC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_GPCRC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio.h
new file mode 100644
index 000000000..29b201a81
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio.h
@@ -0,0 +1,2200 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 GPIO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_GPIO_H
+#define EFR32MG29_GPIO_H
+#define GPIO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+
+#include "efr32mg29_gpio_port.h"
+
+typedef struct gpio_acmproute_typedef{
+ __IOM uint32_t ROUTEEN; /**< ACMP0 pin enable */
+ __IOM uint32_t ACMPOUTROUTE; /**< ACMPOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_ACMPROUTE_TypeDef;
+
+typedef struct gpio_cmuroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< CMU pin enable */
+ __IOM uint32_t CLKIN0ROUTE; /**< CLKIN0 port/pin select */
+ __IOM uint32_t CLKOUT0ROUTE; /**< CLKOUT0 port/pin select */
+ __IOM uint32_t CLKOUT1ROUTE; /**< CLKOUT1 port/pin select */
+ __IOM uint32_t CLKOUT2ROUTE; /**< CLKOUT2 port/pin select */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+} GPIO_CMUROUTE_TypeDef;
+
+typedef struct gpio_eusartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< EUSART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t SCLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_EUSARTROUTE_TypeDef;
+
+typedef struct gpio_frcroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< FRC pin enable */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DFRAMEROUTE; /**< DFRAME port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_FRCROUTE_TypeDef;
+
+typedef struct gpio_i2croute_typedef{
+ __IOM uint32_t ROUTEEN; /**< I2C0 pin enable */
+ __IOM uint32_t SCLROUTE; /**< SCL port/pin select */
+ __IOM uint32_t SDAROUTE; /**< SDA port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_I2CROUTE_TypeDef;
+
+typedef struct gpio_letimerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< LETIMER pin enable */
+ __IOM uint32_t OUT0ROUTE; /**< OUT0 port/pin select */
+ __IOM uint32_t OUT1ROUTE; /**< OUT1 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_LETIMERROUTE_TypeDef;
+
+typedef struct gpio_modemroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< MODEM pin enable */
+ __IOM uint32_t ANT0ROUTE; /**< ANT0 port/pin select */
+ __IOM uint32_t ANT1ROUTE; /**< ANT1 port/pin select */
+ __IOM uint32_t ANTROLLOVERROUTE; /**< ANTROLLOVER port/pin select */
+ __IOM uint32_t ANTRR0ROUTE; /**< ANTRR0 port/pin select */
+ __IOM uint32_t ANTRR1ROUTE; /**< ANTRR1 port/pin select */
+ __IOM uint32_t ANTRR2ROUTE; /**< ANTRR2 port/pin select */
+ __IOM uint32_t ANTRR3ROUTE; /**< ANTRR3 port/pin select */
+ __IOM uint32_t ANTRR4ROUTE; /**< ANTRR4 port/pin select */
+ __IOM uint32_t ANTRR5ROUTE; /**< ANTRR5 port/pin select */
+ __IOM uint32_t ANTSWENROUTE; /**< ANTSWEN port/pin select */
+ __IOM uint32_t ANTSWUSROUTE; /**< ANTSWUS port/pin select */
+ __IOM uint32_t ANTTRIGROUTE; /**< ANTTRIG port/pin select */
+ __IOM uint32_t ANTTRIGSTOPROUTE; /**< ANTTRIGSTOP port/pin select */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DINROUTE; /**< DIN port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_MODEMROUTE_TypeDef;
+
+typedef struct gpio_pdmroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< PDM pin enable */
+ __IOM uint32_t CLKROUTE; /**< CLK port/pin select */
+ __IOM uint32_t DAT0ROUTE; /**< DAT0 port/pin select */
+ __IOM uint32_t DAT1ROUTE; /**< DAT1 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_PDMROUTE_TypeDef;
+
+typedef struct gpio_prsroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< PRS0 pin enable */
+ __IOM uint32_t ASYNCH0ROUTE; /**< ASYNCH0 port/pin select */
+ __IOM uint32_t ASYNCH1ROUTE; /**< ASYNCH1 port/pin select */
+ __IOM uint32_t ASYNCH2ROUTE; /**< ASYNCH2 port/pin select */
+ __IOM uint32_t ASYNCH3ROUTE; /**< ASYNCH3 port/pin select */
+ __IOM uint32_t ASYNCH4ROUTE; /**< ASYNCH4 port/pin select */
+ __IOM uint32_t ASYNCH5ROUTE; /**< ASYNCH5 port/pin select */
+ __IOM uint32_t ASYNCH6ROUTE; /**< ASYNCH6 port/pin select */
+ __IOM uint32_t ASYNCH7ROUTE; /**< ASYNCH7 port/pin select */
+ __IOM uint32_t ASYNCH8ROUTE; /**< ASYNCH8 port/pin select */
+ __IOM uint32_t ASYNCH9ROUTE; /**< ASYNCH9 port/pin select */
+ __IOM uint32_t ASYNCH10ROUTE; /**< ASYNCH10 port/pin select */
+ __IOM uint32_t ASYNCH11ROUTE; /**< ASYNCH11 port/pin select */
+ __IOM uint32_t SYNCH0ROUTE; /**< SYNCH0 port/pin select */
+ __IOM uint32_t SYNCH1ROUTE; /**< SYNCH1 port/pin select */
+ __IOM uint32_t SYNCH2ROUTE; /**< SYNCH2 port/pin select */
+ __IOM uint32_t SYNCH3ROUTE; /**< SYNCH3 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_PRSROUTE_TypeDef;
+
+typedef struct gpio_timerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< TIMER0 pin enable */
+ __IOM uint32_t CC0ROUTE; /**< CC0 port/pin select */
+ __IOM uint32_t CC1ROUTE; /**< CC1 port/pin select */
+ __IOM uint32_t CC2ROUTE; /**< CC2 port/pin select */
+ __IOM uint32_t CDTI0ROUTE; /**< CDTI0 port/pin select */
+ __IOM uint32_t CDTI1ROUTE; /**< CDTI1 port/pin select */
+ __IOM uint32_t CDTI2ROUTE; /**< CDTI2 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_TIMERROUTE_TypeDef;
+
+typedef struct gpio_usartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< USART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t CLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_USARTROUTE_TypeDef;
+
+typedef struct gpio_typedef{
+ __IM uint32_t IPVERSION; /**< main */
+ uint32_t RESERVED0[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P[4U]; /**< */
+ uint32_t RESERVED1[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS; /**< Lock Status */
+ uint32_t RESERVED3[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC; /**< CD Bus allocation */
+ uint32_t RESERVED4[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED5[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN; /**< Trace Route Pin Enable */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE; /**< cmu DBUS config registers */
+ uint32_t RESERVED9[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED10[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< main */
+ uint32_t RESERVED11[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_SET[4U]; /**< */
+ uint32_t RESERVED12[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_SET; /**< Lock Status */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_SET; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_SET; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_SET; /**< CD Bus allocation */
+ uint32_t RESERVED15[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_SET; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_SET; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_SET; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_SET; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_SET; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_SET; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_SET; /**< EM4 wakeup polarity */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_SET; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_SET; /**< Trace Route Pin Enable */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_SET[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_SET; /**< cmu DBUS config registers */
+ uint32_t RESERVED20[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_SET[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_SET; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_SET[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_SET; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_SET; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_SET; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_SET[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_SET[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_SET[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED21[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< main */
+ uint32_t RESERVED22[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_CLR[4U]; /**< */
+ uint32_t RESERVED23[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED24[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_CLR; /**< Lock Status */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_CLR; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_CLR; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_CLR; /**< CD Bus allocation */
+ uint32_t RESERVED26[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_CLR; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_CLR; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_CLR; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_CLR; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_CLR; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_CLR; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED27[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_CLR; /**< EM4 wakeup polarity */
+ uint32_t RESERVED29[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_CLR; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_CLR; /**< Trace Route Pin Enable */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_CLR[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_CLR; /**< cmu DBUS config registers */
+ uint32_t RESERVED31[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_CLR[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_CLR; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_CLR[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_CLR; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_CLR; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_CLR; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_CLR[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_CLR[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_CLR[2U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED32[603U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< main */
+ uint32_t RESERVED33[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_TGL[4U]; /**< */
+ uint32_t RESERVED34[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ uint32_t RESERVED35[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_TGL; /**< Lock Status */
+ uint32_t RESERVED36[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_TGL; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_TGL; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_TGL; /**< CD Bus allocation */
+ uint32_t RESERVED37[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_TGL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_TGL; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_TGL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_TGL; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_TGL; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_TGL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED38[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_TGL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_TGL; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_TGL; /**< Trace Route Pin Enable */
+ uint32_t RESERVED41[2U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_TGL[1U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_TGL; /**< cmu DBUS config registers */
+ uint32_t RESERVED42[5U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_TGL[2U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_TGL; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_TGL[2U]; /**< i2c0 DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_TGL; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_TGL; /**< modem DBUS config registers */
+ GPIO_PDMROUTE_TypeDef PDMROUTE_TGL; /**< pdm DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_TGL[1U]; /**< prs0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_TGL[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_TGL[2U]; /**< usart0 DBUS config registers */
+} GPIO_TypeDef;
+
+/* Bit fields for GPIO IPVERSION */
+#define _GPIO_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_IPVERSION_IPVERSION_DEFAULT (_GPIO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_PORTA 0x00000000UL /**< PORTA index */
+#define GPIO_PORTB 0x00000001UL /**< PORTB index */
+#define GPIO_PORTC 0x00000002UL /**< PORTC index */
+#define GPIO_PORTD 0x00000003UL /**< PORTD index */
+
+/* Bit fields for GPIO LOCK */
+#define _GPIO_LOCK_RESETVALUE 0x0000A534UL /**< Default value for GPIO_LOCK */
+#define _GPIO_LOCK_MASK 0x0000FFFFUL /**< Mask for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_DEFAULT 0x0000A534UL /**< Mode DEFAULT for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_UNLOCK 0x0000A534UL /**< Mode UNLOCK for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_DEFAULT (_GPIO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_UNLOCK (_GPIO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for GPIO_LOCK */
+
+/* Bit fields for GPIO GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_MASK 0x00000001UL /**< Mask for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK (0x1UL << 0) /**< GPIO LOCK status */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT (_GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_LOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for GPIO_GPIOLOCKSTATUS */
+
+/* Bit fields for GPIO ABUSALLOC */
+#define _GPIO_ABUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_SHIFT 0 /**< Shift value for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_MASK 0xFUL /**< Bit mask for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_DEFAULT (_GPIO_ABUSALLOC_AEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_TRISTATE (_GPIO_ABUSALLOC_AEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ADC0 (_GPIO_ABUSALLOC_AEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ACMP0 (_GPIO_ABUSALLOC_AEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_SHIFT 8 /**< Shift value for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_DEFAULT (_GPIO_ABUSALLOC_AEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_TRISTATE (_GPIO_ABUSALLOC_AEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ADC0 (_GPIO_ABUSALLOC_AEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ACMP0 (_GPIO_ABUSALLOC_AEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_SHIFT 16 /**< Shift value for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_MASK 0xF0000UL /**< Bit mask for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_DEFAULT (_GPIO_ABUSALLOC_AODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_TRISTATE (_GPIO_ABUSALLOC_AODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ADC0 (_GPIO_ABUSALLOC_AODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ACMP0 (_GPIO_ABUSALLOC_AODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_SHIFT 24 /**< Shift value for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_MASK 0xF000000UL /**< Bit mask for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_DEFAULT (_GPIO_ABUSALLOC_AODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_TRISTATE (_GPIO_ABUSALLOC_AODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ADC0 (_GPIO_ABUSALLOC_AODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ACMP0 (_GPIO_ABUSALLOC_AODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+
+/* Bit fields for GPIO BBUSALLOC */
+#define _GPIO_BBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_SHIFT 0 /**< Shift value for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_MASK 0xFUL /**< Bit mask for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_DEFAULT (_GPIO_BBUSALLOC_BEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_TRISTATE (_GPIO_BBUSALLOC_BEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ADC0 (_GPIO_BBUSALLOC_BEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ACMP0 (_GPIO_BBUSALLOC_BEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_SHIFT 8 /**< Shift value for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_DEFAULT (_GPIO_BBUSALLOC_BEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_TRISTATE (_GPIO_BBUSALLOC_BEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ADC0 (_GPIO_BBUSALLOC_BEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ACMP0 (_GPIO_BBUSALLOC_BEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_SHIFT 16 /**< Shift value for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_MASK 0xF0000UL /**< Bit mask for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_DEFAULT (_GPIO_BBUSALLOC_BODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_TRISTATE (_GPIO_BBUSALLOC_BODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ADC0 (_GPIO_BBUSALLOC_BODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ACMP0 (_GPIO_BBUSALLOC_BODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_SHIFT 24 /**< Shift value for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_MASK 0xF000000UL /**< Bit mask for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_DEFAULT (_GPIO_BBUSALLOC_BODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_TRISTATE (_GPIO_BBUSALLOC_BODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ADC0 (_GPIO_BBUSALLOC_BODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ACMP0 (_GPIO_BBUSALLOC_BODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+
+/* Bit fields for GPIO CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_SHIFT 0 /**< Shift value for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_MASK 0xFUL /**< Bit mask for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ADC0 (_GPIO_CDBUSALLOC_CDEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_SHIFT 8 /**< Shift value for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ADC0 (_GPIO_CDBUSALLOC_CDEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_SHIFT 16 /**< Shift value for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_MASK 0xF0000UL /**< Bit mask for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_DEFAULT (_GPIO_CDBUSALLOC_CDODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_TRISTATE (_GPIO_CDBUSALLOC_CDODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ADC0 (_GPIO_CDBUSALLOC_CDODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ACMP0 (_GPIO_CDBUSALLOC_CDODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_SHIFT 24 /**< Shift value for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_MASK 0xF000000UL /**< Bit mask for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_DEFAULT (_GPIO_CDBUSALLOC_CDODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_TRISTATE (_GPIO_CDBUSALLOC_CDODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ADC0 (_GPIO_CDBUSALLOC_CDODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ACMP0 (_GPIO_CDBUSALLOC_CDODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+
+/* Bit fields for GPIO EXTIPSELL */
+#define _GPIO_EXTIPSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTA (_GPIO_EXTIPSELL_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTB (_GPIO_EXTIPSELL_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTC (_GPIO_EXTIPSELL_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTD (_GPIO_EXTIPSELL_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTA (_GPIO_EXTIPSELL_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTB (_GPIO_EXTIPSELL_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTC (_GPIO_EXTIPSELL_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTD (_GPIO_EXTIPSELL_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTA (_GPIO_EXTIPSELL_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTB (_GPIO_EXTIPSELL_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTC (_GPIO_EXTIPSELL_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTD (_GPIO_EXTIPSELL_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTA (_GPIO_EXTIPSELL_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTB (_GPIO_EXTIPSELL_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTC (_GPIO_EXTIPSELL_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTD (_GPIO_EXTIPSELL_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTA (_GPIO_EXTIPSELL_EXTIPSEL4_PORTA << 16) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTB (_GPIO_EXTIPSELL_EXTIPSEL4_PORTB << 16) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTC (_GPIO_EXTIPSELL_EXTIPSEL4_PORTC << 16) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTD (_GPIO_EXTIPSELL_EXTIPSEL4_PORTD << 16) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTA (_GPIO_EXTIPSELL_EXTIPSEL5_PORTA << 20) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTB (_GPIO_EXTIPSELL_EXTIPSEL5_PORTB << 20) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTC (_GPIO_EXTIPSELL_EXTIPSEL5_PORTC << 20) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTD (_GPIO_EXTIPSELL_EXTIPSEL5_PORTD << 20) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTA (_GPIO_EXTIPSELL_EXTIPSEL6_PORTA << 24) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTB (_GPIO_EXTIPSELL_EXTIPSEL6_PORTB << 24) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTC (_GPIO_EXTIPSELL_EXTIPSEL6_PORTC << 24) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTD (_GPIO_EXTIPSELL_EXTIPSEL6_PORTD << 24) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTA (_GPIO_EXTIPSELL_EXTIPSEL7_PORTA << 28) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTB (_GPIO_EXTIPSELL_EXTIPSEL7_PORTB << 28) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTC (_GPIO_EXTIPSELL_EXTIPSEL7_PORTC << 28) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTD (_GPIO_EXTIPSELL_EXTIPSEL7_PORTD << 28) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+
+/* Bit fields for GPIO EXTIPSELH */
+#define _GPIO_EXTIPSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTA (_GPIO_EXTIPSELH_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTB (_GPIO_EXTIPSELH_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTC (_GPIO_EXTIPSELH_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTD (_GPIO_EXTIPSELH_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTA (_GPIO_EXTIPSELH_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTB (_GPIO_EXTIPSELH_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTC (_GPIO_EXTIPSELH_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTD (_GPIO_EXTIPSELH_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTA (_GPIO_EXTIPSELH_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTB (_GPIO_EXTIPSELH_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTC (_GPIO_EXTIPSELH_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTD (_GPIO_EXTIPSELH_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTA (_GPIO_EXTIPSELH_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTB (_GPIO_EXTIPSELH_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTC (_GPIO_EXTIPSELH_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTD (_GPIO_EXTIPSELH_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+
+/* Bit fields for GPIO EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 << 0) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 << 0) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 << 0) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 << 0) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 << 4) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 << 4) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 << 4) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 << 4) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 << 8) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 << 8) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 << 8) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 << 8) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 << 12) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 << 12) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 << 12) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 << 12) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 << 16) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 << 16) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 << 16) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 << 16) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 << 20) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 << 20) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 << 20) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 << 20) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 << 24) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 << 24) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 << 24) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 << 24) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 << 28) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 << 28) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 << 28) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 << 28) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+
+/* Bit fields for GPIO EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 << 0) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 << 0) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 << 0) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 << 0) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 << 4) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 << 4) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 << 4) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 << 4) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 << 8) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 << 8) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 << 8) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 << 8) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 << 12) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 << 12) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 << 12) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 << 12) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+
+/* Bit fields for GPIO EXTIRISE */
+#define _GPIO_EXTIRISE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_SHIFT 0 /**< Shift value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIRISE */
+#define GPIO_EXTIRISE_EXTIRISE_DEFAULT (_GPIO_EXTIRISE_EXTIRISE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIRISE */
+
+/* Bit fields for GPIO EXTIFALL */
+#define _GPIO_EXTIFALL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_SHIFT 0 /**< Shift value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIFALL */
+#define GPIO_EXTIFALL_EXTIFALL_DEFAULT (_GPIO_EXTIFALL_EXTIFALL_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIFALL */
+
+/* Bit fields for GPIO IF */
+#define _GPIO_IF_RESETVALUE 0x00000000UL /**< Default value for GPIO_IF */
+#define _GPIO_IF_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IF */
+#define GPIO_IF_EXTIF0 (0x1UL << 0) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF0_SHIFT 0 /**< Shift value for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_MASK 0x1UL /**< Bit mask for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF0_DEFAULT (_GPIO_IF_EXTIF0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1 (0x1UL << 1) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF1_SHIFT 1 /**< Shift value for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_MASK 0x2UL /**< Bit mask for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1_DEFAULT (_GPIO_IF_EXTIF1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2 (0x1UL << 2) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF2_SHIFT 2 /**< Shift value for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_MASK 0x4UL /**< Bit mask for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2_DEFAULT (_GPIO_IF_EXTIF2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3 (0x1UL << 3) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF3_SHIFT 3 /**< Shift value for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_MASK 0x8UL /**< Bit mask for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3_DEFAULT (_GPIO_IF_EXTIF3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4 (0x1UL << 4) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF4_SHIFT 4 /**< Shift value for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_MASK 0x10UL /**< Bit mask for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4_DEFAULT (_GPIO_IF_EXTIF4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5 (0x1UL << 5) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF5_SHIFT 5 /**< Shift value for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_MASK 0x20UL /**< Bit mask for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5_DEFAULT (_GPIO_IF_EXTIF5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6 (0x1UL << 6) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF6_SHIFT 6 /**< Shift value for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_MASK 0x40UL /**< Bit mask for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6_DEFAULT (_GPIO_IF_EXTIF6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7 (0x1UL << 7) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF7_SHIFT 7 /**< Shift value for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_MASK 0x80UL /**< Bit mask for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7_DEFAULT (_GPIO_IF_EXTIF7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8 (0x1UL << 8) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF8_SHIFT 8 /**< Shift value for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_MASK 0x100UL /**< Bit mask for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8_DEFAULT (_GPIO_IF_EXTIF8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9 (0x1UL << 9) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF9_SHIFT 9 /**< Shift value for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_MASK 0x200UL /**< Bit mask for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9_DEFAULT (_GPIO_IF_EXTIF9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10 (0x1UL << 10) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF10_SHIFT 10 /**< Shift value for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_MASK 0x400UL /**< Bit mask for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10_DEFAULT (_GPIO_IF_EXTIF10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11 (0x1UL << 11) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF11_SHIFT 11 /**< Shift value for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_MASK 0x800UL /**< Bit mask for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11_DEFAULT (_GPIO_IF_EXTIF11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IF */
+#define _GPIO_IF_EM4WU_SHIFT 16 /**< Shift value for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EM4WU_DEFAULT (_GPIO_IF_EM4WU_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IF */
+
+/* Bit fields for GPIO IEN */
+#define _GPIO_IEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_IEN */
+#define _GPIO_IEN_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0 (0x1UL << 0) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN0_SHIFT 0 /**< Shift value for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_MASK 0x1UL /**< Bit mask for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0_DEFAULT (_GPIO_IEN_EXTIEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1 (0x1UL << 1) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN1_SHIFT 1 /**< Shift value for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_MASK 0x2UL /**< Bit mask for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1_DEFAULT (_GPIO_IEN_EXTIEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2 (0x1UL << 2) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN2_SHIFT 2 /**< Shift value for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_MASK 0x4UL /**< Bit mask for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2_DEFAULT (_GPIO_IEN_EXTIEN2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3 (0x1UL << 3) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN3_SHIFT 3 /**< Shift value for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_MASK 0x8UL /**< Bit mask for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3_DEFAULT (_GPIO_IEN_EXTIEN3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4 (0x1UL << 4) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN4_SHIFT 4 /**< Shift value for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_MASK 0x10UL /**< Bit mask for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4_DEFAULT (_GPIO_IEN_EXTIEN4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5 (0x1UL << 5) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN5_SHIFT 5 /**< Shift value for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_MASK 0x20UL /**< Bit mask for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5_DEFAULT (_GPIO_IEN_EXTIEN5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6 (0x1UL << 6) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN6_SHIFT 6 /**< Shift value for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_MASK 0x40UL /**< Bit mask for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6_DEFAULT (_GPIO_IEN_EXTIEN6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7 (0x1UL << 7) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN7_SHIFT 7 /**< Shift value for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_MASK 0x80UL /**< Bit mask for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7_DEFAULT (_GPIO_IEN_EXTIEN7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8 (0x1UL << 8) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN8_SHIFT 8 /**< Shift value for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_MASK 0x100UL /**< Bit mask for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8_DEFAULT (_GPIO_IEN_EXTIEN8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9 (0x1UL << 9) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN9_SHIFT 9 /**< Shift value for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_MASK 0x200UL /**< Bit mask for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9_DEFAULT (_GPIO_IEN_EXTIEN9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10 (0x1UL << 10) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN10_SHIFT 10 /**< Shift value for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_MASK 0x400UL /**< Bit mask for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10_DEFAULT (_GPIO_IEN_EXTIEN10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11 (0x1UL << 11) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN11_SHIFT 11 /**< Shift value for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_MASK 0x800UL /**< Bit mask for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11_DEFAULT (_GPIO_IEN_EXTIEN11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0 (0x1UL << 16) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN0_SHIFT 16 /**< Shift value for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_MASK 0x10000UL /**< Bit mask for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0_DEFAULT (_GPIO_IEN_EM4WUIEN0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1 (0x1UL << 17) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN1_SHIFT 17 /**< Shift value for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_MASK 0x20000UL /**< Bit mask for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1_DEFAULT (_GPIO_IEN_EM4WUIEN1_DEFAULT << 17) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2 (0x1UL << 18) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN2_SHIFT 18 /**< Shift value for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_MASK 0x40000UL /**< Bit mask for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2_DEFAULT (_GPIO_IEN_EM4WUIEN2_DEFAULT << 18) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3 (0x1UL << 19) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN3_SHIFT 19 /**< Shift value for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_MASK 0x80000UL /**< Bit mask for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3_DEFAULT (_GPIO_IEN_EM4WUIEN3_DEFAULT << 19) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4 (0x1UL << 20) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN4_SHIFT 20 /**< Shift value for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_MASK 0x100000UL /**< Bit mask for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4_DEFAULT (_GPIO_IEN_EM4WUIEN4_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5 (0x1UL << 21) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN5_SHIFT 21 /**< Shift value for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_MASK 0x200000UL /**< Bit mask for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5_DEFAULT (_GPIO_IEN_EM4WUIEN5_DEFAULT << 21) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6 (0x1UL << 22) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN6_SHIFT 22 /**< Shift value for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_MASK 0x400000UL /**< Bit mask for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6_DEFAULT (_GPIO_IEN_EM4WUIEN6_DEFAULT << 22) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7 (0x1UL << 23) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN7_SHIFT 23 /**< Shift value for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_MASK 0x800000UL /**< Bit mask for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7_DEFAULT (_GPIO_IEN_EM4WUIEN7_DEFAULT << 23) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8 (0x1UL << 24) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN8_SHIFT 24 /**< Shift value for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_MASK 0x1000000UL /**< Bit mask for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8_DEFAULT (_GPIO_IEN_EM4WUIEN8_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9 (0x1UL << 25) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN9_SHIFT 25 /**< Shift value for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_MASK 0x2000000UL /**< Bit mask for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9_DEFAULT (_GPIO_IEN_EM4WUIEN9_DEFAULT << 25) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10 (0x1UL << 26) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN10_SHIFT 26 /**< Shift value for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_MASK 0x4000000UL /**< Bit mask for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10_DEFAULT (_GPIO_IEN_EM4WUIEN10_DEFAULT << 26) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11 (0x1UL << 27) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN11_SHIFT 27 /**< Shift value for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_MASK 0x8000000UL /**< Bit mask for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11_DEFAULT (_GPIO_IEN_EM4WUIEN11_DEFAULT << 27) /**< Shifted mode DEFAULT for GPIO_IEN */
+
+/* Bit fields for GPIO EM4WUEN */
+#define _GPIO_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_SHIFT 16 /**< Shift value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUEN */
+#define GPIO_EM4WUEN_EM4WUEN_DEFAULT (_GPIO_EM4WUEN_EM4WUEN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUEN */
+
+/* Bit fields for GPIO EM4WUPOL */
+#define _GPIO_EM4WUPOL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_SHIFT 16 /**< Shift value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUPOL */
+#define GPIO_EM4WUPOL_EM4WUPOL_DEFAULT (_GPIO_EM4WUPOL_EM4WUPOL_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUPOL */
+
+/* Bit fields for GPIO DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_RESETVALUE 0x0000000FUL /**< Default value for GPIO_DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_MASK 0x0000000FUL /**< Mask for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN (0x1UL << 0) /**< Route Pin Enable */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_SHIFT 0 /**< Shift value for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_MASK 0x1UL /**< Bit mask for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN (0x1UL << 1) /**< Route Location 0 */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_SHIFT 1 /**< Shift value for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_MASK 0x2UL /**< Bit mask for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN (0x1UL << 2) /**< JTAG Test Debug Output Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDOPEN_SHIFT 2 /**< Shift value for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_MASK 0x4UL /**< Bit mask for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDOPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN (0x1UL << 3) /**< JTAG Test Debug Input Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDIPEN_SHIFT 3 /**< Shift value for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_MASK 0x8UL /**< Bit mask for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDIPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+
+/* Bit fields for GPIO TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_MASK 0x0000003FUL /**< Mask for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN (0x1UL << 0) /**< Serial Wire Viewer Output Pin Enable */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_SHIFT 0 /**< Shift value for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_MASK 0x1UL /**< Bit mask for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT (_GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN (0x1UL << 1) /**< Trace Clk Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_SHIFT 1 /**< Shift value for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_MASK 0x2UL /**< Bit mask for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN (0x1UL << 2) /**< Trace Data0 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_SHIFT 2 /**< Shift value for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_MASK 0x4UL /**< Bit mask for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN (0x1UL << 3) /**< Trace Data1 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_SHIFT 3 /**< Shift value for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_MASK 0x8UL /**< Bit mask for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN (0x1UL << 4) /**< Trace Data2 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_SHIFT 4 /**< Shift value for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_MASK 0x10UL /**< Bit mask for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN (0x1UL << 5) /**< Trace Data3 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_SHIFT 5 /**< Shift value for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_MASK 0x20UL /**< Bit mask for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+
+/* Bit fields for GPIO_ACMP ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_MASK 0x00000001UL /**< Mask for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN (0x1UL << 0) /**< ACMPOUT pin enable control bit */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_SHIFT 0 /**< Shift value for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_MASK 0x1UL /**< Bit mask for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT (_GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ROUTEEN */
+
+/* Bit fields for GPIO_ACMP ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+
+/* Bit fields for GPIO_CMU ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_MASK 0x0000000FUL /**< Mask for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN (0x1UL << 0) /**< CLKOUT0 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_SHIFT 0 /**< Shift value for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN (0x1UL << 1) /**< CLKOUT1 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_SHIFT 1 /**< Shift value for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN (0x1UL << 2) /**< CLKOUT2 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_SHIFT 2 /**< Shift value for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_MASK 0x4UL /**< Bit mask for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+
+/* Bit fields for GPIO_CMU CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+
+/* Bit fields for GPIO_EUSART ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_SCLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_SHIFT 3 /**< Shift value for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_MASK 0x8UL /**< Bit mask for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+
+/* Bit fields for GPIO_EUSART CSROUTE */
+#define _GPIO_EUSART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PORT_DEFAULT (_GPIO_EUSART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+#define _GPIO_EUSART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PIN_DEFAULT (_GPIO_EUSART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+
+/* Bit fields for GPIO_EUSART CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PORT_DEFAULT (_GPIO_EUSART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+#define _GPIO_EUSART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PIN_DEFAULT (_GPIO_EUSART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PORT_DEFAULT (_GPIO_EUSART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+#define _GPIO_EUSART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PIN_DEFAULT (_GPIO_EUSART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RXROUTE */
+#define _GPIO_EUSART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PORT_DEFAULT (_GPIO_EUSART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+#define _GPIO_EUSART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PIN_DEFAULT (_GPIO_EUSART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+
+/* Bit fields for GPIO_EUSART SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PORT_DEFAULT (_GPIO_EUSART_SCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+#define _GPIO_EUSART_SCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PIN_DEFAULT (_GPIO_EUSART_SCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+
+/* Bit fields for GPIO_EUSART TXROUTE */
+#define _GPIO_EUSART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PORT_DEFAULT (_GPIO_EUSART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+#define _GPIO_EUSART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PIN_DEFAULT (_GPIO_EUSART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+
+/* Bit fields for GPIO_FRC ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_MASK 0x00000007UL /**< Mask for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN (0x1UL << 0) /**< DCLK pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_SHIFT 0 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_MASK 0x1UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN (0x1UL << 1) /**< DFRAME pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_SHIFT 1 /**< Shift value for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_MASK 0x2UL /**< Bit mask for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN (0x1UL << 2) /**< DOUT pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_SHIFT 2 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_MASK 0x4UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+
+/* Bit fields for GPIO_FRC DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PORT_DEFAULT (_GPIO_FRC_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PIN_DEFAULT (_GPIO_FRC_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+
+/* Bit fields for GPIO_FRC DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+#define _GPIO_FRC_DFRAMEROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+
+/* Bit fields for GPIO_FRC DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PORT_DEFAULT (_GPIO_FRC_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PIN_DEFAULT (_GPIO_FRC_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+
+/* Bit fields for GPIO_I2C ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN (0x1UL << 0) /**< SCL pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_SHIFT 0 /**< Shift value for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_MASK 0x1UL /**< Bit mask for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN (0x1UL << 1) /**< SDA pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_SHIFT 1 /**< Shift value for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_MASK 0x2UL /**< Bit mask for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+
+/* Bit fields for GPIO_I2C SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PORT_DEFAULT (_GPIO_I2C_SCLROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PIN_DEFAULT (_GPIO_I2C_SCLROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+
+/* Bit fields for GPIO_I2C SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PORT_DEFAULT (_GPIO_I2C_SDAROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PIN_DEFAULT (_GPIO_I2C_SDAROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+
+/* Bit fields for GPIO_LETIMER ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN (0x1UL << 0) /**< OUT0 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_SHIFT 0 /**< Shift value for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN (0x1UL << 1) /**< OUT1 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_SHIFT 1 /**< Shift value for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+
+/* Bit fields for GPIO_LETIMER OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+
+/* Bit fields for GPIO_LETIMER OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_MASK 0x00007FFFUL /**< Mask for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN (0x1UL << 0) /**< ANT0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_SHIFT 0 /**< Shift value for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_MASK 0x1UL /**< Bit mask for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN (0x1UL << 1) /**< ANT1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_SHIFT 1 /**< Shift value for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_MASK 0x2UL /**< Bit mask for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN (0x1UL << 2) /**< ANTROLLOVER pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_SHIFT 2 /**< Shift value for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_MASK 0x4UL /**< Bit mask for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN (0x1UL << 3) /**< ANTRR0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_SHIFT 3 /**< Shift value for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_MASK 0x8UL /**< Bit mask for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN (0x1UL << 4) /**< ANTRR1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_SHIFT 4 /**< Shift value for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_MASK 0x10UL /**< Bit mask for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN (0x1UL << 5) /**< ANTRR2 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_SHIFT 5 /**< Shift value for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_MASK 0x20UL /**< Bit mask for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN (0x1UL << 6) /**< ANTRR3 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_SHIFT 6 /**< Shift value for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_MASK 0x40UL /**< Bit mask for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN (0x1UL << 7) /**< ANTRR4 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_SHIFT 7 /**< Shift value for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_MASK 0x80UL /**< Bit mask for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN (0x1UL << 8) /**< ANTRR5 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_SHIFT 8 /**< Shift value for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_MASK 0x100UL /**< Bit mask for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN (0x1UL << 9) /**< ANTSWEN pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_SHIFT 9 /**< Shift value for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_MASK 0x200UL /**< Bit mask for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN (0x1UL << 10) /**< ANTSWUS pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_SHIFT 10 /**< Shift value for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_MASK 0x400UL /**< Bit mask for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN (0x1UL << 11) /**< ANTTRIG pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_SHIFT 11 /**< Shift value for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_MASK 0x800UL /**< Bit mask for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN (0x1UL << 12) /**< ANTTRIGSTOP pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_SHIFT 12 /**< Shift value for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_MASK 0x1000UL /**< Bit mask for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN (0x1UL << 13) /**< DCLK pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_SHIFT 13 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_MASK 0x2000UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN (0x1UL << 14) /**< DOUT pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_SHIFT 14 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_MASK 0x4000UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+
+/* Bit fields for GPIO_MODEM ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+#define _GPIO_MODEM_ANT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+#define _GPIO_MODEM_ANT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+
+/* Bit fields for GPIO_MODEM DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PORT_DEFAULT (_GPIO_MODEM_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+#define _GPIO_MODEM_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PIN_DEFAULT (_GPIO_MODEM_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+
+/* Bit fields for GPIO_MODEM DINROUTE */
+#define _GPIO_MODEM_DINROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PORT_DEFAULT (_GPIO_MODEM_DINROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+#define _GPIO_MODEM_DINROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PIN_DEFAULT (_GPIO_MODEM_DINROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+
+/* Bit fields for GPIO_MODEM DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PORT_DEFAULT (_GPIO_MODEM_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+#define _GPIO_MODEM_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PIN_DEFAULT (_GPIO_MODEM_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+
+/* Bit fields for GPIO_PDM ROUTEEN */
+#define _GPIO_PDM_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_ROUTEEN */
+#define _GPIO_PDM_ROUTEEN_MASK 0x00000001UL /**< Mask for GPIO_PDM_ROUTEEN */
+#define GPIO_PDM_ROUTEEN_CLKPEN (0x1UL << 0) /**< CLK pin enable control bit */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_SHIFT 0 /**< Shift value for GPIO_CLKPEN */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_MASK 0x1UL /**< Bit mask for GPIO_CLKPEN */
+#define _GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_ROUTEEN */
+#define GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT (_GPIO_PDM_ROUTEEN_CLKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_ROUTEEN */
+
+/* Bit fields for GPIO_PDM CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_CLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_CLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define GPIO_PDM_CLKROUTE_PORT_DEFAULT (_GPIO_PDM_CLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define _GPIO_PDM_CLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_CLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_CLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_CLKROUTE */
+#define GPIO_PDM_CLKROUTE_PIN_DEFAULT (_GPIO_PDM_CLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_CLKROUTE */
+
+/* Bit fields for GPIO_PDM DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_DAT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_DAT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define GPIO_PDM_DAT0ROUTE_PORT_DEFAULT (_GPIO_PDM_DAT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define _GPIO_PDM_DAT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_DAT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_DAT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+#define GPIO_PDM_DAT0ROUTE_PIN_DEFAULT (_GPIO_PDM_DAT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_DAT0ROUTE */
+
+/* Bit fields for GPIO_PDM DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PDM_DAT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PDM_DAT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define GPIO_PDM_DAT1ROUTE_PORT_DEFAULT (_GPIO_PDM_DAT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define _GPIO_PDM_DAT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PDM_DAT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PDM_DAT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+#define GPIO_PDM_DAT1ROUTE_PIN_DEFAULT (_GPIO_PDM_DAT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PDM_DAT1ROUTE */
+
+/* Bit fields for GPIO_PRS ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_MASK 0x0000FFFFUL /**< Mask for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN (0x1UL << 0) /**< ASYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_SHIFT 0 /**< Shift value for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_MASK 0x1UL /**< Bit mask for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN (0x1UL << 1) /**< ASYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_SHIFT 1 /**< Shift value for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_MASK 0x2UL /**< Bit mask for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN (0x1UL << 2) /**< ASYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_SHIFT 2 /**< Shift value for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_MASK 0x4UL /**< Bit mask for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN (0x1UL << 3) /**< ASYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_SHIFT 3 /**< Shift value for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_MASK 0x8UL /**< Bit mask for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN (0x1UL << 4) /**< ASYNCH4 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_SHIFT 4 /**< Shift value for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_MASK 0x10UL /**< Bit mask for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN (0x1UL << 5) /**< ASYNCH5 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_SHIFT 5 /**< Shift value for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_MASK 0x20UL /**< Bit mask for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN (0x1UL << 6) /**< ASYNCH6 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_SHIFT 6 /**< Shift value for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_MASK 0x40UL /**< Bit mask for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN (0x1UL << 7) /**< ASYNCH7 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_SHIFT 7 /**< Shift value for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_MASK 0x80UL /**< Bit mask for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN (0x1UL << 8) /**< ASYNCH8 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_SHIFT 8 /**< Shift value for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_MASK 0x100UL /**< Bit mask for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN (0x1UL << 9) /**< ASYNCH9 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_SHIFT 9 /**< Shift value for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_MASK 0x200UL /**< Bit mask for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN (0x1UL << 10) /**< ASYNCH10 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_SHIFT 10 /**< Shift value for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_MASK 0x400UL /**< Bit mask for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN (0x1UL << 11) /**< ASYNCH11 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_SHIFT 11 /**< Shift value for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_MASK 0x800UL /**< Bit mask for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN (0x1UL << 12) /**< SYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_SHIFT 12 /**< Shift value for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_MASK 0x1000UL /**< Bit mask for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN (0x1UL << 13) /**< SYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_SHIFT 13 /**< Shift value for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_MASK 0x2000UL /**< Bit mask for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN (0x1UL << 14) /**< SYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_SHIFT 14 /**< Shift value for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_MASK 0x4000UL /**< Bit mask for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN (0x1UL << 15) /**< SYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_SHIFT 15 /**< Shift value for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_MASK 0x8000UL /**< Bit mask for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT << 15) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+
+/* Bit fields for GPIO_PRS ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+
+/* Bit fields for GPIO_TIMER ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_MASK 0x0000003FUL /**< Mask for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN (0x1UL << 0) /**< CC0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_SHIFT 0 /**< Shift value for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_MASK 0x1UL /**< Bit mask for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN (0x1UL << 1) /**< CC1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_SHIFT 1 /**< Shift value for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_MASK 0x2UL /**< Bit mask for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN (0x1UL << 2) /**< CC2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_SHIFT 2 /**< Shift value for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_MASK 0x4UL /**< Bit mask for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN (0x1UL << 3) /**< CDTI0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_SHIFT 3 /**< Shift value for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_MASK 0x8UL /**< Bit mask for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN (0x1UL << 4) /**< CDTI1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_SHIFT 4 /**< Shift value for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_MASK 0x10UL /**< Bit mask for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN (0x1UL << 5) /**< CDTI2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_SHIFT 5 /**< Shift value for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_MASK 0x20UL /**< Bit mask for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+
+/* Bit fields for GPIO_TIMER CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+#define _GPIO_TIMER_CC0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+#define _GPIO_TIMER_CC1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+#define _GPIO_TIMER_CC2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+
+/* Bit fields for GPIO_USART ROUTEEN */
+#define _GPIO_USART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_ROUTEEN */
+#define _GPIO_USART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN_DEFAULT (_GPIO_USART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_USART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN_DEFAULT (_GPIO_USART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CLKPEN_SHIFT 3 /**< Shift value for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_MASK 0x8UL /**< Bit mask for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN_DEFAULT (_GPIO_USART_ROUTEEN_CLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN_DEFAULT (_GPIO_USART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+
+/* Bit fields for GPIO_USART CSROUTE */
+#define _GPIO_USART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PORT_DEFAULT (_GPIO_USART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PIN_DEFAULT (_GPIO_USART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+
+/* Bit fields for GPIO_USART CTSROUTE */
+#define _GPIO_USART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PORT_DEFAULT (_GPIO_USART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+#define _GPIO_USART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PIN_DEFAULT (_GPIO_USART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+
+/* Bit fields for GPIO_USART RTSROUTE */
+#define _GPIO_USART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PORT_DEFAULT (_GPIO_USART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+#define _GPIO_USART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PIN_DEFAULT (_GPIO_USART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+
+/* Bit fields for GPIO_USART RXROUTE */
+#define _GPIO_USART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PORT_DEFAULT (_GPIO_USART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PIN_DEFAULT (_GPIO_USART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+
+/* Bit fields for GPIO_USART CLKROUTE */
+#define _GPIO_USART_CLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PORT_DEFAULT (_GPIO_USART_CLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+#define _GPIO_USART_CLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PIN_DEFAULT (_GPIO_USART_CLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+
+/* Bit fields for GPIO_USART TXROUTE */
+#define _GPIO_USART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PORT_DEFAULT (_GPIO_USART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PIN_DEFAULT (_GPIO_USART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_GPIO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio_port.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio_port.h
new file mode 100644
index 000000000..1fac848d1
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_gpio_port.h
@@ -0,0 +1,421 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 GPIO Port register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef GPIO_PORT_H
+#define GPIO_PORT_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @brief EFR32MG29 GPIO PORT
+ *****************************************************************************/
+typedef struct gpio_port_typedef{
+ __IOM uint32_t CTRL; /**< Port control */
+ __IOM uint32_t MODEL; /**< mode low */
+ uint32_t RESERVED0[1]; /**< Reserved for future use */
+ __IOM uint32_t MODEH; /**< mode high */
+ __IOM uint32_t DOUT; /**< data out */
+ __IM uint32_t DIN; /**< data in */
+ uint32_t RESERVED1[6]; /**< Reserved for future use */
+} GPIO_PORT_TypeDef;
+
+/* Bit fields for GPIO_P CTRL */
+#define _GPIO_P_CTRL_RESETVALUE 0x00400040UL /**< Default value for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_MASK 0x10701070UL /**< Mask for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATE_SHIFT 4 /**< Shift value for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_MASK 0x70UL /**< Bit mask for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATE_DEFAULT (_GPIO_P_CTRL_SLEWRATE_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS (0x1UL << 12) /**< Data In Disable */
+#define _GPIO_P_CTRL_DINDIS_SHIFT 12 /**< Shift value for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_MASK 0x1000UL /**< Bit mask for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS_DEFAULT (_GPIO_P_CTRL_DINDIS_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATEALT_SHIFT 20 /**< Shift value for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_MASK 0x700000UL /**< Bit mask for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATEALT_DEFAULT (_GPIO_P_CTRL_SLEWRATEALT_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT (0x1UL << 28) /**< Data In Disable Alt */
+#define _GPIO_P_CTRL_DINDISALT_SHIFT 28 /**< Shift value for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_MASK 0x10000000UL /**< Bit mask for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT_DEFAULT (_GPIO_P_CTRL_DINDISALT_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+
+/* Bit fields for GPIO_P MODEL */
+#define _GPIO_P_MODEL_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MASK 0xFFFFFFFFUL /**< Mask for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_DEFAULT (_GPIO_P_MODEL_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_DISABLED (_GPIO_P_MODEL_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUT (_GPIO_P_MODEL_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULL (_GPIO_P_MODEL_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULLFILTER (_GPIO_P_MODEL_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_PUSHPULL (_GPIO_P_MODEL_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_PUSHPULLALT (_GPIO_P_MODEL_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDOR (_GPIO_P_MODEL_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDAND (_GPIO_P_MODEL_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDFILTER (_GPIO_P_MODEL_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALT (_GPIO_P_MODEL_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE1_SHIFT 4 /**< Shift value for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_MASK 0xF0UL /**< Bit mask for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_DEFAULT (_GPIO_P_MODEL_MODE1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_DISABLED (_GPIO_P_MODEL_MODE1_DISABLED << 4) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUT (_GPIO_P_MODEL_MODE1_INPUT << 4) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULL (_GPIO_P_MODEL_MODE1_INPUTPULL << 4) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULLFILTER (_GPIO_P_MODEL_MODE1_INPUTPULLFILTER << 4) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_PUSHPULL (_GPIO_P_MODEL_MODE1_PUSHPULL << 4) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_PUSHPULLALT (_GPIO_P_MODEL_MODE1_PUSHPULLALT << 4) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDOR (_GPIO_P_MODEL_MODE1_WIREDOR << 4) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE1_WIREDORPULLDOWN << 4) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDAND (_GPIO_P_MODEL_MODE1_WIREDAND << 4) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDFILTER (_GPIO_P_MODEL_MODE1_WIREDANDFILTER << 4) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDPULLUP << 4) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER << 4) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALT (_GPIO_P_MODEL_MODE1_WIREDANDALT << 4) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTFILTER << 4) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP << 4) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER << 4) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE2_SHIFT 8 /**< Shift value for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_MASK 0xF00UL /**< Bit mask for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_DEFAULT (_GPIO_P_MODEL_MODE2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_DISABLED (_GPIO_P_MODEL_MODE2_DISABLED << 8) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUT (_GPIO_P_MODEL_MODE2_INPUT << 8) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULL (_GPIO_P_MODEL_MODE2_INPUTPULL << 8) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULLFILTER (_GPIO_P_MODEL_MODE2_INPUTPULLFILTER << 8) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_PUSHPULL (_GPIO_P_MODEL_MODE2_PUSHPULL << 8) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_PUSHPULLALT (_GPIO_P_MODEL_MODE2_PUSHPULLALT << 8) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDOR (_GPIO_P_MODEL_MODE2_WIREDOR << 8) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE2_WIREDORPULLDOWN << 8) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDAND (_GPIO_P_MODEL_MODE2_WIREDAND << 8) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDFILTER (_GPIO_P_MODEL_MODE2_WIREDANDFILTER << 8) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDPULLUP << 8) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER << 8) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALT (_GPIO_P_MODEL_MODE2_WIREDANDALT << 8) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTFILTER << 8) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP << 8) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER << 8) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE3_SHIFT 12 /**< Shift value for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_MASK 0xF000UL /**< Bit mask for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_DEFAULT (_GPIO_P_MODEL_MODE3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_DISABLED (_GPIO_P_MODEL_MODE3_DISABLED << 12) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUT (_GPIO_P_MODEL_MODE3_INPUT << 12) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULL (_GPIO_P_MODEL_MODE3_INPUTPULL << 12) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULLFILTER (_GPIO_P_MODEL_MODE3_INPUTPULLFILTER << 12) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_PUSHPULL (_GPIO_P_MODEL_MODE3_PUSHPULL << 12) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_PUSHPULLALT (_GPIO_P_MODEL_MODE3_PUSHPULLALT << 12) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDOR (_GPIO_P_MODEL_MODE3_WIREDOR << 12) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE3_WIREDORPULLDOWN << 12) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDAND (_GPIO_P_MODEL_MODE3_WIREDAND << 12) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDFILTER (_GPIO_P_MODEL_MODE3_WIREDANDFILTER << 12) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDPULLUP << 12) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER << 12) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALT (_GPIO_P_MODEL_MODE3_WIREDANDALT << 12) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTFILTER << 12) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP << 12) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER << 12) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE4_SHIFT 16 /**< Shift value for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_MASK 0xF0000UL /**< Bit mask for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_DEFAULT (_GPIO_P_MODEL_MODE4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_DISABLED (_GPIO_P_MODEL_MODE4_DISABLED << 16) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUT (_GPIO_P_MODEL_MODE4_INPUT << 16) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULL (_GPIO_P_MODEL_MODE4_INPUTPULL << 16) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULLFILTER (_GPIO_P_MODEL_MODE4_INPUTPULLFILTER << 16) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_PUSHPULL (_GPIO_P_MODEL_MODE4_PUSHPULL << 16) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_PUSHPULLALT (_GPIO_P_MODEL_MODE4_PUSHPULLALT << 16) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDOR (_GPIO_P_MODEL_MODE4_WIREDOR << 16) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE4_WIREDORPULLDOWN << 16) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDAND (_GPIO_P_MODEL_MODE4_WIREDAND << 16) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDFILTER (_GPIO_P_MODEL_MODE4_WIREDANDFILTER << 16) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDPULLUP << 16) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER << 16) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALT (_GPIO_P_MODEL_MODE4_WIREDANDALT << 16) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTFILTER << 16) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP << 16) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER << 16) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE5_SHIFT 20 /**< Shift value for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_MASK 0xF00000UL /**< Bit mask for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_DEFAULT (_GPIO_P_MODEL_MODE5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_DISABLED (_GPIO_P_MODEL_MODE5_DISABLED << 20) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUT (_GPIO_P_MODEL_MODE5_INPUT << 20) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULL (_GPIO_P_MODEL_MODE5_INPUTPULL << 20) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULLFILTER (_GPIO_P_MODEL_MODE5_INPUTPULLFILTER << 20) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_PUSHPULL (_GPIO_P_MODEL_MODE5_PUSHPULL << 20) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_PUSHPULLALT (_GPIO_P_MODEL_MODE5_PUSHPULLALT << 20) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDOR (_GPIO_P_MODEL_MODE5_WIREDOR << 20) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE5_WIREDORPULLDOWN << 20) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDAND (_GPIO_P_MODEL_MODE5_WIREDAND << 20) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDFILTER (_GPIO_P_MODEL_MODE5_WIREDANDFILTER << 20) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDPULLUP << 20) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER << 20) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALT (_GPIO_P_MODEL_MODE5_WIREDANDALT << 20) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTFILTER << 20) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP << 20) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER << 20) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE6_SHIFT 24 /**< Shift value for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_MASK 0xF000000UL /**< Bit mask for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_DEFAULT (_GPIO_P_MODEL_MODE6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_DISABLED (_GPIO_P_MODEL_MODE6_DISABLED << 24) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUT (_GPIO_P_MODEL_MODE6_INPUT << 24) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULL (_GPIO_P_MODEL_MODE6_INPUTPULL << 24) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULLFILTER (_GPIO_P_MODEL_MODE6_INPUTPULLFILTER << 24) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_PUSHPULL (_GPIO_P_MODEL_MODE6_PUSHPULL << 24) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_PUSHPULLALT (_GPIO_P_MODEL_MODE6_PUSHPULLALT << 24) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDOR (_GPIO_P_MODEL_MODE6_WIREDOR << 24) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE6_WIREDORPULLDOWN << 24) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDAND (_GPIO_P_MODEL_MODE6_WIREDAND << 24) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDFILTER (_GPIO_P_MODEL_MODE6_WIREDANDFILTER << 24) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDPULLUP << 24) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER << 24) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALT (_GPIO_P_MODEL_MODE6_WIREDANDALT << 24) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTFILTER << 24) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP << 24) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER << 24) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE7_SHIFT 28 /**< Shift value for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_MASK 0xF0000000UL /**< Bit mask for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_DEFAULT (_GPIO_P_MODEL_MODE7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_DISABLED (_GPIO_P_MODEL_MODE7_DISABLED << 28) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUT (_GPIO_P_MODEL_MODE7_INPUT << 28) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULL (_GPIO_P_MODEL_MODE7_INPUTPULL << 28) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULLFILTER (_GPIO_P_MODEL_MODE7_INPUTPULLFILTER << 28) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_PUSHPULL (_GPIO_P_MODEL_MODE7_PUSHPULL << 28) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_PUSHPULLALT (_GPIO_P_MODEL_MODE7_PUSHPULLALT << 28) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDOR (_GPIO_P_MODEL_MODE7_WIREDOR << 28) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE7_WIREDORPULLDOWN << 28) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDAND (_GPIO_P_MODEL_MODE7_WIREDAND << 28) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDFILTER (_GPIO_P_MODEL_MODE7_WIREDANDFILTER << 28) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDPULLUP << 28) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER << 28) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALT (_GPIO_P_MODEL_MODE7_WIREDANDALT << 28) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTFILTER << 28) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP << 28) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER << 28) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+
+/* Bit fields for GPIO_P MODEH */
+#define _GPIO_P_MODEH_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MASK 0x0000000FUL /**< Mask for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_DEFAULT (_GPIO_P_MODEH_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_DISABLED (_GPIO_P_MODEH_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUT (_GPIO_P_MODEH_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULL (_GPIO_P_MODEH_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULLFILTER (_GPIO_P_MODEH_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_PUSHPULL (_GPIO_P_MODEH_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_PUSHPULLALT (_GPIO_P_MODEH_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDOR (_GPIO_P_MODEH_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEH_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDAND (_GPIO_P_MODEH_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDFILTER (_GPIO_P_MODEH_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALT (_GPIO_P_MODEH_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+
+/* Bit fields for GPIO_P DOUT */
+#define _GPIO_P_DOUT_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_MASK 0x000001FFUL /**< Mask for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_DOUT_SHIFT 0 /**< Shift value for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_MASK 0x1FFUL /**< Bit mask for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DOUT */
+#define GPIO_P_DOUT_DOUT_DEFAULT (_GPIO_P_DOUT_DOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DOUT */
+
+/* Bit fields for GPIO_P DIN */
+#define _GPIO_P_DIN_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DIN */
+#define _GPIO_P_DIN_MASK 0x000001FFUL /**< Mask for GPIO_P_DIN */
+#define _GPIO_P_DIN_DIN_SHIFT 0 /**< Shift value for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_MASK 0x1FFUL /**< Bit mask for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DIN */
+#define GPIO_P_DIN_DIN_DEFAULT (_GPIO_P_DIN_DIN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DIN */
+/** @} End of group Parts */
+
+#endif // GPIO_PORT_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfrco.h
new file mode 100644
index 000000000..3e9908209
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfrco.h
@@ -0,0 +1,226 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 HFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_HFRCO_H
+#define EFR32MG29_HFRCO_H
+#define HFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_HFRCO HFRCO
+ * @{
+ * @brief EFR32MG29 HFRCO Register Declaration.
+ *****************************************************************************/
+
+/** HFRCO Register Declaration. */
+typedef struct hfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t CTRL; /**< Ctrl Register */
+ __IOM uint32_t CAL; /**< Calibration Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED1[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t CTRL_SET; /**< Ctrl Register */
+ __IOM uint32_t CAL_SET; /**< Calibration Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED3[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t CTRL_CLR; /**< Ctrl Register */
+ __IOM uint32_t CAL_CLR; /**< Calibration Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED5[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t CTRL_TGL; /**< Ctrl Register */
+ __IOM uint32_t CAL_TGL; /**< Calibration Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+} HFRCO_TypeDef;
+/** @} End of group EFR32MG29_HFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_HFRCO
+ * @{
+ * @defgroup EFR32MG29_HFRCO_BitFields HFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFRCO IPVERSION */
+#define _HFRCO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_IPVERSION */
+#define HFRCO_IPVERSION_IPVERSION_DEFAULT (_HFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IPVERSION */
+
+/* Bit fields for HFRCO CTRL */
+#define _HFRCO_CTRL_RESETVALUE 0x00000000UL /**< Default value for HFRCO_CTRL */
+#define _HFRCO_CTRL_MASK 0x00000007UL /**< Mask for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _HFRCO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN_DEFAULT (_HFRCO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-demand */
+#define _HFRCO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND_DEFAULT (_HFRCO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND (0x1UL << 2) /**< EM23 On-demand */
+#define _HFRCO_CTRL_EM23ONDEMAND_SHIFT 2 /**< Shift value for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_MASK 0x4UL /**< Bit mask for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND_DEFAULT (_HFRCO_CTRL_EM23ONDEMAND_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+
+/* Bit fields for HFRCO CAL */
+#define _HFRCO_CAL_RESETVALUE 0xA8689F7FUL /**< Default value for HFRCO_CAL */
+#define _HFRCO_CAL_MASK 0xFFFFBF7FUL /**< Mask for HFRCO_CAL */
+#define _HFRCO_CAL_TUNING_SHIFT 0 /**< Shift value for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_MASK 0x7FUL /**< Bit mask for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_DEFAULT 0x0000007FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_TUNING_DEFAULT (_HFRCO_CAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FINETUNING_SHIFT 8 /**< Shift value for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_DEFAULT 0x0000001FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FINETUNING_DEFAULT (_HFRCO_CAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP (0x1UL << 15) /**< LDO High Power Mode */
+#define _HFRCO_CAL_LDOHP_SHIFT 15 /**< Shift value for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_MASK 0x8000UL /**< Bit mask for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP_DEFAULT (_HFRCO_CAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FREQRANGE_SHIFT 16 /**< Shift value for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_DEFAULT 0x00000008UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FREQRANGE_DEFAULT (_HFRCO_CAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CMPBIAS_SHIFT 21 /**< Shift value for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPBIAS_DEFAULT (_HFRCO_CAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_SHIFT 24 /**< Shift value for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV1 0x00000000UL /**< Mode DIV1 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV2 0x00000001UL /**< Mode DIV2 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV4 0x00000002UL /**< Mode DIV4 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DEFAULT (_HFRCO_CAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV1 (_HFRCO_CAL_CLKDIV_DIV1 << 24) /**< Shifted mode DIV1 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV2 (_HFRCO_CAL_CLKDIV_DIV2 << 24) /**< Shifted mode DIV2 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV4 (_HFRCO_CAL_CLKDIV_DIV4 << 24) /**< Shifted mode DIV4 for HFRCO_CAL */
+#define _HFRCO_CAL_CMPSEL_SHIFT 26 /**< Shift value for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPSEL_DEFAULT (_HFRCO_CAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_IREFTC_SHIFT 28 /**< Shift value for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_DEFAULT 0x0000000AUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_IREFTC_DEFAULT (_HFRCO_CAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for HFRCO_CAL */
+
+/* Bit fields for HFRCO STATUS */
+#define _HFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFRCO_STATUS */
+#define _HFRCO_STATUS_MASK 0x80010007UL /**< Mask for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY (0x1UL << 0) /**< Ready */
+#define _HFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY_DEFAULT (_HFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY (0x1UL << 1) /**< Frequency Updating Busy */
+#define _HFRCO_STATUS_FREQBSY_SHIFT 1 /**< Shift value for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_MASK 0x2UL /**< Bit mask for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY_DEFAULT (_HFRCO_STATUS_FREQBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY (0x1UL << 2) /**< Synchronization Busy */
+#define _HFRCO_STATUS_SYNCBUSY_SHIFT 2 /**< Shift value for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_MASK 0x4UL /**< Bit mask for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY_DEFAULT (_HFRCO_STATUS_SYNCBUSY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _HFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS_DEFAULT (_HFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _HFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_DEFAULT (_HFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_UNLOCKED (_HFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_LOCKED (_HFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFRCO_STATUS */
+
+/* Bit fields for HFRCO IF */
+#define _HFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IF */
+#define _HFRCO_IF_MASK 0x00000001UL /**< Mask for HFRCO_IF */
+#define HFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _HFRCO_IF_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IF */
+#define HFRCO_IF_RDY_DEFAULT (_HFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IF */
+
+/* Bit fields for HFRCO IEN */
+#define _HFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IEN */
+#define _HFRCO_IEN_MASK 0x00000001UL /**< Mask for HFRCO_IEN */
+#define HFRCO_IEN_RDY (0x1UL << 0) /**< RDY Interrupt Enable */
+#define _HFRCO_IEN_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IEN */
+#define HFRCO_IEN_RDY_DEFAULT (_HFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IEN */
+
+/* Bit fields for HFRCO LOCK */
+#define _HFRCO_LOCK_RESETVALUE 0x00008195UL /**< Default value for HFRCO_LOCK */
+#define _HFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_DEFAULT 0x00008195UL /**< Mode DEFAULT for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_UNLOCK 0x00008195UL /**< Mode UNLOCK for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_DEFAULT (_HFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_UNLOCK (_HFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFRCO_LOCK */
+
+/** @} End of group EFR32MG29_HFRCO_BitFields */
+/** @} End of group EFR32MG29_HFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_HFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfxo.h
new file mode 100644
index 000000000..1ded99f81
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_hfxo.h
@@ -0,0 +1,463 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 HFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_HFXO_H
+#define EFR32MG29_HFXO_H
+#define HFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_HFXO HFXO
+ * @{
+ * @brief EFR32MG29 HFXO Register Declaration.
+ *****************************************************************************/
+
+/** HFXO Register Declaration. */
+typedef struct hfxo_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG; /**< Crystal Configuration Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL; /**< Crystal Control Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control Register */
+ uint32_t RESERVED4[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED6[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED8[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED9[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_SET; /**< Crystal Configuration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_SET; /**< Crystal Control Register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ uint32_t RESERVED13[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED15[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED17[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_CLR; /**< Crystal Configuration Register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_CLR; /**< Crystal Control Register */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ uint32_t RESERVED22[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED24[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED25[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED26[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_TGL; /**< Crystal Configuration Register */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_TGL; /**< Crystal Control Register */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ uint32_t RESERVED31[9U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED33[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED34[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} HFXO_TypeDef;
+/** @} End of group EFR32MG29_HFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_HFXO
+ * @{
+ * @defgroup EFR32MG29_HFXO_BitFields HFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFXO IPVERSION */
+#define _HFXO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFXO_IPVERSION */
+#define HFXO_IPVERSION_IPVERSION_DEFAULT (_HFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IPVERSION */
+
+/* Bit fields for HFXO XTALCFG */
+#define _HFXO_XTALCFG_RESETVALUE 0x044334CBUL /**< Default value for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_MASK 0x0FFFFFFFUL /**< Mask for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_SHIFT 0 /**< Shift value for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_MASK 0x3FUL /**< Bit mask for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT 0x0000000BUL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_SHIFT 6 /**< Shift value for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_MASK 0xFC0UL /**< Bit mask for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT 0x00000013UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT << 6) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_SHIFT 12 /**< Shift value for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_MASK 0xF000UL /**< Bit mask for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT << 12) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_SHIFT 16 /**< Shift value for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_MASK 0xF0000UL /**< Bit mask for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_SHIFT 20 /**< Shift value for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_MASK 0xF00000UL /**< Bit mask for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT 0x00000004UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T16US 0x00000000UL /**< Mode T16US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T41US 0x00000001UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T83US 0x00000002UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T125US 0x00000003UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T166US 0x00000004UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T208US 0x00000005UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T250US 0x00000006UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T333US 0x00000007UL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T416US 0x00000008UL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T500US 0x00000009UL /**< Mode T500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T666US 0x0000000AUL /**< Mode T666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T833US 0x0000000BUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T1666US 0x0000000CUL /**< Mode T1666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T2500US 0x0000000DUL /**< Mode T2500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T4166US 0x0000000EUL /**< Mode T4166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T7500US 0x0000000FUL /**< Mode T7500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT (_HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T16US (_HFXO_XTALCFG_TIMEOUTSTEADY_T16US << 20) /**< Shifted mode T16US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T41US (_HFXO_XTALCFG_TIMEOUTSTEADY_T41US << 20) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T83US (_HFXO_XTALCFG_TIMEOUTSTEADY_T83US << 20) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T125US (_HFXO_XTALCFG_TIMEOUTSTEADY_T125US << 20) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T166US << 20) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T208US (_HFXO_XTALCFG_TIMEOUTSTEADY_T208US << 20) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T250US (_HFXO_XTALCFG_TIMEOUTSTEADY_T250US << 20) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T333US (_HFXO_XTALCFG_TIMEOUTSTEADY_T333US << 20) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T416US (_HFXO_XTALCFG_TIMEOUTSTEADY_T416US << 20) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T500US << 20) /**< Shifted mode T500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T666US << 20) /**< Shifted mode T666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T833US (_HFXO_XTALCFG_TIMEOUTSTEADY_T833US << 20) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T1666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T1666US << 20) /**< Shifted mode T1666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T2500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T2500US << 20) /**< Shifted mode T2500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T4166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T4166US << 20) /**< Shifted mode T4166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T7500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T7500US << 20) /**< Shifted mode T7500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_SHIFT 24 /**< Shift value for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_MASK 0xF000000UL /**< Bit mask for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT 0x00000004UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T8US 0x00000000UL /**< Mode T8US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T20US 0x00000001UL /**< Mode T20US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T41US 0x00000002UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T62US 0x00000003UL /**< Mode T62US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T83US 0x00000004UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T104US 0x00000005UL /**< Mode T104US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T125US 0x00000006UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T166US 0x00000007UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T208US 0x00000008UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T250US 0x00000009UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T333US 0x0000000AUL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T416US 0x0000000BUL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T833US 0x0000000CUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T1250US 0x0000000DUL /**< Mode T1250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T2083US 0x0000000EUL /**< Mode T2083US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T3750US 0x0000000FUL /**< Mode T3750US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT (_HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T8US (_HFXO_XTALCFG_TIMEOUTCBLSB_T8US << 24) /**< Shifted mode T8US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T20US (_HFXO_XTALCFG_TIMEOUTCBLSB_T20US << 24) /**< Shifted mode T20US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T41US (_HFXO_XTALCFG_TIMEOUTCBLSB_T41US << 24) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T62US (_HFXO_XTALCFG_TIMEOUTCBLSB_T62US << 24) /**< Shifted mode T62US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T83US (_HFXO_XTALCFG_TIMEOUTCBLSB_T83US << 24) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T104US (_HFXO_XTALCFG_TIMEOUTCBLSB_T104US << 24) /**< Shifted mode T104US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T125US (_HFXO_XTALCFG_TIMEOUTCBLSB_T125US << 24) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T166US (_HFXO_XTALCFG_TIMEOUTCBLSB_T166US << 24) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T208US (_HFXO_XTALCFG_TIMEOUTCBLSB_T208US << 24) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T250US << 24) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T333US (_HFXO_XTALCFG_TIMEOUTCBLSB_T333US << 24) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T416US (_HFXO_XTALCFG_TIMEOUTCBLSB_T416US << 24) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T833US (_HFXO_XTALCFG_TIMEOUTCBLSB_T833US << 24) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T1250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T1250US << 24) /**< Shifted mode T1250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T2083US (_HFXO_XTALCFG_TIMEOUTCBLSB_T2083US << 24) /**< Shifted mode T2083US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T3750US (_HFXO_XTALCFG_TIMEOUTCBLSB_T3750US << 24) /**< Shifted mode T3750US for HFXO_XTALCFG */
+
+/* Bit fields for HFXO XTALCTRL */
+#define _HFXO_XTALCTRL_RESETVALUE 0x0F8C8C10UL /**< Default value for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_MASK 0x8FFFFFFFUL /**< Mask for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREBIASANA_SHIFT 0 /**< Shift value for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_MASK 0xFFUL /**< Bit mask for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_DEFAULT 0x00000010UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREBIASANA_DEFAULT (_HFXO_XTALCTRL_COREBIASANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXIANA_SHIFT 8 /**< Shift value for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_MASK 0xFF00UL /**< Bit mask for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_DEFAULT 0x0000008CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXIANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXIANA_DEFAULT << 8) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXOANA_SHIFT 16 /**< Shift value for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_MASK 0xFF0000UL /**< Bit mask for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_DEFAULT 0x0000008CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXOANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXOANA_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_SHIFT 24 /**< Shift value for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_MASK 0x3000000UL /**< Bit mask for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XI 0x00000001UL /**< Mode XI for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XO 0x00000002UL /**< Mode XO for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_BOTH 0x00000003UL /**< Mode BOTH for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT (_HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_NONE (_HFXO_XTALCTRL_CTUNEFIXANA_NONE << 24) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XI (_HFXO_XTALCTRL_CTUNEFIXANA_XI << 24) /**< Shifted mode XI for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XO (_HFXO_XTALCTRL_CTUNEFIXANA_XO << 24) /**< Shifted mode XO for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_BOTH (_HFXO_XTALCTRL_CTUNEFIXANA_BOTH << 24) /**< Shifted mode BOTH for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_SHIFT 26 /**< Shift value for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_MASK 0xC000000UL /**< Bit mask for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN33 0x00000001UL /**< Mode DGEN33 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN50 0x00000002UL /**< Mode DGEN50 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN100 0x00000003UL /**< Mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DEFAULT (_HFXO_XTALCTRL_COREDGENANA_DEFAULT << 26) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_NONE (_HFXO_XTALCTRL_COREDGENANA_NONE << 26) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN33 (_HFXO_XTALCTRL_COREDGENANA_DGEN33 << 26) /**< Shifted mode DGEN33 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN50 (_HFXO_XTALCTRL_COREDGENANA_DGEN50 << 26) /**< Shifted mode DGEN50 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN100 (_HFXO_XTALCTRL_COREDGENANA_DGEN100 << 26) /**< Shifted mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT (0x1UL << 31) /**< Skip Core Bias Optimization */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_SHIFT 31 /**< Shift value for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_MASK 0x80000000UL /**< Bit mask for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT (_HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+
+/* Bit fields for HFXO CFG */
+#define _HFXO_CFG_RESETVALUE 0x10000000UL /**< Default value for HFXO_CFG */
+#define _HFXO_CFG_MASK 0xF000000DUL /**< Mask for HFXO_CFG */
+#define HFXO_CFG_MODE (0x1UL << 0) /**< Crystal Oscillator Mode */
+#define _HFXO_CFG_MODE_SHIFT 0 /**< Shift value for HFXO_MODE */
+#define _HFXO_CFG_MODE_MASK 0x1UL /**< Bit mask for HFXO_MODE */
+#define _HFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for HFXO_CFG */
+#define _HFXO_CFG_MODE_EXTCLK 0x00000001UL /**< Mode EXTCLK for HFXO_CFG */
+#define HFXO_CFG_MODE_DEFAULT (_HFXO_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_MODE_XTAL (_HFXO_CFG_MODE_XTAL << 0) /**< Shifted mode XTAL for HFXO_CFG */
+#define HFXO_CFG_MODE_EXTCLK (_HFXO_CFG_MODE_EXTCLK << 0) /**< Shifted mode EXTCLK for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA (0x1UL << 2) /**< Enable XI Internal DC Bias */
+#define _HFXO_CFG_ENXIDCBIASANA_SHIFT 2 /**< Shift value for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_MASK 0x4UL /**< Bit mask for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA_DEFAULT (_HFXO_CFG_ENXIDCBIASANA_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA (0x1UL << 3) /**< Squaring Buffer Schmitt Trigger */
+#define _HFXO_CFG_SQBUFSCHTRGANA_SHIFT 3 /**< Shift value for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_MASK 0x8UL /**< Bit mask for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DEFAULT (_HFXO_CFG_SQBUFSCHTRGANA_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DISABLE (_HFXO_CFG_SQBUFSCHTRGANA_DISABLE << 3) /**< Shifted mode DISABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_ENABLE (_HFXO_CFG_SQBUFSCHTRGANA_ENABLE << 3) /**< Shifted mode ENABLE for HFXO_CFG */
+
+/* Bit fields for HFXO CTRL */
+#define _HFXO_CTRL_RESETVALUE 0x00000002UL /**< Default value for HFXO_CTRL */
+#define _HFXO_CTRL_MASK 0x80000037UL /**< Mask for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _HFXO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN_DEFAULT (_HFXO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-demand Mode */
+#define _HFXO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND_DEFAULT (_HFXO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM (0x1UL << 2) /**< Keep Warm */
+#define _HFXO_CTRL_KEEPWARM_SHIFT 2 /**< Shift value for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_MASK 0x4UL /**< Bit mask for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM_DEFAULT (_HFXO_CTRL_KEEPWARM_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA (0x1UL << 4) /**< Force XI Pin to Ground */
+#define _HFXO_CTRL_FORCEXI2GNDANA_SHIFT 4 /**< Shift value for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_MASK 0x10UL /**< Bit mask for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXI2GNDANA_DEFAULT << 4) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DISABLE (_HFXO_CTRL_FORCEXI2GNDANA_DISABLE << 4) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_ENABLE (_HFXO_CTRL_FORCEXI2GNDANA_ENABLE << 4) /**< Shifted mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA (0x1UL << 5) /**< Force XO Pin to Ground */
+#define _HFXO_CTRL_FORCEXO2GNDANA_SHIFT 5 /**< Shift value for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_MASK 0x20UL /**< Bit mask for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXO2GNDANA_DEFAULT << 5) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DISABLE (_HFXO_CTRL_FORCEXO2GNDANA_DISABLE << 5) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_ENABLE (_HFXO_CTRL_FORCEXO2GNDANA_ENABLE << 5) /**< Shifted mode ENABLE for HFXO_CTRL */
+
+/* Bit fields for HFXO CMD */
+#define _HFXO_CMD_RESETVALUE 0x00000000UL /**< Default value for HFXO_CMD */
+#define _HFXO_CMD_MASK 0x00000003UL /**< Mask for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT (0x1UL << 0) /**< Core Bias Optimizaton */
+#define _HFXO_CMD_COREBIASOPT_SHIFT 0 /**< Shift value for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_MASK 0x1UL /**< Bit mask for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT_DEFAULT (_HFXO_CMD_COREBIASOPT_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_MANUALOVERRIDE (0x1UL << 1) /**< Manual Override */
+#define _HFXO_CMD_MANUALOVERRIDE_SHIFT 1 /**< Shift value for HFXO_MANUALOVERRIDE */
+#define _HFXO_CMD_MANUALOVERRIDE_MASK 0x2UL /**< Bit mask for HFXO_MANUALOVERRIDE */
+#define _HFXO_CMD_MANUALOVERRIDE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_MANUALOVERRIDE_DEFAULT (_HFXO_CMD_MANUALOVERRIDE_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_CMD */
+
+/* Bit fields for HFXO STATUS */
+#define _HFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFXO_STATUS */
+#define _HFXO_STATUS_MASK 0xC00F0003UL /**< Mask for HFXO_STATUS */
+#define HFXO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _HFXO_STATUS_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_RDY_DEFAULT (_HFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready */
+#define _HFXO_STATUS_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY_DEFAULT (_HFXO_STATUS_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _HFXO_STATUS_ENS_SHIFT 16 /**< Shift value for HFXO_ENS */
+#define _HFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFXO_ENS */
+#define _HFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS_DEFAULT (_HFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ (0x1UL << 17) /**< Oscillator Requested by Hardware */
+#define _HFXO_STATUS_HWREQ_SHIFT 17 /**< Shift value for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_MASK 0x20000UL /**< Bit mask for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ_DEFAULT (_HFXO_STATUS_HWREQ_DEFAULT << 17) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM (0x1UL << 19) /**< Oscillator Is Kept Warm */
+#define _HFXO_STATUS_ISWARM_SHIFT 19 /**< Shift value for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_MASK 0x80000UL /**< Bit mask for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM_DEFAULT (_HFXO_STATUS_ISWARM_DEFAULT << 19) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK (0x1UL << 30) /**< FSM Lock Status */
+#define _HFXO_STATUS_FSMLOCK_SHIFT 30 /**< Shift value for HFXO_FSMLOCK */
+#define _HFXO_STATUS_FSMLOCK_MASK 0x40000000UL /**< Bit mask for HFXO_FSMLOCK */
+#define _HFXO_STATUS_FSMLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define _HFXO_STATUS_FSMLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFXO_STATUS */
+#define _HFXO_STATUS_FSMLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_DEFAULT (_HFXO_STATUS_FSMLOCK_DEFAULT << 30) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_UNLOCKED (_HFXO_STATUS_FSMLOCK_UNLOCKED << 30) /**< Shifted mode UNLOCKED for HFXO_STATUS */
+#define HFXO_STATUS_FSMLOCK_LOCKED (_HFXO_STATUS_FSMLOCK_LOCKED << 30) /**< Shifted mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _HFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_DEFAULT (_HFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_UNLOCKED (_HFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_LOCKED (_HFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFXO_STATUS */
+
+/* Bit fields for HFXO IF */
+#define _HFXO_IF_RESETVALUE 0x00000000UL /**< Default value for HFXO_IF */
+#define _HFXO_IF_MASK 0xE0000003UL /**< Mask for HFXO_IF */
+#define HFXO_IF_RDY (0x1UL << 0) /**< Ready Interrupt */
+#define _HFXO_IF_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IF_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_RDY_DEFAULT (_HFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IF_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY_DEFAULT (_HFXO_IF_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IF_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR_DEFAULT (_HFXO_IF_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IF_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR_DEFAULT (_HFXO_IF_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IF */
+
+/* Bit fields for HFXO IEN */
+#define _HFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFXO_IEN */
+#define _HFXO_IEN_MASK 0xE0000003UL /**< Mask for HFXO_IEN */
+#define HFXO_IEN_RDY (0x1UL << 0) /**< Ready Interrupt */
+#define _HFXO_IEN_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_RDY_DEFAULT (_HFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IEN_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY_DEFAULT (_HFXO_IEN_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IEN_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR_DEFAULT (_HFXO_IEN_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IEN_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR_DEFAULT (_HFXO_IEN_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IEN */
+
+/* Bit fields for HFXO LOCK */
+#define _HFXO_LOCK_RESETVALUE 0x0000580EUL /**< Default value for HFXO_LOCK */
+#define _HFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_DEFAULT 0x0000580EUL /**< Mode DEFAULT for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_UNLOCK 0x0000580EUL /**< Mode UNLOCK for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_DEFAULT (_HFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_UNLOCK (_HFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFXO_LOCK */
+
+/** @} End of group EFR32MG29_HFXO_BitFields */
+/** @} End of group EFR32MG29_HFXO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_HFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_i2c.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_i2c.h
new file mode 100644
index 000000000..bae1b4e17
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_i2c.h
@@ -0,0 +1,744 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 I2C register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_I2C_H
+#define EFR32MG29_I2C_H
+#define I2C_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_I2C I2C
+ * @{
+ * @brief EFR32MG29 I2C Register Declaration.
+ *****************************************************************************/
+
+/** I2C Register Declaration. */
+typedef struct i2c_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATE; /**< State Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Division Register */
+ __IOM uint32_t SADDR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATE_SET; /**< State Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Division Register */
+ __IOM uint32_t SADDR_SET; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_SET; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_SET; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_SET; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_SET; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_SET; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATE_CLR; /**< State Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Division Register */
+ __IOM uint32_t SADDR_CLR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_CLR; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_CLR; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_CLR; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATE_TGL; /**< State Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Division Register */
+ __IOM uint32_t SADDR_TGL; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_TGL; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_TGL; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_TGL; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} I2C_TypeDef;
+/** @} End of group EFR32MG29_I2C */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_I2C
+ * @{
+ * @defgroup EFR32MG29_I2C_BitFields I2C Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for I2C IPVERSION */
+#define _I2C_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for I2C_IPVERSION */
+#define _I2C_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IPVERSION */
+#define I2C_IPVERSION_IPVERSION_DEFAULT (_I2C_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IPVERSION */
+
+/* Bit fields for I2C EN */
+#define _I2C_EN_RESETVALUE 0x00000000UL /**< Default value for I2C_EN */
+#define _I2C_EN_MASK 0x00000001UL /**< Mask for I2C_EN */
+#define I2C_EN_EN (0x1UL << 0) /**< module enable */
+#define _I2C_EN_EN_SHIFT 0 /**< Shift value for I2C_EN */
+#define _I2C_EN_EN_MASK 0x1UL /**< Bit mask for I2C_EN */
+#define _I2C_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_EN */
+#define _I2C_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_EN */
+#define _I2C_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_EN */
+#define I2C_EN_EN_DEFAULT (_I2C_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_EN */
+#define I2C_EN_EN_DISABLE (_I2C_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for I2C_EN */
+#define I2C_EN_EN_ENABLE (_I2C_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for I2C_EN */
+
+/* Bit fields for I2C CTRL */
+#define _I2C_CTRL_RESETVALUE 0x00000000UL /**< Default value for I2C_CTRL */
+#define _I2C_CTRL_MASK 0x0037B3FFUL /**< Mask for I2C_CTRL */
+#define I2C_CTRL_CORERST (0x1UL << 0) /**< Soft Reset the internal state registers */
+#define _I2C_CTRL_CORERST_SHIFT 0 /**< Shift value for I2C_CORERST */
+#define _I2C_CTRL_CORERST_MASK 0x1UL /**< Bit mask for I2C_CORERST */
+#define _I2C_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CORERST_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_CORERST_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_DEFAULT (_I2C_CTRL_CORERST_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CORERST_DISABLE (_I2C_CTRL_CORERST_DISABLE << 0) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_ENABLE (_I2C_CTRL_CORERST_ENABLE << 0) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE (0x1UL << 1) /**< Addressable as Follower */
+#define _I2C_CTRL_SLAVE_SHIFT 1 /**< Shift value for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_MASK 0x2UL /**< Bit mask for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DEFAULT (_I2C_CTRL_SLAVE_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DISABLE (_I2C_CTRL_SLAVE_DISABLE << 1) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_ENABLE (_I2C_CTRL_SLAVE_ENABLE << 1) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK (0x1UL << 2) /**< Automatic Acknowledge */
+#define _I2C_CTRL_AUTOACK_SHIFT 2 /**< Shift value for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_MASK 0x4UL /**< Bit mask for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DEFAULT (_I2C_CTRL_AUTOACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DISABLE (_I2C_CTRL_AUTOACK_DISABLE << 2) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_ENABLE (_I2C_CTRL_AUTOACK_ENABLE << 2) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE (0x1UL << 3) /**< Automatic STOP when Empty */
+#define _I2C_CTRL_AUTOSE_SHIFT 3 /**< Shift value for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_MASK 0x8UL /**< Bit mask for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DEFAULT (_I2C_CTRL_AUTOSE_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DISABLE (_I2C_CTRL_AUTOSE_DISABLE << 3) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_ENABLE (_I2C_CTRL_AUTOSE_ENABLE << 3) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN (0x1UL << 4) /**< Automatic STOP on NACK */
+#define _I2C_CTRL_AUTOSN_SHIFT 4 /**< Shift value for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_MASK 0x10UL /**< Bit mask for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DEFAULT (_I2C_CTRL_AUTOSN_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DISABLE (_I2C_CTRL_AUTOSN_DISABLE << 4) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_ENABLE (_I2C_CTRL_AUTOSN_ENABLE << 4) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS (0x1UL << 5) /**< Arbitration Disable */
+#define _I2C_CTRL_ARBDIS_SHIFT 5 /**< Shift value for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_MASK 0x20UL /**< Bit mask for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DEFAULT (_I2C_CTRL_ARBDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DISABLE (_I2C_CTRL_ARBDIS_DISABLE << 5) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_ENABLE (_I2C_CTRL_ARBDIS_ENABLE << 5) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN (0x1UL << 6) /**< General Call Address Match Enable */
+#define _I2C_CTRL_GCAMEN_SHIFT 6 /**< Shift value for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_MASK 0x40UL /**< Bit mask for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DEFAULT (_I2C_CTRL_GCAMEN_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DISABLE (_I2C_CTRL_GCAMEN_DISABLE << 6) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_ENABLE (_I2C_CTRL_GCAMEN_ENABLE << 6) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_TXBIL (0x1UL << 7) /**< TX Buffer Interrupt Level */
+#define _I2C_CTRL_TXBIL_SHIFT 7 /**< Shift value for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_MASK 0x80UL /**< Bit mask for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_HALF_FULL 0x00000001UL /**< Mode HALF_FULL for I2C_CTRL */
+#define I2C_CTRL_TXBIL_DEFAULT (_I2C_CTRL_TXBIL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_TXBIL_EMPTY (_I2C_CTRL_TXBIL_EMPTY << 7) /**< Shifted mode EMPTY for I2C_CTRL */
+#define I2C_CTRL_TXBIL_HALF_FULL (_I2C_CTRL_TXBIL_HALF_FULL << 7) /**< Shifted mode HALF_FULL for I2C_CTRL */
+#define _I2C_CTRL_CLHR_SHIFT 8 /**< Shift value for I2C_CLHR */
+#define _I2C_CTRL_CLHR_MASK 0x300UL /**< Bit mask for I2C_CLHR */
+#define _I2C_CTRL_CLHR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLHR_STANDARD 0x00000000UL /**< Mode STANDARD for I2C_CTRL */
+#define _I2C_CTRL_CLHR_ASYMMETRIC 0x00000001UL /**< Mode ASYMMETRIC for I2C_CTRL */
+#define _I2C_CTRL_CLHR_FAST 0x00000002UL /**< Mode FAST for I2C_CTRL */
+#define I2C_CTRL_CLHR_DEFAULT (_I2C_CTRL_CLHR_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLHR_STANDARD (_I2C_CTRL_CLHR_STANDARD << 8) /**< Shifted mode STANDARD for I2C_CTRL */
+#define I2C_CTRL_CLHR_ASYMMETRIC (_I2C_CTRL_CLHR_ASYMMETRIC << 8) /**< Shifted mode ASYMMETRIC for I2C_CTRL */
+#define I2C_CTRL_CLHR_FAST (_I2C_CTRL_CLHR_FAST << 8) /**< Shifted mode FAST for I2C_CTRL */
+#define _I2C_CTRL_BITO_SHIFT 12 /**< Shift value for I2C_BITO */
+#define _I2C_CTRL_BITO_MASK 0x3000UL /**< Bit mask for I2C_BITO */
+#define _I2C_CTRL_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_BITO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_DEFAULT (_I2C_CTRL_BITO_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_BITO_OFF (_I2C_CTRL_BITO_OFF << 12) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C40PCC (_I2C_CTRL_BITO_I2C40PCC << 12) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C80PCC (_I2C_CTRL_BITO_I2C80PCC << 12) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C160PCC (_I2C_CTRL_BITO_I2C160PCC << 12) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_GIBITO (0x1UL << 15) /**< Go Idle on Bus Idle Timeout */
+#define _I2C_CTRL_GIBITO_SHIFT 15 /**< Shift value for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_MASK 0x8000UL /**< Bit mask for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DEFAULT (_I2C_CTRL_GIBITO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DISABLE (_I2C_CTRL_GIBITO_DISABLE << 15) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_ENABLE (_I2C_CTRL_GIBITO_ENABLE << 15) /**< Shifted mode ENABLE for I2C_CTRL */
+#define _I2C_CTRL_CLTO_SHIFT 16 /**< Shift value for I2C_CLTO */
+#define _I2C_CTRL_CLTO_MASK 0x70000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_CTRL_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLTO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C320PCC 0x00000004UL /**< Mode I2C320PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C1024PCC 0x00000005UL /**< Mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_DEFAULT (_I2C_CTRL_CLTO_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLTO_OFF (_I2C_CTRL_CLTO_OFF << 16) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C40PCC (_I2C_CTRL_CLTO_I2C40PCC << 16) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C80PCC (_I2C_CTRL_CLTO_I2C80PCC << 16) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C160PCC (_I2C_CTRL_CLTO_I2C160PCC << 16) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C320PCC (_I2C_CTRL_CLTO_I2C320PCC << 16) /**< Shifted mode I2C320PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C1024PCC (_I2C_CTRL_CLTO_I2C1024PCC << 16) /**< Shifted mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN (0x1UL << 20) /**< SCL Monitor Enable */
+#define _I2C_CTRL_SCLMONEN_SHIFT 20 /**< Shift value for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_MASK 0x100000UL /**< Bit mask for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DEFAULT (_I2C_CTRL_SCLMONEN_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DISABLE (_I2C_CTRL_SCLMONEN_DISABLE << 20) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_ENABLE (_I2C_CTRL_SCLMONEN_ENABLE << 20) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN (0x1UL << 21) /**< SDA Monitor Enable */
+#define _I2C_CTRL_SDAMONEN_SHIFT 21 /**< Shift value for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_MASK 0x200000UL /**< Bit mask for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DEFAULT (_I2C_CTRL_SDAMONEN_DEFAULT << 21) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DISABLE (_I2C_CTRL_SDAMONEN_DISABLE << 21) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_ENABLE (_I2C_CTRL_SDAMONEN_ENABLE << 21) /**< Shifted mode ENABLE for I2C_CTRL */
+
+/* Bit fields for I2C CMD */
+#define _I2C_CMD_RESETVALUE 0x00000000UL /**< Default value for I2C_CMD */
+#define _I2C_CMD_MASK 0x000000FFUL /**< Mask for I2C_CMD */
+#define I2C_CMD_START (0x1UL << 0) /**< Send start condition */
+#define _I2C_CMD_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_CMD_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_START_DEFAULT (_I2C_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP (0x1UL << 1) /**< Send stop condition */
+#define _I2C_CMD_STOP_SHIFT 1 /**< Shift value for I2C_STOP */
+#define _I2C_CMD_STOP_MASK 0x2UL /**< Bit mask for I2C_STOP */
+#define _I2C_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP_DEFAULT (_I2C_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK (0x1UL << 2) /**< Send ACK */
+#define _I2C_CMD_ACK_SHIFT 2 /**< Shift value for I2C_ACK */
+#define _I2C_CMD_ACK_MASK 0x4UL /**< Bit mask for I2C_ACK */
+#define _I2C_CMD_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK_DEFAULT (_I2C_CMD_ACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK (0x1UL << 3) /**< Send NACK */
+#define _I2C_CMD_NACK_SHIFT 3 /**< Shift value for I2C_NACK */
+#define _I2C_CMD_NACK_MASK 0x8UL /**< Bit mask for I2C_NACK */
+#define _I2C_CMD_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK_DEFAULT (_I2C_CMD_NACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT (0x1UL << 4) /**< Continue transmission */
+#define _I2C_CMD_CONT_SHIFT 4 /**< Shift value for I2C_CONT */
+#define _I2C_CMD_CONT_MASK 0x10UL /**< Bit mask for I2C_CONT */
+#define _I2C_CMD_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT_DEFAULT (_I2C_CMD_CONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT (0x1UL << 5) /**< Abort transmission */
+#define _I2C_CMD_ABORT_SHIFT 5 /**< Shift value for I2C_ABORT */
+#define _I2C_CMD_ABORT_MASK 0x20UL /**< Bit mask for I2C_ABORT */
+#define _I2C_CMD_ABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT_DEFAULT (_I2C_CMD_ABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX (0x1UL << 6) /**< Clear TX */
+#define _I2C_CMD_CLEARTX_SHIFT 6 /**< Shift value for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_MASK 0x40UL /**< Bit mask for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX_DEFAULT (_I2C_CMD_CLEARTX_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC (0x1UL << 7) /**< Clear Pending Commands */
+#define _I2C_CMD_CLEARPC_SHIFT 7 /**< Shift value for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_MASK 0x80UL /**< Bit mask for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC_DEFAULT (_I2C_CMD_CLEARPC_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CMD */
+
+/* Bit fields for I2C STATE */
+#define _I2C_STATE_RESETVALUE 0x00000001UL /**< Default value for I2C_STATE */
+#define _I2C_STATE_MASK 0x000000FFUL /**< Mask for I2C_STATE */
+#define I2C_STATE_BUSY (0x1UL << 0) /**< Bus Busy */
+#define _I2C_STATE_BUSY_SHIFT 0 /**< Shift value for I2C_BUSY */
+#define _I2C_STATE_BUSY_MASK 0x1UL /**< Bit mask for I2C_BUSY */
+#define _I2C_STATE_BUSY_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSY_DEFAULT (_I2C_STATE_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER (0x1UL << 1) /**< Leader */
+#define _I2C_STATE_MASTER_SHIFT 1 /**< Shift value for I2C_MASTER */
+#define _I2C_STATE_MASTER_MASK 0x2UL /**< Bit mask for I2C_MASTER */
+#define _I2C_STATE_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER_DEFAULT (_I2C_STATE_MASTER_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER (0x1UL << 2) /**< Transmitter */
+#define _I2C_STATE_TRANSMITTER_SHIFT 2 /**< Shift value for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_MASK 0x4UL /**< Bit mask for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER_DEFAULT (_I2C_STATE_TRANSMITTER_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED (0x1UL << 3) /**< Nack Received */
+#define _I2C_STATE_NACKED_SHIFT 3 /**< Shift value for I2C_NACKED */
+#define _I2C_STATE_NACKED_MASK 0x8UL /**< Bit mask for I2C_NACKED */
+#define _I2C_STATE_NACKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED_DEFAULT (_I2C_STATE_NACKED_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD (0x1UL << 4) /**< Bus Held */
+#define _I2C_STATE_BUSHOLD_SHIFT 4 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_MASK 0x10UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD_DEFAULT (_I2C_STATE_BUSHOLD_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_SHIFT 5 /**< Shift value for I2C_STATE */
+#define _I2C_STATE_STATE_MASK 0xE0UL /**< Bit mask for I2C_STATE */
+#define _I2C_STATE_STATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_IDLE 0x00000000UL /**< Mode IDLE for I2C_STATE */
+#define _I2C_STATE_STATE_WAIT 0x00000001UL /**< Mode WAIT for I2C_STATE */
+#define _I2C_STATE_STATE_START 0x00000002UL /**< Mode START for I2C_STATE */
+#define _I2C_STATE_STATE_ADDR 0x00000003UL /**< Mode ADDR for I2C_STATE */
+#define _I2C_STATE_STATE_ADDRACK 0x00000004UL /**< Mode ADDRACK for I2C_STATE */
+#define _I2C_STATE_STATE_DATA 0x00000005UL /**< Mode DATA for I2C_STATE */
+#define _I2C_STATE_STATE_DATAACK 0x00000006UL /**< Mode DATAACK for I2C_STATE */
+#define I2C_STATE_STATE_DEFAULT (_I2C_STATE_STATE_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_STATE_IDLE (_I2C_STATE_STATE_IDLE << 5) /**< Shifted mode IDLE for I2C_STATE */
+#define I2C_STATE_STATE_WAIT (_I2C_STATE_STATE_WAIT << 5) /**< Shifted mode WAIT for I2C_STATE */
+#define I2C_STATE_STATE_START (_I2C_STATE_STATE_START << 5) /**< Shifted mode START for I2C_STATE */
+#define I2C_STATE_STATE_ADDR (_I2C_STATE_STATE_ADDR << 5) /**< Shifted mode ADDR for I2C_STATE */
+#define I2C_STATE_STATE_ADDRACK (_I2C_STATE_STATE_ADDRACK << 5) /**< Shifted mode ADDRACK for I2C_STATE */
+#define I2C_STATE_STATE_DATA (_I2C_STATE_STATE_DATA << 5) /**< Shifted mode DATA for I2C_STATE */
+#define I2C_STATE_STATE_DATAACK (_I2C_STATE_STATE_DATAACK << 5) /**< Shifted mode DATAACK for I2C_STATE */
+
+/* Bit fields for I2C STATUS */
+#define _I2C_STATUS_RESETVALUE 0x00000080UL /**< Default value for I2C_STATUS */
+#define _I2C_STATUS_MASK 0x00000FFFUL /**< Mask for I2C_STATUS */
+#define I2C_STATUS_PSTART (0x1UL << 0) /**< Pending START */
+#define _I2C_STATUS_PSTART_SHIFT 0 /**< Shift value for I2C_PSTART */
+#define _I2C_STATUS_PSTART_MASK 0x1UL /**< Bit mask for I2C_PSTART */
+#define _I2C_STATUS_PSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTART_DEFAULT (_I2C_STATUS_PSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP (0x1UL << 1) /**< Pending STOP */
+#define _I2C_STATUS_PSTOP_SHIFT 1 /**< Shift value for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_MASK 0x2UL /**< Bit mask for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP_DEFAULT (_I2C_STATUS_PSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK (0x1UL << 2) /**< Pending ACK */
+#define _I2C_STATUS_PACK_SHIFT 2 /**< Shift value for I2C_PACK */
+#define _I2C_STATUS_PACK_MASK 0x4UL /**< Bit mask for I2C_PACK */
+#define _I2C_STATUS_PACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK_DEFAULT (_I2C_STATUS_PACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK (0x1UL << 3) /**< Pending NACK */
+#define _I2C_STATUS_PNACK_SHIFT 3 /**< Shift value for I2C_PNACK */
+#define _I2C_STATUS_PNACK_MASK 0x8UL /**< Bit mask for I2C_PNACK */
+#define _I2C_STATUS_PNACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK_DEFAULT (_I2C_STATUS_PNACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT (0x1UL << 4) /**< Pending continue */
+#define _I2C_STATUS_PCONT_SHIFT 4 /**< Shift value for I2C_PCONT */
+#define _I2C_STATUS_PCONT_MASK 0x10UL /**< Bit mask for I2C_PCONT */
+#define _I2C_STATUS_PCONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT_DEFAULT (_I2C_STATUS_PCONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT (0x1UL << 5) /**< Pending abort */
+#define _I2C_STATUS_PABORT_SHIFT 5 /**< Shift value for I2C_PABORT */
+#define _I2C_STATUS_PABORT_MASK 0x20UL /**< Bit mask for I2C_PABORT */
+#define _I2C_STATUS_PABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT_DEFAULT (_I2C_STATUS_PABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC (0x1UL << 6) /**< TX Complete */
+#define _I2C_STATUS_TXC_SHIFT 6 /**< Shift value for I2C_TXC */
+#define _I2C_STATUS_TXC_MASK 0x40UL /**< Bit mask for I2C_TXC */
+#define _I2C_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC_DEFAULT (_I2C_STATUS_TXC_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL (0x1UL << 7) /**< TX Buffer Level */
+#define _I2C_STATUS_TXBL_SHIFT 7 /**< Shift value for I2C_TXBL */
+#define _I2C_STATUS_TXBL_MASK 0x80UL /**< Bit mask for I2C_TXBL */
+#define _I2C_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL_DEFAULT (_I2C_STATUS_TXBL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV (0x1UL << 8) /**< RX Data Valid */
+#define _I2C_STATUS_RXDATAV_SHIFT 8 /**< Shift value for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_MASK 0x100UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV_DEFAULT (_I2C_STATUS_RXDATAV_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL (0x1UL << 9) /**< RX FIFO Full */
+#define _I2C_STATUS_RXFULL_SHIFT 9 /**< Shift value for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_MASK 0x200UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL_DEFAULT (_I2C_STATUS_RXFULL_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define _I2C_STATUS_TXBUFCNT_SHIFT 10 /**< Shift value for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_MASK 0xC00UL /**< Bit mask for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBUFCNT_DEFAULT (_I2C_STATUS_TXBUFCNT_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_STATUS */
+
+/* Bit fields for I2C CLKDIV */
+#define _I2C_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for I2C_CLKDIV */
+#define _I2C_CLKDIV_MASK 0x000001FFUL /**< Mask for I2C_CLKDIV */
+#define _I2C_CLKDIV_DIV_SHIFT 0 /**< Shift value for I2C_DIV */
+#define _I2C_CLKDIV_DIV_MASK 0x1FFUL /**< Bit mask for I2C_DIV */
+#define _I2C_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CLKDIV */
+#define I2C_CLKDIV_DIV_DEFAULT (_I2C_CLKDIV_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CLKDIV */
+
+/* Bit fields for I2C SADDR */
+#define _I2C_SADDR_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDR */
+#define _I2C_SADDR_MASK 0x000000FEUL /**< Mask for I2C_SADDR */
+#define _I2C_SADDR_ADDR_SHIFT 1 /**< Shift value for I2C_ADDR */
+#define _I2C_SADDR_ADDR_MASK 0xFEUL /**< Bit mask for I2C_ADDR */
+#define _I2C_SADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDR */
+#define I2C_SADDR_ADDR_DEFAULT (_I2C_SADDR_ADDR_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDR */
+
+/* Bit fields for I2C SADDRMASK */
+#define _I2C_SADDRMASK_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_MASK 0x000000FEUL /**< Mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_SHIFT 1 /**< Shift value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_MASK 0xFEUL /**< Bit mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDRMASK */
+#define I2C_SADDRMASK_SADDRMASK_DEFAULT (_I2C_SADDRMASK_SADDRMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDRMASK */
+
+/* Bit fields for I2C RXDATA */
+#define _I2C_RXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATA */
+#define _I2C_RXDATA_MASK 0x000000FFUL /**< Mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_SHIFT 0 /**< Shift value for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATA */
+#define I2C_RXDATA_RXDATA_DEFAULT (_I2C_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATA */
+
+/* Bit fields for I2C RXDOUBLE */
+#define _I2C_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA0_DEFAULT (_I2C_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA1_DEFAULT (_I2C_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+
+/* Bit fields for I2C RXDATAP */
+#define _I2C_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATAP */
+#define _I2C_RXDATAP_MASK 0x000000FFUL /**< Mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATAP */
+#define I2C_RXDATAP_RXDATAP_DEFAULT (_I2C_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATAP */
+
+/* Bit fields for I2C RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP0_SHIFT 0 /**< Shift value for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP0_DEFAULT (_I2C_RXDOUBLEP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP1_SHIFT 8 /**< Shift value for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP1_DEFAULT (_I2C_RXDOUBLEP_RXDATAP1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+
+/* Bit fields for I2C TXDATA */
+#define _I2C_TXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDATA */
+#define _I2C_TXDATA_MASK 0x000000FFUL /**< Mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_SHIFT 0 /**< Shift value for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDATA */
+#define I2C_TXDATA_TXDATA_DEFAULT (_I2C_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDATA */
+
+/* Bit fields for I2C TXDOUBLE */
+#define _I2C_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA0_DEFAULT (_I2C_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA1_DEFAULT (_I2C_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+
+/* Bit fields for I2C IF */
+#define _I2C_IF_RESETVALUE 0x00000000UL /**< Default value for I2C_IF */
+#define _I2C_IF_MASK 0x001FFFFFUL /**< Mask for I2C_IF */
+#define I2C_IF_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IF_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IF_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IF_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_START_DEFAULT (_I2C_IF_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IF_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IF_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IF_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART_DEFAULT (_I2C_IF_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IF_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IF_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IF_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR_DEFAULT (_I2C_IF_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IF_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IF_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC_DEFAULT (_I2C_IF_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IF_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IF_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IF_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL_DEFAULT (_I2C_IF_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IF_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV_DEFAULT (_I2C_IF_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IF_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IF_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IF_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK_DEFAULT (_I2C_IF_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IF_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IF_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IF_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK_DEFAULT (_I2C_IF_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IF_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IF_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IF_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP_DEFAULT (_I2C_IF_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IF_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST_DEFAULT (_I2C_IF_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IF_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IF_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IF_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR_DEFAULT (_I2C_IF_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IF_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD_DEFAULT (_I2C_IF_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IF_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IF_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF_DEFAULT (_I2C_IF_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IF_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IF_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF_DEFAULT (_I2C_IF_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IF_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IF_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IF_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO_DEFAULT (_I2C_IF_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IF_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IF_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IF_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO_DEFAULT (_I2C_IF_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IF_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IF_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IF_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP_DEFAULT (_I2C_IF_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IF_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IF_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL_DEFAULT (_I2C_IF_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IF_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IF_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IF_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR_DEFAULT (_I2C_IF_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IF_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IF_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IF_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR_DEFAULT (_I2C_IF_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IF_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IF_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IF_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR_DEFAULT (_I2C_IF_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IF */
+
+/* Bit fields for I2C IEN */
+#define _I2C_IEN_RESETVALUE 0x00000000UL /**< Default value for I2C_IEN */
+#define _I2C_IEN_MASK 0x001FFFFFUL /**< Mask for I2C_IEN */
+#define I2C_IEN_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IEN_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IEN_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IEN_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_START_DEFAULT (_I2C_IEN_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IEN_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IEN_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IEN_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART_DEFAULT (_I2C_IEN_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IEN_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IEN_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IEN_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR_DEFAULT (_I2C_IEN_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IEN_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IEN_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC_DEFAULT (_I2C_IEN_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IEN_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IEN_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL_DEFAULT (_I2C_IEN_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IEN_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV_DEFAULT (_I2C_IEN_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IEN_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IEN_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK_DEFAULT (_I2C_IEN_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IEN_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IEN_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK_DEFAULT (_I2C_IEN_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IEN_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP_DEFAULT (_I2C_IEN_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IEN_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST_DEFAULT (_I2C_IEN_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IEN_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR_DEFAULT (_I2C_IEN_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IEN_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD_DEFAULT (_I2C_IEN_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IEN_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IEN_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF_DEFAULT (_I2C_IEN_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IEN_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IEN_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF_DEFAULT (_I2C_IEN_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IEN_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IEN_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IEN_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO_DEFAULT (_I2C_IEN_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IEN_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IEN_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IEN_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO_DEFAULT (_I2C_IEN_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IEN_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP_DEFAULT (_I2C_IEN_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IEN_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL_DEFAULT (_I2C_IEN_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IEN_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IEN_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IEN_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR_DEFAULT (_I2C_IEN_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IEN_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR_DEFAULT (_I2C_IEN_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IEN_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR_DEFAULT (_I2C_IEN_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IEN */
+
+/** @} End of group EFR32MG29_I2C_BitFields */
+/** @} End of group EFR32MG29_I2C */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_I2C_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_iadc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_iadc.h
new file mode 100644
index 000000000..a089cd813
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_iadc.h
@@ -0,0 +1,1005 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 IADC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_IADC_H
+#define EFR32MG29_IADC_H
+#define IADC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_IADC IADC
+ * @{
+ * @brief EFR32MG29 IADC Register Declaration.
+ *****************************************************************************/
+
+/** IADC CFG Register Group Declaration. */
+typedef struct iadc_cfg_typedef{
+ __IOM uint32_t CFG; /**< Configuration */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t SCALE; /**< Scaling */
+ __IOM uint32_t SCHED; /**< Scheduling */
+} IADC_CFG_TypeDef;
+
+/** IADC SCANTABLE Register Group Declaration. */
+typedef struct iadc_scantable_typedef{
+ __IOM uint32_t SCAN; /**< SCAN Entry */
+} IADC_SCANTABLE_TypeDef;
+
+/** IADC Register Declaration. */
+typedef struct iadc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CTRL; /**< Control */
+ __IOM uint32_t CMD; /**< Command */
+ __IOM uint32_t TIMER; /**< Timer */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t MASKREQ; /**< Mask Request */
+ __IM uint32_t STMASK; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER; /**< Trigger */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG[2U]; /**< CFG */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA; /**< Scan Data */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE; /**< Single Queue Port Selection */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE[16U]; /**< SCANTABLE */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ __IOM uint32_t CMD_SET; /**< Command */
+ __IOM uint32_t TIMER_SET; /**< Timer */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t MASKREQ_SET; /**< Mask Request */
+ __IM uint32_t STMASK_SET; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_SET; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_SET; /**< Trigger */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_SET[2U]; /**< CFG */
+ uint32_t RESERVED11[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_SET; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_SET; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_SET; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_SET; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_SET; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_SET; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_SET; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_SET; /**< Scan Data */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_SET; /**< Single Queue Port Selection */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_SET[16U]; /**< SCANTABLE */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ __IOM uint32_t CMD_CLR; /**< Command */
+ __IOM uint32_t TIMER_CLR; /**< Timer */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t MASKREQ_CLR; /**< Mask Request */
+ __IM uint32_t STMASK_CLR; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_CLR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_CLR; /**< Trigger */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_CLR[2U]; /**< CFG */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_CLR; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_CLR; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_CLR; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_CLR; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_CLR; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_CLR; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_CLR; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_CLR; /**< Scan Data */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_CLR; /**< Single Queue Port Selection */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_CLR[16U]; /**< SCANTABLE */
+ uint32_t RESERVED24[4U]; /**< Reserved for future use */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ uint32_t RESERVED26[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ __IOM uint32_t CMD_TGL; /**< Command */
+ __IOM uint32_t TIMER_TGL; /**< Timer */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t MASKREQ_TGL; /**< Mask Request */
+ __IM uint32_t STMASK_TGL; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_TGL; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_TGL; /**< Trigger */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_TGL[2U]; /**< CFG */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_TGL; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_TGL; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_TGL; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_TGL; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_TGL; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_TGL; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_TGL; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_TGL; /**< Scan Data */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_TGL; /**< Single Queue Port Selection */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_TGL[16U]; /**< SCANTABLE */
+ uint32_t RESERVED33[4U]; /**< Reserved for future use */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+} IADC_TypeDef;
+/** @} End of group EFR32MG29_IADC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_IADC
+ * @{
+ * @defgroup EFR32MG29_IADC_BitFields IADC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for IADC IPVERSION */
+#define _IADC_IPVERSION_RESETVALUE 0x00000004UL /**< Default value for IADC_IPVERSION */
+#define _IADC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_DEFAULT 0x00000004UL /**< Mode DEFAULT for IADC_IPVERSION */
+#define IADC_IPVERSION_IPVERSION_DEFAULT (_IADC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IPVERSION */
+
+/* Bit fields for IADC EN */
+#define _IADC_EN_RESETVALUE 0x00000000UL /**< Default value for IADC_EN */
+#define _IADC_EN_MASK 0x00000001UL /**< Mask for IADC_EN */
+#define IADC_EN_EN (0x1UL << 0) /**< Enable IADC Module */
+#define _IADC_EN_EN_SHIFT 0 /**< Shift value for IADC_EN */
+#define _IADC_EN_EN_MASK 0x1UL /**< Bit mask for IADC_EN */
+#define _IADC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_EN */
+#define _IADC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for IADC_EN */
+#define _IADC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for IADC_EN */
+#define IADC_EN_EN_DEFAULT (_IADC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_EN */
+#define IADC_EN_EN_DISABLE (_IADC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for IADC_EN */
+#define IADC_EN_EN_ENABLE (_IADC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for IADC_EN */
+
+/* Bit fields for IADC CTRL */
+#define _IADC_CTRL_RESETVALUE 0x00000000UL /**< Default value for IADC_CTRL */
+#define _IADC_CTRL_MASK 0x707F003FUL /**< Mask for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT (0x1UL << 0) /**< EM23 Wakeup on Conversion */
+#define _IADC_CTRL_EM23WUCONVERT_SHIFT 0 /**< Shift value for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_MASK 0x1UL /**< Bit mask for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUDVL 0x00000000UL /**< Mode WUDVL for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUCONVERT 0x00000001UL /**< Mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_DEFAULT (_IADC_CTRL_EM23WUCONVERT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUDVL (_IADC_CTRL_EM23WUCONVERT_WUDVL << 0) /**< Shifted mode WUDVL for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUCONVERT (_IADC_CTRL_EM23WUCONVERT_WUCONVERT << 0) /**< Shifted mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0 (0x1UL << 1) /**< ADC_CLK Suspend - PRS0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_SHIFT 1 /**< Shift value for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_MASK 0x2UL /**< Bit mask for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND0_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS << 1) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN << 1) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1 (0x1UL << 2) /**< ADC_CLK Suspend - PRS1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_SHIFT 2 /**< Shift value for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_MASK 0x4UL /**< Bit mask for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND1_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS << 2) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN << 2) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_DBGHALT (0x1UL << 3) /**< Debug Halt */
+#define _IADC_CTRL_DBGHALT_SHIFT 3 /**< Shift value for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_MASK 0x8UL /**< Bit mask for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_HALT 0x00000001UL /**< Mode HALT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_DEFAULT (_IADC_CTRL_DBGHALT_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_NORMAL (_IADC_CTRL_DBGHALT_NORMAL << 3) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_HALT (_IADC_CTRL_DBGHALT_HALT << 3) /**< Shifted mode HALT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_SHIFT 4 /**< Shift value for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_MASK 0x30UL /**< Bit mask for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPINSTANDBY 0x00000001UL /**< Mode KEEPINSTANDBY for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPWARM 0x00000002UL /**< Mode KEEPWARM for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_DEFAULT (_IADC_CTRL_WARMUPMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_NORMAL (_IADC_CTRL_WARMUPMODE_NORMAL << 4) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPINSTANDBY (_IADC_CTRL_WARMUPMODE_KEEPINSTANDBY << 4) /**< Shifted mode KEEPINSTANDBY for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPWARM (_IADC_CTRL_WARMUPMODE_KEEPWARM << 4) /**< Shifted mode KEEPWARM for IADC_CTRL */
+#define _IADC_CTRL_TIMEBASE_SHIFT 16 /**< Shift value for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_MASK 0x7F0000UL /**< Bit mask for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_TIMEBASE_DEFAULT (_IADC_CTRL_TIMEBASE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_SHIFT 28 /**< Shift value for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_MASK 0x70000000UL /**< Bit mask for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV1 0x00000000UL /**< Mode DIV1 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV2 0x00000001UL /**< Mode DIV2 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV3 0x00000002UL /**< Mode DIV3 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV4 0x00000003UL /**< Mode DIV4 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DEFAULT (_IADC_CTRL_HSCLKRATE_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV1 (_IADC_CTRL_HSCLKRATE_DIV1 << 28) /**< Shifted mode DIV1 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV2 (_IADC_CTRL_HSCLKRATE_DIV2 << 28) /**< Shifted mode DIV2 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV3 (_IADC_CTRL_HSCLKRATE_DIV3 << 28) /**< Shifted mode DIV3 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV4 (_IADC_CTRL_HSCLKRATE_DIV4 << 28) /**< Shifted mode DIV4 for IADC_CTRL */
+
+/* Bit fields for IADC CMD */
+#define _IADC_CMD_RESETVALUE 0x00000000UL /**< Default value for IADC_CMD */
+#define _IADC_CMD_MASK 0x0303001BUL /**< Mask for IADC_CMD */
+#define IADC_CMD_SINGLESTART (0x1UL << 0) /**< Single Queue Start */
+#define _IADC_CMD_SINGLESTART_SHIFT 0 /**< Shift value for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_MASK 0x1UL /**< Bit mask for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTART_DEFAULT (_IADC_CMD_SINGLESTART_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP (0x1UL << 1) /**< Single Queue Stop */
+#define _IADC_CMD_SINGLESTOP_SHIFT 1 /**< Shift value for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_MASK 0x2UL /**< Bit mask for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP_DEFAULT (_IADC_CMD_SINGLESTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART (0x1UL << 3) /**< Scan Queue Start */
+#define _IADC_CMD_SCANSTART_SHIFT 3 /**< Shift value for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_MASK 0x8UL /**< Bit mask for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART_DEFAULT (_IADC_CMD_SCANSTART_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP (0x1UL << 4) /**< Scan Queue Stop */
+#define _IADC_CMD_SCANSTOP_SHIFT 4 /**< Shift value for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_MASK 0x10UL /**< Bit mask for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP_DEFAULT (_IADC_CMD_SCANSTOP_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN (0x1UL << 16) /**< Timer Enable */
+#define _IADC_CMD_TIMEREN_SHIFT 16 /**< Shift value for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_MASK 0x10000UL /**< Bit mask for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN_DEFAULT (_IADC_CMD_TIMEREN_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS (0x1UL << 17) /**< Timer Disable */
+#define _IADC_CMD_TIMERDIS_SHIFT 17 /**< Shift value for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_MASK 0x20000UL /**< Bit mask for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS_DEFAULT (_IADC_CMD_TIMERDIS_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH (0x1UL << 24) /**< Flush the Single FIFO */
+#define _IADC_CMD_SINGLEFIFOFLUSH_SHIFT 24 /**< Shift value for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_MASK 0x1000000UL /**< Bit mask for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH_DEFAULT (_IADC_CMD_SINGLEFIFOFLUSH_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH (0x1UL << 25) /**< Flush the Scan FIFO */
+#define _IADC_CMD_SCANFIFOFLUSH_SHIFT 25 /**< Shift value for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_MASK 0x2000000UL /**< Bit mask for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH_DEFAULT (_IADC_CMD_SCANFIFOFLUSH_DEFAULT << 25) /**< Shifted mode DEFAULT for IADC_CMD */
+
+/* Bit fields for IADC TIMER */
+#define _IADC_TIMER_RESETVALUE 0x00000000UL /**< Default value for IADC_TIMER */
+#define _IADC_TIMER_MASK 0x0000FFFFUL /**< Mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_SHIFT 0 /**< Shift value for IADC_TIMER */
+#define _IADC_TIMER_TIMER_MASK 0xFFFFUL /**< Bit mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TIMER */
+#define IADC_TIMER_TIMER_DEFAULT (_IADC_TIMER_TIMER_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TIMER */
+
+/* Bit fields for IADC STATUS */
+#define _IADC_STATUS_RESETVALUE 0x00000000UL /**< Default value for IADC_STATUS */
+#define _IADC_STATUS_MASK 0x4131CF5BUL /**< Mask for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN (0x1UL << 0) /**< Single Queue Enabled */
+#define _IADC_STATUS_SINGLEQEN_SHIFT 0 /**< Shift value for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_MASK 0x1UL /**< Bit mask for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN_DEFAULT (_IADC_STATUS_SINGLEQEN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING (0x1UL << 1) /**< Single Queue Pending */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_SHIFT 1 /**< Shift value for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_MASK 0x2UL /**< Bit mask for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT (_IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN (0x1UL << 3) /**< Scan Queued Enabled */
+#define _IADC_STATUS_SCANQEN_SHIFT 3 /**< Shift value for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_MASK 0x8UL /**< Bit mask for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN_DEFAULT (_IADC_STATUS_SCANQEN_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING (0x1UL << 4) /**< Scan Queue Pending */
+#define _IADC_STATUS_SCANQUEUEPENDING_SHIFT 4 /**< Shift value for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_MASK 0x10UL /**< Bit mask for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING_DEFAULT (_IADC_STATUS_SCANQUEUEPENDING_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING (0x1UL << 6) /**< Converting */
+#define _IADC_STATUS_CONVERTING_SHIFT 6 /**< Shift value for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_MASK 0x40UL /**< Bit mask for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING_DEFAULT (_IADC_STATUS_CONVERTING_DEFAULT << 6) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV (0x1UL << 8) /**< SINGLEFIFO Data Valid */
+#define _IADC_STATUS_SINGLEFIFODV_SHIFT 8 /**< Shift value for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_MASK 0x100UL /**< Bit mask for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV_DEFAULT (_IADC_STATUS_SINGLEFIFODV_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV (0x1UL << 9) /**< SCANFIFO Data Valid */
+#define _IADC_STATUS_SCANFIFODV_SHIFT 9 /**< Shift value for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_MASK 0x200UL /**< Bit mask for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV_DEFAULT (_IADC_STATUS_SCANFIFODV_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING (0x1UL << 14) /**< The Single FIFO is flushing */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_SHIFT 14 /**< Shift value for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_MASK 0x4000UL /**< Bit mask for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT (_IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT << 14) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING (0x1UL << 15) /**< The Scan FIFO is flushing */
+#define _IADC_STATUS_SCANFIFOFLUSHING_SHIFT 15 /**< Shift value for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_MASK 0x8000UL /**< Bit mask for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING_DEFAULT (_IADC_STATUS_SCANFIFOFLUSHING_DEFAULT << 15) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE (0x1UL << 16) /**< Timer Active */
+#define _IADC_STATUS_TIMERACTIVE_SHIFT 16 /**< Shift value for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_MASK 0x10000UL /**< Bit mask for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE_DEFAULT (_IADC_STATUS_TIMERACTIVE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING (0x1UL << 20) /**< SINGLE write pending */
+#define _IADC_STATUS_SINGLEWRITEPENDING_SHIFT 20 /**< Shift value for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_MASK 0x100000UL /**< Bit mask for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING_DEFAULT (_IADC_STATUS_SINGLEWRITEPENDING_DEFAULT << 20) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING (0x1UL << 21) /**< MASKREQ write pending */
+#define _IADC_STATUS_MASKREQWRITEPENDING_SHIFT 21 /**< Shift value for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_MASK 0x200000UL /**< Bit mask for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING_DEFAULT (_IADC_STATUS_MASKREQWRITEPENDING_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY (0x1UL << 24) /**< SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_SHIFT 24 /**< Shift value for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_MASK 0x1000000UL /**< Bit mask for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY_DEFAULT (_IADC_STATUS_SYNCBUSY_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM (0x1UL << 30) /**< ADCWARM */
+#define _IADC_STATUS_ADCWARM_SHIFT 30 /**< Shift value for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_MASK 0x40000000UL /**< Bit mask for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM_DEFAULT (_IADC_STATUS_ADCWARM_DEFAULT << 30) /**< Shifted mode DEFAULT for IADC_STATUS */
+
+/* Bit fields for IADC MASKREQ */
+#define _IADC_MASKREQ_RESETVALUE 0x00000000UL /**< Default value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASK 0x0000FFFFUL /**< Mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_SHIFT 0 /**< Shift value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_MASK 0xFFFFUL /**< Bit mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_MASKREQ */
+#define IADC_MASKREQ_MASKREQ_DEFAULT (_IADC_MASKREQ_MASKREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_MASKREQ */
+
+/* Bit fields for IADC STMASK */
+#define _IADC_STMASK_RESETVALUE 0x00000000UL /**< Default value for IADC_STMASK */
+#define _IADC_STMASK_MASK 0x0000FFFFUL /**< Mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_SHIFT 0 /**< Shift value for IADC_STMASK */
+#define _IADC_STMASK_STMASK_MASK 0xFFFFUL /**< Bit mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STMASK */
+#define IADC_STMASK_STMASK_DEFAULT (_IADC_STMASK_STMASK_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STMASK */
+
+/* Bit fields for IADC CMPTHR */
+#define _IADC_CMPTHR_RESETVALUE 0x00000000UL /**< Default value for IADC_CMPTHR */
+#define _IADC_CMPTHR_MASK 0xFFFFFFFFUL /**< Mask for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADLT_SHIFT 0 /**< Shift value for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_MASK 0xFFFFUL /**< Bit mask for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADLT_DEFAULT (_IADC_CMPTHR_ADLT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADGT_SHIFT 16 /**< Shift value for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_MASK 0xFFFF0000UL /**< Bit mask for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADGT_DEFAULT (_IADC_CMPTHR_ADGT_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+
+/* Bit fields for IADC IF */
+#define _IADC_IF_RESETVALUE 0x00000000UL /**< Default value for IADC_IF */
+#define _IADC_IF_MASK 0x800F338FUL /**< Mask for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level */
+#define _IADC_IF_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL_DEFAULT (_IADC_IF_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level */
+#define _IADC_IF_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL_DEFAULT (_IADC_IF_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare */
+#define _IADC_IF_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP_DEFAULT (_IADC_IF_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare */
+#define _IADC_IF_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP_DEFAULT (_IADC_IF_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done */
+#define _IADC_IF_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE_DEFAULT (_IADC_IF_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done */
+#define _IADC_IF_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE_DEFAULT (_IADC_IF_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done */
+#define _IADC_IF_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE_DEFAULT (_IADC_IF_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR (0x1UL << 12) /**< Polarity Error */
+#define _IADC_IF_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR_DEFAULT (_IADC_IF_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error */
+#define _IADC_IF_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR_DEFAULT (_IADC_IF_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow */
+#define _IADC_IF_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF_DEFAULT (_IADC_IF_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow */
+#define _IADC_IF_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF_DEFAULT (_IADC_IF_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow */
+#define _IADC_IF_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF_DEFAULT (_IADC_IF_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow */
+#define _IADC_IF_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF_DEFAULT (_IADC_IF_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error */
+#define _IADC_IF_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR_DEFAULT (_IADC_IF_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IF */
+
+/* Bit fields for IADC IEN */
+#define _IADC_IEN_RESETVALUE 0x00000000UL /**< Default value for IADC_IEN */
+#define _IADC_IEN_MASK 0x800F338FUL /**< Mask for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level Enable */
+#define _IADC_IEN_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL_DEFAULT (_IADC_IEN_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level Enable */
+#define _IADC_IEN_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL_DEFAULT (_IADC_IEN_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare Enable */
+#define _IADC_IEN_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP_DEFAULT (_IADC_IEN_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare Enable */
+#define _IADC_IEN_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP_DEFAULT (_IADC_IEN_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done Enable */
+#define _IADC_IEN_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE_DEFAULT (_IADC_IEN_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done Enable */
+#define _IADC_IEN_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE_DEFAULT (_IADC_IEN_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done Enable */
+#define _IADC_IEN_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE_DEFAULT (_IADC_IEN_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR (0x1UL << 12) /**< Polarity Error Enable */
+#define _IADC_IEN_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR_DEFAULT (_IADC_IEN_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error Enable */
+#define _IADC_IEN_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR_DEFAULT (_IADC_IEN_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow Enable */
+#define _IADC_IEN_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF_DEFAULT (_IADC_IEN_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow Enable */
+#define _IADC_IEN_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF_DEFAULT (_IADC_IEN_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow Enable */
+#define _IADC_IEN_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF_DEFAULT (_IADC_IEN_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow Enable */
+#define _IADC_IEN_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF_DEFAULT (_IADC_IEN_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error Enable */
+#define _IADC_IEN_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR_DEFAULT (_IADC_IEN_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IEN */
+
+/* Bit fields for IADC TRIGGER */
+#define _IADC_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for IADC_TRIGGER */
+#define _IADC_TRIGGER_MASK 0x00011717UL /**< Mask for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_SHIFT 0 /**< Shift value for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_MASK 0x7UL /**< Bit mask for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_DEFAULT (_IADC_TRIGGER_SCANTRIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE (_IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE << 0) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_TIMER (_IADC_TRIGGER_SCANTRIGSEL_TIMER << 0) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP << 0) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSPOS (_IADC_TRIGGER_SCANTRIGSEL_PRSPOS << 0) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSNEG (_IADC_TRIGGER_SCANTRIGSEL_PRSNEG << 0) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION (0x1UL << 4) /**< Scan Trigger Action */
+#define _IADC_TRIGGER_SCANTRIGACTION_SHIFT 4 /**< Shift value for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_MASK 0x10UL /**< Bit mask for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_DEFAULT (_IADC_TRIGGER_SCANTRIGACTION_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_ONCE (_IADC_TRIGGER_SCANTRIGACTION_ONCE << 4) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS (_IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS << 4) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_SHIFT 8 /**< Shift value for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_MASK 0x700UL /**< Bit mask for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_DEFAULT (_IADC_TRIGGER_SINGLETRIGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE (_IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE << 8) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_TIMER (_IADC_TRIGGER_SINGLETRIGSEL_TIMER << 8) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP << 8) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSPOS (_IADC_TRIGGER_SINGLETRIGSEL_PRSPOS << 8) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSNEG (_IADC_TRIGGER_SINGLETRIGSEL_PRSNEG << 8) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION (0x1UL << 12) /**< Single Trigger Action */
+#define _IADC_TRIGGER_SINGLETRIGACTION_SHIFT 12 /**< Shift value for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_MASK 0x1000UL /**< Bit mask for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_DEFAULT (_IADC_TRIGGER_SINGLETRIGACTION_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_ONCE (_IADC_TRIGGER_SINGLETRIGACTION_ONCE << 12) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS (_IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS << 12) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE (0x1UL << 16) /**< Single Tailgate Enable */
+#define _IADC_TRIGGER_SINGLETAILGATE_SHIFT 16 /**< Shift value for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_MASK 0x10000UL /**< Bit mask for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF 0x00000000UL /**< Mode TAILGATEOFF for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEON 0x00000001UL /**< Mode TAILGATEON for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_DEFAULT (_IADC_TRIGGER_SINGLETAILGATE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF << 16) /**< Shifted mode TAILGATEOFF for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEON (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEON << 16) /**< Shifted mode TAILGATEON for IADC_TRIGGER */
+
+/* Bit fields for IADC CFG */
+#define _IADC_CFG_RESETVALUE 0x00002060UL /**< Default value for IADC_CFG */
+#define _IADC_CFG_MASK 0x30E770FFUL /**< Mask for IADC_CFG */
+#define _IADC_CFG_ADCMODE_SHIFT 0 /**< Shift value for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_MASK 0x3UL /**< Bit mask for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ADCMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CFG */
+#define IADC_CFG_ADCMODE_DEFAULT (_IADC_CFG_ADCMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ADCMODE_NORMAL (_IADC_CFG_ADCMODE_NORMAL << 0) /**< Shifted mode NORMAL for IADC_CFG */
+#define _IADC_CFG_OSRHS_SHIFT 2 /**< Shift value for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_MASK 0x1CUL /**< Bit mask for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD2 0x00000000UL /**< Mode HISPD2 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD4 0x00000001UL /**< Mode HISPD4 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD8 0x00000002UL /**< Mode HISPD8 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD16 0x00000003UL /**< Mode HISPD16 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD32 0x00000004UL /**< Mode HISPD32 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD64 0x00000005UL /**< Mode HISPD64 for IADC_CFG */
+#define IADC_CFG_OSRHS_DEFAULT (_IADC_CFG_OSRHS_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD2 (_IADC_CFG_OSRHS_HISPD2 << 2) /**< Shifted mode HISPD2 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD4 (_IADC_CFG_OSRHS_HISPD4 << 2) /**< Shifted mode HISPD4 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD8 (_IADC_CFG_OSRHS_HISPD8 << 2) /**< Shifted mode HISPD8 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD16 (_IADC_CFG_OSRHS_HISPD16 << 2) /**< Shifted mode HISPD16 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD32 (_IADC_CFG_OSRHS_HISPD32 << 2) /**< Shifted mode HISPD32 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD64 (_IADC_CFG_OSRHS_HISPD64 << 2) /**< Shifted mode HISPD64 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_SHIFT 12 /**< Shift value for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_MASK 0x7000UL /**< Bit mask for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_DEFAULT 0x00000002UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN0P5 0x00000001UL /**< Mode ANAGAIN0P5 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN1 0x00000002UL /**< Mode ANAGAIN1 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN2 0x00000003UL /**< Mode ANAGAIN2 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN3 0x00000004UL /**< Mode ANAGAIN3 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN4 0x00000005UL /**< Mode ANAGAIN4 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_DEFAULT (_IADC_CFG_ANALOGGAIN_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN0P5 (_IADC_CFG_ANALOGGAIN_ANAGAIN0P5 << 12) /**< Shifted mode ANAGAIN0P5 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN1 (_IADC_CFG_ANALOGGAIN_ANAGAIN1 << 12) /**< Shifted mode ANAGAIN1 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN2 (_IADC_CFG_ANALOGGAIN_ANAGAIN2 << 12) /**< Shifted mode ANAGAIN2 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN3 (_IADC_CFG_ANALOGGAIN_ANAGAIN3 << 12) /**< Shifted mode ANAGAIN3 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN4 (_IADC_CFG_ANALOGGAIN_ANAGAIN4 << 12) /**< Shifted mode ANAGAIN4 for IADC_CFG */
+#define _IADC_CFG_REFSEL_SHIFT 16 /**< Shift value for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_MASK 0x70000UL /**< Bit mask for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_REFSEL_VBGR 0x00000000UL /**< Mode VBGR for IADC_CFG */
+#define _IADC_CFG_REFSEL_VREF 0x00000001UL /**< Mode VREF for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX 0x00000003UL /**< Mode VDDX for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX0P8BUF 0x00000004UL /**< Mode VDDX0P8BUF for IADC_CFG */
+#define IADC_CFG_REFSEL_DEFAULT (_IADC_CFG_REFSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_REFSEL_VBGR (_IADC_CFG_REFSEL_VBGR << 16) /**< Shifted mode VBGR for IADC_CFG */
+#define IADC_CFG_REFSEL_VREF (_IADC_CFG_REFSEL_VREF << 16) /**< Shifted mode VREF for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX (_IADC_CFG_REFSEL_VDDX << 16) /**< Shifted mode VDDX for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX0P8BUF (_IADC_CFG_REFSEL_VDDX0P8BUF << 16) /**< Shifted mode VDDX0P8BUF for IADC_CFG */
+#define _IADC_CFG_DIGAVG_SHIFT 21 /**< Shift value for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_MASK 0xE00000UL /**< Bit mask for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG1 0x00000000UL /**< Mode AVG1 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG2 0x00000001UL /**< Mode AVG2 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG4 0x00000002UL /**< Mode AVG4 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG8 0x00000003UL /**< Mode AVG8 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG16 0x00000004UL /**< Mode AVG16 for IADC_CFG */
+#define IADC_CFG_DIGAVG_DEFAULT (_IADC_CFG_DIGAVG_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG1 (_IADC_CFG_DIGAVG_AVG1 << 21) /**< Shifted mode AVG1 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG2 (_IADC_CFG_DIGAVG_AVG2 << 21) /**< Shifted mode AVG2 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG4 (_IADC_CFG_DIGAVG_AVG4 << 21) /**< Shifted mode AVG4 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG8 (_IADC_CFG_DIGAVG_AVG8 << 21) /**< Shifted mode AVG8 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG16 (_IADC_CFG_DIGAVG_AVG16 << 21) /**< Shifted mode AVG16 for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_SHIFT 28 /**< Shift value for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_MASK 0x30000000UL /**< Bit mask for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_AUTO 0x00000000UL /**< Mode AUTO for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR 0x00000001UL /**< Mode FORCEUNIPOLAR for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEBIPOLAR 0x00000002UL /**< Mode FORCEBIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_DEFAULT (_IADC_CFG_TWOSCOMPL_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_AUTO (_IADC_CFG_TWOSCOMPL_AUTO << 28) /**< Shifted mode AUTO for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR << 28) /**< Shifted mode FORCEUNIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEBIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEBIPOLAR << 28) /**< Shifted mode FORCEBIPOLAR for IADC_CFG */
+
+/* Bit fields for IADC SCALE */
+#define _IADC_SCALE_RESETVALUE 0x8002C000UL /**< Default value for IADC_SCALE */
+#define _IADC_SCALE_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCALE */
+#define _IADC_SCALE_OFFSET_SHIFT 0 /**< Shift value for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_MASK 0x3FFFFUL /**< Bit mask for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_DEFAULT 0x0002C000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_OFFSET_DEFAULT (_IADC_SCALE_OFFSET_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN13LSB_SHIFT 18 /**< Shift value for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_MASK 0x7FFC0000UL /**< Bit mask for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN13LSB_DEFAULT (_IADC_SCALE_GAIN13LSB_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB (0x1UL << 31) /**< Gain 3 MSBs */
+#define _IADC_SCALE_GAIN3MSB_SHIFT 31 /**< Shift value for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_MASK 0x80000000UL /**< Bit mask for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_DEFAULT 0x00000001UL /**< Mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN011 0x00000000UL /**< Mode GAIN011 for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN100 0x00000001UL /**< Mode GAIN100 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_DEFAULT (_IADC_SCALE_GAIN3MSB_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN011 (_IADC_SCALE_GAIN3MSB_GAIN011 << 31) /**< Shifted mode GAIN011 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN100 (_IADC_SCALE_GAIN3MSB_GAIN100 << 31) /**< Shifted mode GAIN100 for IADC_SCALE */
+
+/* Bit fields for IADC SCHED */
+#define _IADC_SCHED_RESETVALUE 0x00000000UL /**< Default value for IADC_SCHED */
+#define _IADC_SCHED_MASK 0x000003FFUL /**< Mask for IADC_SCHED */
+#define _IADC_SCHED_PRESCALE_SHIFT 0 /**< Shift value for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_MASK 0x3FFUL /**< Bit mask for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCHED */
+#define IADC_SCHED_PRESCALE_DEFAULT (_IADC_SCHED_PRESCALE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCHED */
+
+/* Bit fields for IADC SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_MASK 0x0000013FUL /**< Mask for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID_DEFAULT (_IADC_SINGLEFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_MASK 0x30UL /**< Bit mask for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_DEFAULT (_IADC_SINGLEFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID1 (_IADC_SINGLEFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID2 (_IADC_SINGLEFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID3 (_IADC_SINGLEFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID4 (_IADC_SINGLEFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE (0x1UL << 8) /**< Single FIFO DMA wakeup. */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SINGLEFIFOCFG*/
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SINGLEFIFOCFG */
+
+/* Bit fields for IADC SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFODATA */
+#define IADC_SINGLEFIFODATA_DATA_DEFAULT (_IADC_SINGLEFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFODATA*/
+
+/* Bit fields for IADC SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_MASK 0x00000007UL /**< Mask for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_MASK 0x7UL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOSTAT */
+#define IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOSTAT*/
+
+/* Bit fields for IADC SINGLEDATA */
+#define _IADC_SINGLEDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEDATA */
+#define IADC_SINGLEDATA_DATA_DEFAULT (_IADC_SINGLEDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEDATA */
+
+/* Bit fields for IADC SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_MASK 0x0000013FUL /**< Mask for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SCANFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID_DEFAULT (_IADC_SCANFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_MASK 0x30UL /**< Bit mask for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_DEFAULT (_IADC_SCANFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID1 (_IADC_SCANFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID2 (_IADC_SCANFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID3 (_IADC_SCANFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID4 (_IADC_SCANFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN (0x1UL << 8) /**< Scan FIFO DMA Wakeup */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SCANFIFOCFG */
+
+/* Bit fields for IADC SCANFIFODATA */
+#define _IADC_SCANFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFODATA */
+#define IADC_SCANFIFODATA_DATA_DEFAULT (_IADC_SCANFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFODATA */
+
+/* Bit fields for IADC SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_MASK 0x00000007UL /**< Mask for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_MASK 0x7UL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOSTAT */
+#define IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOSTAT */
+
+/* Bit fields for IADC SCANDATA */
+#define _IADC_SCANDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANDATA */
+#define _IADC_SCANDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANDATA */
+#define _IADC_SCANDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANDATA */
+#define IADC_SCANDATA_DATA_DEFAULT (_IADC_SCANDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANDATA */
+
+/* Bit fields for IADC SINGLE */
+#define _IADC_SINGLE_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLE */
+#define _IADC_SINGLE_MASK 0x0003FFFFUL /**< Mask for IADC_SINGLE */
+#define _IADC_SINGLE_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINNEG_DEFAULT (_IADC_SINGLE_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_DEFAULT (_IADC_SINGLE_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_GND (_IADC_SINGLE_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTA (_IADC_SINGLE_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTB (_IADC_SINGLE_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTC (_IADC_SINGLE_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTD (_IADC_SINGLE_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SINGLE */
+#define _IADC_SINGLE_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINPOS_DEFAULT (_IADC_SINGLE_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_DEFAULT (_IADC_SINGLE_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_GND (_IADC_SINGLE_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_SUPPLY (_IADC_SINGLE_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTA (_IADC_SINGLE_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTB (_IADC_SINGLE_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTC (_IADC_SINGLE_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTD (_IADC_SINGLE_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SINGLE_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SINGLE_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SINGLE_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_DEFAULT (_IADC_SINGLE_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG0 (_IADC_SINGLE_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG1 (_IADC_SINGLE_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SINGLE_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SINGLE_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SINGLE_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CMP_DEFAULT (_IADC_SINGLE_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SINGLE */
+
+/* Bit fields for IADC SCAN */
+#define _IADC_SCAN_RESETVALUE 0x00000000UL /**< Default value for IADC_SCAN */
+#define _IADC_SCAN_MASK 0x0003FFFFUL /**< Mask for IADC_SCAN */
+#define _IADC_SCAN_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINNEG_DEFAULT (_IADC_SCAN_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_DEFAULT (_IADC_SCAN_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_GND (_IADC_SCAN_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTA (_IADC_SCAN_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTB (_IADC_SCAN_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTC (_IADC_SCAN_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTD (_IADC_SCAN_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SCAN */
+#define _IADC_SCAN_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINPOS_DEFAULT (_IADC_SCAN_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_DEFAULT (_IADC_SCAN_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_GND (_IADC_SCAN_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_SUPPLY (_IADC_SCAN_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTA (_IADC_SCAN_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTB (_IADC_SCAN_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTC (_IADC_SCAN_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTD (_IADC_SCAN_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SCAN */
+#define IADC_SCAN_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SCAN_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SCAN_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SCAN_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CFG_DEFAULT (_IADC_SCAN_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG0 (_IADC_SCAN_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG1 (_IADC_SCAN_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SCAN_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SCAN_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SCAN_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CMP_DEFAULT (_IADC_SCAN_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SCAN */
+
+/** @} End of group EFR32MG29_IADC_BitFields */
+/** @} End of group EFR32MG29_IADC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_IADC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_icache.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_icache.h
new file mode 100644
index 000000000..c80611945
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_icache.h
@@ -0,0 +1,248 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 ICACHE register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_ICACHE_H
+#define EFR32MG29_ICACHE_H
+#define ICACHE_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_ICACHE ICACHE
+ * @{
+ * @brief EFR32MG29 ICACHE Register Declaration.
+ *****************************************************************************/
+
+/** ICACHE Register Declaration. */
+typedef struct icache_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IM uint32_t PCHITS; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LPMODE; /**< Low Power Mode */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IM uint32_t PCHITS_SET; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_SET; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_SET; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LPMODE_SET; /**< Low Power Mode */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IM uint32_t PCHITS_CLR; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_CLR; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_CLR; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LPMODE_CLR; /**< Low Power Mode */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IM uint32_t PCHITS_TGL; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_TGL; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_TGL; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LPMODE_TGL; /**< Low Power Mode */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+} ICACHE_TypeDef;
+/** @} End of group EFR32MG29_ICACHE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_ICACHE
+ * @{
+ * @defgroup EFR32MG29_ICACHE_BitFields ICACHE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ICACHE IPVERSION */
+#define _ICACHE_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IPVERSION */
+#define ICACHE_IPVERSION_IPVERSION_DEFAULT (_ICACHE_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IPVERSION */
+
+/* Bit fields for ICACHE CTRL */
+#define _ICACHE_CTRL_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CTRL */
+#define _ICACHE_CTRL_MASK 0x00000007UL /**< Mask for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS (0x1UL << 0) /**< Cache Disable */
+#define _ICACHE_CTRL_CACHEDIS_SHIFT 0 /**< Shift value for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_MASK 0x1UL /**< Bit mask for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS_DEFAULT (_ICACHE_CTRL_CACHEDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU (0x1UL << 1) /**< Use MPU */
+#define _ICACHE_CTRL_USEMPU_SHIFT 1 /**< Shift value for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_MASK 0x2UL /**< Bit mask for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU_DEFAULT (_ICACHE_CTRL_USEMPU_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS (0x1UL << 2) /**< Automatic Flushing Disable */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_SHIFT 2 /**< Shift value for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_MASK 0x4UL /**< Bit mask for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT (_ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+
+/* Bit fields for ICACHE PCHITS */
+#define _ICACHE_PCHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_SHIFT 0 /**< Shift value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCHITS */
+#define ICACHE_PCHITS_PCHITS_DEFAULT (_ICACHE_PCHITS_PCHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCHITS */
+
+/* Bit fields for ICACHE PCMISSES */
+#define _ICACHE_PCMISSES_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_SHIFT 0 /**< Shift value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCMISSES */
+#define ICACHE_PCMISSES_PCMISSES_DEFAULT (_ICACHE_PCMISSES_PCMISSES_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCMISSES */
+
+/* Bit fields for ICACHE PCAHITS */
+#define _ICACHE_PCAHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_SHIFT 0 /**< Shift value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCAHITS */
+#define ICACHE_PCAHITS_PCAHITS_DEFAULT (_ICACHE_PCAHITS_PCAHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCAHITS */
+
+/* Bit fields for ICACHE STATUS */
+#define _ICACHE_STATUS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_STATUS */
+#define _ICACHE_STATUS_MASK 0x00000001UL /**< Mask for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING (0x1UL << 0) /**< PC Running */
+#define _ICACHE_STATUS_PCRUNNING_SHIFT 0 /**< Shift value for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_MASK 0x1UL /**< Bit mask for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING_DEFAULT (_ICACHE_STATUS_PCRUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_STATUS */
+
+/* Bit fields for ICACHE CMD */
+#define _ICACHE_CMD_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CMD */
+#define _ICACHE_CMD_MASK 0x00000007UL /**< Mask for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH (0x1UL << 0) /**< Flush */
+#define _ICACHE_CMD_FLUSH_SHIFT 0 /**< Shift value for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_MASK 0x1UL /**< Bit mask for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH_DEFAULT (_ICACHE_CMD_FLUSH_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC (0x1UL << 1) /**< Start Performance Counters */
+#define _ICACHE_CMD_STARTPC_SHIFT 1 /**< Shift value for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_MASK 0x2UL /**< Bit mask for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC_DEFAULT (_ICACHE_CMD_STARTPC_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC (0x1UL << 2) /**< Stop Performance Counters */
+#define _ICACHE_CMD_STOPPC_SHIFT 2 /**< Shift value for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_MASK 0x4UL /**< Bit mask for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC_DEFAULT (_ICACHE_CMD_STOPPC_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CMD */
+
+/* Bit fields for ICACHE LPMODE */
+#define _ICACHE_LPMODE_RESETVALUE 0x00000023UL /**< Default value for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_MASK 0x000000F3UL /**< Mask for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_SHIFT 0 /**< Shift value for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_MASK 0x3UL /**< Bit mask for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_BASIC 0x00000000UL /**< Mode BASIC for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_ADVANCED 0x00000001UL /**< Mode ADVANCED for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_MINACTIVITY 0x00000003UL /**< Mode MINACTIVITY for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_DEFAULT (_ICACHE_LPMODE_LPLEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_BASIC (_ICACHE_LPMODE_LPLEVEL_BASIC << 0) /**< Shifted mode BASIC for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_ADVANCED (_ICACHE_LPMODE_LPLEVEL_ADVANCED << 0) /**< Shifted mode ADVANCED for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_MINACTIVITY (_ICACHE_LPMODE_LPLEVEL_MINACTIVITY << 0) /**< Shifted mode MINACTIVITY for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_NESTFACTOR_SHIFT 4 /**< Shift value for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_MASK 0xF0UL /**< Bit mask for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_DEFAULT 0x00000002UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_NESTFACTOR_DEFAULT (_ICACHE_LPMODE_NESTFACTOR_DEFAULT << 4) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+
+/* Bit fields for ICACHE IF */
+#define _ICACHE_IF_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IF */
+#define _ICACHE_IF_MASK 0x00000107UL /**< Mask for ICACHE_IF */
+#define ICACHE_IF_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_HITOF_DEFAULT (_ICACHE_IF_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Flag */
+#define _ICACHE_IF_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF_DEFAULT (_ICACHE_IF_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF_DEFAULT (_ICACHE_IF_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Flag */
+#define _ICACHE_IF_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR_DEFAULT (_ICACHE_IF_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IF */
+
+/* Bit fields for ICACHE IEN */
+#define _ICACHE_IEN_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IEN */
+#define _ICACHE_IEN_MASK 0x00000107UL /**< Mask for ICACHE_IEN */
+#define ICACHE_IEN_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_HITOF_DEFAULT (_ICACHE_IEN_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Enable */
+#define _ICACHE_IEN_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF_DEFAULT (_ICACHE_IEN_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF_DEFAULT (_ICACHE_IEN_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Enable */
+#define _ICACHE_IEN_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR_DEFAULT (_ICACHE_IEN_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IEN */
+
+/** @} End of group EFR32MG29_ICACHE_BitFields */
+/** @} End of group EFR32MG29_ICACHE */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_ICACHE_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldma.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldma.h
new file mode 100644
index 000000000..d2f8b9d81
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldma.h
@@ -0,0 +1,685 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LDMA register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LDMA_H
+#define EFR32MG29_LDMA_H
+#define LDMA_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_LDMA LDMA
+ * @{
+ * @brief EFR32MG29 LDMA Register Declaration.
+ *****************************************************************************/
+
+/** LDMA CH Register Group Declaration. */
+typedef struct ldma_ch_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Channel Configuration Register */
+ __IOM uint32_t LOOP; /**< Channel Loop Counter Register */
+ __IOM uint32_t CTRL; /**< Channel Descriptor Control Word Register */
+ __IOM uint32_t SRC; /**< Channel Descriptor Source Address */
+ __IOM uint32_t DST; /**< Channel Descriptor Destination Address */
+ __IOM uint32_t LINK; /**< Channel Descriptor Link Address */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+} LDMA_CH_TypeDef;
+
+/** LDMA Register Declaration. */
+typedef struct ldma_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL; /**< DMA Control Register */
+ __IM uint32_t STATUS; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_SET; /**< DMA Control Register */
+ __IM uint32_t STATUS_SET; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_SET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_SET; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_SET; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_SET; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_SET; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_SET; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_SET; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_SET; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_SET; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_SET; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_SET; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_SET; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_SET; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_SET; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_SET; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_SET; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_CLR; /**< DMA Control Register */
+ __IM uint32_t STATUS_CLR; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_CLR; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_CLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_CLR; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_CLR; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_CLR; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_CLR; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_CLR; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_CLR; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_CLR; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_CLR; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_CLR; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_CLR; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_CLR; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_CLR; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_CLR; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_CLR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_TGL; /**< DMA Control Register */
+ __IM uint32_t STATUS_TGL; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_TGL; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_TGL; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_TGL; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_TGL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_TGL; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_TGL; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_TGL; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_TGL; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_TGL; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_TGL; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_TGL; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_TGL; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_TGL; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_TGL; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_TGL; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_TGL; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMA_TypeDef;
+/** @} End of group EFR32MG29_LDMA */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_LDMA
+ * @{
+ * @defgroup EFR32MG29_LDMA_BitFields LDMA Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMA IPVERSION */
+#define _LDMA_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_MASK 0x000000FFUL /**< Mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_MASK 0xFFUL /**< Bit mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IPVERSION */
+#define LDMA_IPVERSION_IPVERSION_DEFAULT (_LDMA_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IPVERSION */
+
+/* Bit fields for LDMA EN */
+#define _LDMA_EN_RESETVALUE 0x00000000UL /**< Default value for LDMA_EN */
+#define _LDMA_EN_MASK 0x00000001UL /**< Mask for LDMA_EN */
+#define LDMA_EN_EN (0x1UL << 0) /**< LDMA module enable and disable register */
+#define _LDMA_EN_EN_SHIFT 0 /**< Shift value for LDMA_EN */
+#define _LDMA_EN_EN_MASK 0x1UL /**< Bit mask for LDMA_EN */
+#define _LDMA_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_EN */
+#define LDMA_EN_EN_DEFAULT (_LDMA_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_EN */
+
+/* Bit fields for LDMA CTRL */
+#define _LDMA_CTRL_RESETVALUE 0x1E000000UL /**< Default value for LDMA_CTRL */
+#define _LDMA_CTRL_MASK 0x9F000000UL /**< Mask for LDMA_CTRL */
+#define _LDMA_CTRL_NUMFIXED_SHIFT 24 /**< Shift value for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_MASK 0x1F000000UL /**< Bit mask for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_DEFAULT 0x0000001EUL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_NUMFIXED_DEFAULT (_LDMA_CTRL_NUMFIXED_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST (0x1UL << 31) /**< Reset DMA controller */
+#define _LDMA_CTRL_CORERST_SHIFT 31 /**< Shift value for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_MASK 0x80000000UL /**< Bit mask for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST_DEFAULT (_LDMA_CTRL_CORERST_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CTRL */
+
+/* Bit fields for LDMA STATUS */
+#define _LDMA_STATUS_RESETVALUE 0x08100000UL /**< Default value for LDMA_STATUS */
+#define _LDMA_STATUS_MASK 0x1F1F1FFBUL /**< Mask for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY (0x1UL << 0) /**< Any DMA Channel Busy */
+#define _LDMA_STATUS_ANYBUSY_SHIFT 0 /**< Shift value for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_MASK 0x1UL /**< Bit mask for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY_DEFAULT (_LDMA_STATUS_ANYBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ (0x1UL << 1) /**< Any DMA Channel Request Pending */
+#define _LDMA_STATUS_ANYREQ_SHIFT 1 /**< Shift value for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_MASK 0x2UL /**< Bit mask for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ_DEFAULT (_LDMA_STATUS_ANYREQ_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHGRANT_SHIFT 3 /**< Shift value for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_MASK 0xF8UL /**< Bit mask for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHGRANT_DEFAULT (_LDMA_STATUS_CHGRANT_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHERROR_SHIFT 8 /**< Shift value for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_MASK 0x1F00UL /**< Bit mask for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHERROR_DEFAULT (_LDMA_STATUS_CHERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_FIFOLEVEL_SHIFT 16 /**< Shift value for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_MASK 0x1F0000UL /**< Bit mask for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_DEFAULT 0x00000010UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_FIFOLEVEL_DEFAULT (_LDMA_STATUS_FIFOLEVEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHNUM_SHIFT 24 /**< Shift value for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_MASK 0x1F000000UL /**< Bit mask for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_DEFAULT 0x00000008UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHNUM_DEFAULT (_LDMA_STATUS_CHNUM_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_STATUS */
+
+/* Bit fields for LDMA SYNCSWSET */
+#define _LDMA_SYNCSWSET_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_SHIFT 0 /**< Shift value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWSET */
+#define LDMA_SYNCSWSET_SYNCSWSET_DEFAULT (_LDMA_SYNCSWSET_SYNCSWSET_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWSET */
+
+/* Bit fields for LDMA SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_SHIFT 0 /**< Shift value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWCLR */
+#define LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT (_LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWCLR */
+
+/* Bit fields for LDMA SYNCHWEN */
+#define _LDMA_SYNCHWEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_SHIFT 0 /**< Shift value for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCSETEN_DEFAULT (_LDMA_SYNCHWEN_SYNCSETEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_SHIFT 16 /**< Shift value for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCCLREN_DEFAULT (_LDMA_SYNCHWEN_SYNCCLREN_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+
+/* Bit fields for LDMA SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_SHIFT 0 /**< Shift value for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_RISE (_LDMA_SYNCHWSEL_SYNCSETEDGE_RISE << 0) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_FALL (_LDMA_SYNCHWSEL_SYNCSETEDGE_FALL << 0) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_SHIFT 16 /**< Shift value for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_RISE (_LDMA_SYNCHWSEL_SYNCCLREDGE_RISE << 16) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_FALL (_LDMA_SYNCHWSEL_SYNCCLREDGE_FALL << 16) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+
+/* Bit fields for LDMA SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_SHIFT 0 /**< Shift value for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_MASK 0xFFUL /**< Bit mask for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSTATUS */
+#define LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT (_LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSTATUS */
+
+/* Bit fields for LDMA CHEN */
+#define _LDMA_CHEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHEN */
+#define _LDMA_CHEN_MASK 0x000000FFUL /**< Mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_SHIFT 0 /**< Shift value for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_MASK 0xFFUL /**< Bit mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHEN */
+#define LDMA_CHEN_CHEN_DEFAULT (_LDMA_CHEN_CHEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHEN */
+
+/* Bit fields for LDMA CHDIS */
+#define _LDMA_CHDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDIS */
+#define _LDMA_CHDIS_MASK 0x000000FFUL /**< Mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_SHIFT 0 /**< Shift value for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_MASK 0xFFUL /**< Bit mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDIS */
+#define LDMA_CHDIS_CHDIS_DEFAULT (_LDMA_CHDIS_CHDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDIS */
+
+/* Bit fields for LDMA CHSTATUS */
+#define _LDMA_CHSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_SHIFT 0 /**< Shift value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_MASK 0xFFUL /**< Bit mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHSTATUS */
+#define LDMA_CHSTATUS_CHSTATUS_DEFAULT (_LDMA_CHSTATUS_CHSTATUS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHSTATUS */
+
+/* Bit fields for LDMA CHBUSY */
+#define _LDMA_CHBUSY_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_MASK 0x000000FFUL /**< Mask for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_BUSY_SHIFT 0 /**< Shift value for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_MASK 0xFFUL /**< Bit mask for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHBUSY */
+#define LDMA_CHBUSY_BUSY_DEFAULT (_LDMA_CHBUSY_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHBUSY */
+
+/* Bit fields for LDMA CHDONE */
+#define _LDMA_CHDONE_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDONE */
+#define _LDMA_CHDONE_MASK 0x000000FFUL /**< Mask for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0 (0x1UL << 0) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE0_SHIFT 0 /**< Shift value for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_MASK 0x1UL /**< Bit mask for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0_DEFAULT (_LDMA_CHDONE_CHDONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1 (0x1UL << 1) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE1_SHIFT 1 /**< Shift value for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_MASK 0x2UL /**< Bit mask for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1_DEFAULT (_LDMA_CHDONE_CHDONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2 (0x1UL << 2) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE2_SHIFT 2 /**< Shift value for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_MASK 0x4UL /**< Bit mask for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2_DEFAULT (_LDMA_CHDONE_CHDONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3 (0x1UL << 3) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE3_SHIFT 3 /**< Shift value for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_MASK 0x8UL /**< Bit mask for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3_DEFAULT (_LDMA_CHDONE_CHDONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4 (0x1UL << 4) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE4_SHIFT 4 /**< Shift value for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_MASK 0x10UL /**< Bit mask for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4_DEFAULT (_LDMA_CHDONE_CHDONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5 (0x1UL << 5) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE5_SHIFT 5 /**< Shift value for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_MASK 0x20UL /**< Bit mask for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5_DEFAULT (_LDMA_CHDONE_CHDONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6 (0x1UL << 6) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE6_SHIFT 6 /**< Shift value for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_MASK 0x40UL /**< Bit mask for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6_DEFAULT (_LDMA_CHDONE_CHDONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7 (0x1UL << 7) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE7_SHIFT 7 /**< Shift value for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_MASK 0x80UL /**< Bit mask for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7_DEFAULT (_LDMA_CHDONE_CHDONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+
+/* Bit fields for LDMA DBGHALT */
+#define _LDMA_DBGHALT_RESETVALUE 0x00000000UL /**< Default value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_MASK 0x000000FFUL /**< Mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_SHIFT 0 /**< Shift value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_MASK 0xFFUL /**< Bit mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_DBGHALT */
+#define LDMA_DBGHALT_DBGHALT_DEFAULT (_LDMA_DBGHALT_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_DBGHALT */
+
+/* Bit fields for LDMA SWREQ */
+#define _LDMA_SWREQ_RESETVALUE 0x00000000UL /**< Default value for LDMA_SWREQ */
+#define _LDMA_SWREQ_MASK 0x000000FFUL /**< Mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_SHIFT 0 /**< Shift value for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_MASK 0xFFUL /**< Bit mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SWREQ */
+#define LDMA_SWREQ_SWREQ_DEFAULT (_LDMA_SWREQ_SWREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SWREQ */
+
+/* Bit fields for LDMA REQDIS */
+#define _LDMA_REQDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQDIS */
+#define _LDMA_REQDIS_MASK 0x000000FFUL /**< Mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_SHIFT 0 /**< Shift value for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_MASK 0xFFUL /**< Bit mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQDIS */
+#define LDMA_REQDIS_REQDIS_DEFAULT (_LDMA_REQDIS_REQDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQDIS */
+
+/* Bit fields for LDMA REQPEND */
+#define _LDMA_REQPEND_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQPEND */
+#define _LDMA_REQPEND_MASK 0x000000FFUL /**< Mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_SHIFT 0 /**< Shift value for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_MASK 0xFFUL /**< Bit mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQPEND */
+#define LDMA_REQPEND_REQPEND_DEFAULT (_LDMA_REQPEND_REQPEND_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQPEND */
+
+/* Bit fields for LDMA LINKLOAD */
+#define _LDMA_LINKLOAD_RESETVALUE 0x00000000UL /**< Default value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_MASK 0x000000FFUL /**< Mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_SHIFT 0 /**< Shift value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_MASK 0xFFUL /**< Bit mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_LINKLOAD */
+#define LDMA_LINKLOAD_LINKLOAD_DEFAULT (_LDMA_LINKLOAD_LINKLOAD_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_LINKLOAD */
+
+/* Bit fields for LDMA REQCLEAR */
+#define _LDMA_REQCLEAR_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_MASK 0x000000FFUL /**< Mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_SHIFT 0 /**< Shift value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_MASK 0xFFUL /**< Bit mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQCLEAR */
+#define LDMA_REQCLEAR_REQCLEAR_DEFAULT (_LDMA_REQCLEAR_REQCLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQCLEAR */
+
+/* Bit fields for LDMA IF */
+#define _LDMA_IF_RESETVALUE 0x00000000UL /**< Default value for LDMA_IF */
+#define _LDMA_IF_MASK 0x800000FFUL /**< Mask for LDMA_IF */
+#define LDMA_IF_DONE0 (0x1UL << 0) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE0_SHIFT 0 /**< Shift value for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_MASK 0x1UL /**< Bit mask for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE0_DEFAULT (_LDMA_IF_DONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1 (0x1UL << 1) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE1_SHIFT 1 /**< Shift value for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_MASK 0x2UL /**< Bit mask for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1_DEFAULT (_LDMA_IF_DONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2 (0x1UL << 2) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE2_SHIFT 2 /**< Shift value for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_MASK 0x4UL /**< Bit mask for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2_DEFAULT (_LDMA_IF_DONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3 (0x1UL << 3) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE3_SHIFT 3 /**< Shift value for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_MASK 0x8UL /**< Bit mask for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3_DEFAULT (_LDMA_IF_DONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4 (0x1UL << 4) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE4_SHIFT 4 /**< Shift value for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_MASK 0x10UL /**< Bit mask for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4_DEFAULT (_LDMA_IF_DONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5 (0x1UL << 5) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE5_SHIFT 5 /**< Shift value for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_MASK 0x20UL /**< Bit mask for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5_DEFAULT (_LDMA_IF_DONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6 (0x1UL << 6) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE6_SHIFT 6 /**< Shift value for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_MASK 0x40UL /**< Bit mask for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6_DEFAULT (_LDMA_IF_DONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7 (0x1UL << 7) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE7_SHIFT 7 /**< Shift value for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_MASK 0x80UL /**< Bit mask for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7_DEFAULT (_LDMA_IF_DONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR (0x1UL << 31) /**< Error Flag */
+#define _LDMA_IF_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IF_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IF_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR_DEFAULT (_LDMA_IF_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IF */
+
+/* Bit fields for LDMA IEN */
+#define _LDMA_IEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_IEN */
+#define _LDMA_IEN_MASK 0x800000FFUL /**< Mask for LDMA_IEN */
+#define _LDMA_IEN_CHDONE_SHIFT 0 /**< Shift value for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_MASK 0xFFUL /**< Bit mask for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_CHDONE_DEFAULT (_LDMA_IEN_CHDONE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR (0x1UL << 31) /**< Enable or disable the error interrupt */
+#define _LDMA_IEN_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR_DEFAULT (_LDMA_IEN_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IEN */
+
+/* Bit fields for LDMA CH_CFG */
+#define _LDMA_CH_CFG_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_MASK 0x00330000UL /**< Mask for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_SHIFT 16 /**< Shift value for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_MASK 0x30000UL /**< Bit mask for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_EIGHT 0x00000003UL /**< Mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_DEFAULT (_LDMA_CH_CFG_ARBSLOTS_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_ONE (_LDMA_CH_CFG_ARBSLOTS_ONE << 16) /**< Shifted mode ONE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_TWO (_LDMA_CH_CFG_ARBSLOTS_TWO << 16) /**< Shifted mode TWO for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_FOUR (_LDMA_CH_CFG_ARBSLOTS_FOUR << 16) /**< Shifted mode FOUR for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_EIGHT (_LDMA_CH_CFG_ARBSLOTS_EIGHT << 16) /**< Shifted mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN (0x1UL << 20) /**< Source Address Increment Sign */
+#define _LDMA_CH_CFG_SRCINCSIGN_SHIFT 20 /**< Shift value for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_MASK 0x100000UL /**< Bit mask for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_DEFAULT (_LDMA_CH_CFG_SRCINCSIGN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_POSITIVE (_LDMA_CH_CFG_SRCINCSIGN_POSITIVE << 20) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_NEGATIVE (_LDMA_CH_CFG_SRCINCSIGN_NEGATIVE << 20) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN (0x1UL << 21) /**< Destination Address Increment Sign */
+#define _LDMA_CH_CFG_DSTINCSIGN_SHIFT 21 /**< Shift value for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_MASK 0x200000UL /**< Bit mask for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_DEFAULT (_LDMA_CH_CFG_DSTINCSIGN_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_POSITIVE (_LDMA_CH_CFG_DSTINCSIGN_POSITIVE << 21) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_NEGATIVE (_LDMA_CH_CFG_DSTINCSIGN_NEGATIVE << 21) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+
+/* Bit fields for LDMA CH_LOOP */
+#define _LDMA_CH_LOOP_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_MASK 0x000000FFUL /**< Mask for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_LOOPCNT_SHIFT 0 /**< Shift value for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_MASK 0xFFUL /**< Bit mask for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LOOP */
+#define LDMA_CH_LOOP_LOOPCNT_DEFAULT (_LDMA_CH_LOOP_LOOPCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LOOP */
+
+/* Bit fields for LDMA CH_CTRL */
+#define _LDMA_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_MASK 0xFFFFFFFBUL /**< Mask for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SHIFT 0 /**< Shift value for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_MASK 0x3UL /**< Bit mask for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_TRANSFER 0x00000000UL /**< Mode TRANSFER for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE 0x00000001UL /**< Mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_WRITE 0x00000002UL /**< Mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_DEFAULT (_LDMA_CH_CTRL_STRUCTTYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_TRANSFER (_LDMA_CH_CTRL_STRUCTTYPE_TRANSFER << 0) /**< Shifted mode TRANSFER for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE (_LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE << 0) /**< Shifted mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_WRITE (_LDMA_CH_CTRL_STRUCTTYPE_WRITE << 0) /**< Shifted mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ (0x1UL << 3) /**< Structure DMA Transfer Request */
+#define _LDMA_CH_CTRL_STRUCTREQ_SHIFT 3 /**< Shift value for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_MASK 0x8UL /**< Bit mask for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ_DEFAULT (_LDMA_CH_CTRL_STRUCTREQ_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_XFERCNT_SHIFT 4 /**< Shift value for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_MASK 0x7FF0UL /**< Bit mask for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_XFERCNT_DEFAULT (_LDMA_CH_CTRL_XFERCNT_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP (0x1UL << 15) /**< Endian Byte Swap */
+#define _LDMA_CH_CTRL_BYTESWAP_SHIFT 15 /**< Shift value for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_MASK 0x8000UL /**< Bit mask for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP_DEFAULT (_LDMA_CH_CTRL_BYTESWAP_DEFAULT << 15) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_SHIFT 16 /**< Shift value for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_MASK 0xF0000UL /**< Bit mask for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1 0x00000000UL /**< Mode UNIT1 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT2 0x00000001UL /**< Mode UNIT2 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT3 0x00000002UL /**< Mode UNIT3 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT4 0x00000003UL /**< Mode UNIT4 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT6 0x00000004UL /**< Mode UNIT6 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT8 0x00000005UL /**< Mode UNIT8 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT16 0x00000007UL /**< Mode UNIT16 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT32 0x00000009UL /**< Mode UNIT32 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT64 0x0000000AUL /**< Mode UNIT64 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT128 0x0000000BUL /**< Mode UNIT128 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT256 0x0000000CUL /**< Mode UNIT256 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT512 0x0000000DUL /**< Mode UNIT512 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 0x0000000EUL /**< Mode UNIT1024 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_ALL 0x0000000FUL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_DEFAULT (_LDMA_CH_CTRL_BLOCKSIZE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1 << 16) /**< Shifted mode UNIT1 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT2 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT2 << 16) /**< Shifted mode UNIT2 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT3 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT3 << 16) /**< Shifted mode UNIT3 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT4 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT4 << 16) /**< Shifted mode UNIT4 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT6 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT6 << 16) /**< Shifted mode UNIT6 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT8 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT8 << 16) /**< Shifted mode UNIT8 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT16 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT16 << 16) /**< Shifted mode UNIT16 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT32 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT32 << 16) /**< Shifted mode UNIT32 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT64 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT64 << 16) /**< Shifted mode UNIT64 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT128 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT128 << 16) /**< Shifted mode UNIT128 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT256 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT256 << 16) /**< Shifted mode UNIT256 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT512 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT512 << 16) /**< Shifted mode UNIT512 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 << 16) /**< Shifted mode UNIT1024 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_ALL (_LDMA_CH_CTRL_BLOCKSIZE_ALL << 16) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN (0x1UL << 20) /**< DMA Operation Done Interrupt Flag Set En */
+#define _LDMA_CH_CTRL_DONEIEN_SHIFT 20 /**< Shift value for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_MASK 0x100000UL /**< Bit mask for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN_DEFAULT (_LDMA_CH_CTRL_DONEIEN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE (0x1UL << 21) /**< DMA Request Transfer Mode Select */
+#define _LDMA_CH_CTRL_REQMODE_SHIFT 21 /**< Shift value for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_MASK 0x200000UL /**< Bit mask for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_BLOCK 0x00000000UL /**< Mode BLOCK for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_ALL 0x00000001UL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_DEFAULT (_LDMA_CH_CTRL_REQMODE_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_BLOCK (_LDMA_CH_CTRL_REQMODE_BLOCK << 21) /**< Shifted mode BLOCK for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_ALL (_LDMA_CH_CTRL_REQMODE_ALL << 21) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT (0x1UL << 22) /**< Decrement Loop Count */
+#define _LDMA_CH_CTRL_DECLOOPCNT_SHIFT 22 /**< Shift value for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_MASK 0x400000UL /**< Bit mask for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT_DEFAULT (_LDMA_CH_CTRL_DECLOOPCNT_DEFAULT << 22) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ (0x1UL << 23) /**< Ignore Sreq */
+#define _LDMA_CH_CTRL_IGNORESREQ_SHIFT 23 /**< Shift value for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_MASK 0x800000UL /**< Bit mask for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ_DEFAULT (_LDMA_CH_CTRL_IGNORESREQ_DEFAULT << 23) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_SHIFT 24 /**< Shift value for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_MASK 0x3000000UL /**< Bit mask for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_DEFAULT (_LDMA_CH_CTRL_SRCINC_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_ONE (_LDMA_CH_CTRL_SRCINC_ONE << 24) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_TWO (_LDMA_CH_CTRL_SRCINC_TWO << 24) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_FOUR (_LDMA_CH_CTRL_SRCINC_FOUR << 24) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_NONE (_LDMA_CH_CTRL_SRCINC_NONE << 24) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_SHIFT 26 /**< Shift value for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_MASK 0xC000000UL /**< Bit mask for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_BYTE 0x00000000UL /**< Mode BYTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_HALFWORD 0x00000001UL /**< Mode HALFWORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_WORD 0x00000002UL /**< Mode WORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_DEFAULT (_LDMA_CH_CTRL_SIZE_DEFAULT << 26) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_BYTE (_LDMA_CH_CTRL_SIZE_BYTE << 26) /**< Shifted mode BYTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_HALFWORD (_LDMA_CH_CTRL_SIZE_HALFWORD << 26) /**< Shifted mode HALFWORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_WORD (_LDMA_CH_CTRL_SIZE_WORD << 26) /**< Shifted mode WORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_SHIFT 28 /**< Shift value for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_MASK 0x30000000UL /**< Bit mask for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_DEFAULT (_LDMA_CH_CTRL_DSTINC_DEFAULT << 28) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_ONE (_LDMA_CH_CTRL_DSTINC_ONE << 28) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_TWO (_LDMA_CH_CTRL_DSTINC_TWO << 28) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_FOUR (_LDMA_CH_CTRL_DSTINC_FOUR << 28) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_NONE (_LDMA_CH_CTRL_DSTINC_NONE << 28) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE (0x1UL << 30) /**< Source Addressing Mode */
+#define _LDMA_CH_CTRL_SRCMODE_SHIFT 30 /**< Shift value for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_MASK 0x40000000UL /**< Bit mask for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_DEFAULT (_LDMA_CH_CTRL_SRCMODE_DEFAULT << 30) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_ABSOLUTE (_LDMA_CH_CTRL_SRCMODE_ABSOLUTE << 30) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_RELATIVE (_LDMA_CH_CTRL_SRCMODE_RELATIVE << 30) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE (0x1UL << 31) /**< Destination Addressing Mode */
+#define _LDMA_CH_CTRL_DSTMODE_SHIFT 31 /**< Shift value for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_MASK 0x80000000UL /**< Bit mask for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_DEFAULT (_LDMA_CH_CTRL_DSTMODE_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_ABSOLUTE (_LDMA_CH_CTRL_DSTMODE_ABSOLUTE << 31) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_RELATIVE (_LDMA_CH_CTRL_DSTMODE_RELATIVE << 31) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+
+/* Bit fields for LDMA CH_SRC */
+#define _LDMA_CH_SRC_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_SRCADDR_SHIFT 0 /**< Shift value for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_SRC */
+#define LDMA_CH_SRC_SRCADDR_DEFAULT (_LDMA_CH_SRC_SRCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_SRC */
+
+/* Bit fields for LDMA CH_DST */
+#define _LDMA_CH_DST_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_DST */
+#define _LDMA_CH_DST_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_DST */
+#define _LDMA_CH_DST_DSTADDR_SHIFT 0 /**< Shift value for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_DST */
+#define LDMA_CH_DST_DSTADDR_DEFAULT (_LDMA_CH_DST_DSTADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_DST */
+
+/* Bit fields for LDMA CH_LINK */
+#define _LDMA_CH_LINK_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE (0x1UL << 0) /**< Link Structure Addressing Mode */
+#define _LDMA_CH_LINK_LINKMODE_SHIFT 0 /**< Shift value for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_MASK 0x1UL /**< Bit mask for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_DEFAULT (_LDMA_CH_LINK_LINKMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_ABSOLUTE (_LDMA_CH_LINK_LINKMODE_ABSOLUTE << 0) /**< Shifted mode ABSOLUTE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_RELATIVE (_LDMA_CH_LINK_LINKMODE_RELATIVE << 0) /**< Shifted mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK (0x1UL << 1) /**< Link Next Structure */
+#define _LDMA_CH_LINK_LINK_SHIFT 1 /**< Shift value for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_MASK 0x2UL /**< Bit mask for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK_DEFAULT (_LDMA_CH_LINK_LINK_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKADDR_SHIFT 2 /**< Shift value for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_MASK 0xFFFFFFFCUL /**< Bit mask for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKADDR_DEFAULT (_LDMA_CH_LINK_LINKADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+
+/** @} End of group EFR32MG29_LDMA_BitFields */
+/** @} End of group EFR32MG29_LDMA */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_LDMA_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar.h
new file mode 100644
index 000000000..024bb4815
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar.h
@@ -0,0 +1,96 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LDMAXBAR register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LDMAXBAR_H
+#define EFR32MG29_LDMAXBAR_H
+#define LDMAXBAR_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_LDMAXBAR LDMAXBAR
+ * @{
+ * @brief EFR32MG29 LDMAXBAR Register Declaration.
+ *****************************************************************************/
+
+/** LDMAXBAR CH Register Group Declaration. */
+typedef struct ldmaxbar_ch_typedef{
+ __IOM uint32_t REQSEL; /**< Channel Peripheral Request Select Reg... */
+} LDMAXBAR_CH_TypeDef;
+
+/** LDMAXBAR Register Declaration. */
+typedef struct ldmaxbar_typedef{
+ __IM uint32_t IPVERSION; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMAXBAR_TypeDef;
+/** @} End of group EFR32MG29_LDMAXBAR */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_LDMAXBAR
+ * @{
+ * @defgroup EFR32MG29_LDMAXBAR_BitFields LDMAXBAR Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMAXBAR IPVERSION */
+#define _LDMAXBAR_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for LDMAXBAR_IPVERSION */
+#define LDMAXBAR_IPVERSION_IPVERSION_DEFAULT (_LDMAXBAR_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_IPVERSION */
+
+/* Bit fields for LDMAXBAR CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_RESETVALUE 0x00000000UL /**< Default value for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_MASK 0x003F000FUL /**< Mask for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_SHIFT 0 /**< Shift value for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MASK 0xFUL /**< Bit mask for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_SHIFT 16 /**< Shift value for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MASK 0x3F0000UL /**< Bit mask for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+
+/** @} End of group EFR32MG29_LDMAXBAR_BitFields */
+/** @} End of group EFR32MG29_LDMAXBAR */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_LDMAXBAR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar_defines.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar_defines.h
new file mode 100644
index 000000000..7f8bfd9a2
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ldmaxbar_defines.h
@@ -0,0 +1,161 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LDMA XBAR channel request soruce definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LDMAXBAR_DEFINES_H
+#define EFR32MG29_LDMAXBAR_DEFINES_H
+
+// Module source selection indices
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_NONE 0x00000000UL /**< Mode NONE for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR 0x00000001UL /**< Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 0x00000002UL /**< Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 0x00000003UL /**< Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 0x00000004UL /**< Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 0x00000005UL /**< Mode USART1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 0x00000006UL /**< Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 0x00000007UL /**< Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 0x0000000bUL /**< Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MSC 0x0000000cUL /**< Mode MSC for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 0x0000000dUL /**< Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 0x0000000eUL /**< Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_PDM 0x0000000fUL /**< Mode PDM for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 0x00000010UL /**< Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 0x00000011UL /**< Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 0x00000012UL /**< Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+
+// Shifted source selection indices
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_NONE (_LDMAXBAR_CH_REQSEL_SOURCESEL_NONE << 16)
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR (_LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR << 16) /**< Shifted Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 << 16) /**< Shifted Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 << 16) /**< Shifted Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 << 16) /**< Shifted Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_USART1 << 16) /**< Shifted Mode USART1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 << 16) /**< Shifted Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 << 16) /**< Shifted Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 << 16) /**< Shifted Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_MSC (_LDMAXBAR_CH_REQSEL_SOURCESEL_MSC << 16) /**< Shifted Mode MSC for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 << 16) /**< Shifted Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 << 16) /**< Shifted Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_PDM (_LDMAXBAR_CH_REQSEL_SOURCESEL_PDM << 16) /**< Shifted Mode PDM for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 << 16) /**< Shifted Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 << 16) /**< Shifted Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 << 16) /**< Shifted Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+
+// Module signal selection indices
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 0x00000000UL /** Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 0x00000001UL /** Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 0x00000000UL /** Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 0x00000001UL /** Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 0x00000002UL /** Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF 0x00000003UL /** Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 0x00000000UL /** Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 0x00000001UL /** Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 0x00000002UL /** Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF 0x00000003UL /** Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV 0x00000000UL /** Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT 0x00000001UL /** Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL 0x00000002UL /** Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT 0x00000003UL /** Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY 0x00000004UL /** Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV 0x00000000UL /** Mode USART1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT 0x00000001UL /** Mode USART1RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL 0x00000002UL /** Mode USART1TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT 0x00000003UL /** Mode USART1TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY 0x00000004UL /** Mode USART1TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV 0x00000000UL /** Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL 0x00000001UL /** Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV 0x00000000UL /** Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL 0x00000001UL /** Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN 0x00000000UL /** Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE 0x00000001UL /** Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA 0x00000000UL /** Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 0x00000000UL /** Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 0x00000001UL /** Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 0x00000002UL /** Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF 0x00000003UL /** Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 0x00000000UL /** Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 0x00000001UL /** Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 0x00000002UL /** Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF 0x00000003UL /** Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV 0x00000000UL /** Mode PDMRXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 0x00000000UL /** Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 0x00000001UL /** Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 0x00000002UL /** Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF 0x00000003UL /** Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL 0x00000000UL /** Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL 0x00000001UL /** Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL 0x00000000UL /** Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL 0x00000001UL /** Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+
+// Shifted Module signal selection indices
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 << 0) /** Shifted Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 << 0) /** Shifted Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 << 0) /** Shifted Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 << 0) /** Shifted Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 << 0) /** Shifted Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF << 0) /** Shifted Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 << 0) /** Shifted Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 << 0) /** Shifted Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 << 0) /** Shifted Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF << 0) /** Shifted Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV << 0) /** Shifted Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT << 0) /** Shifted Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL << 0) /** Shifted Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT << 0) /** Shifted Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY << 0) /** Shifted Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV << 0) /** Shifted Mode USART1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT << 0) /** Shifted Mode USART1RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL << 0) /** Shifted Mode USART1TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT << 0) /** Shifted Mode USART1TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY (_LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY << 0) /** Shifted Mode USART1TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV << 0) /** Shifted Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL << 0) /** Shifted Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV << 0) /** Shifted Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL << 0) /** Shifted Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN << 0) /** Shifted Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE << 0) /** Shifted Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA (_LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA << 0) /** Shifted Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 << 0) /** Shifted Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 << 0) /** Shifted Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 << 0) /** Shifted Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF << 0) /** Shifted Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 << 0) /** Shifted Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 << 0) /** Shifted Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 << 0) /** Shifted Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF << 0) /** Shifted Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_PDMRXDATAV << 0) /** Shifted Mode PDMRXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 << 0) /** Shifted Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 << 0) /** Shifted Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 << 0) /** Shifted Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF << 0) /** Shifted Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL << 0) /** Shifted Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL << 0) /** Shifted Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL << 0) /** Shifted Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL << 0) /** Shifted Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+
+#endif // EFR32MG29_LDMAXBAR_DEFINES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_letimer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_letimer.h
new file mode 100644
index 000000000..9c33c752b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_letimer.h
@@ -0,0 +1,496 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LETIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LETIMER_H
+#define EFR32MG29_LETIMER_H
+#define LETIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_LETIMER LETIMER
+ * @{
+ * @brief EFR32MG29 LETIMER Register Declaration.
+ *****************************************************************************/
+
+/** LETIMER Register Declaration. */
+typedef struct letimer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< module en */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t COMP0; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE; /**< PRS Input mode select Register */
+ uint32_t RESERVED3[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< module en */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t COMP0_SET; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_SET; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_SET; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_SET; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_SET; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_SET; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_SET; /**< PRS Input mode select Register */
+ uint32_t RESERVED7[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< module en */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t COMP0_CLR; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_CLR; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_CLR; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_CLR; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_CLR; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_CLR; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_CLR; /**< PRS Input mode select Register */
+ uint32_t RESERVED11[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< module en */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t COMP0_TGL; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_TGL; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_TGL; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_TGL; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_TGL; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_TGL; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_TGL; /**< PRS Input mode select Register */
+} LETIMER_TypeDef;
+/** @} End of group EFR32MG29_LETIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_LETIMER
+ * @{
+ * @defgroup EFR32MG29_LETIMER_BitFields LETIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LETIMER IPVERSION */
+#define _LETIMER_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IPVERSION */
+#define LETIMER_IPVERSION_IPVERSION_DEFAULT (_LETIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IPVERSION */
+
+/* Bit fields for LETIMER EN */
+#define _LETIMER_EN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_EN */
+#define _LETIMER_EN_MASK 0x00000001UL /**< Mask for LETIMER_EN */
+#define LETIMER_EN_EN (0x1UL << 0) /**< module en */
+#define _LETIMER_EN_EN_SHIFT 0 /**< Shift value for LETIMER_EN */
+#define _LETIMER_EN_EN_MASK 0x1UL /**< Bit mask for LETIMER_EN */
+#define _LETIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_EN */
+#define LETIMER_EN_EN_DEFAULT (_LETIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_EN */
+
+/* Bit fields for LETIMER CTRL */
+#define _LETIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CTRL */
+#define _LETIMER_CTRL_MASK 0x000F13FFUL /**< Mask for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_SHIFT 0 /**< Shift value for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_MASK 0x3UL /**< Bit mask for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_FREE 0x00000000UL /**< Mode FREE for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_ONESHOT 0x00000001UL /**< Mode ONESHOT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_BUFFERED 0x00000002UL /**< Mode BUFFERED for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_DOUBLE 0x00000003UL /**< Mode DOUBLE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DEFAULT (_LETIMER_CTRL_REPMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_FREE (_LETIMER_CTRL_REPMODE_FREE << 0) /**< Shifted mode FREE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_ONESHOT (_LETIMER_CTRL_REPMODE_ONESHOT << 0) /**< Shifted mode ONESHOT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_BUFFERED (_LETIMER_CTRL_REPMODE_BUFFERED << 0) /**< Shifted mode BUFFERED for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DOUBLE (_LETIMER_CTRL_REPMODE_DOUBLE << 0) /**< Shifted mode DOUBLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_SHIFT 2 /**< Shift value for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_MASK 0xCUL /**< Bit mask for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_DEFAULT (_LETIMER_CTRL_UFOA0_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_NONE (_LETIMER_CTRL_UFOA0_NONE << 2) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_TOGGLE (_LETIMER_CTRL_UFOA0_TOGGLE << 2) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PULSE (_LETIMER_CTRL_UFOA0_PULSE << 2) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PWM (_LETIMER_CTRL_UFOA0_PWM << 2) /**< Shifted mode PWM for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_SHIFT 4 /**< Shift value for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_MASK 0x30UL /**< Bit mask for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_DEFAULT (_LETIMER_CTRL_UFOA1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_NONE (_LETIMER_CTRL_UFOA1_NONE << 4) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_TOGGLE (_LETIMER_CTRL_UFOA1_TOGGLE << 4) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PULSE (_LETIMER_CTRL_UFOA1_PULSE << 4) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PWM (_LETIMER_CTRL_UFOA1_PWM << 4) /**< Shifted mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0 (0x1UL << 6) /**< Output 0 Polarity */
+#define _LETIMER_CTRL_OPOL0_SHIFT 6 /**< Shift value for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_MASK 0x40UL /**< Bit mask for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0_DEFAULT (_LETIMER_CTRL_OPOL0_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1 (0x1UL << 7) /**< Output 1 Polarity */
+#define _LETIMER_CTRL_OPOL1_SHIFT 7 /**< Shift value for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_MASK 0x80UL /**< Bit mask for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1_DEFAULT (_LETIMER_CTRL_OPOL1_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP (0x1UL << 8) /**< Buffered Top */
+#define _LETIMER_CTRL_BUFTOP_SHIFT 8 /**< Shift value for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_MASK 0x100UL /**< Bit mask for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DEFAULT (_LETIMER_CTRL_BUFTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DISABLE (_LETIMER_CTRL_BUFTOP_DISABLE << 8) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_ENABLE (_LETIMER_CTRL_BUFTOP_ENABLE << 8) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN (0x1UL << 9) /**< Compare Value 0 Is Top Value */
+#define _LETIMER_CTRL_CNTTOPEN_SHIFT 9 /**< Shift value for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_MASK 0x200UL /**< Bit mask for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DEFAULT (_LETIMER_CTRL_CNTTOPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DISABLE (_LETIMER_CTRL_CNTTOPEN_DISABLE << 9) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_ENABLE (_LETIMER_CTRL_CNTTOPEN_ENABLE << 9) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN (0x1UL << 12) /**< Debug Mode Run Enable */
+#define _LETIMER_CTRL_DEBUGRUN_SHIFT 12 /**< Shift value for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_MASK 0x1000UL /**< Bit mask for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DEFAULT (_LETIMER_CTRL_DEBUGRUN_DEFAULT << 12) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DISABLE (_LETIMER_CTRL_DEBUGRUN_DISABLE << 12) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_ENABLE (_LETIMER_CTRL_DEBUGRUN_ENABLE << 12) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_SHIFT 16 /**< Shift value for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_MASK 0xF0000UL /**< Bit mask for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DEFAULT (_LETIMER_CTRL_CNTPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV1 (_LETIMER_CTRL_CNTPRESC_DIV1 << 16) /**< Shifted mode DIV1 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV2 (_LETIMER_CTRL_CNTPRESC_DIV2 << 16) /**< Shifted mode DIV2 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV4 (_LETIMER_CTRL_CNTPRESC_DIV4 << 16) /**< Shifted mode DIV4 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV8 (_LETIMER_CTRL_CNTPRESC_DIV8 << 16) /**< Shifted mode DIV8 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV16 (_LETIMER_CTRL_CNTPRESC_DIV16 << 16) /**< Shifted mode DIV16 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV32 (_LETIMER_CTRL_CNTPRESC_DIV32 << 16) /**< Shifted mode DIV32 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV64 (_LETIMER_CTRL_CNTPRESC_DIV64 << 16) /**< Shifted mode DIV64 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV128 (_LETIMER_CTRL_CNTPRESC_DIV128 << 16) /**< Shifted mode DIV128 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV256 (_LETIMER_CTRL_CNTPRESC_DIV256 << 16) /**< Shifted mode DIV256 for LETIMER_CTRL */
+
+/* Bit fields for LETIMER CMD */
+#define _LETIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CMD */
+#define _LETIMER_CMD_MASK 0x0000001FUL /**< Mask for LETIMER_CMD */
+#define LETIMER_CMD_START (0x1UL << 0) /**< Start LETIMER */
+#define _LETIMER_CMD_START_SHIFT 0 /**< Shift value for LETIMER_START */
+#define _LETIMER_CMD_START_MASK 0x1UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_START_DEFAULT (_LETIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP (0x1UL << 1) /**< Stop LETIMER */
+#define _LETIMER_CMD_STOP_SHIFT 1 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP_DEFAULT (_LETIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR (0x1UL << 2) /**< Clear LETIMER */
+#define _LETIMER_CMD_CLEAR_SHIFT 2 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_MASK 0x4UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR_DEFAULT (_LETIMER_CMD_CLEAR_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0 (0x1UL << 3) /**< Clear Toggle Output 0 */
+#define _LETIMER_CMD_CTO0_SHIFT 3 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_MASK 0x8UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0_DEFAULT (_LETIMER_CMD_CTO0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1 (0x1UL << 4) /**< Clear Toggle Output 1 */
+#define _LETIMER_CMD_CTO1_SHIFT 4 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_MASK 0x10UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1_DEFAULT (_LETIMER_CMD_CTO1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CMD */
+
+/* Bit fields for LETIMER STATUS */
+#define _LETIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for LETIMER_STATUS */
+#define _LETIMER_STATUS_MASK 0x00000001UL /**< Mask for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING (0x1UL << 0) /**< LETIMER Running */
+#define _LETIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING_DEFAULT (_LETIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_STATUS */
+
+/* Bit fields for LETIMER CNT */
+#define _LETIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CNT */
+#define _LETIMER_CNT_MASK 0x00FFFFFFUL /**< Mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CNT */
+#define LETIMER_CNT_CNT_DEFAULT (_LETIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CNT */
+
+/* Bit fields for LETIMER COMP0 */
+#define _LETIMER_COMP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP0 */
+#define LETIMER_COMP0_COMP0_DEFAULT (_LETIMER_COMP0_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP0 */
+
+/* Bit fields for LETIMER COMP1 */
+#define _LETIMER_COMP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_SHIFT 0 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP1 */
+#define LETIMER_COMP1_COMP1_DEFAULT (_LETIMER_COMP1_COMP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP1 */
+
+/* Bit fields for LETIMER TOP */
+#define _LETIMER_TOP_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOP */
+#define _LETIMER_TOP_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_SHIFT 0 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOP */
+#define LETIMER_TOP_TOP_DEFAULT (_LETIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOP */
+
+/* Bit fields for LETIMER TOPBUFF */
+#define _LETIMER_TOPBUFF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_SHIFT 0 /**< Shift value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOPBUFF */
+#define LETIMER_TOPBUFF_TOPBUFF_DEFAULT (_LETIMER_TOPBUFF_TOPBUFF_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOPBUFF */
+
+/* Bit fields for LETIMER REP0 */
+#define _LETIMER_REP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP0 */
+#define _LETIMER_REP0_MASK 0x000000FFUL /**< Mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_SHIFT 0 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_MASK 0xFFUL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP0 */
+#define LETIMER_REP0_REP0_DEFAULT (_LETIMER_REP0_REP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP0 */
+
+/* Bit fields for LETIMER REP1 */
+#define _LETIMER_REP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP1 */
+#define _LETIMER_REP1_MASK 0x000000FFUL /**< Mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_SHIFT 0 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_MASK 0xFFUL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP1 */
+#define LETIMER_REP1_REP1_DEFAULT (_LETIMER_REP1_REP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP1 */
+
+/* Bit fields for LETIMER IF */
+#define _LETIMER_IF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IF */
+#define _LETIMER_IF_MASK 0x0000001FUL /**< Mask for LETIMER_IF */
+#define LETIMER_IF_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Flag */
+#define _LETIMER_IF_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP0_DEFAULT (_LETIMER_IF_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Flag */
+#define _LETIMER_IF_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1_DEFAULT (_LETIMER_IF_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF (0x1UL << 2) /**< Underflow Interrupt Flag */
+#define _LETIMER_IF_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IF_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF_DEFAULT (_LETIMER_IF_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Flag */
+#define _LETIMER_IF_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0_DEFAULT (_LETIMER_IF_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Flag */
+#define _LETIMER_IF_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1_DEFAULT (_LETIMER_IF_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IF */
+
+/* Bit fields for LETIMER IEN */
+#define _LETIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IEN */
+#define _LETIMER_IEN_MASK 0x0000001FUL /**< Mask for LETIMER_IEN */
+#define LETIMER_IEN_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Enable */
+#define _LETIMER_IEN_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP0_DEFAULT (_LETIMER_IEN_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Enable */
+#define _LETIMER_IEN_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1_DEFAULT (_LETIMER_IEN_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF (0x1UL << 2) /**< Underflow Interrupt Enable */
+#define _LETIMER_IEN_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IEN_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF_DEFAULT (_LETIMER_IEN_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Enable */
+#define _LETIMER_IEN_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0_DEFAULT (_LETIMER_IEN_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Enable */
+#define _LETIMER_IEN_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1_DEFAULT (_LETIMER_IEN_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IEN */
+
+/* Bit fields for LETIMER SYNCBUSY */
+#define _LETIMER_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LETIMER_SYNCBUSY */
+#define _LETIMER_SYNCBUSY_MASK 0x000003FDUL /**< Mask for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT (0x1UL << 0) /**< Sync busy for CNT */
+#define _LETIMER_SYNCBUSY_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_MASK 0x1UL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT_DEFAULT (_LETIMER_SYNCBUSY_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP (0x1UL << 2) /**< Sync busy for TOP */
+#define _LETIMER_SYNCBUSY_TOP_SHIFT 2 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_MASK 0x4UL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP_DEFAULT (_LETIMER_SYNCBUSY_TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0 (0x1UL << 3) /**< Sync busy for REP0 */
+#define _LETIMER_SYNCBUSY_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0_DEFAULT (_LETIMER_SYNCBUSY_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1 (0x1UL << 4) /**< Sync busy for REP1 */
+#define _LETIMER_SYNCBUSY_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1_DEFAULT (_LETIMER_SYNCBUSY_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START (0x1UL << 5) /**< Sync busy for START */
+#define _LETIMER_SYNCBUSY_START_SHIFT 5 /**< Shift value for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_MASK 0x20UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START_DEFAULT (_LETIMER_SYNCBUSY_START_DEFAULT << 5) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP (0x1UL << 6) /**< Sync busy for STOP */
+#define _LETIMER_SYNCBUSY_STOP_SHIFT 6 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_MASK 0x40UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP_DEFAULT (_LETIMER_SYNCBUSY_STOP_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR (0x1UL << 7) /**< Sync busy for CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_SHIFT 7 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_MASK 0x80UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR_DEFAULT (_LETIMER_SYNCBUSY_CLEAR_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0 (0x1UL << 8) /**< Sync busy for CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_SHIFT 8 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_MASK 0x100UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0_DEFAULT (_LETIMER_SYNCBUSY_CTO0_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1 (0x1UL << 9) /**< Sync busy for CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_SHIFT 9 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_MASK 0x200UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1_DEFAULT (_LETIMER_SYNCBUSY_CTO1_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+
+/* Bit fields for LETIMER PRSMODE */
+#define _LETIMER_PRSMODE_RESETVALUE 0x00000000UL /**< Default value for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_MASK 0x0CCC0000UL /**< Mask for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_SHIFT 18 /**< Shift value for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_MASK 0xC0000UL /**< Bit mask for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_NONE (_LETIMER_PRSMODE_PRSSTARTMODE_NONE << 18) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_RISING (_LETIMER_PRSMODE_PRSSTARTMODE_RISING << 18) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_FALLING (_LETIMER_PRSMODE_PRSSTARTMODE_FALLING << 18) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_BOTH (_LETIMER_PRSMODE_PRSSTARTMODE_BOTH << 18) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_SHIFT 22 /**< Shift value for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_MASK 0xC00000UL /**< Bit mask for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT << 22) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_NONE (_LETIMER_PRSMODE_PRSSTOPMODE_NONE << 22) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_RISING (_LETIMER_PRSMODE_PRSSTOPMODE_RISING << 22) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_FALLING (_LETIMER_PRSMODE_PRSSTOPMODE_FALLING << 22) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_BOTH (_LETIMER_PRSMODE_PRSSTOPMODE_BOTH << 22) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_SHIFT 26 /**< Shift value for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_MASK 0xC000000UL /**< Bit mask for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT (_LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT << 26) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_NONE (_LETIMER_PRSMODE_PRSCLEARMODE_NONE << 26) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_RISING (_LETIMER_PRSMODE_PRSCLEARMODE_RISING << 26) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_FALLING (_LETIMER_PRSMODE_PRSCLEARMODE_FALLING << 26) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_BOTH (_LETIMER_PRSMODE_PRSCLEARMODE_BOTH << 26) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+
+/** @} End of group EFR32MG29_LETIMER_BitFields */
+/** @} End of group EFR32MG29_LETIMER */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_LETIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfrco.h
new file mode 100644
index 000000000..2e626404b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfrco.h
@@ -0,0 +1,304 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LFRCO_H
+#define EFR32MG29_LFRCO_H
+#define LFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_LFRCO LFRCO
+ * @{
+ * @brief EFR32MG29 LFRCO Register Declaration.
+ *****************************************************************************/
+
+/** LFRCO Register Declaration. */
+typedef struct lfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED3[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_SET; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_SET; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED7[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_CLR; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_CLR; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED11[1010U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED12[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IOM uint32_t NOMCAL_TGL; /**< Nominal Calibration Register */
+ __IOM uint32_t NOMCALINV_TGL; /**< Nominal Calibration Inverted Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+} LFRCO_TypeDef;
+/** @} End of group EFR32MG29_LFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_LFRCO
+ * @{
+ * @defgroup EFR32MG29_LFRCO_BitFields LFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFRCO IPVERSION */
+#define _LFRCO_IPVERSION_RESETVALUE 0x00000003UL /**< Default value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000003UL /**< Mode DEFAULT for LFRCO_IPVERSION */
+#define LFRCO_IPVERSION_IPVERSION_DEFAULT (_LFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IPVERSION */
+
+/* Bit fields for LFRCO CTRL */
+#define _LFRCO_CTRL_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CTRL */
+#define _LFRCO_CTRL_MASK 0x00000003UL /**< Mask for LFRCO_CTRL */
+#define LFRCO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _LFRCO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for LFRCO_FORCEEN */
+#define _LFRCO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for LFRCO_FORCEEN */
+#define _LFRCO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_FORCEEN_DEFAULT (_LFRCO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-Demand */
+#define _LFRCO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for LFRCO_DISONDEMAND */
+#define _LFRCO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for LFRCO_DISONDEMAND */
+#define _LFRCO_CTRL_DISONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CTRL */
+#define LFRCO_CTRL_DISONDEMAND_DEFAULT (_LFRCO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_CTRL */
+
+/* Bit fields for LFRCO STATUS */
+#define _LFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFRCO_STATUS */
+#define _LFRCO_STATUS_MASK 0x80010001UL /**< Mask for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _LFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY_DEFAULT (_LFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _LFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS_DEFAULT (_LFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _LFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_DEFAULT (_LFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_UNLOCKED (_LFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_LOCKED (_LFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFRCO_STATUS */
+
+/* Bit fields for LFRCO IF */
+#define _LFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IF */
+#define _LFRCO_IF_MASK 0x00070707UL /**< Mask for LFRCO_IF */
+#define LFRCO_IF_RDY (0x1UL << 0) /**< Ready Flag */
+#define _LFRCO_IF_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_RDY_DEFAULT (_LFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Flag */
+#define _LFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE_DEFAULT (_LFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Flag */
+#define _LFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE_DEFAULT (_LFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCDONE (0x1UL << 8) /**< Temperature Check Done Flag */
+#define _LFRCO_IF_TCDONE_SHIFT 8 /**< Shift value for LFRCO_TCDONE */
+#define _LFRCO_IF_TCDONE_MASK 0x100UL /**< Bit mask for LFRCO_TCDONE */
+#define _LFRCO_IF_TCDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCDONE_DEFAULT (_LFRCO_IF_TCDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALDONE (0x1UL << 9) /**< Calibration Done Flag */
+#define _LFRCO_IF_CALDONE_SHIFT 9 /**< Shift value for LFRCO_CALDONE */
+#define _LFRCO_IF_CALDONE_MASK 0x200UL /**< Bit mask for LFRCO_CALDONE */
+#define _LFRCO_IF_CALDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALDONE_DEFAULT (_LFRCO_IF_CALDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TEMPCHANGE (0x1UL << 10) /**< Temperature Change Flag */
+#define _LFRCO_IF_TEMPCHANGE_SHIFT 10 /**< Shift value for LFRCO_TEMPCHANGE */
+#define _LFRCO_IF_TEMPCHANGE_MASK 0x400UL /**< Bit mask for LFRCO_TEMPCHANGE */
+#define _LFRCO_IF_TEMPCHANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TEMPCHANGE_DEFAULT (_LFRCO_IF_TEMPCHANGE_DEFAULT << 10) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_SCHEDERR (0x1UL << 16) /**< Scheduling Error Flag */
+#define _LFRCO_IF_SCHEDERR_SHIFT 16 /**< Shift value for LFRCO_SCHEDERR */
+#define _LFRCO_IF_SCHEDERR_MASK 0x10000UL /**< Bit mask for LFRCO_SCHEDERR */
+#define _LFRCO_IF_SCHEDERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_SCHEDERR_DEFAULT (_LFRCO_IF_SCHEDERR_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCOOR (0x1UL << 17) /**< Temperature Check Out Of Range Flag */
+#define _LFRCO_IF_TCOOR_SHIFT 17 /**< Shift value for LFRCO_TCOOR */
+#define _LFRCO_IF_TCOOR_MASK 0x20000UL /**< Bit mask for LFRCO_TCOOR */
+#define _LFRCO_IF_TCOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_TCOOR_DEFAULT (_LFRCO_IF_TCOOR_DEFAULT << 17) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALOOR (0x1UL << 18) /**< Calibration Out Of Range Flag */
+#define _LFRCO_IF_CALOOR_SHIFT 18 /**< Shift value for LFRCO_CALOOR */
+#define _LFRCO_IF_CALOOR_MASK 0x40000UL /**< Bit mask for LFRCO_CALOOR */
+#define _LFRCO_IF_CALOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_CALOOR_DEFAULT (_LFRCO_IF_CALOOR_DEFAULT << 18) /**< Shifted mode DEFAULT for LFRCO_IF */
+
+/* Bit fields for LFRCO IEN */
+#define _LFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IEN */
+#define _LFRCO_IEN_MASK 0x00070707UL /**< Mask for LFRCO_IEN */
+#define LFRCO_IEN_RDY (0x1UL << 0) /**< Ready Enable */
+#define _LFRCO_IEN_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_RDY_DEFAULT (_LFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Enable */
+#define _LFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE_DEFAULT (_LFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Enable */
+#define _LFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE_DEFAULT (_LFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCDONE (0x1UL << 8) /**< Temperature Check Done Enable */
+#define _LFRCO_IEN_TCDONE_SHIFT 8 /**< Shift value for LFRCO_TCDONE */
+#define _LFRCO_IEN_TCDONE_MASK 0x100UL /**< Bit mask for LFRCO_TCDONE */
+#define _LFRCO_IEN_TCDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCDONE_DEFAULT (_LFRCO_IEN_TCDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALDONE (0x1UL << 9) /**< Calibration Done Enable */
+#define _LFRCO_IEN_CALDONE_SHIFT 9 /**< Shift value for LFRCO_CALDONE */
+#define _LFRCO_IEN_CALDONE_MASK 0x200UL /**< Bit mask for LFRCO_CALDONE */
+#define _LFRCO_IEN_CALDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALDONE_DEFAULT (_LFRCO_IEN_CALDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TEMPCHANGE (0x1UL << 10) /**< Temperature Change Enable */
+#define _LFRCO_IEN_TEMPCHANGE_SHIFT 10 /**< Shift value for LFRCO_TEMPCHANGE */
+#define _LFRCO_IEN_TEMPCHANGE_MASK 0x400UL /**< Bit mask for LFRCO_TEMPCHANGE */
+#define _LFRCO_IEN_TEMPCHANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TEMPCHANGE_DEFAULT (_LFRCO_IEN_TEMPCHANGE_DEFAULT << 10) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_SCHEDERR (0x1UL << 16) /**< Scheduling Error Enable */
+#define _LFRCO_IEN_SCHEDERR_SHIFT 16 /**< Shift value for LFRCO_SCHEDERR */
+#define _LFRCO_IEN_SCHEDERR_MASK 0x10000UL /**< Bit mask for LFRCO_SCHEDERR */
+#define _LFRCO_IEN_SCHEDERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_SCHEDERR_DEFAULT (_LFRCO_IEN_SCHEDERR_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCOOR (0x1UL << 17) /**< Temperature Check Out Of Range Enable */
+#define _LFRCO_IEN_TCOOR_SHIFT 17 /**< Shift value for LFRCO_TCOOR */
+#define _LFRCO_IEN_TCOOR_MASK 0x20000UL /**< Bit mask for LFRCO_TCOOR */
+#define _LFRCO_IEN_TCOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_TCOOR_DEFAULT (_LFRCO_IEN_TCOOR_DEFAULT << 17) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALOOR (0x1UL << 18) /**< Calibration Out Of Range Enable */
+#define _LFRCO_IEN_CALOOR_SHIFT 18 /**< Shift value for LFRCO_CALOOR */
+#define _LFRCO_IEN_CALOOR_MASK 0x40000UL /**< Bit mask for LFRCO_CALOOR */
+#define _LFRCO_IEN_CALOOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_CALOOR_DEFAULT (_LFRCO_IEN_CALOOR_DEFAULT << 18) /**< Shifted mode DEFAULT for LFRCO_IEN */
+
+/* Bit fields for LFRCO LOCK */
+#define _LFRCO_LOCK_RESETVALUE 0x00000000UL /**< Default value for LFRCO_LOCK */
+#define _LFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_UNLOCK 0x00000F93UL /**< Mode UNLOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_DEFAULT (_LFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_LOCK (_LFRCO_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_UNLOCK (_LFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFRCO_LOCK */
+
+/* Bit fields for LFRCO CFG */
+#define _LFRCO_CFG_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CFG */
+#define _LFRCO_CFG_MASK 0x00000001UL /**< Mask for LFRCO_CFG */
+#define LFRCO_CFG_HIGHPRECEN (0x1UL << 0) /**< High Precision Enable */
+#define _LFRCO_CFG_HIGHPRECEN_SHIFT 0 /**< Shift value for LFRCO_HIGHPRECEN */
+#define _LFRCO_CFG_HIGHPRECEN_MASK 0x1UL /**< Bit mask for LFRCO_HIGHPRECEN */
+#define _LFRCO_CFG_HIGHPRECEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CFG */
+#define LFRCO_CFG_HIGHPRECEN_DEFAULT (_LFRCO_CFG_HIGHPRECEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CFG */
+
+/* Bit fields for LFRCO NOMCAL */
+#define _LFRCO_NOMCAL_RESETVALUE 0x0005B8D8UL /**< Default value for LFRCO_NOMCAL */
+#define _LFRCO_NOMCAL_MASK 0x001FFFFFUL /**< Mask for LFRCO_NOMCAL */
+#define _LFRCO_NOMCAL_NOMCALCNT_SHIFT 0 /**< Shift value for LFRCO_NOMCALCNT */
+#define _LFRCO_NOMCAL_NOMCALCNT_MASK 0x1FFFFFUL /**< Bit mask for LFRCO_NOMCALCNT */
+#define _LFRCO_NOMCAL_NOMCALCNT_DEFAULT 0x0005B8D8UL /**< Mode DEFAULT for LFRCO_NOMCAL */
+#define LFRCO_NOMCAL_NOMCALCNT_DEFAULT (_LFRCO_NOMCAL_NOMCALCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_NOMCAL */
+
+/* Bit fields for LFRCO NOMCALINV */
+#define _LFRCO_NOMCALINV_RESETVALUE 0x0000597AUL /**< Default value for LFRCO_NOMCALINV */
+#define _LFRCO_NOMCALINV_MASK 0x0001FFFFUL /**< Mask for LFRCO_NOMCALINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_SHIFT 0 /**< Shift value for LFRCO_NOMCALCNTINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_MASK 0x1FFFFUL /**< Bit mask for LFRCO_NOMCALCNTINV */
+#define _LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT 0x0000597AUL /**< Mode DEFAULT for LFRCO_NOMCALINV */
+#define LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT (_LFRCO_NOMCALINV_NOMCALCNTINV_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_NOMCALINV */
+
+/* Bit fields for LFRCO CMD */
+#define _LFRCO_CMD_RESETVALUE 0x00000000UL /**< Default value for LFRCO_CMD */
+#define _LFRCO_CMD_MASK 0x00000001UL /**< Mask for LFRCO_CMD */
+#define LFRCO_CMD_REDUCETCINT (0x1UL << 0) /**< Reduce Temperature Check Interval */
+#define _LFRCO_CMD_REDUCETCINT_SHIFT 0 /**< Shift value for LFRCO_REDUCETCINT */
+#define _LFRCO_CMD_REDUCETCINT_MASK 0x1UL /**< Bit mask for LFRCO_REDUCETCINT */
+#define _LFRCO_CMD_REDUCETCINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_CMD */
+#define LFRCO_CMD_REDUCETCINT_DEFAULT (_LFRCO_CMD_REDUCETCINT_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CMD */
+
+/** @} End of group EFR32MG29_LFRCO_BitFields */
+/** @} End of group EFR32MG29_LFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_LFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfxo.h
new file mode 100644
index 000000000..9884a7cb7
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_lfxo.h
@@ -0,0 +1,281 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 LFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_LFXO_H
+#define EFR32MG29_LFXO_H
+#define LFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_LFXO LFXO
+ * @{
+ * @brief EFR32MG29 LFXO Register Declaration.
+ *****************************************************************************/
+
+/** LFXO Register Declaration. */
+typedef struct lfxo_typedef{
+ __IM uint32_t IPVERSION; /**< LFXO IP version */
+ __IOM uint32_t CTRL; /**< LFXO Control Register */
+ __IOM uint32_t CFG; /**< LFXO Configuration Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< LFXO Status Register */
+ __IOM uint32_t CAL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< LFXO IP version */
+ __IOM uint32_t CTRL_SET; /**< LFXO Control Register */
+ __IOM uint32_t CFG_SET; /**< LFXO Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< LFXO Status Register */
+ __IOM uint32_t CAL_SET; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< LFXO IP version */
+ __IOM uint32_t CTRL_CLR; /**< LFXO Control Register */
+ __IOM uint32_t CFG_CLR; /**< LFXO Configuration Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< LFXO Status Register */
+ __IOM uint32_t CAL_CLR; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< LFXO IP version */
+ __IOM uint32_t CTRL_TGL; /**< LFXO Control Register */
+ __IOM uint32_t CFG_TGL; /**< LFXO Configuration Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< LFXO Status Register */
+ __IOM uint32_t CAL_TGL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} LFXO_TypeDef;
+/** @} End of group EFR32MG29_LFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_LFXO
+ * @{
+ * @defgroup EFR32MG29_LFXO_BitFields LFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFXO IPVERSION */
+#define _LFXO_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_IPVERSION */
+#define LFXO_IPVERSION_IPVERSION_DEFAULT (_LFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IPVERSION */
+
+/* Bit fields for LFXO CTRL */
+#define _LFXO_CTRL_RESETVALUE 0x00000002UL /**< Default value for LFXO_CTRL */
+#define _LFXO_CTRL_MASK 0x00000033UL /**< Mask for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN (0x1UL << 0) /**< LFXO Force Enable */
+#define _LFXO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN_DEFAULT (_LFXO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND (0x1UL << 1) /**< LFXO Disable On-demand requests */
+#define _LFXO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND_DEFAULT (_LFXO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN (0x1UL << 4) /**< LFXO Failure Detection Enable */
+#define _LFXO_CTRL_FAILDETEN_SHIFT 4 /**< Shift value for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_MASK 0x10UL /**< Bit mask for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN_DEFAULT (_LFXO_CTRL_FAILDETEN_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN (0x1UL << 5) /**< LFXO Failure Detection EM4WU Enable */
+#define _LFXO_CTRL_FAILDETEM4WUEN_SHIFT 5 /**< Shift value for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_MASK 0x20UL /**< Bit mask for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN_DEFAULT (_LFXO_CTRL_FAILDETEM4WUEN_DEFAULT << 5) /**< Shifted mode DEFAULT for LFXO_CTRL */
+
+/* Bit fields for LFXO CFG */
+#define _LFXO_CFG_RESETVALUE 0x00000701UL /**< Default value for LFXO_CFG */
+#define _LFXO_CFG_MASK 0x00000733UL /**< Mask for LFXO_CFG */
+#define LFXO_CFG_AGC (0x1UL << 0) /**< LFXO AGC Enable */
+#define _LFXO_CFG_AGC_SHIFT 0 /**< Shift value for LFXO_AGC */
+#define _LFXO_CFG_AGC_MASK 0x1UL /**< Bit mask for LFXO_AGC */
+#define _LFXO_CFG_AGC_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_AGC_DEFAULT (_LFXO_CFG_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL (0x1UL << 1) /**< LFXO High Amplitude Enable */
+#define _LFXO_CFG_HIGHAMPL_SHIFT 1 /**< Shift value for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_MASK 0x2UL /**< Bit mask for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL_DEFAULT (_LFXO_CFG_HIGHAMPL_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_SHIFT 4 /**< Shift value for LFXO_MODE */
+#define _LFXO_CFG_MODE_MASK 0x30UL /**< Bit mask for LFXO_MODE */
+#define _LFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for LFXO_CFG */
+#define _LFXO_CFG_MODE_BUFEXTCLK 0x00000001UL /**< Mode BUFEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_MODE_DIGEXTCLK 0x00000002UL /**< Mode DIGEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DEFAULT (_LFXO_CFG_MODE_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_MODE_XTAL (_LFXO_CFG_MODE_XTAL << 4) /**< Shifted mode XTAL for LFXO_CFG */
+#define LFXO_CFG_MODE_BUFEXTCLK (_LFXO_CFG_MODE_BUFEXTCLK << 4) /**< Shifted mode BUFEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DIGEXTCLK (_LFXO_CFG_MODE_DIGEXTCLK << 4) /**< Shifted mode DIGEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_SHIFT 8 /**< Shift value for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_MASK 0x700UL /**< Bit mask for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_DEFAULT 0x00000007UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2 0x00000000UL /**< Mode CYCLES2 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES256 0x00000001UL /**< Mode CYCLES256 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES1K 0x00000002UL /**< Mode CYCLES1K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2K 0x00000003UL /**< Mode CYCLES2K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES4K 0x00000004UL /**< Mode CYCLES4K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES8K 0x00000005UL /**< Mode CYCLES8K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES16K 0x00000006UL /**< Mode CYCLES16K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES32K 0x00000007UL /**< Mode CYCLES32K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_DEFAULT (_LFXO_CFG_TIMEOUT_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2 (_LFXO_CFG_TIMEOUT_CYCLES2 << 8) /**< Shifted mode CYCLES2 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES256 (_LFXO_CFG_TIMEOUT_CYCLES256 << 8) /**< Shifted mode CYCLES256 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES1K (_LFXO_CFG_TIMEOUT_CYCLES1K << 8) /**< Shifted mode CYCLES1K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2K (_LFXO_CFG_TIMEOUT_CYCLES2K << 8) /**< Shifted mode CYCLES2K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES4K (_LFXO_CFG_TIMEOUT_CYCLES4K << 8) /**< Shifted mode CYCLES4K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES8K (_LFXO_CFG_TIMEOUT_CYCLES8K << 8) /**< Shifted mode CYCLES8K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES16K (_LFXO_CFG_TIMEOUT_CYCLES16K << 8) /**< Shifted mode CYCLES16K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES32K (_LFXO_CFG_TIMEOUT_CYCLES32K << 8) /**< Shifted mode CYCLES32K for LFXO_CFG */
+
+/* Bit fields for LFXO STATUS */
+#define _LFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFXO_STATUS */
+#define _LFXO_STATUS_MASK 0x80010001UL /**< Mask for LFXO_STATUS */
+#define LFXO_STATUS_RDY (0x1UL << 0) /**< LFXO Ready Status */
+#define _LFXO_STATUS_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_RDY_DEFAULT (_LFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS (0x1UL << 16) /**< LFXO Enable Status */
+#define _LFXO_STATUS_ENS_SHIFT 16 /**< Shift value for LFXO_ENS */
+#define _LFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFXO_ENS */
+#define _LFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS_DEFAULT (_LFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK (0x1UL << 31) /**< LFXO Locked Status */
+#define _LFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_DEFAULT (_LFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_UNLOCKED (_LFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_LOCKED (_LFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFXO_STATUS */
+
+/* Bit fields for LFXO CAL */
+#define _LFXO_CAL_RESETVALUE 0x00000100UL /**< Default value for LFXO_CAL */
+#define _LFXO_CAL_MASK 0x0000037FUL /**< Mask for LFXO_CAL */
+#define _LFXO_CAL_CAPTUNE_SHIFT 0 /**< Shift value for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_MASK 0x7FUL /**< Bit mask for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_CAPTUNE_DEFAULT (_LFXO_CAL_CAPTUNE_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CAL */
+#define _LFXO_CAL_GAIN_SHIFT 8 /**< Shift value for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_MASK 0x300UL /**< Bit mask for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_GAIN_DEFAULT (_LFXO_CAL_GAIN_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CAL */
+
+/* Bit fields for LFXO IF */
+#define _LFXO_IF_RESETVALUE 0x00000000UL /**< Default value for LFXO_IF */
+#define _LFXO_IF_MASK 0x0000000FUL /**< Mask for LFXO_IF */
+#define LFXO_IF_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Flag */
+#define _LFXO_IF_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IF_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_RDY_DEFAULT (_LFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Flag */
+#define _LFXO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE_DEFAULT (_LFXO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Flag */
+#define _LFXO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE_DEFAULT (_LFXO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Flag */
+#define _LFXO_IF_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IF_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IF_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL_DEFAULT (_LFXO_IF_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IF */
+
+/* Bit fields for LFXO IEN */
+#define _LFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFXO_IEN */
+#define _LFXO_IEN_MASK 0x0000000FUL /**< Mask for LFXO_IEN */
+#define LFXO_IEN_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Enable */
+#define _LFXO_IEN_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_RDY_DEFAULT (_LFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Enable */
+#define _LFXO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE_DEFAULT (_LFXO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Enable */
+#define _LFXO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE_DEFAULT (_LFXO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Enable */
+#define _LFXO_IEN_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL_DEFAULT (_LFXO_IEN_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IEN */
+
+/* Bit fields for LFXO SYNCBUSY */
+#define _LFXO_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LFXO_SYNCBUSY */
+#define _LFXO_SYNCBUSY_MASK 0x00000001UL /**< Mask for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL (0x1UL << 0) /**< LFXO Synchronization status */
+#define _LFXO_SYNCBUSY_CAL_SHIFT 0 /**< Shift value for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_MASK 0x1UL /**< Bit mask for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL_DEFAULT (_LFXO_SYNCBUSY_CAL_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_SYNCBUSY */
+
+/* Bit fields for LFXO LOCK */
+#define _LFXO_LOCK_RESETVALUE 0x00001A20UL /**< Default value for LFXO_LOCK */
+#define _LFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_DEFAULT 0x00001A20UL /**< Mode DEFAULT for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_UNLOCK 0x00001A20UL /**< Mode UNLOCK for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_DEFAULT (_LFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_UNLOCK (_LFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFXO_LOCK */
+
+/** @} End of group EFR32MG29_LFXO_BitFields */
+/** @} End of group EFR32MG29_LFXO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_LFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_mpahbram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_mpahbram.h
new file mode 100644
index 000000000..1874d03d5
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_mpahbram.h
@@ -0,0 +1,246 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 MPAHBRAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_MPAHBRAM_H
+#define EFR32MG29_MPAHBRAM_H
+#define MPAHBRAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_MPAHBRAM MPAHBRAM
+ * @{
+ * @brief EFR32MG29 MPAHBRAM Register Declaration.
+ *****************************************************************************/
+
+/** MPAHBRAM Register Declaration. */
+typedef struct mpahbram_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CMD; /**< Command register */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IM uint32_t ECCERRADDR0; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1; /**< ECC Error Address 1 */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND; /**< Multiple ECC error indication */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CMD_SET; /**< Command register */
+ __IOM uint32_t CTRL_SET; /**< Control register */
+ __IM uint32_t ECCERRADDR0_SET; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_SET; /**< ECC Error Address 1 */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_SET; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CMD_CLR; /**< Command register */
+ __IOM uint32_t CTRL_CLR; /**< Control register */
+ __IM uint32_t ECCERRADDR0_CLR; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_CLR; /**< ECC Error Address 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_CLR; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CMD_TGL; /**< Command register */
+ __IOM uint32_t CTRL_TGL; /**< Control register */
+ __IM uint32_t ECCERRADDR0_TGL; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_TGL; /**< ECC Error Address 1 */
+ uint32_t RESERVED12[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_TGL; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} MPAHBRAM_TypeDef;
+/** @} End of group EFR32MG29_MPAHBRAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_MPAHBRAM
+ * @{
+ * @defgroup EFR32MG29_MPAHBRAM_BitFields MPAHBRAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MPAHBRAM IPVERSION */
+#define _MPAHBRAM_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_MASK 0x00000003UL /**< Mask for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_MASK 0x3UL /**< Bit mask for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for MPAHBRAM_IPVERSION */
+#define MPAHBRAM_IPVERSION_IPVERSION_DEFAULT (_MPAHBRAM_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IPVERSION */
+
+/* Bit fields for MPAHBRAM CMD */
+#define _MPAHBRAM_CMD_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_CMD */
+#define _MPAHBRAM_CMD_MASK 0x00000003UL /**< Mask for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0 (0x1UL << 0) /**< Clear ECCERRADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_SHIFT 0 /**< Shift value for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_MASK 0x1UL /**< Bit mask for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1 (0x1UL << 1) /**< Clear ECCERRADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_SHIFT 1 /**< Shift value for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_MASK 0x2UL /**< Bit mask for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+
+/* Bit fields for MPAHBRAM CTRL */
+#define _MPAHBRAM_CTRL_RESETVALUE 0x00000040UL /**< Default value for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_MASK 0x000000FFUL /**< Mask for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN (0x1UL << 0) /**< Enable ECC functionality */
+#define _MPAHBRAM_CTRL_ECCEN_SHIFT 0 /**< Shift value for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_MASK 0x1UL /**< Bit mask for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN_DEFAULT (_MPAHBRAM_CTRL_ECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN (0x1UL << 1) /**< Enable ECC syndrome writes */
+#define _MPAHBRAM_CTRL_ECCWEN_SHIFT 1 /**< Shift value for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_MASK 0x2UL /**< Bit mask for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN_DEFAULT (_MPAHBRAM_CTRL_ECCWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN (0x1UL << 2) /**< ECC Error bus fault enable */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_SHIFT 2 /**< Shift value for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_MASK 0x4UL /**< Bit mask for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_SHIFT 3 /**< Shift value for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_MASK 0x38UL /**< Bit mask for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE 0x00000000UL /**< Mode NONE for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 0x00000001UL /**< Mode PORT0 for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 0x00000002UL /**< Mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT (_MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT << 3) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE (_MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE << 3) /**< Shifted mode NONE for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 << 3) /**< Shifted mode PORT0 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 << 3) /**< Shifted mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN (0x1UL << 6) /**< Address fault bus fault enable */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_SHIFT 6 /**< Shift value for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_MASK 0x40UL /**< Bit mask for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_WAITSTATES (0x1UL << 7) /**< RAM read wait states */
+#define _MPAHBRAM_CTRL_WAITSTATES_SHIFT 7 /**< Shift value for MPAHBRAM_WAITSTATES */
+#define _MPAHBRAM_CTRL_WAITSTATES_MASK 0x80UL /**< Bit mask for MPAHBRAM_WAITSTATES */
+#define _MPAHBRAM_CTRL_WAITSTATES_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_WAITSTATES_DEFAULT (_MPAHBRAM_CTRL_WAITSTATES_DEFAULT << 7) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+
+/* Bit fields for MPAHBRAM ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR0 */
+#define MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR0*/
+
+/* Bit fields for MPAHBRAM ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR1 */
+#define MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR1*/
+
+/* Bit fields for MPAHBRAM ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_MASK 0x00000003UL /**< Mask for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0 (0x1UL << 0) /**< Multiple ECC errors on AHB port 0 */
+#define _MPAHBRAM_ECCMERRIND_P0_SHIFT 0 /**< Shift value for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_MASK 0x1UL /**< Bit mask for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0_DEFAULT (_MPAHBRAM_ECCMERRIND_P0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+#define MPAHBRAM_ECCMERRIND_P1 (0x1UL << 1) /**< Multiple ECC errors on AHB port 1 */
+#define _MPAHBRAM_ECCMERRIND_P1_SHIFT 1 /**< Shift value for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_MASK 0x2UL /**< Bit mask for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P1_DEFAULT (_MPAHBRAM_ECCMERRIND_P1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+
+/* Bit fields for MPAHBRAM IF */
+#define _MPAHBRAM_IF_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IF */
+#define _MPAHBRAM_IF_MASK 0x00000033UL /**< Mask for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B_DEFAULT (_MPAHBRAM_IF_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B_DEFAULT (_MPAHBRAM_IF_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B_DEFAULT (_MPAHBRAM_IF_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B_DEFAULT (_MPAHBRAM_IF_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+
+/* Bit fields for MPAHBRAM IEN */
+#define _MPAHBRAM_IEN_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IEN */
+#define _MPAHBRAM_IEN_MASK 0x00000033UL /**< Mask for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+
+/** @} End of group EFR32MG29_MPAHBRAM_BitFields */
+/** @} End of group EFR32MG29_MPAHBRAM */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_MPAHBRAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_msc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_msc.h
new file mode 100644
index 000000000..a519a2692
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_msc.h
@@ -0,0 +1,522 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 MSC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_MSC_H
+#define EFR32MG29_MSC_H
+#define MSC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_MSC MSC
+ * @{
+ * @brief EFR32MG29 MSC Register Declaration.
+ *****************************************************************************/
+
+/** MSC Register Declaration. */
+typedef struct msc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t READCTRL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD; /**< Write Command Register */
+ __IOM uint32_t ADDRB; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA; /**< Write Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE; /**< User Data Region Size Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL; /**< Power control register */
+ uint32_t RESERVED2[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED3[4U]; /**< Reserved for future use */
+ uint32_t RESERVED4[4U]; /**< Reserved for future use */
+ uint32_t RESERVED5[4U]; /**< Reserved for future use */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[12U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[8U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t READCTRL_SET; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_SET; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_SET; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_SET; /**< Write Command Register */
+ __IOM uint32_t ADDRB_SET; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_SET; /**< Write Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED12[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_SET; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_SET; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_SET; /**< Power control register */
+ uint32_t RESERVED14[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_SET; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_SET; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_SET; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_SET; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ uint32_t RESERVED16[4U]; /**< Reserved for future use */
+ uint32_t RESERVED17[4U]; /**< Reserved for future use */
+ uint32_t RESERVED18[4U]; /**< Reserved for future use */
+ uint32_t RESERVED19[12U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[8U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t READCTRL_CLR; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_CLR; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_CLR; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_CLR; /**< Write Command Register */
+ __IOM uint32_t ADDRB_CLR; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_CLR; /**< Write Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED24[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_CLR; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_CLR; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_CLR; /**< Power control register */
+ uint32_t RESERVED26[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_CLR; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_CLR; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_CLR; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_CLR; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED27[4U]; /**< Reserved for future use */
+ uint32_t RESERVED28[4U]; /**< Reserved for future use */
+ uint32_t RESERVED29[4U]; /**< Reserved for future use */
+ uint32_t RESERVED30[4U]; /**< Reserved for future use */
+ uint32_t RESERVED31[12U]; /**< Reserved for future use */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ uint32_t RESERVED33[8U]; /**< Reserved for future use */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+ uint32_t RESERVED35[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t READCTRL_TGL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_TGL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_TGL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_TGL; /**< Write Command Register */
+ __IOM uint32_t ADDRB_TGL; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_TGL; /**< Write Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED36[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_TGL; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_TGL; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_TGL; /**< Power control register */
+ uint32_t RESERVED38[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_TGL; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_TGL; /**< Main space page 32-63 lock word */
+ __IOM uint32_t PAGELOCK2_TGL; /**< Main space page 64-95 lock word */
+ __IOM uint32_t PAGELOCK3_TGL; /**< Main space page 96-127 lock word */
+ uint32_t RESERVED39[4U]; /**< Reserved for future use */
+ uint32_t RESERVED40[4U]; /**< Reserved for future use */
+ uint32_t RESERVED41[4U]; /**< Reserved for future use */
+ uint32_t RESERVED42[4U]; /**< Reserved for future use */
+ uint32_t RESERVED43[12U]; /**< Reserved for future use */
+ uint32_t RESERVED44[1U]; /**< Reserved for future use */
+ uint32_t RESERVED45[8U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+} MSC_TypeDef;
+/** @} End of group EFR32MG29_MSC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_MSC
+ * @{
+ * @defgroup EFR32MG29_MSC_BitFields MSC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MSC IPVERSION */
+#define _MSC_IPVERSION_RESETVALUE 0x00000007UL /**< Default value for MSC_IPVERSION */
+#define _MSC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_DEFAULT 0x00000007UL /**< Mode DEFAULT for MSC_IPVERSION */
+#define MSC_IPVERSION_IPVERSION_DEFAULT (_MSC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IPVERSION */
+
+/* Bit fields for MSC READCTRL */
+#define _MSC_READCTRL_RESETVALUE 0x00200000UL /**< Default value for MSC_READCTRL */
+#define _MSC_READCTRL_MASK 0x00300000UL /**< Mask for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_SHIFT 20 /**< Shift value for MSC_MODE */
+#define _MSC_READCTRL_MODE_MASK 0x300000UL /**< Bit mask for MSC_MODE */
+#define _MSC_READCTRL_MODE_DEFAULT 0x00000002UL /**< Mode DEFAULT for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS0 0x00000000UL /**< Mode WS0 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS1 0x00000001UL /**< Mode WS1 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS2 0x00000002UL /**< Mode WS2 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS3 0x00000003UL /**< Mode WS3 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_DEFAULT (_MSC_READCTRL_MODE_DEFAULT << 20) /**< Shifted mode DEFAULT for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS0 (_MSC_READCTRL_MODE_WS0 << 20) /**< Shifted mode WS0 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS1 (_MSC_READCTRL_MODE_WS1 << 20) /**< Shifted mode WS1 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS2 (_MSC_READCTRL_MODE_WS2 << 20) /**< Shifted mode WS2 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS3 (_MSC_READCTRL_MODE_WS3 << 20) /**< Shifted mode WS3 for MSC_READCTRL */
+
+/* Bit fields for MSC RDATACTRL */
+#define _MSC_RDATACTRL_RESETVALUE 0x00001000UL /**< Default value for MSC_RDATACTRL */
+#define _MSC_RDATACTRL_MASK 0x00001002UL /**< Mask for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS (0x1UL << 1) /**< Automatic Invalidate Disable */
+#define _MSC_RDATACTRL_AFDIS_SHIFT 1 /**< Shift value for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_MASK 0x2UL /**< Bit mask for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS_DEFAULT (_MSC_RDATACTRL_AFDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN (0x1UL << 12) /**< Flash dout pipeline buffer enable */
+#define _MSC_RDATACTRL_DOUTBUFEN_SHIFT 12 /**< Shift value for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_MASK 0x1000UL /**< Bit mask for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN_DEFAULT (_MSC_RDATACTRL_DOUTBUFEN_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+
+/* Bit fields for MSC WRITECTRL */
+#define _MSC_WRITECTRL_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_MASK 0x03FF000BUL /**< Mask for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN (0x1UL << 0) /**< Enable Write/Erase Controller */
+#define _MSC_WRITECTRL_WREN_SHIFT 0 /**< Shift value for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_MASK 0x1UL /**< Bit mask for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN_DEFAULT (_MSC_WRITECTRL_WREN_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT (0x1UL << 1) /**< Abort Page Erase on Interrupt */
+#define _MSC_WRITECTRL_IRQERASEABORT_SHIFT 1 /**< Shift value for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_MASK 0x2UL /**< Bit mask for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT_DEFAULT (_MSC_WRITECTRL_IRQERASEABORT_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE (0x1UL << 3) /**< Low-Power Write */
+#define _MSC_WRITECTRL_LPWRITE_SHIFT 3 /**< Shift value for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_MASK 0x8UL /**< Bit mask for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE_DEFAULT (_MSC_WRITECTRL_LPWRITE_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_RANGECOUNT_SHIFT 16 /**< Shift value for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_MASK 0x3FF0000UL /**< Bit mask for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_RANGECOUNT_DEFAULT (_MSC_WRITECTRL_RANGECOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+
+/* Bit fields for MSC WRITECMD */
+#define _MSC_WRITECMD_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECMD */
+#define _MSC_WRITECMD_MASK 0x00001136UL /**< Mask for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE (0x1UL << 1) /**< Erase Page */
+#define _MSC_WRITECMD_ERASEPAGE_SHIFT 1 /**< Shift value for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_MASK 0x2UL /**< Bit mask for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE_DEFAULT (_MSC_WRITECMD_ERASEPAGE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND (0x1UL << 2) /**< End Write Mode */
+#define _MSC_WRITECMD_WRITEEND_SHIFT 2 /**< Shift value for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_MASK 0x4UL /**< Bit mask for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND_DEFAULT (_MSC_WRITECMD_WRITEEND_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE (0x1UL << 4) /**< Erase range of pages */
+#define _MSC_WRITECMD_ERASERANGE_SHIFT 4 /**< Shift value for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_MASK 0x10UL /**< Bit mask for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE_DEFAULT (_MSC_WRITECMD_ERASERANGE_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT (0x1UL << 5) /**< Abort erase sequence */
+#define _MSC_WRITECMD_ERASEABORT_SHIFT 5 /**< Shift value for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_MASK 0x20UL /**< Bit mask for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT_DEFAULT (_MSC_WRITECMD_ERASEABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0 (0x1UL << 8) /**< Mass erase region 0 */
+#define _MSC_WRITECMD_ERASEMAIN0_SHIFT 8 /**< Shift value for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_MASK 0x100UL /**< Bit mask for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0_DEFAULT (_MSC_WRITECMD_ERASEMAIN0_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA (0x1UL << 12) /**< Clear WDATA state */
+#define _MSC_WRITECMD_CLEARWDATA_SHIFT 12 /**< Shift value for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_MASK 0x1000UL /**< Bit mask for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA_DEFAULT (_MSC_WRITECMD_CLEARWDATA_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+
+/* Bit fields for MSC ADDRB */
+#define _MSC_ADDRB_RESETVALUE 0x00000000UL /**< Default value for MSC_ADDRB */
+#define _MSC_ADDRB_MASK 0xFFFFFFFFUL /**< Mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_SHIFT 0 /**< Shift value for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_ADDRB */
+#define MSC_ADDRB_ADDRB_DEFAULT (_MSC_ADDRB_ADDRB_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_ADDRB */
+
+/* Bit fields for MSC WDATA */
+#define _MSC_WDATA_RESETVALUE 0x00000000UL /**< Default value for MSC_WDATA */
+#define _MSC_WDATA_MASK 0xFFFFFFFFUL /**< Mask for MSC_WDATA */
+#define _MSC_WDATA_DATAW_SHIFT 0 /**< Shift value for MSC_DATAW */
+#define _MSC_WDATA_DATAW_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_DATAW */
+#define _MSC_WDATA_DATAW_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WDATA */
+#define MSC_WDATA_DATAW_DEFAULT (_MSC_WDATA_DATAW_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WDATA */
+
+/* Bit fields for MSC STATUS */
+#define _MSC_STATUS_RESETVALUE 0x08000008UL /**< Default value for MSC_STATUS */
+#define _MSC_STATUS_MASK 0xF90100FFUL /**< Mask for MSC_STATUS */
+#define MSC_STATUS_BUSY (0x1UL << 0) /**< Erase/Write Busy */
+#define _MSC_STATUS_BUSY_SHIFT 0 /**< Shift value for MSC_BUSY */
+#define _MSC_STATUS_BUSY_MASK 0x1UL /**< Bit mask for MSC_BUSY */
+#define _MSC_STATUS_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_BUSY_DEFAULT (_MSC_STATUS_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED (0x1UL << 1) /**< Access Locked */
+#define _MSC_STATUS_LOCKED_SHIFT 1 /**< Shift value for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_MASK 0x2UL /**< Bit mask for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED_DEFAULT (_MSC_STATUS_LOCKED_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR (0x1UL << 2) /**< Invalid Write Address or Erase Page */
+#define _MSC_STATUS_INVADDR_SHIFT 2 /**< Shift value for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_MASK 0x4UL /**< Bit mask for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR_DEFAULT (_MSC_STATUS_INVADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY (0x1UL << 3) /**< WDATA Write Ready */
+#define _MSC_STATUS_WDATAREADY_SHIFT 3 /**< Shift value for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_MASK 0x8UL /**< Bit mask for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY_DEFAULT (_MSC_STATUS_WDATAREADY_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED (0x1UL << 4) /**< Erase Operation Aborted */
+#define _MSC_STATUS_ERASEABORTED_SHIFT 4 /**< Shift value for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_MASK 0x10UL /**< Bit mask for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED_DEFAULT (_MSC_STATUS_ERASEABORTED_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING (0x1UL << 5) /**< Write Command In Queue */
+#define _MSC_STATUS_PENDING_SHIFT 5 /**< Shift value for MSC_PENDING */
+#define _MSC_STATUS_PENDING_MASK 0x20UL /**< Bit mask for MSC_PENDING */
+#define _MSC_STATUS_PENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING_DEFAULT (_MSC_STATUS_PENDING_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT (0x1UL << 6) /**< Write Command Timeout */
+#define _MSC_STATUS_TIMEOUT_SHIFT 6 /**< Shift value for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_MASK 0x40UL /**< Bit mask for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT_DEFAULT (_MSC_STATUS_TIMEOUT_DEFAULT << 6) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL (0x1UL << 7) /**< EraseRange with skipped locked pages */
+#define _MSC_STATUS_RANGEPARTIAL_SHIFT 7 /**< Shift value for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_MASK 0x80UL /**< Bit mask for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL_DEFAULT (_MSC_STATUS_RANGEPARTIAL_DEFAULT << 7) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK (0x1UL << 16) /**< Register Lock Status */
+#define _MSC_STATUS_REGLOCK_SHIFT 16 /**< Shift value for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_MASK 0x10000UL /**< Bit mask for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_DEFAULT (_MSC_STATUS_REGLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_UNLOCKED (_MSC_STATUS_REGLOCK_UNLOCKED << 16) /**< Shifted mode UNLOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_LOCKED (_MSC_STATUS_REGLOCK_LOCKED << 16) /**< Shifted mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_PWRON (0x1UL << 24) /**< Flash Power On Status */
+#define _MSC_STATUS_PWRON_SHIFT 24 /**< Shift value for MSC_PWRON */
+#define _MSC_STATUS_PWRON_MASK 0x1000000UL /**< Bit mask for MSC_PWRON */
+#define _MSC_STATUS_PWRON_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRON_DEFAULT (_MSC_STATUS_PWRON_DEFAULT << 24) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY (0x1UL << 27) /**< Flash Write Ready */
+#define _MSC_STATUS_WREADY_SHIFT 27 /**< Shift value for MSC_WREADY */
+#define _MSC_STATUS_WREADY_MASK 0x8000000UL /**< Bit mask for MSC_WREADY */
+#define _MSC_STATUS_WREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY_DEFAULT (_MSC_STATUS_WREADY_DEFAULT << 27) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_SHIFT 28 /**< Shift value for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_MASK 0xF0000000UL /**< Bit mask for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT (_MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT << 28) /**< Shifted mode DEFAULT for MSC_STATUS */
+
+/* Bit fields for MSC IF */
+#define _MSC_IF_RESETVALUE 0x00000000UL /**< Default value for MSC_IF */
+#define _MSC_IF_MASK 0x00000307UL /**< Mask for MSC_IF */
+#define MSC_IF_ERASE (0x1UL << 0) /**< Host Erase Done Interrupt Read Flag */
+#define _MSC_IF_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IF_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IF_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_ERASE_DEFAULT (_MSC_IF_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE (0x1UL << 1) /**< Host Write Done Interrupt Read Flag */
+#define _MSC_IF_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IF_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IF_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE_DEFAULT (_MSC_IF_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV (0x1UL << 2) /**< Host write buffer overflow */
+#define _MSC_IF_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV_DEFAULT (_MSC_IF_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF (0x1UL << 8) /**< Flash Power Up Sequence Complete Flag */
+#define _MSC_IF_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF_DEFAULT (_MSC_IF_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF (0x1UL << 9) /**< Flash Power Off Sequence Complete Flag */
+#define _MSC_IF_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IF_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IF_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF_DEFAULT (_MSC_IF_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IF */
+
+/* Bit fields for MSC IEN */
+#define _MSC_IEN_RESETVALUE 0x00000000UL /**< Default value for MSC_IEN */
+#define _MSC_IEN_MASK 0x00000307UL /**< Mask for MSC_IEN */
+#define MSC_IEN_ERASE (0x1UL << 0) /**< Erase Done Interrupt enable */
+#define _MSC_IEN_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IEN_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IEN_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_ERASE_DEFAULT (_MSC_IEN_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE (0x1UL << 1) /**< Write Done Interrupt enable */
+#define _MSC_IEN_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IEN_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IEN_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE_DEFAULT (_MSC_IEN_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV (0x1UL << 2) /**< write data buffer overflow irq enable */
+#define _MSC_IEN_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV_DEFAULT (_MSC_IEN_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF (0x1UL << 8) /**< Flash Power Up Seq done irq enable */
+#define _MSC_IEN_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF_DEFAULT (_MSC_IEN_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF (0x1UL << 9) /**< Flash Power Off Seq done irq enable */
+#define _MSC_IEN_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF_DEFAULT (_MSC_IEN_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IEN */
+
+/* Bit fields for MSC USERDATASIZE */
+#define _MSC_USERDATASIZE_RESETVALUE 0x00000004UL /**< Default value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_MASK 0x0000003FUL /**< Mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_SHIFT 0 /**< Shift value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_MASK 0x3FUL /**< Bit mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_DEFAULT 0x00000004UL /**< Mode DEFAULT for MSC_USERDATASIZE */
+#define MSC_USERDATASIZE_USERDATASIZE_DEFAULT (_MSC_USERDATASIZE_USERDATASIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_USERDATASIZE */
+
+/* Bit fields for MSC CMD */
+#define _MSC_CMD_RESETVALUE 0x00000000UL /**< Default value for MSC_CMD */
+#define _MSC_CMD_MASK 0x00000011UL /**< Mask for MSC_CMD */
+#define MSC_CMD_PWRUP (0x1UL << 0) /**< Flash Power Up Command */
+#define _MSC_CMD_PWRUP_SHIFT 0 /**< Shift value for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_MASK 0x1UL /**< Bit mask for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWRUP_DEFAULT (_MSC_CMD_PWRUP_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF (0x1UL << 4) /**< Flash power off/sleep command */
+#define _MSC_CMD_PWROFF_SHIFT 4 /**< Shift value for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_MASK 0x10UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF_DEFAULT (_MSC_CMD_PWROFF_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_CMD */
+
+/* Bit fields for MSC LOCK */
+#define _MSC_LOCK_RESETVALUE 0x00000000UL /**< Default value for MSC_LOCK */
+#define _MSC_LOCK_MASK 0x0000FFFFUL /**< Mask for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_UNLOCK 0x00001B71UL /**< Mode UNLOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_DEFAULT (_MSC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_LOCK (_MSC_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_UNLOCK (_MSC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for MSC_LOCK */
+
+/* Bit fields for MSC MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_RESETVALUE 0x00000011UL /**< Default value for MSC_MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_MASK 0x00000011UL /**< Mask for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT (0x1UL << 0) /**< Mass Erase Lock */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_SHIFT 0 /**< Shift value for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_MASK 0x1UL /**< Bit mask for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT (0x1UL << 4) /**< User Data Lock */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_SHIFT 4 /**< Shift value for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_MASK 0x10UL /**< Bit mask for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+
+/* Bit fields for MSC PWRCTRL */
+#define _MSC_PWRCTRL_RESETVALUE 0x00100002UL /**< Default value for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_MASK 0x00FF0013UL /**< Mask for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY (0x1UL << 0) /**< Power down Flash macro when enter EM1 */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_SHIFT 0 /**< Shift value for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_MASK 0x1UL /**< Bit mask for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY (0x1UL << 1) /**< Power down Flash macro when enter EM1P */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_SHIFT 1 /**< Shift value for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_MASK 0x2UL /**< Bit mask for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN (0x1UL << 4) /**< POWER down flash again in EM1/EM1p */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_SHIFT 4 /**< Shift value for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_MASK 0x10UL /**< Bit mask for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT (_MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_PWROFFDLY_SHIFT 16 /**< Shift value for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_MASK 0xFF0000UL /**< Bit mask for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_DEFAULT 0x00000010UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFDLY_DEFAULT (_MSC_PWRCTRL_PWROFFDLY_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+
+/* Bit fields for MSC PAGELOCK0 */
+#define _MSC_PAGELOCK0_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK0 */
+#define MSC_PAGELOCK0_LOCKBIT_DEFAULT (_MSC_PAGELOCK0_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK0 */
+
+/* Bit fields for MSC PAGELOCK1 */
+#define _MSC_PAGELOCK1_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK1 */
+#define MSC_PAGELOCK1_LOCKBIT_DEFAULT (_MSC_PAGELOCK1_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK1 */
+
+/* Bit fields for MSC PAGELOCK2 */
+#define _MSC_PAGELOCK2_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK2 */
+#define _MSC_PAGELOCK2_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK2 */
+#define _MSC_PAGELOCK2_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK2_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK2_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK2 */
+#define MSC_PAGELOCK2_LOCKBIT_DEFAULT (_MSC_PAGELOCK2_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK2 */
+
+/* Bit fields for MSC PAGELOCK3 */
+#define _MSC_PAGELOCK3_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK3 */
+#define _MSC_PAGELOCK3_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK3 */
+#define _MSC_PAGELOCK3_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK3_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK3_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK3 */
+#define MSC_PAGELOCK3_LOCKBIT_DEFAULT (_MSC_PAGELOCK3_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK3 */
+
+/** @} End of group EFR32MG29_MSC_BitFields */
+/** @} End of group EFR32MG29_MSC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_MSC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_pdm.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_pdm.h
new file mode 100644
index 000000000..914fef64d
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_pdm.h
@@ -0,0 +1,363 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 PDM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_PDM_H
+#define EFR32MG29_PDM_H
+#define PDM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_PDM PDM
+ * @{
+ * @brief EFR32MG29 PDM Register Declaration.
+ *****************************************************************************/
+
+/** PDM Register Declaration. */
+typedef struct pdm_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t EN; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL; /**< PDM Core Control Register */
+ __IOM uint32_t CMD; /**< PDM Core Command Register */
+ __IM uint32_t STATUS; /**< PDM Status register */
+ __IOM uint32_t CFG0; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA; /**< PDM Received Data Register */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Flag Register */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t EN_SET; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_SET; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_SET; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_SET; /**< PDM Status register */
+ __IOM uint32_t CFG0_SET; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_SET; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_SET; /**< PDM Received Data Register */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Flag Register */
+ uint32_t RESERVED6[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED7[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t EN_CLR; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_CLR; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_CLR; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_CLR; /**< PDM Status register */
+ __IOM uint32_t CFG0_CLR; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_CLR; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_CLR; /**< PDM Received Data Register */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Flag Register */
+ uint32_t RESERVED10[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED11[999U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t EN_TGL; /**< PDM Module enable Register */
+ __IOM uint32_t CTRL_TGL; /**< PDM Core Control Register */
+ __IOM uint32_t CMD_TGL; /**< PDM Core Command Register */
+ __IM uint32_t STATUS_TGL; /**< PDM Status register */
+ __IOM uint32_t CFG0_TGL; /**< PDM Core Configuration Register0 */
+ __IOM uint32_t CFG1_TGL; /**< PDM Core Configuration Register1 */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IM uint32_t RXDATA_TGL; /**< PDM Received Data Register */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Flag Register */
+ uint32_t RESERVED14[6U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+} PDM_TypeDef;
+/** @} End of group EFR32MG29_PDM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_PDM
+ * @{
+ * @defgroup EFR32MG29_PDM_BitFields PDM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PDM IPVERSION */
+#define _PDM_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for PDM_IPVERSION */
+#define _PDM_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PDM_IPVERSION */
+#define _PDM_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IPVERSION */
+#define PDM_IPVERSION_IPVERSION_DEFAULT (_PDM_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IPVERSION */
+
+/* Bit fields for PDM EN */
+#define _PDM_EN_RESETVALUE 0x00000000UL /**< Default value for PDM_EN */
+#define _PDM_EN_MASK 0x00000001UL /**< Mask for PDM_EN */
+#define PDM_EN_EN (0x1UL << 0) /**< PDM enable */
+#define _PDM_EN_EN_SHIFT 0 /**< Shift value for PDM_EN */
+#define _PDM_EN_EN_MASK 0x1UL /**< Bit mask for PDM_EN */
+#define _PDM_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_EN */
+#define _PDM_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for PDM_EN */
+#define _PDM_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for PDM_EN */
+#define PDM_EN_EN_DEFAULT (_PDM_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_EN */
+#define PDM_EN_EN_DISABLE (_PDM_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for PDM_EN */
+#define PDM_EN_EN_ENABLE (_PDM_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for PDM_EN */
+
+/* Bit fields for PDM CTRL */
+#define _PDM_CTRL_RESETVALUE 0x00000000UL /**< Default value for PDM_CTRL */
+#define _PDM_CTRL_MASK 0x000FFF1FUL /**< Mask for PDM_CTRL */
+#define _PDM_CTRL_GAIN_SHIFT 0 /**< Shift value for PDM_GAIN */
+#define _PDM_CTRL_GAIN_MASK 0x1FUL /**< Bit mask for PDM_GAIN */
+#define _PDM_CTRL_GAIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CTRL */
+#define PDM_CTRL_GAIN_DEFAULT (_PDM_CTRL_GAIN_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CTRL */
+#define _PDM_CTRL_DSR_SHIFT 8 /**< Shift value for PDM_DSR */
+#define _PDM_CTRL_DSR_MASK 0xFFF00UL /**< Bit mask for PDM_DSR */
+#define _PDM_CTRL_DSR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CTRL */
+#define PDM_CTRL_DSR_DEFAULT (_PDM_CTRL_DSR_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CTRL */
+
+/* Bit fields for PDM CMD */
+#define _PDM_CMD_RESETVALUE 0x00000000UL /**< Default value for PDM_CMD */
+#define _PDM_CMD_MASK 0x00010111UL /**< Mask for PDM_CMD */
+#define PDM_CMD_START (0x1UL << 0) /**< Start DCF */
+#define _PDM_CMD_START_SHIFT 0 /**< Shift value for PDM_START */
+#define _PDM_CMD_START_MASK 0x1UL /**< Bit mask for PDM_START */
+#define _PDM_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_START_DEFAULT (_PDM_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_STOP (0x1UL << 4) /**< Stop DCF */
+#define _PDM_CMD_STOP_SHIFT 4 /**< Shift value for PDM_STOP */
+#define _PDM_CMD_STOP_MASK 0x10UL /**< Bit mask for PDM_STOP */
+#define _PDM_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_STOP_DEFAULT (_PDM_CMD_STOP_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_CLEAR (0x1UL << 8) /**< Clear DCF */
+#define _PDM_CMD_CLEAR_SHIFT 8 /**< Shift value for PDM_CLEAR */
+#define _PDM_CMD_CLEAR_MASK 0x100UL /**< Bit mask for PDM_CLEAR */
+#define _PDM_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_CLEAR_DEFAULT (_PDM_CMD_CLEAR_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CMD */
+#define PDM_CMD_FIFOFL (0x1UL << 16) /**< FIFO Flush */
+#define _PDM_CMD_FIFOFL_SHIFT 16 /**< Shift value for PDM_FIFOFL */
+#define _PDM_CMD_FIFOFL_MASK 0x10000UL /**< Bit mask for PDM_FIFOFL */
+#define _PDM_CMD_FIFOFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CMD */
+#define PDM_CMD_FIFOFL_DEFAULT (_PDM_CMD_FIFOFL_DEFAULT << 16) /**< Shifted mode DEFAULT for PDM_CMD */
+
+/* Bit fields for PDM STATUS */
+#define _PDM_STATUS_RESETVALUE 0x00000020UL /**< Default value for PDM_STATUS */
+#define _PDM_STATUS_MASK 0x00000731UL /**< Mask for PDM_STATUS */
+#define PDM_STATUS_ACT (0x1UL << 0) /**< PDM is active */
+#define _PDM_STATUS_ACT_SHIFT 0 /**< Shift value for PDM_ACT */
+#define _PDM_STATUS_ACT_MASK 0x1UL /**< Bit mask for PDM_ACT */
+#define _PDM_STATUS_ACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_ACT_DEFAULT (_PDM_STATUS_ACT_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FULL (0x1UL << 4) /**< FIFO FULL Status */
+#define _PDM_STATUS_FULL_SHIFT 4 /**< Shift value for PDM_FULL */
+#define _PDM_STATUS_FULL_MASK 0x10UL /**< Bit mask for PDM_FULL */
+#define _PDM_STATUS_FULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FULL_DEFAULT (_PDM_STATUS_FULL_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_EMPTY (0x1UL << 5) /**< FIFO EMPTY Status */
+#define _PDM_STATUS_EMPTY_SHIFT 5 /**< Shift value for PDM_EMPTY */
+#define _PDM_STATUS_EMPTY_MASK 0x20UL /**< Bit mask for PDM_EMPTY */
+#define _PDM_STATUS_EMPTY_DEFAULT 0x00000001UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_EMPTY_DEFAULT (_PDM_STATUS_EMPTY_DEFAULT << 5) /**< Shifted mode DEFAULT for PDM_STATUS */
+#define _PDM_STATUS_FIFOCNT_SHIFT 8 /**< Shift value for PDM_FIFOCNT */
+#define _PDM_STATUS_FIFOCNT_MASK 0x700UL /**< Bit mask for PDM_FIFOCNT */
+#define _PDM_STATUS_FIFOCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_STATUS */
+#define PDM_STATUS_FIFOCNT_DEFAULT (_PDM_STATUS_FIFOCNT_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_STATUS */
+
+/* Bit fields for PDM CFG0 */
+#define _PDM_CFG0_RESETVALUE 0x00000000UL /**< Default value for PDM_CFG0 */
+#define _PDM_CFG0_MASK 0x03013713UL /**< Mask for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_SHIFT 0 /**< Shift value for PDM_FORDER */
+#define _PDM_CFG0_FORDER_MASK 0x3UL /**< Bit mask for PDM_FORDER */
+#define _PDM_CFG0_FORDER_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_SECOND 0x00000000UL /**< Mode SECOND for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_THIRD 0x00000001UL /**< Mode THIRD for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_FOURTH 0x00000002UL /**< Mode FOURTH for PDM_CFG0 */
+#define _PDM_CFG0_FORDER_FIFTH 0x00000003UL /**< Mode FIFTH for PDM_CFG0 */
+#define PDM_CFG0_FORDER_DEFAULT (_PDM_CFG0_FORDER_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_FORDER_SECOND (_PDM_CFG0_FORDER_SECOND << 0) /**< Shifted mode SECOND for PDM_CFG0 */
+#define PDM_CFG0_FORDER_THIRD (_PDM_CFG0_FORDER_THIRD << 0) /**< Shifted mode THIRD for PDM_CFG0 */
+#define PDM_CFG0_FORDER_FOURTH (_PDM_CFG0_FORDER_FOURTH << 0) /**< Shifted mode FOURTH for PDM_CFG0 */
+#define PDM_CFG0_FORDER_FIFTH (_PDM_CFG0_FORDER_FIFTH << 0) /**< Shifted mode FIFTH for PDM_CFG0 */
+#define PDM_CFG0_NUMCH (0x1UL << 4) /**< Number of Channels */
+#define _PDM_CFG0_NUMCH_SHIFT 4 /**< Shift value for PDM_NUMCH */
+#define _PDM_CFG0_NUMCH_MASK 0x10UL /**< Bit mask for PDM_NUMCH */
+#define _PDM_CFG0_NUMCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_NUMCH_ONE 0x00000000UL /**< Mode ONE for PDM_CFG0 */
+#define _PDM_CFG0_NUMCH_TWO 0x00000001UL /**< Mode TWO for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_DEFAULT (_PDM_CFG0_NUMCH_DEFAULT << 4) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_ONE (_PDM_CFG0_NUMCH_ONE << 4) /**< Shifted mode ONE for PDM_CFG0 */
+#define PDM_CFG0_NUMCH_TWO (_PDM_CFG0_NUMCH_TWO << 4) /**< Shifted mode TWO for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_SHIFT 8 /**< Shift value for PDM_DATAFORMAT */
+#define _PDM_CFG0_DATAFORMAT_MASK 0x700UL /**< Bit mask for PDM_DATAFORMAT */
+#define _PDM_CFG0_DATAFORMAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RIGHT16 0x00000000UL /**< Mode RIGHT16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_DOUBLE16 0x00000001UL /**< Mode DOUBLE16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RIGHT24 0x00000002UL /**< Mode RIGHT24 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_FULL32BIT 0x00000003UL /**< Mode FULL32BIT for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_LEFT16 0x00000004UL /**< Mode LEFT16 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_LEFT24 0x00000005UL /**< Mode LEFT24 for PDM_CFG0 */
+#define _PDM_CFG0_DATAFORMAT_RAW32BIT 0x00000006UL /**< Mode RAW32BIT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_DEFAULT (_PDM_CFG0_DATAFORMAT_DEFAULT << 8) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RIGHT16 (_PDM_CFG0_DATAFORMAT_RIGHT16 << 8) /**< Shifted mode RIGHT16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_DOUBLE16 (_PDM_CFG0_DATAFORMAT_DOUBLE16 << 8) /**< Shifted mode DOUBLE16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RIGHT24 (_PDM_CFG0_DATAFORMAT_RIGHT24 << 8) /**< Shifted mode RIGHT24 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_FULL32BIT (_PDM_CFG0_DATAFORMAT_FULL32BIT << 8) /**< Shifted mode FULL32BIT for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_LEFT16 (_PDM_CFG0_DATAFORMAT_LEFT16 << 8) /**< Shifted mode LEFT16 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_LEFT24 (_PDM_CFG0_DATAFORMAT_LEFT24 << 8) /**< Shifted mode LEFT24 for PDM_CFG0 */
+#define PDM_CFG0_DATAFORMAT_RAW32BIT (_PDM_CFG0_DATAFORMAT_RAW32BIT << 8) /**< Shifted mode RAW32BIT for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_SHIFT 12 /**< Shift value for PDM_FIFODVL */
+#define _PDM_CFG0_FIFODVL_MASK 0x3000UL /**< Bit mask for PDM_FIFODVL */
+#define _PDM_CFG0_FIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_ONE 0x00000000UL /**< Mode ONE for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_TWO 0x00000001UL /**< Mode TWO for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_THREE 0x00000002UL /**< Mode THREE for PDM_CFG0 */
+#define _PDM_CFG0_FIFODVL_FOUR 0x00000003UL /**< Mode FOUR for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_DEFAULT (_PDM_CFG0_FIFODVL_DEFAULT << 12) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_ONE (_PDM_CFG0_FIFODVL_ONE << 12) /**< Shifted mode ONE for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_TWO (_PDM_CFG0_FIFODVL_TWO << 12) /**< Shifted mode TWO for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_THREE (_PDM_CFG0_FIFODVL_THREE << 12) /**< Shifted mode THREE for PDM_CFG0 */
+#define PDM_CFG0_FIFODVL_FOUR (_PDM_CFG0_FIFODVL_FOUR << 12) /**< Shifted mode FOUR for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01 (0x1UL << 16) /**< Stereo mode CH01 */
+#define _PDM_CFG0_STEREOMODECH01_SHIFT 16 /**< Shift value for PDM_STEREOMODECH01 */
+#define _PDM_CFG0_STEREOMODECH01_MASK 0x10000UL /**< Bit mask for PDM_STEREOMODECH01 */
+#define _PDM_CFG0_STEREOMODECH01_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_STEREOMODECH01_DISABLE 0x00000000UL /**< Mode DISABLE for PDM_CFG0 */
+#define _PDM_CFG0_STEREOMODECH01_CH01ENABLE 0x00000001UL /**< Mode CH01ENABLE for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_DEFAULT (_PDM_CFG0_STEREOMODECH01_DEFAULT << 16) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_DISABLE (_PDM_CFG0_STEREOMODECH01_DISABLE << 16) /**< Shifted mode DISABLE for PDM_CFG0 */
+#define PDM_CFG0_STEREOMODECH01_CH01ENABLE (_PDM_CFG0_STEREOMODECH01_CH01ENABLE << 16) /**< Shifted mode CH01ENABLE for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL (0x1UL << 24) /**< CH0 CLK Polarity */
+#define _PDM_CFG0_CH0CLKPOL_SHIFT 24 /**< Shift value for PDM_CH0CLKPOL */
+#define _PDM_CFG0_CH0CLKPOL_MASK 0x1000000UL /**< Bit mask for PDM_CH0CLKPOL */
+#define _PDM_CFG0_CH0CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_CH0CLKPOL_NORMAL 0x00000000UL /**< Mode NORMAL for PDM_CFG0 */
+#define _PDM_CFG0_CH0CLKPOL_INVERT 0x00000001UL /**< Mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_DEFAULT (_PDM_CFG0_CH0CLKPOL_DEFAULT << 24) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_NORMAL (_PDM_CFG0_CH0CLKPOL_NORMAL << 24) /**< Shifted mode NORMAL for PDM_CFG0 */
+#define PDM_CFG0_CH0CLKPOL_INVERT (_PDM_CFG0_CH0CLKPOL_INVERT << 24) /**< Shifted mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL (0x1UL << 25) /**< CH1 CLK Polarity */
+#define _PDM_CFG0_CH1CLKPOL_SHIFT 25 /**< Shift value for PDM_CH1CLKPOL */
+#define _PDM_CFG0_CH1CLKPOL_MASK 0x2000000UL /**< Bit mask for PDM_CH1CLKPOL */
+#define _PDM_CFG0_CH1CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG0 */
+#define _PDM_CFG0_CH1CLKPOL_NORMAL 0x00000000UL /**< Mode NORMAL for PDM_CFG0 */
+#define _PDM_CFG0_CH1CLKPOL_INVERT 0x00000001UL /**< Mode INVERT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_DEFAULT (_PDM_CFG0_CH1CLKPOL_DEFAULT << 25) /**< Shifted mode DEFAULT for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_NORMAL (_PDM_CFG0_CH1CLKPOL_NORMAL << 25) /**< Shifted mode NORMAL for PDM_CFG0 */
+#define PDM_CFG0_CH1CLKPOL_INVERT (_PDM_CFG0_CH1CLKPOL_INVERT << 25) /**< Shifted mode INVERT for PDM_CFG0 */
+
+/* Bit fields for PDM CFG1 */
+#define _PDM_CFG1_RESETVALUE 0x00000000UL /**< Default value for PDM_CFG1 */
+#define _PDM_CFG1_MASK 0x030003FFUL /**< Mask for PDM_CFG1 */
+#define _PDM_CFG1_PRESC_SHIFT 0 /**< Shift value for PDM_PRESC */
+#define _PDM_CFG1_PRESC_MASK 0x3FFUL /**< Bit mask for PDM_PRESC */
+#define _PDM_CFG1_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG1 */
+#define PDM_CFG1_PRESC_DEFAULT (_PDM_CFG1_PRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_CFG1 */
+#define _PDM_CFG1_DLYMUXSEL_SHIFT 24 /**< Shift value for PDM_DLYMUXSEL */
+#define _PDM_CFG1_DLYMUXSEL_MASK 0x3000000UL /**< Bit mask for PDM_DLYMUXSEL */
+#define _PDM_CFG1_DLYMUXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_CFG1 */
+#define PDM_CFG1_DLYMUXSEL_DEFAULT (_PDM_CFG1_DLYMUXSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for PDM_CFG1 */
+
+/* Bit fields for PDM RXDATA */
+#define _PDM_RXDATA_RESETVALUE 0x00000000UL /**< Default value for PDM_RXDATA */
+#define _PDM_RXDATA_MASK 0xFFFFFFFFUL /**< Mask for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_SHIFT 0 /**< Shift value for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_MASK 0xFFFFFFFFUL /**< Bit mask for PDM_RXDATA */
+#define _PDM_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_RXDATA */
+#define PDM_RXDATA_RXDATA_DEFAULT (_PDM_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_RXDATA */
+
+/* Bit fields for PDM IF */
+#define _PDM_IF_RESETVALUE 0x00000000UL /**< Default value for PDM_IF */
+#define _PDM_IF_MASK 0x0000000FUL /**< Mask for PDM_IF */
+#define PDM_IF_DV (0x1UL << 0) /**< Data Valid Interrupt Flag */
+#define _PDM_IF_DV_SHIFT 0 /**< Shift value for PDM_DV */
+#define _PDM_IF_DV_MASK 0x1UL /**< Bit mask for PDM_DV */
+#define _PDM_IF_DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_DV_DEFAULT (_PDM_IF_DV_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_DVL (0x1UL << 1) /**< Data Valid Level Interrupt Flag */
+#define _PDM_IF_DVL_SHIFT 1 /**< Shift value for PDM_DVL */
+#define _PDM_IF_DVL_MASK 0x2UL /**< Bit mask for PDM_DVL */
+#define _PDM_IF_DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_DVL_DEFAULT (_PDM_IF_DVL_DEFAULT << 1) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_OF (0x1UL << 2) /**< FIFO Overflow Interrupt Flag */
+#define _PDM_IF_OF_SHIFT 2 /**< Shift value for PDM_OF */
+#define _PDM_IF_OF_MASK 0x4UL /**< Bit mask for PDM_OF */
+#define _PDM_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_OF_DEFAULT (_PDM_IF_OF_DEFAULT << 2) /**< Shifted mode DEFAULT for PDM_IF */
+#define PDM_IF_UF (0x1UL << 3) /**< FIFO Undeflow Interrupt Flag */
+#define _PDM_IF_UF_SHIFT 3 /**< Shift value for PDM_UF */
+#define _PDM_IF_UF_MASK 0x8UL /**< Bit mask for PDM_UF */
+#define _PDM_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IF */
+#define PDM_IF_UF_DEFAULT (_PDM_IF_UF_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_IF */
+
+/* Bit fields for PDM IEN */
+#define _PDM_IEN_RESETVALUE 0x00000000UL /**< Default value for PDM_IEN */
+#define _PDM_IEN_MASK 0x0000000FUL /**< Mask for PDM_IEN */
+#define PDM_IEN_DV (0x1UL << 0) /**< Data Valid Interrupt Enable */
+#define _PDM_IEN_DV_SHIFT 0 /**< Shift value for PDM_DV */
+#define _PDM_IEN_DV_MASK 0x1UL /**< Bit mask for PDM_DV */
+#define _PDM_IEN_DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DV_DEFAULT (_PDM_IEN_DV_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DVL (0x1UL << 1) /**< Data Valid Level Interrupt Enable */
+#define _PDM_IEN_DVL_SHIFT 1 /**< Shift value for PDM_DVL */
+#define _PDM_IEN_DVL_MASK 0x2UL /**< Bit mask for PDM_DVL */
+#define _PDM_IEN_DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_DVL_DEFAULT (_PDM_IEN_DVL_DEFAULT << 1) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_OF (0x1UL << 2) /**< FIFO Overflow Interrupt Enable */
+#define _PDM_IEN_OF_SHIFT 2 /**< Shift value for PDM_OF */
+#define _PDM_IEN_OF_MASK 0x4UL /**< Bit mask for PDM_OF */
+#define _PDM_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_OF_DEFAULT (_PDM_IEN_OF_DEFAULT << 2) /**< Shifted mode DEFAULT for PDM_IEN */
+#define PDM_IEN_UF (0x1UL << 3) /**< FIFO Undeflow Interrupt Enable */
+#define _PDM_IEN_UF_SHIFT 3 /**< Shift value for PDM_UF */
+#define _PDM_IEN_UF_MASK 0x8UL /**< Bit mask for PDM_UF */
+#define _PDM_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_IEN */
+#define PDM_IEN_UF_DEFAULT (_PDM_IEN_UF_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_IEN */
+
+/* Bit fields for PDM SYNCBUSY */
+#define _PDM_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_MASK 0x00000009UL /**< Mask for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_SYNCBUSY (0x1UL << 0) /**< sync busy */
+#define _PDM_SYNCBUSY_SYNCBUSY_SHIFT 0 /**< Shift value for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_SYNCBUSY_MASK 0x1UL /**< Bit mask for PDM_SYNCBUSY */
+#define _PDM_SYNCBUSY_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_SYNCBUSY_DEFAULT (_PDM_SYNCBUSY_SYNCBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_FIFOFLBUSY (0x1UL << 3) /**< FIFO Flush Sync busy */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_SHIFT 3 /**< Shift value for PDM_FIFOFLBUSY */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_MASK 0x8UL /**< Bit mask for PDM_FIFOFLBUSY */
+#define _PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PDM_SYNCBUSY */
+#define PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT (_PDM_SYNCBUSY_FIFOFLBUSY_DEFAULT << 3) /**< Shifted mode DEFAULT for PDM_SYNCBUSY */
+
+/** @} End of group EFR32MG29_PDM_BitFields */
+/** @} End of group EFR32MG29_PDM */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_PDM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs.h
new file mode 100644
index 000000000..c0c97e9c4
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs.h
@@ -0,0 +1,1471 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 PRS register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_PRS_H
+#define EFR32MG29_PRS_H
+#define PRS_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_PRS PRS
+ * @{
+ * @brief EFR32MG29 PRS Register Declaration.
+ *****************************************************************************/
+
+/** PRS ASYNC_CH Register Group Declaration. */
+typedef struct prs_async_ch_typedef{
+ __IOM uint32_t CTRL; /**< Async Channel Control Register */
+} PRS_ASYNC_CH_TypeDef;
+
+/** PRS SYNC_CH Register Group Declaration. */
+typedef struct prs_sync_ch_typedef{
+ __IOM uint32_t CTRL; /**< Sync Channel Control Register */
+} PRS_SYNC_CH_TypeDef;
+
+/** PRS Register Declaration. */
+typedef struct prs_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1; /**< CC1 Consumer register */
+ uint32_t RESERVED2[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2; /**< CC2 Consumer register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED5[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1; /**< SRC1 Consumer register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_SET; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_SET; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_SET; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_SET; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_SET[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_SET[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_SET; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_SET; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_SET; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_SET; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_SET; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_SET; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_SET; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_SET; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_SET; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_SET; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_SET; /**< CC1 Consumer register */
+ uint32_t RESERVED10[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_SET; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_SET; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_SET; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_SET; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_SET; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_SET; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_SET; /**< CC2 Consumer register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_SET; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_SET; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_SET; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_SET; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_SET; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_SET; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_SET; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_SET; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_SET; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_SET; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_SET; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_SET; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED12[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_SET; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_SET; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_SET; /**< SRC1 Consumer register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ uint32_t RESERVED15[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_CLR; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_CLR; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_CLR; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_CLR; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_CLR[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_CLR[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_CLR; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_CLR; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_CLR; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_CLR; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_CLR; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_CLR; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_CLR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_CLR; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_CLR; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_CLR; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_CLR; /**< CC1 Consumer register */
+ uint32_t RESERVED18[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_CLR; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_CLR; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_CLR; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_CLR; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_CLR; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_CLR; /**< CC2 Consumer register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_CLR; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_CLR; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_CLR; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_CLR; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_CLR; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_CLR; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_CLR; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_CLR; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_CLR; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_CLR; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_CLR; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_CLR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED20[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_CLR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED21[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_CLR; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_CLR; /**< SRC1 Consumer register */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[900U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_TGL; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_TGL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_TGL; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_TGL; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_TGL[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_TGL[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_TGL; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_TGL; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_TGL; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_TGL; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_TGL; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_TGL; /**< DMAREQ1 Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_TGL; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_TGL; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_TGL; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_TGL; /**< DIN consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_PRORTC_CC1_TGL; /**< CC1 Consumer register */
+ uint32_t RESERVED26[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_TGL; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_TGL; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_TGL; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_TGL; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_SEQ_TGL; /**< SEQ Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_TGL; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_RTCC_CC2_TGL; /**< CC2 Consumer register */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_TGL; /**< TAMPERSRC26 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_TGL; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_TGL; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_TGL; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_TGL; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_TGL; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_TGL; /**< CTI0 consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_TGL; /**< CTI1 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_TGL; /**< CTI2 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_TGL; /**< CTI3 Consumer register */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_TGL; /**< M33 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_TGL; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED28[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_USART1_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART1_IR_TGL; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART1_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART1_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED29[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_TGL; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_TGL; /**< SRC1 Consumer register */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+} PRS_TypeDef;
+/** @} End of group EFR32MG29_PRS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_PRS
+ * @{
+ * @defgroup EFR32MG29_PRS_BitFields PRS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PRS IPVERSION */
+#define _PRS_IPVERSION_RESETVALUE 0x00000008UL /**< Default value for PRS_IPVERSION */
+#define _PRS_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_DEFAULT 0x00000008UL /**< Mode DEFAULT for PRS_IPVERSION */
+#define PRS_IPVERSION_IPVERSION_DEFAULT (_PRS_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_IPVERSION */
+
+/* Bit fields for PRS ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE (0x1UL << 0) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_SHIFT 0 /**< Shift value for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_MASK 0x1UL /**< Bit mask for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE (0x1UL << 1) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_SHIFT 1 /**< Shift value for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_MASK 0x2UL /**< Bit mask for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE (0x1UL << 2) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_SHIFT 2 /**< Shift value for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_MASK 0x4UL /**< Bit mask for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE (0x1UL << 3) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_SHIFT 3 /**< Shift value for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_MASK 0x8UL /**< Bit mask for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE (0x1UL << 4) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_SHIFT 4 /**< Shift value for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_MASK 0x10UL /**< Bit mask for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE (0x1UL << 5) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_SHIFT 5 /**< Shift value for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_MASK 0x20UL /**< Bit mask for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE (0x1UL << 6) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_SHIFT 6 /**< Shift value for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_MASK 0x40UL /**< Bit mask for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE (0x1UL << 7) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_SHIFT 7 /**< Shift value for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_MASK 0x80UL /**< Bit mask for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE (0x1UL << 8) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_SHIFT 8 /**< Shift value for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_MASK 0x100UL /**< Bit mask for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE (0x1UL << 9) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_SHIFT 9 /**< Shift value for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_MASK 0x200UL /**< Bit mask for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE (0x1UL << 10) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_SHIFT 10 /**< Shift value for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_MASK 0x400UL /**< Bit mask for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE (0x1UL << 11) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_SHIFT 11 /**< Shift value for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_MASK 0x800UL /**< Bit mask for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+
+/* Bit fields for PRS ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL (0x1UL << 0) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_SHIFT 0 /**< Shift value for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_MASK 0x1UL /**< Bit mask for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL (0x1UL << 1) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_SHIFT 1 /**< Shift value for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_MASK 0x2UL /**< Bit mask for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL (0x1UL << 2) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_SHIFT 2 /**< Shift value for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_MASK 0x4UL /**< Bit mask for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL (0x1UL << 3) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_SHIFT 3 /**< Shift value for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_MASK 0x8UL /**< Bit mask for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL (0x1UL << 4) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_SHIFT 4 /**< Shift value for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_MASK 0x10UL /**< Bit mask for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL (0x1UL << 5) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_SHIFT 5 /**< Shift value for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_MASK 0x20UL /**< Bit mask for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL (0x1UL << 6) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_SHIFT 6 /**< Shift value for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_MASK 0x40UL /**< Bit mask for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL (0x1UL << 7) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_SHIFT 7 /**< Shift value for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_MASK 0x80UL /**< Bit mask for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL (0x1UL << 8) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_SHIFT 8 /**< Shift value for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_MASK 0x100UL /**< Bit mask for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL (0x1UL << 9) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_SHIFT 9 /**< Shift value for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_MASK 0x200UL /**< Bit mask for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL (0x1UL << 10) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_SHIFT 10 /**< Shift value for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_MASK 0x400UL /**< Bit mask for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL (0x1UL << 11) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_SHIFT 11 /**< Shift value for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_MASK 0x800UL /**< Bit mask for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+
+/* Bit fields for PRS ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel 0 Current Value */
+#define _PRS_ASYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL_DEFAULT (_PRS_ASYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel 1 Current Value */
+#define _PRS_ASYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL_DEFAULT (_PRS_ASYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel 2 Current Value */
+#define _PRS_ASYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL_DEFAULT (_PRS_ASYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel 3 Current Value */
+#define _PRS_ASYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL_DEFAULT (_PRS_ASYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL (0x1UL << 4) /**< Channel 4 Current Value */
+#define _PRS_ASYNC_PEEK_CH4VAL_SHIFT 4 /**< Shift value for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_MASK 0x10UL /**< Bit mask for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL_DEFAULT (_PRS_ASYNC_PEEK_CH4VAL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL (0x1UL << 5) /**< Channel 5 Current Value */
+#define _PRS_ASYNC_PEEK_CH5VAL_SHIFT 5 /**< Shift value for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_MASK 0x20UL /**< Bit mask for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL_DEFAULT (_PRS_ASYNC_PEEK_CH5VAL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL (0x1UL << 6) /**< Channel 6 Current Value */
+#define _PRS_ASYNC_PEEK_CH6VAL_SHIFT 6 /**< Shift value for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_MASK 0x40UL /**< Bit mask for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL_DEFAULT (_PRS_ASYNC_PEEK_CH6VAL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL (0x1UL << 7) /**< Channel 7 Current Value */
+#define _PRS_ASYNC_PEEK_CH7VAL_SHIFT 7 /**< Shift value for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_MASK 0x80UL /**< Bit mask for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL_DEFAULT (_PRS_ASYNC_PEEK_CH7VAL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL (0x1UL << 8) /**< Channel 8 Current Value */
+#define _PRS_ASYNC_PEEK_CH8VAL_SHIFT 8 /**< Shift value for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_MASK 0x100UL /**< Bit mask for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL_DEFAULT (_PRS_ASYNC_PEEK_CH8VAL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL (0x1UL << 9) /**< Channel 9 Current Value */
+#define _PRS_ASYNC_PEEK_CH9VAL_SHIFT 9 /**< Shift value for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_MASK 0x200UL /**< Bit mask for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL_DEFAULT (_PRS_ASYNC_PEEK_CH9VAL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL (0x1UL << 10) /**< Channel 10 Current Value */
+#define _PRS_ASYNC_PEEK_CH10VAL_SHIFT 10 /**< Shift value for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_MASK 0x400UL /**< Bit mask for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL_DEFAULT (_PRS_ASYNC_PEEK_CH10VAL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL (0x1UL << 11) /**< Channel 11 Current Value */
+#define _PRS_ASYNC_PEEK_CH11VAL_SHIFT 11 /**< Shift value for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_MASK 0x800UL /**< Bit mask for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL_DEFAULT (_PRS_ASYNC_PEEK_CH11VAL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+
+/* Bit fields for PRS SYNC_PEEK */
+#define _PRS_SYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_PEEK */
+#define _PRS_SYNC_PEEK_MASK 0x0000000FUL /**< Mask for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL_DEFAULT (_PRS_SYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL_DEFAULT (_PRS_SYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL_DEFAULT (_PRS_SYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL_DEFAULT (_PRS_SYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+
+/* Bit fields for PRS ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_RESETVALUE 0x000C0000UL /**< Default value for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_MASK 0x0F0F7F07UL /**< Mask for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_NONE 0x00000000UL /**< Mode NONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_NONE (_PRS_ASYNC_CH_CTRL_SIGSEL_NONE << 0) /**< Shifted mode NONE for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_SHIFT 16 /**< Shift value for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_MASK 0xF0000UL /**< Bit mask for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT 0x0000000CUL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO 0x00000000UL /**< Mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B 0x00000001UL /**< Mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B 0x00000002UL /**< Mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A 0x00000003UL /**< Mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B 0x00000004UL /**< Mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_B 0x00000005UL /**< Mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B 0x00000006UL /**< Mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B 0x00000007UL /**< Mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B 0x00000008UL /**< Mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B 0x00000009UL /**< Mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_B 0x0000000AUL /**< Mode B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B 0x0000000BUL /**< Mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A 0x0000000CUL /**< Mode A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B 0x0000000DUL /**< Mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B 0x0000000EUL /**< Mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE 0x0000000FUL /**< Mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO << 16) /**< Shifted mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B << 16) /**< Shifted mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B << 16) /**< Shifted mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A << 16) /**< Shifted mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B << 16) /**< Shifted mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_B << 16) /**< Shifted mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B << 16) /**< Shifted mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B << 16) /**< Shifted mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B << 16) /**< Shifted mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B << 16) /**< Shifted mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_B (_PRS_ASYNC_CH_CTRL_FNSEL_B << 16) /**< Shifted mode B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B << 16) /**< Shifted mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A (_PRS_ASYNC_CH_CTRL_FNSEL_A << 16) /**< Shifted mode A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B << 16) /**< Shifted mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B << 16) /**< Shifted mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE << 16) /**< Shifted mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL*/
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_SHIFT 24 /**< Shift value for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_MASK 0xF000000UL /**< Bit mask for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+
+/* Bit fields for PRS SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_MASK 0x00007F07UL /**< Mask for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+
+/* Bit fields for PRS CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALDN */
+#define PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALDN*/
+
+/* Bit fields for PRS CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALUP */
+#define PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALUP*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_CLK */
+#define PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_RX */
+#define PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define _PRS_CONSUMER_EUSART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_CLK */
+#define PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_RX */
+#define PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define _PRS_CONSUMER_EUSART1_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define _PRS_CONSUMER_LETIMER0_CLEAR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_START*/
+#define _PRS_CONSUMER_LETIMER0_START_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+#define PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_STOP*/
+#define _PRS_CONSUMER_LETIMER0_STOP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP */
+#define PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP*/
+
+/* Bit fields for PRS CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_MODEM_DIN */
+#define PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT (_PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_MODEM_DIN*/
+
+/* Bit fields for PRS CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PRORTC_CC0 */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PRORTC_CC0 */
+#define PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_PRORTC_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PRORTC_CC0*/
+
+/* Bit fields for PRS CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PRORTC_CC1 */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PRORTC_CC1 */
+#define PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_PRORTC_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PRORTC_CC1*/
+
+/* Bit fields for PRS CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CLR */
+#define PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CLR*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0 */
+#define PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1 */
+#define PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2 */
+#define PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3 */
+#define PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_FORCETX */
+#define PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_FORCETX*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXDIS */
+#define PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXDIS*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXEN */
+#define PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXEN*/
+
+/* Bit fields for PRS CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_SEQ */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_SEQ */
+#define PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_SEQ_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_SEQ*/
+
+/* Bit fields for PRS CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_TXEN */
+#define PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_TXEN*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC0 */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC0 */
+#define PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC0*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC1 */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC1 */
+#define PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC1*/
+
+/* Bit fields for PRS CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RTCC_CC2 */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RTCC_CC2 */
+#define PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_RTCC_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RTCC_CC2*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0 */
+#define PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1 */
+#define PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2 */
+#define PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3 */
+#define PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV */
+#define PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTI */
+#define PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS1*/
+#define _PRS_CONSUMER_TIMER0_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS2*/
+#define _PRS_CONSUMER_TIMER0_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTI */
+#define PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS1*/
+#define _PRS_CONSUMER_TIMER1_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS2*/
+#define _PRS_CONSUMER_TIMER1_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTI */
+#define PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS1*/
+#define _PRS_CONSUMER_TIMER2_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS2*/
+#define _PRS_CONSUMER_TIMER2_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTI */
+#define PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS1*/
+#define _PRS_CONSUMER_TIMER3_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS2*/
+#define _PRS_CONSUMER_TIMER3_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTI */
+#define PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS1*/
+#define _PRS_CONSUMER_TIMER4_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS2*/
+#define _PRS_CONSUMER_TIMER4_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_CLK */
+#define PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_IR */
+#define PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_IR*/
+
+/* Bit fields for PRS CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_RX */
+#define PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_RX*/
+
+/* Bit fields for PRS CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_TRIGGER*/
+#define _PRS_CONSUMER_USART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+#define PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_CLK */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_CLK */
+#define PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_CLK*/
+
+/* Bit fields for PRS CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_IR */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_IR */
+#define PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_IR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_IR*/
+
+/* Bit fields for PRS CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_RX */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_RX */
+#define PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_RX*/
+
+/* Bit fields for PRS CONSUMER_USART1_TRIGGER */
+#define _PRS_CONSUMER_USART1_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART1_TRIGGER*/
+#define _PRS_CONSUMER_USART1_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART1_TRIGGER */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART1_TRIGGER*/
+#define PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_USART1_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART1_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0 */
+#define PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1 */
+#define PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1*/
+
+/** @} End of group EFR32MG29_PRS_BitFields */
+/** @} End of group EFR32MG29_PRS */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_PRS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs_signals.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs_signals.h
new file mode 100644
index 000000000..656167142
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_prs_signals.h
@@ -0,0 +1,930 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 PRS register signal bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_PRS_SIGNALS_H
+#define EFR32MG29_PRS_SIGNALS_H
+
+/** Synchronous signal sources enumeration: */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000005UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000006UL)
+
+/** Synchronous signal sources enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_NONE (_PRS_SYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+
+/** Synchronous signals enumeration: */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+
+/** Synchronous signals enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+
+/** Synchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_SYNC_TIMER0_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_SYNC_TIMER0_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_SYNC_TIMER0_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_SYNC_TIMER0_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_SYNC_TIMER0_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_SYNC_TIMER1_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_SYNC_TIMER1_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_SYNC_TIMER1_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_SYNC_TIMER1_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_SYNC_TIMER1_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_SYNC_IADC0_SCAN_ENTRY_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_SYNC_IADC0_SCAN_TABLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_SYNC_IADC0_SINGLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_SYNC_TIMER2_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_SYNC_TIMER2_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_SYNC_TIMER2_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_SYNC_TIMER2_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_SYNC_TIMER2_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_SYNC_TIMER3_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_SYNC_TIMER3_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_SYNC_TIMER3_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_SYNC_TIMER3_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_SYNC_TIMER3_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_SYNC_TIMER4_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_SYNC_TIMER4_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_SYNC_TIMER4_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_SYNC_TIMER4_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_SYNC_TIMER4_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+
+/** Asynchronous signal sources enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (0x00000008UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC (0x00000009UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (0x0000000aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (0x0000000bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET (0x0000000cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (0x0000000dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (0x0000000eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (0x0000000fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC (0x00000010UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (0x00000011UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (0x00000012UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE (0x00000013UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (0x00000020UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 (0x00000021UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000022UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000023UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000024UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000025UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (0x00000026UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (0x00000027UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (0x00000028UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (0x00000029UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (0x0000002aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (0x0000002bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (0x0000002cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (0x0000002dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (0x0000002eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (0x0000002fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (0x00000030UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PDML (0x00000031UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PDM (0x00000032UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (0x00000033UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (0x00000034UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000035UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (0x00000036UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (0x00000037UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET (0x00000038UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO (0x00000039UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (0x0000003aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (0x0000003bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO (0x0000003cUL)
+
+/** Asynchronous signal sources enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (_PRS_ASYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC (_PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (_PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (_PRS_ASYNC_CH_CTRL_SOURCESEL_CORE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (_PRS_ASYNC_CH_CTRL_SOURCESEL_FRC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (_PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRS << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PDML (_PRS_ASYNC_CH_CTRL_SOURCESEL_PDML << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PDM (_PRS_ASYNC_CH_CTRL_SOURCESEL_PDM << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (_PRS_ASYNC_CH_CTRL_SOURCESEL_RACL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (_PRS_ASYNC_CH_CTRL_SOURCESEL_RAC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET (_PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC (_PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET (_PRS_ASYNC_CH_CTRL_SOURCESEL_SEATAMPDET << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO (_PRS_ASYNC_CH_CTRL_SOURCESEL_SEHFRCO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO (_PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE (_PRS_ASYNC_CH_CTRL_SOURCESEL_RFSENSE << 8)
+
+/** Asynchronous signals enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS (0x00000002UL)
+
+/** Asynchronous signals enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC (_PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 (_PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE (_PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET (_PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (_PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA (_PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS (_PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS << 0)
+
+/** Asynchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_ASYNC_USART0_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS)
+#define PRS_ASYNC_USART0_IRTX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX)
+#define PRS_ASYNC_USART0_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS)
+#define PRS_ASYNC_USART0_RXDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA)
+#define PRS_ASYNC_USART0_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX)
+#define PRS_ASYNC_USART0_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC)
+#define PRS_ASYNC_USART1_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1CS)
+#define PRS_ASYNC_USART1_IRTX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1IRTX)
+#define PRS_ASYNC_USART1_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1RTS)
+#define PRS_ASYNC_USART1_RXDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1RXDATA)
+#define PRS_ASYNC_USART1_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1TX)
+#define PRS_ASYNC_USART1_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_USART1 | PRS_ASYNC_CH_CTRL_SIGSEL_USART1TXC)
+#define PRS_ASYNC_TIMER0_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_ASYNC_TIMER0_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_ASYNC_TIMER0_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_ASYNC_TIMER0_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_ASYNC_TIMER0_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_ASYNC_TIMER1_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_ASYNC_TIMER1_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_ASYNC_TIMER1_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_ASYNC_TIMER1_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_ASYNC_TIMER1_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_ASYNC_IADC0_SCANENTRYDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_ASYNC_IADC0_SCANTABLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_ASYNC_IADC0_SINGLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_ASYNC_LETIMER0_CH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0)
+#define PRS_ASYNC_LETIMER0_CH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1)
+#define PRS_ASYNC_RTCC_CCV0 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV0)
+#define PRS_ASYNC_RTCC_CCV1 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV1)
+#define PRS_ASYNC_RTCC_CCV2 (PRS_ASYNC_CH_CTRL_SOURCESEL_RTCC | PRS_ASYNC_CH_CTRL_SIGSEL_RTCCCCV2)
+#define PRS_ASYNC_BURTC_COMP (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP)
+#define PRS_ASYNC_BURTC_OVERFLOW (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW)
+#define PRS_ASYNC_GPIO_PIN0 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0)
+#define PRS_ASYNC_GPIO_PIN1 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1)
+#define PRS_ASYNC_GPIO_PIN2 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2)
+#define PRS_ASYNC_GPIO_PIN3 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3)
+#define PRS_ASYNC_GPIO_PIN4 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4)
+#define PRS_ASYNC_GPIO_PIN5 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5)
+#define PRS_ASYNC_GPIO_PIN6 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6)
+#define PRS_ASYNC_GPIO_PIN7 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7)
+#define PRS_ASYNC_TIMER2_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_ASYNC_TIMER2_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_ASYNC_TIMER2_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_ASYNC_TIMER2_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_ASYNC_TIMER2_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_ASYNC_TIMER3_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_ASYNC_TIMER3_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_ASYNC_TIMER3_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_ASYNC_TIMER3_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_ASYNC_TIMER3_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_ASYNC_CORE_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0)
+#define PRS_ASYNC_CORE_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1)
+#define PRS_ASYNC_CORE_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2)
+#define PRS_ASYNC_CORE_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3)
+#define PRS_ASYNC_CMUL_CLKOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0)
+#define PRS_ASYNC_CMUL_CLKOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1)
+#define PRS_ASYNC_CMUL_CLKOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2)
+#define PRS_ASYNC_AGCL_CCA (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA)
+#define PRS_ASYNC_AGCL_CCAREQ (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ)
+#define PRS_ASYNC_AGCL_GAINADJUST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST)
+#define PRS_ASYNC_AGCL_GAINOK (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK)
+#define PRS_ASYNC_AGCL_GAINREDUCED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED)
+#define PRS_ASYNC_AGCL_IFPKI1 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1)
+#define PRS_ASYNC_AGCL_IFPKQ2 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2)
+#define PRS_ASYNC_AGCL_IFPKRST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST)
+#define PRS_ASYNC_AGC_PEAKDET (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET)
+#define PRS_ASYNC_AGC_PROPAGATED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED)
+#define PRS_ASYNC_AGC_RSSIDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE)
+#define PRS_ASYNC_BUFC_THR0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0)
+#define PRS_ASYNC_BUFC_THR1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1)
+#define PRS_ASYNC_BUFC_THR2 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2)
+#define PRS_ASYNC_BUFC_THR3 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3)
+#define PRS_ASYNC_BUFC_CNT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0)
+#define PRS_ASYNC_BUFC_CNT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1)
+#define PRS_ASYNC_BUFC_FULL (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL)
+#define PRS_ASYNC_MODEML_ADVANCE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE)
+#define PRS_ASYNC_MODEML_ANT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0)
+#define PRS_ASYNC_MODEML_ANT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1)
+#define PRS_ASYNC_MODEML_COHDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET)
+#define PRS_ASYNC_MODEML_COHDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE)
+#define PRS_ASYNC_MODEML_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK)
+#define PRS_ASYNC_MODEML_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT)
+#define PRS_ASYNC_MODEML_FRAMEDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET)
+#define PRS_ASYNC_MODEM_FRAMESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT)
+#define PRS_ASYNC_MODEM_LOWCORR (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR)
+#define PRS_ASYNC_MODEM_LRDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET)
+#define PRS_ASYNC_MODEM_LRDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE)
+#define PRS_ASYNC_MODEM_NEWSYMBOL (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL)
+#define PRS_ASYNC_MODEM_NEWWND (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND)
+#define PRS_ASYNC_MODEM_POSTPONE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE)
+#define PRS_ASYNC_MODEM_PREDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET)
+#define PRS_ASYNC_MODEMH_PRESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT)
+#define PRS_ASYNC_MODEMH_RSSIJUMP (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP)
+#define PRS_ASYNC_MODEMH_SYNCSENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT)
+#define PRS_ASYNC_MODEMH_TIMDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET)
+#define PRS_ASYNC_MODEMH_WEAK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK)
+#define PRS_ASYNC_MODEMH_EOF (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF)
+#define PRS_ASYNC_FRC_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK)
+#define PRS_ASYNC_FRC_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT)
+#define PRS_ASYNC_PROTIMERL_BOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF)
+#define PRS_ASYNC_PROTIMERL_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0)
+#define PRS_ASYNC_PROTIMERL_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1)
+#define PRS_ASYNC_PROTIMERL_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2)
+#define PRS_ASYNC_PROTIMERL_CC3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3)
+#define PRS_ASYNC_PROTIMERL_CC4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4)
+#define PRS_ASYNC_PROTIMERL_LBTF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF)
+#define PRS_ASYNC_PROTIMERL_LBTR (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR)
+#define PRS_ASYNC_PROTIMER_LBTS (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS)
+#define PRS_ASYNC_PROTIMER_POF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF)
+#define PRS_ASYNC_PROTIMER_T0MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH)
+#define PRS_ASYNC_PROTIMER_T0UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF)
+#define PRS_ASYNC_PROTIMER_T1MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH)
+#define PRS_ASYNC_PROTIMER_T1UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF)
+#define PRS_ASYNC_PROTIMER_WOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF)
+#define PRS_ASYNC_SYNTH_MUX0 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0)
+#define PRS_ASYNC_SYNTH_MUX1 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1)
+#define PRS_ASYNC_PRORTC_CCV0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC | PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV0)
+#define PRS_ASYNC_PRORTC_CCV1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRORTC | PRS_ASYNC_CH_CTRL_SIGSEL_PRORTCCCV1)
+#define PRS_ASYNC_PRSL_ASYNCH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0)
+#define PRS_ASYNC_PRSL_ASYNCH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1)
+#define PRS_ASYNC_PRSL_ASYNCH2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2)
+#define PRS_ASYNC_PRSL_ASYNCH3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3)
+#define PRS_ASYNC_PRSL_ASYNCH4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4)
+#define PRS_ASYNC_PRSL_ASYNCH5 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5)
+#define PRS_ASYNC_PRSL_ASYNCH6 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6)
+#define PRS_ASYNC_PRSL_ASYNCH7 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7)
+#define PRS_ASYNC_PRS_ASYNCH8 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8)
+#define PRS_ASYNC_PRS_ASYNCH9 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9)
+#define PRS_ASYNC_PRS_ASYNCH10 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10)
+#define PRS_ASYNC_PRS_ASYNCH11 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11)
+#define PRS_ASYNC_PDML_PDMDSRPULSE (PRS_ASYNC_CH_CTRL_SOURCESEL_PDML | PRS_ASYNC_CH_CTRL_SIGSEL_PDMLPDMDSRPULSE)
+#define PRS_ASYNC_RACL_ACTIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE)
+#define PRS_ASYNC_RACL_LNAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN)
+#define PRS_ASYNC_RACL_PAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN)
+#define PRS_ASYNC_RACL_RX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX)
+#define PRS_ASYNC_RACL_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX)
+#define PRS_ASYNC_RACL_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0)
+#define PRS_ASYNC_RACL_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1)
+#define PRS_ASYNC_RACL_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2)
+#define PRS_ASYNC_RAC_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3)
+#define PRS_ASYNC_RAC_AUXADCDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA)
+#define PRS_ASYNC_RAC_AUXADCDATAVALID (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID)
+#define PRS_ASYNC_TIMER4_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_ASYNC_TIMER4_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_ASYNC_TIMER4_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_ASYNC_TIMER4_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_ASYNC_TIMER4_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+#define PRS_ASYNC_ETAMPDET_TAMPERSRCETAMPDET (PRS_ASYNC_CH_CTRL_SOURCESEL_ETAMPDET | PRS_ASYNC_CH_CTRL_SIGSEL_ETAMPDETTAMPERSRCETAMPDET)
+#define PRS_ASYNC_ACMP0_OUT (PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 | PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT)
+#define PRS_ASYNC_EUSART0L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS)
+#define PRS_ASYNC_EUSART0L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX)
+#define PRS_ASYNC_EUSART0L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS)
+#define PRS_ASYNC_EUSART0L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV)
+#define PRS_ASYNC_EUSART0L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX)
+#define PRS_ASYNC_EUSART0L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC)
+#define PRS_ASYNC_EUSART0L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL)
+#define PRS_ASYNC_EUSART0L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL)
+#define PRS_ASYNC_DCDC_MONO70NSANA (PRS_ASYNC_CH_CTRL_SOURCESEL_DCDC | PRS_ASYNC_CH_CTRL_SIGSEL_DCDCMONO70NSANA)
+#define PRS_ASYNC_EUSART1L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS)
+#define PRS_ASYNC_EUSART1L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX)
+#define PRS_ASYNC_EUSART1L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS)
+#define PRS_ASYNC_EUSART1L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV)
+#define PRS_ASYNC_EUSART1L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL)
+#define PRS_ASYNC_EUSART1L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX)
+#define PRS_ASYNC_EUSART1L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC)
+#define PRS_ASYNC_EUSART1L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL)
+#define PRS_ASYNC_LFRCO_CALMEAS (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOCALMEAS)
+#define PRS_ASYNC_LFRCO_SDM (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOSDM)
+#define PRS_ASYNC_LFRCO_TCMEAS (PRS_ASYNC_CH_CTRL_SOURCESEL_LFRCO | PRS_ASYNC_CH_CTRL_SIGSEL_LFRCOTCMEAS)
+
+/**
+ * Asynchronous signals and sources combined and aligned with register bit fields
+ * without the '_ASYNCH_' infix in order for backward compatibility:
+ */
+#define PRS_USART0_CS (PRS_ASYNC_USART0_CS)
+#define PRS_USART0_IRTX (PRS_ASYNC_USART0_IRTX)
+#define PRS_USART0_RTS (PRS_ASYNC_USART0_RTS)
+#define PRS_USART0_RXDATA (PRS_ASYNC_USART0_RXDATA)
+#define PRS_USART0_TX (PRS_ASYNC_USART0_TX)
+#define PRS_USART0_TXC (PRS_ASYNC_USART0_TXC)
+#define PRS_USART1_CS (PRS_ASYNC_USART1_CS)
+#define PRS_USART1_IRTX (PRS_ASYNC_USART1_IRTX)
+#define PRS_USART1_RTS (PRS_ASYNC_USART1_RTS)
+#define PRS_USART1_RXDATA (PRS_ASYNC_USART1_RXDATA)
+#define PRS_USART1_TX (PRS_ASYNC_USART1_TX)
+#define PRS_USART1_TXC (PRS_ASYNC_USART1_TXC)
+#define PRS_TIMER0_UF (PRS_ASYNC_TIMER0_UF)
+#define PRS_TIMER0_OF (PRS_ASYNC_TIMER0_OF)
+#define PRS_TIMER0_CC0 (PRS_ASYNC_TIMER0_CC0)
+#define PRS_TIMER0_CC1 (PRS_ASYNC_TIMER0_CC1)
+#define PRS_TIMER0_CC2 (PRS_ASYNC_TIMER0_CC2)
+#define PRS_TIMER1_UF (PRS_ASYNC_TIMER1_UF)
+#define PRS_TIMER1_OF (PRS_ASYNC_TIMER1_OF)
+#define PRS_TIMER1_CC0 (PRS_ASYNC_TIMER1_CC0)
+#define PRS_TIMER1_CC1 (PRS_ASYNC_TIMER1_CC1)
+#define PRS_TIMER1_CC2 (PRS_ASYNC_TIMER1_CC2)
+#define PRS_IADC0_SCANENTRYDONE (PRS_ASYNC_IADC0_SCANENTRYDONE)
+#define PRS_IADC0_SCANTABLEDONE (PRS_ASYNC_IADC0_SCANTABLEDONE)
+#define PRS_IADC0_SINGLEDONE (PRS_ASYNC_IADC0_SINGLEDONE)
+#define PRS_LETIMER0_CH0 (PRS_ASYNC_LETIMER0_CH0)
+#define PRS_LETIMER0_CH1 (PRS_ASYNC_LETIMER0_CH1)
+#define PRS_RTCC_CCV0 (PRS_ASYNC_RTCC_CCV0)
+#define PRS_RTCC_CCV1 (PRS_ASYNC_RTCC_CCV1)
+#define PRS_RTCC_CCV2 (PRS_ASYNC_RTCC_CCV2)
+#define PRS_BURTC_COMP (PRS_ASYNC_BURTC_COMP)
+#define PRS_BURTC_OVERFLOW (PRS_ASYNC_BURTC_OVERFLOW)
+#define PRS_GPIO_PIN0 (PRS_ASYNC_GPIO_PIN0)
+#define PRS_GPIO_PIN1 (PRS_ASYNC_GPIO_PIN1)
+#define PRS_GPIO_PIN2 (PRS_ASYNC_GPIO_PIN2)
+#define PRS_GPIO_PIN3 (PRS_ASYNC_GPIO_PIN3)
+#define PRS_GPIO_PIN4 (PRS_ASYNC_GPIO_PIN4)
+#define PRS_GPIO_PIN5 (PRS_ASYNC_GPIO_PIN5)
+#define PRS_GPIO_PIN6 (PRS_ASYNC_GPIO_PIN6)
+#define PRS_GPIO_PIN7 (PRS_ASYNC_GPIO_PIN7)
+#define PRS_TIMER2_UF (PRS_ASYNC_TIMER2_UF)
+#define PRS_TIMER2_OF (PRS_ASYNC_TIMER2_OF)
+#define PRS_TIMER2_CC0 (PRS_ASYNC_TIMER2_CC0)
+#define PRS_TIMER2_CC1 (PRS_ASYNC_TIMER2_CC1)
+#define PRS_TIMER2_CC2 (PRS_ASYNC_TIMER2_CC2)
+#define PRS_TIMER3_UF (PRS_ASYNC_TIMER3_UF)
+#define PRS_TIMER3_OF (PRS_ASYNC_TIMER3_OF)
+#define PRS_TIMER3_CC0 (PRS_ASYNC_TIMER3_CC0)
+#define PRS_TIMER3_CC1 (PRS_ASYNC_TIMER3_CC1)
+#define PRS_TIMER3_CC2 (PRS_ASYNC_TIMER3_CC2)
+#define PRS_CORE_CTIOUT0 (PRS_ASYNC_CORE_CTIOUT0)
+#define PRS_CORE_CTIOUT1 (PRS_ASYNC_CORE_CTIOUT1)
+#define PRS_CORE_CTIOUT2 (PRS_ASYNC_CORE_CTIOUT2)
+#define PRS_CORE_CTIOUT3 (PRS_ASYNC_CORE_CTIOUT3)
+#define PRS_CMUL_CLKOUT0 (PRS_ASYNC_CMUL_CLKOUT0)
+#define PRS_CMUL_CLKOUT1 (PRS_ASYNC_CMUL_CLKOUT1)
+#define PRS_CMUL_CLKOUT2 (PRS_ASYNC_CMUL_CLKOUT2)
+#define PRS_AGCL_CCA (PRS_ASYNC_AGCL_CCA)
+#define PRS_AGCL_CCAREQ (PRS_ASYNC_AGCL_CCAREQ)
+#define PRS_AGCL_GAINADJUST (PRS_ASYNC_AGCL_GAINADJUST)
+#define PRS_AGCL_GAINOK (PRS_ASYNC_AGCL_GAINOK)
+#define PRS_AGCL_GAINREDUCED (PRS_ASYNC_AGCL_GAINREDUCED)
+#define PRS_AGCL_IFPKI1 (PRS_ASYNC_AGCL_IFPKI1)
+#define PRS_AGCL_IFPKQ2 (PRS_ASYNC_AGCL_IFPKQ2)
+#define PRS_AGCL_IFPKRST (PRS_ASYNC_AGCL_IFPKRST)
+#define PRS_AGC_PEAKDET (PRS_ASYNC_AGC_PEAKDET)
+#define PRS_AGC_PROPAGATED (PRS_ASYNC_AGC_PROPAGATED)
+#define PRS_AGC_RSSIDONE (PRS_ASYNC_AGC_RSSIDONE)
+#define PRS_BUFC_THR0 (PRS_ASYNC_BUFC_THR0)
+#define PRS_BUFC_THR1 (PRS_ASYNC_BUFC_THR1)
+#define PRS_BUFC_THR2 (PRS_ASYNC_BUFC_THR2)
+#define PRS_BUFC_THR3 (PRS_ASYNC_BUFC_THR3)
+#define PRS_BUFC_CNT0 (PRS_ASYNC_BUFC_CNT0)
+#define PRS_BUFC_CNT1 (PRS_ASYNC_BUFC_CNT1)
+#define PRS_BUFC_FULL (PRS_ASYNC_BUFC_FULL)
+#define PRS_MODEML_ADVANCE (PRS_ASYNC_MODEML_ADVANCE)
+#define PRS_MODEML_ANT0 (PRS_ASYNC_MODEML_ANT0)
+#define PRS_MODEML_ANT1 (PRS_ASYNC_MODEML_ANT1)
+#define PRS_MODEML_COHDSADET (PRS_ASYNC_MODEML_COHDSADET)
+#define PRS_MODEML_COHDSALIVE (PRS_ASYNC_MODEML_COHDSALIVE)
+#define PRS_MODEML_DCLK (PRS_ASYNC_MODEML_DCLK)
+#define PRS_MODEML_DOUT (PRS_ASYNC_MODEML_DOUT)
+#define PRS_MODEML_FRAMEDET (PRS_ASYNC_MODEML_FRAMEDET)
+#define PRS_MODEM_FRAMESENT (PRS_ASYNC_MODEM_FRAMESENT)
+#define PRS_MODEM_LOWCORR (PRS_ASYNC_MODEM_LOWCORR)
+#define PRS_MODEM_LRDSADET (PRS_ASYNC_MODEM_LRDSADET)
+#define PRS_MODEM_LRDSALIVE (PRS_ASYNC_MODEM_LRDSALIVE)
+#define PRS_MODEM_NEWSYMBOL (PRS_ASYNC_MODEM_NEWSYMBOL)
+#define PRS_MODEM_NEWWND (PRS_ASYNC_MODEM_NEWWND)
+#define PRS_MODEM_POSTPONE (PRS_ASYNC_MODEM_POSTPONE)
+#define PRS_MODEM_PREDET (PRS_ASYNC_MODEM_PREDET)
+#define PRS_MODEMH_PRESENT (PRS_ASYNC_MODEMH_PRESENT)
+#define PRS_MODEMH_RSSIJUMP (PRS_ASYNC_MODEMH_RSSIJUMP)
+#define PRS_MODEMH_SYNCSENT (PRS_ASYNC_MODEMH_SYNCSENT)
+#define PRS_MODEMH_TIMDET (PRS_ASYNC_MODEMH_TIMDET)
+#define PRS_MODEMH_WEAK (PRS_ASYNC_MODEMH_WEAK)
+#define PRS_MODEMH_EOF (PRS_ASYNC_MODEMH_EOF)
+#define PRS_FRC_DCLK (PRS_ASYNC_FRC_DCLK)
+#define PRS_FRC_DOUT (PRS_ASYNC_FRC_DOUT)
+#define PRS_PROTIMERL_BOF (PRS_ASYNC_PROTIMERL_BOF)
+#define PRS_PROTIMERL_CC0 (PRS_ASYNC_PROTIMERL_CC0)
+#define PRS_PROTIMERL_CC1 (PRS_ASYNC_PROTIMERL_CC1)
+#define PRS_PROTIMERL_CC2 (PRS_ASYNC_PROTIMERL_CC2)
+#define PRS_PROTIMERL_CC3 (PRS_ASYNC_PROTIMERL_CC3)
+#define PRS_PROTIMERL_CC4 (PRS_ASYNC_PROTIMERL_CC4)
+#define PRS_PROTIMERL_LBTF (PRS_ASYNC_PROTIMERL_LBTF)
+#define PRS_PROTIMERL_LBTR (PRS_ASYNC_PROTIMERL_LBTR)
+#define PRS_PROTIMER_LBTS (PRS_ASYNC_PROTIMER_LBTS)
+#define PRS_PROTIMER_POF (PRS_ASYNC_PROTIMER_POF)
+#define PRS_PROTIMER_T0MATCH (PRS_ASYNC_PROTIMER_T0MATCH)
+#define PRS_PROTIMER_T0UF (PRS_ASYNC_PROTIMER_T0UF)
+#define PRS_PROTIMER_T1MATCH (PRS_ASYNC_PROTIMER_T1MATCH)
+#define PRS_PROTIMER_T1UF (PRS_ASYNC_PROTIMER_T1UF)
+#define PRS_PROTIMER_WOF (PRS_ASYNC_PROTIMER_WOF)
+#define PRS_SYNTH_MUX0 (PRS_ASYNC_SYNTH_MUX0)
+#define PRS_SYNTH_MUX1 (PRS_ASYNC_SYNTH_MUX1)
+#define PRS_PRORTC_CCV0 (PRS_ASYNC_PRORTC_CCV0)
+#define PRS_PRORTC_CCV1 (PRS_ASYNC_PRORTC_CCV1)
+#define PRS_PRSL_ASYNCH0 (PRS_ASYNC_PRSL_ASYNCH0)
+#define PRS_PRSL_ASYNCH1 (PRS_ASYNC_PRSL_ASYNCH1)
+#define PRS_PRSL_ASYNCH2 (PRS_ASYNC_PRSL_ASYNCH2)
+#define PRS_PRSL_ASYNCH3 (PRS_ASYNC_PRSL_ASYNCH3)
+#define PRS_PRSL_ASYNCH4 (PRS_ASYNC_PRSL_ASYNCH4)
+#define PRS_PRSL_ASYNCH5 (PRS_ASYNC_PRSL_ASYNCH5)
+#define PRS_PRSL_ASYNCH6 (PRS_ASYNC_PRSL_ASYNCH6)
+#define PRS_PRSL_ASYNCH7 (PRS_ASYNC_PRSL_ASYNCH7)
+#define PRS_PRS_ASYNCH8 (PRS_ASYNC_PRS_ASYNCH8)
+#define PRS_PRS_ASYNCH9 (PRS_ASYNC_PRS_ASYNCH9)
+#define PRS_PRS_ASYNCH10 (PRS_ASYNC_PRS_ASYNCH10)
+#define PRS_PRS_ASYNCH11 (PRS_ASYNC_PRS_ASYNCH11)
+#define PRS_PDML_PDMDSRPULSE (PRS_ASYNC_PDML_PDMDSRPULSE)
+#define PRS_RACL_ACTIVE (PRS_ASYNC_RACL_ACTIVE)
+#define PRS_RACL_LNAEN (PRS_ASYNC_RACL_LNAEN)
+#define PRS_RACL_PAEN (PRS_ASYNC_RACL_PAEN)
+#define PRS_RACL_RX (PRS_ASYNC_RACL_RX)
+#define PRS_RACL_TX (PRS_ASYNC_RACL_TX)
+#define PRS_RACL_CTIOUT0 (PRS_ASYNC_RACL_CTIOUT0)
+#define PRS_RACL_CTIOUT1 (PRS_ASYNC_RACL_CTIOUT1)
+#define PRS_RACL_CTIOUT2 (PRS_ASYNC_RACL_CTIOUT2)
+#define PRS_RAC_CTIOUT3 (PRS_ASYNC_RAC_CTIOUT3)
+#define PRS_RAC_AUXADCDATA (PRS_ASYNC_RAC_AUXADCDATA)
+#define PRS_RAC_AUXADCDATAVALID (PRS_ASYNC_RAC_AUXADCDATAVALID)
+#define PRS_TIMER4_UF (PRS_ASYNC_TIMER4_UF)
+#define PRS_TIMER4_OF (PRS_ASYNC_TIMER4_OF)
+#define PRS_TIMER4_CC0 (PRS_ASYNC_TIMER4_CC0)
+#define PRS_TIMER4_CC1 (PRS_ASYNC_TIMER4_CC1)
+#define PRS_TIMER4_CC2 (PRS_ASYNC_TIMER4_CC2)
+#define PRS_ETAMPDET_TAMPERSRCETAMPDET (PRS_ASYNC_ETAMPDET_TAMPERSRCETAMPDET)
+#define PRS_ACMP0_OUT (PRS_ASYNC_ACMP0_OUT)
+#define PRS_EUSART0L_CS (PRS_ASYNC_EUSART0L_CS)
+#define PRS_EUSART0L_IRDATX (PRS_ASYNC_EUSART0L_IRDATX)
+#define PRS_EUSART0L_RTS (PRS_ASYNC_EUSART0L_RTS)
+#define PRS_EUSART0L_RXDATAV (PRS_ASYNC_EUSART0L_RXDATAV)
+#define PRS_EUSART0L_TX (PRS_ASYNC_EUSART0L_TX)
+#define PRS_EUSART0L_TXC (PRS_ASYNC_EUSART0L_TXC)
+#define PRS_EUSART0L_RXFL (PRS_ASYNC_EUSART0L_RXFL)
+#define PRS_EUSART0L_TXFL (PRS_ASYNC_EUSART0L_TXFL)
+#define PRS_DCDC_MONO70NSANA (PRS_ASYNC_DCDC_MONO70NSANA)
+#define PRS_EUSART1L_CS (PRS_ASYNC_EUSART1L_CS)
+#define PRS_EUSART1L_IRDATX (PRS_ASYNC_EUSART1L_IRDATX)
+#define PRS_EUSART1L_RTS (PRS_ASYNC_EUSART1L_RTS)
+#define PRS_EUSART1L_RXDATAV (PRS_ASYNC_EUSART1L_RXDATAV)
+#define PRS_EUSART1L_RXFL (PRS_ASYNC_EUSART1L_RXFL)
+#define PRS_EUSART1L_TX (PRS_ASYNC_EUSART1L_TX)
+#define PRS_EUSART1L_TXC (PRS_ASYNC_EUSART1L_TXC)
+#define PRS_EUSART1L_TXFL (PRS_ASYNC_EUSART1L_TXFL)
+#define PRS_LFRCO_CALMEAS (PRS_ASYNC_LFRCO_CALMEAS)
+#define PRS_LFRCO_SDM (PRS_ASYNC_LFRCO_SDM)
+#define PRS_LFRCO_TCMEAS (PRS_ASYNC_LFRCO_TCMEAS)
+
+#endif // EFR32MG29_PRS_SIGNALS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_rtcc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_rtcc.h
new file mode 100644
index 000000000..ce19257f6
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_rtcc.h
@@ -0,0 +1,422 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 RTCC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_RTCC_H
+#define EFR32MG29_RTCC_H
+#define RTCC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_RTCC RTCC
+ * @{
+ * @brief EFR32MG29 RTCC Register Declaration.
+ *****************************************************************************/
+
+/** RTCC CC Register Group Declaration. */
+typedef struct rtcc_cc_typedef{
+ __IOM uint32_t CTRL; /**< CC Channel Control Register */
+ __IOM uint32_t OCVALUE; /**< Output Compare Value Register */
+ __IM uint32_t ICVALUE; /**< Input Capture Value Register */
+} RTCC_CC_TypeDef;
+
+/** RTCC Register Declaration. */
+typedef struct rtcc_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status register */
+ __IOM uint32_t IF; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IM uint32_t COMBCNT; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED0[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status register */
+ __IOM uint32_t IF_SET; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_SET; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_SET; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_SET[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED1[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status register */
+ __IOM uint32_t IF_CLR; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_CLR; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_CLR; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_CLR[3U]; /**< Capture/Compare Channel */
+ uint32_t RESERVED2[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status register */
+ __IOM uint32_t IF_TGL; /**< RTCC Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_TGL; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IM uint32_t COMBCNT_TGL; /**< Combined Pre-Counter and Counter Valu... */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ RTCC_CC_TypeDef CC_TGL[3U]; /**< Capture/Compare Channel */
+} RTCC_TypeDef;
+/** @} End of group EFR32MG29_RTCC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_RTCC
+ * @{
+ * @defgroup EFR32MG29_RTCC_BitFields RTCC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for RTCC IPVERSION */
+#define _RTCC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_IPVERSION */
+#define _RTCC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for RTCC_IPVERSION */
+#define RTCC_IPVERSION_IPVERSION_DEFAULT (_RTCC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IPVERSION */
+
+/* Bit fields for RTCC EN */
+#define _RTCC_EN_RESETVALUE 0x00000000UL /**< Default value for RTCC_EN */
+#define _RTCC_EN_MASK 0x00000001UL /**< Mask for RTCC_EN */
+#define RTCC_EN_EN (0x1UL << 0) /**< RTCC Enable */
+#define _RTCC_EN_EN_SHIFT 0 /**< Shift value for RTCC_EN */
+#define _RTCC_EN_EN_MASK 0x1UL /**< Bit mask for RTCC_EN */
+#define _RTCC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_EN */
+#define RTCC_EN_EN_DEFAULT (_RTCC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_EN */
+
+/* Bit fields for RTCC CFG */
+#define _RTCC_CFG_RESETVALUE 0x00000000UL /**< Default value for RTCC_CFG */
+#define _RTCC_CFG_MASK 0x000000FFUL /**< Mask for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _RTCC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for RTCC_DEBUGRUN */
+#define _RTCC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for RTCC_DEBUGRUN */
+#define _RTCC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_DEBUGRUN_X0 0x00000000UL /**< Mode X0 for RTCC_CFG */
+#define _RTCC_CFG_DEBUGRUN_X1 0x00000001UL /**< Mode X1 for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_DEFAULT (_RTCC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_X0 (_RTCC_CFG_DEBUGRUN_X0 << 0) /**< Shifted mode X0 for RTCC_CFG */
+#define RTCC_CFG_DEBUGRUN_X1 (_RTCC_CFG_DEBUGRUN_X1 << 0) /**< Shifted mode X1 for RTCC_CFG */
+#define RTCC_CFG_PRECNTCCV0TOP (0x1UL << 1) /**< Pre-counter CCV0 top value enable. */
+#define _RTCC_CFG_PRECNTCCV0TOP_SHIFT 1 /**< Shift value for RTCC_PRECNTCCV0TOP */
+#define _RTCC_CFG_PRECNTCCV0TOP_MASK 0x2UL /**< Bit mask for RTCC_PRECNTCCV0TOP */
+#define _RTCC_CFG_PRECNTCCV0TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_PRECNTCCV0TOP_DEFAULT (_RTCC_CFG_PRECNTCCV0TOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTCCV1TOP (0x1UL << 2) /**< CCV1 top value enable */
+#define _RTCC_CFG_CNTCCV1TOP_SHIFT 2 /**< Shift value for RTCC_CNTCCV1TOP */
+#define _RTCC_CFG_CNTCCV1TOP_MASK 0x4UL /**< Bit mask for RTCC_CNTCCV1TOP */
+#define _RTCC_CFG_CNTCCV1TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTCCV1TOP_DEFAULT (_RTCC_CFG_CNTCCV1TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTTICK (0x1UL << 3) /**< Counter prescaler mode. */
+#define _RTCC_CFG_CNTTICK_SHIFT 3 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_CFG_CNTTICK_MASK 0x8UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_CFG_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_CNTTICK_PRESC 0x00000000UL /**< Mode PRESC for RTCC_CFG */
+#define _RTCC_CFG_CNTTICK_CCV0MATCH 0x00000001UL /**< Mode CCV0MATCH for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_DEFAULT (_RTCC_CFG_CNTTICK_DEFAULT << 3) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_PRESC (_RTCC_CFG_CNTTICK_PRESC << 3) /**< Shifted mode PRESC for RTCC_CFG */
+#define RTCC_CFG_CNTTICK_CCV0MATCH (_RTCC_CFG_CNTTICK_CCV0MATCH << 3) /**< Shifted mode CCV0MATCH for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_SHIFT 4 /**< Shift value for RTCC_CNTPRESC */
+#define _RTCC_CFG_CNTPRESC_MASK 0xF0UL /**< Bit mask for RTCC_CNTPRESC */
+#define _RTCC_CFG_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV512 0x00000009UL /**< Mode DIV512 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV1024 0x0000000AUL /**< Mode DIV1024 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV2048 0x0000000BUL /**< Mode DIV2048 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV4096 0x0000000CUL /**< Mode DIV4096 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV8192 0x0000000DUL /**< Mode DIV8192 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV16384 0x0000000EUL /**< Mode DIV16384 for RTCC_CFG */
+#define _RTCC_CFG_CNTPRESC_DIV32768 0x0000000FUL /**< Mode DIV32768 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DEFAULT (_RTCC_CFG_CNTPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV1 (_RTCC_CFG_CNTPRESC_DIV1 << 4) /**< Shifted mode DIV1 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV2 (_RTCC_CFG_CNTPRESC_DIV2 << 4) /**< Shifted mode DIV2 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV4 (_RTCC_CFG_CNTPRESC_DIV4 << 4) /**< Shifted mode DIV4 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV8 (_RTCC_CFG_CNTPRESC_DIV8 << 4) /**< Shifted mode DIV8 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV16 (_RTCC_CFG_CNTPRESC_DIV16 << 4) /**< Shifted mode DIV16 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV32 (_RTCC_CFG_CNTPRESC_DIV32 << 4) /**< Shifted mode DIV32 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV64 (_RTCC_CFG_CNTPRESC_DIV64 << 4) /**< Shifted mode DIV64 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV128 (_RTCC_CFG_CNTPRESC_DIV128 << 4) /**< Shifted mode DIV128 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV256 (_RTCC_CFG_CNTPRESC_DIV256 << 4) /**< Shifted mode DIV256 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV512 (_RTCC_CFG_CNTPRESC_DIV512 << 4) /**< Shifted mode DIV512 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV1024 (_RTCC_CFG_CNTPRESC_DIV1024 << 4) /**< Shifted mode DIV1024 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV2048 (_RTCC_CFG_CNTPRESC_DIV2048 << 4) /**< Shifted mode DIV2048 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV4096 (_RTCC_CFG_CNTPRESC_DIV4096 << 4) /**< Shifted mode DIV4096 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV8192 (_RTCC_CFG_CNTPRESC_DIV8192 << 4) /**< Shifted mode DIV8192 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV16384 (_RTCC_CFG_CNTPRESC_DIV16384 << 4) /**< Shifted mode DIV16384 for RTCC_CFG */
+#define RTCC_CFG_CNTPRESC_DIV32768 (_RTCC_CFG_CNTPRESC_DIV32768 << 4) /**< Shifted mode DIV32768 for RTCC_CFG */
+
+/* Bit fields for RTCC CMD */
+#define _RTCC_CMD_RESETVALUE 0x00000000UL /**< Default value for RTCC_CMD */
+#define _RTCC_CMD_MASK 0x00000003UL /**< Mask for RTCC_CMD */
+#define RTCC_CMD_START (0x1UL << 0) /**< Start RTCC main counter */
+#define _RTCC_CMD_START_SHIFT 0 /**< Shift value for RTCC_START */
+#define _RTCC_CMD_START_MASK 0x1UL /**< Bit mask for RTCC_START */
+#define _RTCC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_START_DEFAULT (_RTCC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_STOP (0x1UL << 1) /**< Stop RTCC main counter */
+#define _RTCC_CMD_STOP_SHIFT 1 /**< Shift value for RTCC_STOP */
+#define _RTCC_CMD_STOP_MASK 0x2UL /**< Bit mask for RTCC_STOP */
+#define _RTCC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CMD */
+#define RTCC_CMD_STOP_DEFAULT (_RTCC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_CMD */
+
+/* Bit fields for RTCC STATUS */
+#define _RTCC_STATUS_RESETVALUE 0x00000000UL /**< Default value for RTCC_STATUS */
+#define _RTCC_STATUS_MASK 0x00000003UL /**< Mask for RTCC_STATUS */
+#define RTCC_STATUS_RUNNING (0x1UL << 0) /**< RTCC running status */
+#define _RTCC_STATUS_RUNNING_SHIFT 0 /**< Shift value for RTCC_RUNNING */
+#define _RTCC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for RTCC_RUNNING */
+#define _RTCC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RUNNING_DEFAULT (_RTCC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS (0x1UL << 1) /**< Lock Status */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_SHIFT 1 /**< Shift value for RTCC_RTCCLOCKSTATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_MASK 0x2UL /**< Bit mask for RTCC_RTCCLOCKSTATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_STATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for RTCC_STATUS */
+#define _RTCC_STATUS_RTCCLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT (_RTCC_STATUS_RTCCLOCKSTATUS_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED (_RTCC_STATUS_RTCCLOCKSTATUS_UNLOCKED << 1) /**< Shifted mode UNLOCKED for RTCC_STATUS */
+#define RTCC_STATUS_RTCCLOCKSTATUS_LOCKED (_RTCC_STATUS_RTCCLOCKSTATUS_LOCKED << 1) /**< Shifted mode LOCKED for RTCC_STATUS */
+
+/* Bit fields for RTCC IF */
+#define _RTCC_IF_RESETVALUE 0x00000000UL /**< Default value for RTCC_IF */
+#define _RTCC_IF_MASK 0x000003FFUL /**< Mask for RTCC_IF */
+#define RTCC_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _RTCC_IF_OF_SHIFT 0 /**< Shift value for RTCC_OF */
+#define _RTCC_IF_OF_MASK 0x1UL /**< Bit mask for RTCC_OF */
+#define _RTCC_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_OF_DEFAULT (_RTCC_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CNTTICK (0x1UL << 1) /**< Main counter tick */
+#define _RTCC_IF_CNTTICK_SHIFT 1 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_IF_CNTTICK_MASK 0x2UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_IF_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CNTTICK_DEFAULT (_RTCC_IF_CNTTICK_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC0 (0x1UL << 4) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC0_SHIFT 4 /**< Shift value for RTCC_CC0 */
+#define _RTCC_IF_CC0_MASK 0x10UL /**< Bit mask for RTCC_CC0 */
+#define _RTCC_IF_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC0_DEFAULT (_RTCC_IF_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC1 (0x1UL << 6) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC1_SHIFT 6 /**< Shift value for RTCC_CC1 */
+#define _RTCC_IF_CC1_MASK 0x40UL /**< Bit mask for RTCC_CC1 */
+#define _RTCC_IF_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC1_DEFAULT (_RTCC_IF_CC1_DEFAULT << 6) /**< Shifted mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC2 (0x1UL << 8) /**< CC Channel n Interrupt Flag */
+#define _RTCC_IF_CC2_SHIFT 8 /**< Shift value for RTCC_CC2 */
+#define _RTCC_IF_CC2_MASK 0x100UL /**< Bit mask for RTCC_CC2 */
+#define _RTCC_IF_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IF */
+#define RTCC_IF_CC2_DEFAULT (_RTCC_IF_CC2_DEFAULT << 8) /**< Shifted mode DEFAULT for RTCC_IF */
+
+/* Bit fields for RTCC IEN */
+#define _RTCC_IEN_RESETVALUE 0x00000000UL /**< Default value for RTCC_IEN */
+#define _RTCC_IEN_MASK 0x000003FFUL /**< Mask for RTCC_IEN */
+#define RTCC_IEN_OF (0x1UL << 0) /**< OF Interrupt Enable */
+#define _RTCC_IEN_OF_SHIFT 0 /**< Shift value for RTCC_OF */
+#define _RTCC_IEN_OF_MASK 0x1UL /**< Bit mask for RTCC_OF */
+#define _RTCC_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_OF_DEFAULT (_RTCC_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CNTTICK (0x1UL << 1) /**< CNTTICK Interrupt Enable */
+#define _RTCC_IEN_CNTTICK_SHIFT 1 /**< Shift value for RTCC_CNTTICK */
+#define _RTCC_IEN_CNTTICK_MASK 0x2UL /**< Bit mask for RTCC_CNTTICK */
+#define _RTCC_IEN_CNTTICK_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CNTTICK_DEFAULT (_RTCC_IEN_CNTTICK_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC0 (0x1UL << 4) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC0_SHIFT 4 /**< Shift value for RTCC_CC0 */
+#define _RTCC_IEN_CC0_MASK 0x10UL /**< Bit mask for RTCC_CC0 */
+#define _RTCC_IEN_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC0_DEFAULT (_RTCC_IEN_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC1 (0x1UL << 6) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC1_SHIFT 6 /**< Shift value for RTCC_CC1 */
+#define _RTCC_IEN_CC1_MASK 0x40UL /**< Bit mask for RTCC_CC1 */
+#define _RTCC_IEN_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC1_DEFAULT (_RTCC_IEN_CC1_DEFAULT << 6) /**< Shifted mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC2 (0x1UL << 8) /**< CC Channel n Interrupt Enable */
+#define _RTCC_IEN_CC2_SHIFT 8 /**< Shift value for RTCC_CC2 */
+#define _RTCC_IEN_CC2_MASK 0x100UL /**< Bit mask for RTCC_CC2 */
+#define _RTCC_IEN_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_IEN */
+#define RTCC_IEN_CC2_DEFAULT (_RTCC_IEN_CC2_DEFAULT << 8) /**< Shifted mode DEFAULT for RTCC_IEN */
+
+/* Bit fields for RTCC PRECNT */
+#define _RTCC_PRECNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_PRECNT */
+#define _RTCC_PRECNT_MASK 0x00007FFFUL /**< Mask for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_SHIFT 0 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_PRECNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_PRECNT */
+#define RTCC_PRECNT_PRECNT_DEFAULT (_RTCC_PRECNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_PRECNT */
+
+/* Bit fields for RTCC CNT */
+#define _RTCC_CNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_CNT */
+#define _RTCC_CNT_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CNT */
+#define _RTCC_CNT_CNT_SHIFT 0 /**< Shift value for RTCC_CNT */
+#define _RTCC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_CNT */
+#define _RTCC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CNT */
+#define RTCC_CNT_CNT_DEFAULT (_RTCC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CNT */
+
+/* Bit fields for RTCC COMBCNT */
+#define _RTCC_COMBCNT_RESETVALUE 0x00000000UL /**< Default value for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_MASK 0xFFFFFFFFUL /**< Mask for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_PRECNT_SHIFT 0 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_COMBCNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_COMBCNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_COMBCNT */
+#define RTCC_COMBCNT_PRECNT_DEFAULT (_RTCC_COMBCNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_COMBCNT */
+#define _RTCC_COMBCNT_CNTLSB_SHIFT 15 /**< Shift value for RTCC_CNTLSB */
+#define _RTCC_COMBCNT_CNTLSB_MASK 0xFFFF8000UL /**< Bit mask for RTCC_CNTLSB */
+#define _RTCC_COMBCNT_CNTLSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_COMBCNT */
+#define RTCC_COMBCNT_CNTLSB_DEFAULT (_RTCC_COMBCNT_CNTLSB_DEFAULT << 15) /**< Shifted mode DEFAULT for RTCC_COMBCNT */
+
+/* Bit fields for RTCC SYNCBUSY */
+#define _RTCC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for RTCC_SYNCBUSY */
+#define _RTCC_SYNCBUSY_MASK 0x0000000FUL /**< Mask for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START */
+#define _RTCC_SYNCBUSY_START_SHIFT 0 /**< Shift value for RTCC_START */
+#define _RTCC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for RTCC_START */
+#define _RTCC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_START_DEFAULT (_RTCC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP */
+#define _RTCC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for RTCC_STOP */
+#define _RTCC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for RTCC_STOP */
+#define _RTCC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_STOP_DEFAULT (_RTCC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_PRECNT (0x1UL << 2) /**< Sync busy for PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_SHIFT 2 /**< Shift value for RTCC_PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_MASK 0x4UL /**< Bit mask for RTCC_PRECNT */
+#define _RTCC_SYNCBUSY_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_PRECNT_DEFAULT (_RTCC_SYNCBUSY_PRECNT_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_CNT (0x1UL << 3) /**< Sync busy for CNT */
+#define _RTCC_SYNCBUSY_CNT_SHIFT 3 /**< Shift value for RTCC_CNT */
+#define _RTCC_SYNCBUSY_CNT_MASK 0x8UL /**< Bit mask for RTCC_CNT */
+#define _RTCC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_SYNCBUSY */
+#define RTCC_SYNCBUSY_CNT_DEFAULT (_RTCC_SYNCBUSY_CNT_DEFAULT << 3) /**< Shifted mode DEFAULT for RTCC_SYNCBUSY */
+
+/* Bit fields for RTCC LOCK */
+#define _RTCC_LOCK_RESETVALUE 0x00000000UL /**< Default value for RTCC_LOCK */
+#define _RTCC_LOCK_MASK 0x0000FFFFUL /**< Mask for RTCC_LOCK */
+#define _RTCC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for RTCC_LOCKKEY */
+#define _RTCC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for RTCC_LOCKKEY */
+#define _RTCC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_LOCK */
+#define _RTCC_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for RTCC_LOCK */
+#define RTCC_LOCK_LOCKKEY_DEFAULT (_RTCC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_LOCK */
+#define RTCC_LOCK_LOCKKEY_UNLOCK (_RTCC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for RTCC_LOCK */
+
+/* Bit fields for RTCC CC_CTRL */
+#define _RTCC_CC_CTRL_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MASK 0x000000FFUL /**< Mask for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_SHIFT 0 /**< Shift value for RTCC_MODE */
+#define _RTCC_CC_CTRL_MODE_MASK 0x3UL /**< Bit mask for RTCC_MODE */
+#define _RTCC_CC_CTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_OFF 0x00000000UL /**< Mode OFF for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_INPUTCAPTURE 0x00000001UL /**< Mode INPUTCAPTURE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_MODE_OUTPUTCOMPARE 0x00000002UL /**< Mode OUTPUTCOMPARE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_DEFAULT (_RTCC_CC_CTRL_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_OFF (_RTCC_CC_CTRL_MODE_OFF << 0) /**< Shifted mode OFF for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_INPUTCAPTURE (_RTCC_CC_CTRL_MODE_INPUTCAPTURE << 0) /**< Shifted mode INPUTCAPTURE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_MODE_OUTPUTCOMPARE (_RTCC_CC_CTRL_MODE_OUTPUTCOMPARE << 0) /**< Shifted mode OUTPUTCOMPARE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_SHIFT 2 /**< Shift value for RTCC_CMOA */
+#define _RTCC_CC_CTRL_CMOA_MASK 0xCUL /**< Bit mask for RTCC_CMOA */
+#define _RTCC_CC_CTRL_CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_PULSE 0x00000000UL /**< Mode PULSE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_CLEAR 0x00000002UL /**< Mode CLEAR for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_CMOA_SET 0x00000003UL /**< Mode SET for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_DEFAULT (_RTCC_CC_CTRL_CMOA_DEFAULT << 2) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_PULSE (_RTCC_CC_CTRL_CMOA_PULSE << 2) /**< Shifted mode PULSE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_TOGGLE (_RTCC_CC_CTRL_CMOA_TOGGLE << 2) /**< Shifted mode TOGGLE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_CLEAR (_RTCC_CC_CTRL_CMOA_CLEAR << 2) /**< Shifted mode CLEAR for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_CMOA_SET (_RTCC_CC_CTRL_CMOA_SET << 2) /**< Shifted mode SET for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE (0x1UL << 4) /**< Capture compare channel comparison base. */
+#define _RTCC_CC_CTRL_COMPBASE_SHIFT 4 /**< Shift value for RTCC_COMPBASE */
+#define _RTCC_CC_CTRL_COMPBASE_MASK 0x10UL /**< Bit mask for RTCC_COMPBASE */
+#define _RTCC_CC_CTRL_COMPBASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_COMPBASE_CNT 0x00000000UL /**< Mode CNT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_COMPBASE_PRECNT 0x00000001UL /**< Mode PRECNT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_DEFAULT (_RTCC_CC_CTRL_COMPBASE_DEFAULT << 4) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_CNT (_RTCC_CC_CTRL_COMPBASE_CNT << 4) /**< Shifted mode CNT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_COMPBASE_PRECNT (_RTCC_CC_CTRL_COMPBASE_PRECNT << 4) /**< Shifted mode PRECNT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_SHIFT 5 /**< Shift value for RTCC_ICEDGE */
+#define _RTCC_CC_CTRL_ICEDGE_MASK 0x60UL /**< Bit mask for RTCC_ICEDGE */
+#define _RTCC_CC_CTRL_ICEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_RISING 0x00000000UL /**< Mode RISING for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_FALLING 0x00000001UL /**< Mode FALLING for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_BOTH 0x00000002UL /**< Mode BOTH for RTCC_CC_CTRL */
+#define _RTCC_CC_CTRL_ICEDGE_NONE 0x00000003UL /**< Mode NONE for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_DEFAULT (_RTCC_CC_CTRL_ICEDGE_DEFAULT << 5) /**< Shifted mode DEFAULT for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_RISING (_RTCC_CC_CTRL_ICEDGE_RISING << 5) /**< Shifted mode RISING for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_FALLING (_RTCC_CC_CTRL_ICEDGE_FALLING << 5) /**< Shifted mode FALLING for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_BOTH (_RTCC_CC_CTRL_ICEDGE_BOTH << 5) /**< Shifted mode BOTH for RTCC_CC_CTRL */
+#define RTCC_CC_CTRL_ICEDGE_NONE (_RTCC_CC_CTRL_ICEDGE_NONE << 5) /**< Shifted mode NONE for RTCC_CC_CTRL */
+
+/* Bit fields for RTCC CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CC_OCVALUE */
+#define _RTCC_CC_OCVALUE_OC_SHIFT 0 /**< Shift value for RTCC_OC */
+#define _RTCC_CC_OCVALUE_OC_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_OC */
+#define _RTCC_CC_OCVALUE_OC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_OCVALUE */
+#define RTCC_CC_OCVALUE_OC_DEFAULT (_RTCC_CC_OCVALUE_OC_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_OCVALUE */
+
+/* Bit fields for RTCC CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_RESETVALUE 0x00000000UL /**< Default value for RTCC_CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_MASK 0xFFFFFFFFUL /**< Mask for RTCC_CC_ICVALUE */
+#define _RTCC_CC_ICVALUE_IC_SHIFT 0 /**< Shift value for RTCC_IC */
+#define _RTCC_CC_ICVALUE_IC_MASK 0xFFFFFFFFUL /**< Bit mask for RTCC_IC */
+#define _RTCC_CC_ICVALUE_IC_DEFAULT 0x00000000UL /**< Mode DEFAULT for RTCC_CC_ICVALUE */
+#define RTCC_CC_ICVALUE_IC_DEFAULT (_RTCC_CC_ICVALUE_IC_DEFAULT << 0) /**< Shifted mode DEFAULT for RTCC_CC_ICVALUE */
+
+/** @} End of group EFR32MG29_RTCC_BitFields */
+/** @} End of group EFR32MG29_RTCC */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_RTCC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_semailbox.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_semailbox.h
new file mode 100644
index 000000000..887770751
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_semailbox.h
@@ -0,0 +1,383 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 SEMAILBOX register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_SEMAILBOX_H
+#define EFR32MG29_SEMAILBOX_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SEMAILBOX_HOST SEMAILBOX_HOST
+ * @{
+ * @brief EFR32MG29 SEMAILBOX_HOST Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_HOST Register Declaration. */
+typedef struct semailbox_host_typedef{
+ __IOM uint32_t FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t TX_STATUS; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t RX_STATUS; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t TX_PROT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t RX_PROT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t TX_HEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t RX_HEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t CONFIGURATION; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_HOST_TypeDef;
+/** @} End of group EFR32MG29_SEMAILBOX_HOST */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SEMAILBOX_HOST
+ * @{
+ * @defgroup EFR32MG29_SEMAILBOX_HOST_BitFields SEMAILBOX_HOST Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX FIFO */
+#define _SEMAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_FIFO */
+#define SEMAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_FIFO */
+
+/* Bit fields for SEMAILBOX TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define _SEMAILBOX_TX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXINT_DEFAULT (_SEMAILBOX_TX_STATUS_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXFULL_DEFAULT (_SEMAILBOX_TX_STATUS_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXERROR_DEFAULT (_SEMAILBOX_TX_STATUS_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+
+/* Bit fields for SEMAILBOX RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define _SEMAILBOX_RX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXINT_DEFAULT (_SEMAILBOX_RX_STATUS_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT (_SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXHDR_DEFAULT (_SEMAILBOX_RX_STATUS_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXERROR_DEFAULT (_SEMAILBOX_RX_STATUS_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+
+/* Bit fields for SEMAILBOX TX_PROT */
+#define _SEMAILBOX_TX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_TX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_USER_DEFAULT (_SEMAILBOX_TX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+
+/* Bit fields for SEMAILBOX RX_PROT */
+#define _SEMAILBOX_RX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_RX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_USER_DEFAULT (_SEMAILBOX_RX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+
+/* Bit fields for SEMAILBOX TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_HEADER */
+#define SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT (_SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_HEADER*/
+
+/* Bit fields for SEMAILBOX RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_HEADER */
+#define SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT (_SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_HEADER*/
+
+/* Bit fields for SEMAILBOX CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_MASK 0x00000003UL /**< Mask for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+#define SEMAILBOX_CONFIGURATION_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+
+/** @} End of group EFR32MG29_SEMAILBOX_HOST_BitFields */
+/** @} End of group EFR32MG29_SEMAILBOX_HOST */
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SEMAILBOX_APBSE SEMAILBOX_APBSE
+ * @{
+ * @brief EFR32MG29 SEMAILBOX_APBSE Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_APBSE Register Declaration. */
+typedef struct semailbox_apbse_typedef{
+ __IOM uint32_t SE_ESECURE_MAILBOX_FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXSTAT; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXSTAT; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXPROTECT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXPROTECT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t SE_ESECURE_MAILBOX_TXHEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXHEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t SE_ESECURE_MAILBOX_CONFIG; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_APBSE_TypeDef;
+/** @} End of group EFR32MG29_SEMAILBOX_APBSE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SEMAILBOX_APBSE
+ * @{
+ * @defgroup EFR32MG29_SEMAILBOX_APBSE_BitFields SEMAILBOX_APBSE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_CONFIG */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_MASK 0x00000003UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+
+/** @} End of group EFR32MG29_SEMAILBOX_APBSE_BitFields */
+/** @} End of group EFR32MG29_SEMAILBOX_APBSE */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_SEMAILBOX_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_smu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_smu.h
new file mode 100644
index 000000000..131e35caa
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_smu.h
@@ -0,0 +1,1358 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 SMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_SMU_H
+#define EFR32MG29_SMU_H
+#define SMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SMU SMU
+ * @{
+ * @brief EFR32MG29 SMU Register Declaration.
+ *****************************************************************************/
+
+/** SMU Register Declaration. */
+typedef struct smu_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t LOCK; /**< Lock */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL; /**< M33 Control */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1; /**< PPU Secure Access 1 */
+ uint32_t RESERVED3[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS; /**< PPU Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED6[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR; /**< BMPU Fault Status Address */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1; /**< ESAU Region Types 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED9[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED10[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t LOCK_SET; /**< Lock */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_SET; /**< M33 Control */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_SET; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_SET; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED13[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_SET; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_SET; /**< PPU Secure Access 1 */
+ uint32_t RESERVED14[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_SET; /**< PPU Fault Status */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_SET; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED16[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_SET; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED17[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_SET; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_SET; /**< BMPU Fault Status Address */
+ uint32_t RESERVED18[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_SET; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_SET; /**< ESAU Region Types 1 */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_SET; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_SET; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_SET; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_SET; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED21[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t LOCK_CLR; /**< Lock */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_CLR; /**< M33 Control */
+ uint32_t RESERVED23[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_CLR; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_CLR; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED24[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_CLR; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_CLR; /**< PPU Secure Access 1 */
+ uint32_t RESERVED25[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_CLR; /**< PPU Fault Status */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_CLR; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED27[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_CLR; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED28[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_CLR; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_CLR; /**< BMPU Fault Status Address */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_CLR; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_CLR; /**< ESAU Region Types 1 */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_CLR; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_CLR; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED31[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_CLR; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_CLR; /**< ESAU Movable Region Boundary 5-6 */
+ uint32_t RESERVED32[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t LOCK_TGL; /**< Lock */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_TGL; /**< M33 Control */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_TGL; /**< PPU Privileged Access 0 */
+ __IOM uint32_t PPUPATD1_TGL; /**< PPU Privileged Access 1 */
+ uint32_t RESERVED35[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_TGL; /**< PPU Secure Access 0 */
+ __IOM uint32_t PPUSATD1_TGL; /**< PPU Secure Access 1 */
+ uint32_t RESERVED36[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_TGL; /**< PPU Fault Status */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_TGL; /**< BMPU Privileged Attribute 0 */
+ uint32_t RESERVED38[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_TGL; /**< BMPU Secure Attribute 0 */
+ uint32_t RESERVED39[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_TGL; /**< BMPU Fault Status */
+ __IM uint32_t BMPUFSADDR_TGL; /**< BMPU Fault Status Address */
+ uint32_t RESERVED40[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_TGL; /**< ESAU Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_TGL; /**< ESAU Region Types 1 */
+ uint32_t RESERVED41[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_TGL; /**< ESAU Movable Region Boundary 0-1 */
+ __IOM uint32_t ESAUMRB12_TGL; /**< ESAU Movable Region Boundary 1-2 */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_TGL; /**< ESAU Movable Region Boundary 4-5 */
+ __IOM uint32_t ESAUMRB56_TGL; /**< ESAU Movable Region Boundary 5-6 */
+} SMU_TypeDef;
+/** @} End of group EFR32MG29_SMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SMU
+ * @{
+ * @defgroup EFR32MG29_SMU_BitFields SMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU IPVERSION */
+#define _SMU_IPVERSION_RESETVALUE 0x00000009UL /**< Default value for SMU_IPVERSION */
+#define _SMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_DEFAULT 0x00000009UL /**< Mode DEFAULT for SMU_IPVERSION */
+#define SMU_IPVERSION_IPVERSION_DEFAULT (_SMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IPVERSION */
+
+/* Bit fields for SMU STATUS */
+#define _SMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_STATUS */
+#define _SMU_STATUS_MASK 0x00000003UL /**< Mask for SMU_STATUS */
+#define SMU_STATUS_SMULOCK (0x1UL << 0) /**< SMU Lock */
+#define _SMU_STATUS_SMULOCK_SHIFT 0 /**< Shift value for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_MASK 0x1UL /**< Bit mask for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_DEFAULT (_SMU_STATUS_SMULOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_UNLOCKED (_SMU_STATUS_SMULOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_LOCKED (_SMU_STATUS_SMULOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR (0x1UL << 1) /**< SMU Programming Error */
+#define _SMU_STATUS_SMUPRGERR_SHIFT 1 /**< Shift value for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_MASK 0x2UL /**< Bit mask for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR_DEFAULT (_SMU_STATUS_SMUPRGERR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_STATUS */
+
+/* Bit fields for SMU LOCK */
+#define _SMU_LOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_LOCK */
+#define _SMU_LOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_SHIFT 0 /**< Shift value for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_DEFAULT (_SMU_LOCK_SMULOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_UNLOCK (_SMU_LOCK_SMULOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_LOCK */
+
+/* Bit fields for SMU IF */
+#define _SMU_IF_RESETVALUE 0x00000000UL /**< Default value for SMU_IF */
+#define _SMU_IF_MASK 0x00030005UL /**< Mask for SMU_IF */
+#define SMU_IF_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Flag */
+#define _SMU_IF_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUPRIV_DEFAULT (_SMU_IF_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Flag */
+#define _SMU_IF_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IF_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IF_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST_DEFAULT (_SMU_IF_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Flag */
+#define _SMU_IF_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC_DEFAULT (_SMU_IF_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Flag */
+#define _SMU_IF_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC_DEFAULT (_SMU_IF_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IF */
+
+/* Bit fields for SMU IEN */
+#define _SMU_IEN_RESETVALUE 0x00000000UL /**< Default value for SMU_IEN */
+#define _SMU_IEN_MASK 0x00030005UL /**< Mask for SMU_IEN */
+#define SMU_IEN_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Enable */
+#define _SMU_IEN_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUPRIV_DEFAULT (_SMU_IEN_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Enable */
+#define _SMU_IEN_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST_DEFAULT (_SMU_IEN_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Enable */
+#define _SMU_IEN_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC_DEFAULT (_SMU_IEN_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Enable */
+#define _SMU_IEN_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC_DEFAULT (_SMU_IEN_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IEN */
+
+/* Bit fields for SMU M33CTRL */
+#define _SMU_M33CTRL_RESETVALUE 0x00000000UL /**< Default value for SMU_M33CTRL */
+#define _SMU_M33CTRL_MASK 0x0000001FUL /**< Mask for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR (0x1UL << 0) /**< LOCKSVTAIRCR control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_SHIFT 0 /**< Shift value for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_MASK 0x1UL /**< Bit mask for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT (_SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR (0x1UL << 1) /**< LOCKNSVTOR control of M33 CPU */
+#define _SMU_M33CTRL_LOCKNSVTOR_SHIFT 1 /**< Shift value for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_MASK 0x2UL /**< Bit mask for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR_DEFAULT (_SMU_M33CTRL_LOCKNSVTOR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU (0x1UL << 2) /**< LOCKSMPU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSMPU_SHIFT 2 /**< Shift value for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_MASK 0x4UL /**< Bit mask for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU_DEFAULT (_SMU_M33CTRL_LOCKSMPU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU (0x1UL << 3) /**< LOCKNSMPU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKNSMPU_SHIFT 3 /**< Shift value for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_MASK 0x8UL /**< Bit mask for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU_DEFAULT (_SMU_M33CTRL_LOCKNSMPU_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU (0x1UL << 4) /**< LOCKSAU control of M33 CPU */
+#define _SMU_M33CTRL_LOCKSAU_SHIFT 4 /**< Shift value for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_MASK 0x10UL /**< Bit mask for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU_DEFAULT (_SMU_M33CTRL_LOCKSAU_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+
+/* Bit fields for SMU PPUPATD0 */
+#define _SMU_PPUPATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUPATD0 */
+#define _SMU_PPUPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU_DEFAULT (_SMU_PPUPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU_DEFAULT (_SMU_PPUPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Privileged Access */
+#define _SMU_PPUPATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUPATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUPATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFXO0_DEFAULT (_SMU_PPUPATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUPATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0_DEFAULT (_SMU_PPUPATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO (0x1UL << 5) /**< FSRCO Privileged Access */
+#define _SMU_PPUPATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO_DEFAULT (_SMU_PPUPATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Privileged Access */
+#define _SMU_PPUPATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0_DEFAULT (_SMU_PPUPATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO (0x1UL << 7) /**< LFXO Privileged Access */
+#define _SMU_PPUPATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO_DEFAULT (_SMU_PPUPATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO (0x1UL << 8) /**< LFRCO Privileged Access */
+#define _SMU_PPUPATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO_DEFAULT (_SMU_PPUPATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Privileged Access */
+#define _SMU_PPUPATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO_DEFAULT (_SMU_PPUPATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC (0x1UL << 10) /**< MSC Privileged Access */
+#define _SMU_PPUPATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC_DEFAULT (_SMU_PPUPATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUPATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0_DEFAULT (_SMU_PPUPATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS (0x1UL << 12) /**< PRS Privileged Access */
+#define _SMU_PPUPATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS_DEFAULT (_SMU_PPUPATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO (0x1UL << 13) /**< GPIO Privileged Access */
+#define _SMU_PPUPATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO_DEFAULT (_SMU_PPUPATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA (0x1UL << 14) /**< LDMA Privileged Access */
+#define _SMU_PPUPATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA_DEFAULT (_SMU_PPUPATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUPATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR_DEFAULT (_SMU_PPUPATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Privileged Access */
+#define _SMU_PPUPATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0_DEFAULT (_SMU_PPUPATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Privileged Access */
+#define _SMU_PPUPATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1_DEFAULT (_SMU_PPUPATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Privileged Access */
+#define _SMU_PPUPATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2_DEFAULT (_SMU_PPUPATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Privileged Access */
+#define _SMU_PPUPATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3_DEFAULT (_SMU_PPUPATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Privileged Access */
+#define _SMU_PPUPATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4_DEFAULT (_SMU_PPUPATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0 (0x1UL << 21) /**< USART0 Privileged Access */
+#define _SMU_PPUPATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0_DEFAULT (_SMU_PPUPATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART1 (0x1UL << 22) /**< USART1 Privileged Access */
+#define _SMU_PPUPATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUPATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUPATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART1_DEFAULT (_SMU_PPUPATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC (0x1UL << 23) /**< BURTC Privileged Access */
+#define _SMU_PPUPATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC_DEFAULT (_SMU_PPUPATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1 (0x1UL << 24) /**< I2C1 Privileged Access */
+#define _SMU_PPUPATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1_DEFAULT (_SMU_PPUPATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Privileged Access */
+#define _SMU_PPUPATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG_DEFAULT (_SMU_PPUPATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM (0x1UL << 28) /**< BURAM Privileged Access */
+#define _SMU_PPUPATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM_DEFAULT (_SMU_PPUPATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Privileged Access */
+#define _SMU_PPUPATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUPATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUPATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_IFADCDEBUG_DEFAULT (_SMU_PPUPATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC (0x1UL << 30) /**< GPCRC Privileged Access */
+#define _SMU_PPUPATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC_DEFAULT (_SMU_PPUPATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC (0x1UL << 31) /**< DCDC Privileged Access */
+#define _SMU_PPUPATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC_DEFAULT (_SMU_PPUPATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+
+/* Bit fields for SMU PPUPATD1 */
+#define _SMU_PPUPATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUPATD1 */
+#define _SMU_PPUPATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PDM (0x1UL << 0) /**< PDM Privileged Access */
+#define _SMU_PPUPATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUPATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUPATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PDM_DEFAULT (_SMU_PPUPATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Privileged Access */
+#define _SMU_PPUPATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUPATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUPATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RFSENSE_DEFAULT (_SMU_PPUPATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Privileged Access */
+#define _SMU_PPUPATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUPATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUPATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ETAMPDET_DEFAULT (_SMU_PPUPATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM_DEFAULT (_SMU_PPUPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Privileged Access */
+#define _SMU_PPUPATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUPATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUPATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART1_DEFAULT (_SMU_PPUPATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Privileged Access */
+#define _SMU_PPUPATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES_DEFAULT (_SMU_PPUPATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU (0x1UL << 6) /**< SMU Privileged Access */
+#define _SMU_PPUPATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU_DEFAULT (_SMU_PPUPATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUPATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS_DEFAULT (_SMU_PPUPATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RTCC (0x1UL << 8) /**< RTCC Privileged Access */
+#define _SMU_PPUPATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUPATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUPATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RTCC_DEFAULT (_SMU_PPUPATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Privileged Access */
+#define _SMU_PPUPATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0_DEFAULT (_SMU_PPUPATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUPATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0_DEFAULT (_SMU_PPUPATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0 (0x1UL << 11) /**< IADC0 Privileged Access */
+#define _SMU_PPUPATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0_DEFAULT (_SMU_PPUPATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Privileged Access */
+#define _SMU_PPUPATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0_DEFAULT (_SMU_PPUPATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0 (0x1UL << 13) /**< I2C0 Privileged Access */
+#define _SMU_PPUPATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0_DEFAULT (_SMU_PPUPATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUPATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0_DEFAULT (_SMU_PPUPATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Privileged Access */
+#define _SMU_PPUPATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0_DEFAULT (_SMU_PPUPATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUPATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX_DEFAULT (_SMU_PPUPATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUPATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO_DEFAULT (_SMU_PPUPATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+
+/* Bit fields for SMU PPUSATD0 */
+#define _SMU_PPUSATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUSATD0 */
+#define _SMU_PPUSATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU (0x1UL << 1) /**< EMU Secure Access */
+#define _SMU_PPUSATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU_DEFAULT (_SMU_PPUSATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU (0x1UL << 2) /**< CMU Secure Access */
+#define _SMU_PPUSATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU_DEFAULT (_SMU_PPUSATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Secure Access */
+#define _SMU_PPUSATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUSATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUSATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFXO0_DEFAULT (_SMU_PPUSATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Secure Access */
+#define _SMU_PPUSATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0_DEFAULT (_SMU_PPUSATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO (0x1UL << 5) /**< FSRCO Secure Access */
+#define _SMU_PPUSATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO_DEFAULT (_SMU_PPUSATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Secure Access */
+#define _SMU_PPUSATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0_DEFAULT (_SMU_PPUSATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO (0x1UL << 7) /**< LFXO Secure Access */
+#define _SMU_PPUSATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO_DEFAULT (_SMU_PPUSATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO (0x1UL << 8) /**< LFRCO Secure Access */
+#define _SMU_PPUSATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO_DEFAULT (_SMU_PPUSATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Secure Access */
+#define _SMU_PPUSATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO_DEFAULT (_SMU_PPUSATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC (0x1UL << 10) /**< MSC Secure Access */
+#define _SMU_PPUSATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC_DEFAULT (_SMU_PPUSATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Secure Access */
+#define _SMU_PPUSATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0_DEFAULT (_SMU_PPUSATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS (0x1UL << 12) /**< PRS Secure Access */
+#define _SMU_PPUSATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS_DEFAULT (_SMU_PPUSATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO (0x1UL << 13) /**< GPIO Secure Access */
+#define _SMU_PPUSATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO_DEFAULT (_SMU_PPUSATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA (0x1UL << 14) /**< LDMA Secure Access */
+#define _SMU_PPUSATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA_DEFAULT (_SMU_PPUSATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Secure Access */
+#define _SMU_PPUSATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR_DEFAULT (_SMU_PPUSATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Secure Access */
+#define _SMU_PPUSATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0_DEFAULT (_SMU_PPUSATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Secure Access */
+#define _SMU_PPUSATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1_DEFAULT (_SMU_PPUSATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Secure Access */
+#define _SMU_PPUSATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2_DEFAULT (_SMU_PPUSATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Secure Access */
+#define _SMU_PPUSATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3_DEFAULT (_SMU_PPUSATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Secure Access */
+#define _SMU_PPUSATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4_DEFAULT (_SMU_PPUSATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0 (0x1UL << 21) /**< USART0 Secure Access */
+#define _SMU_PPUSATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0_DEFAULT (_SMU_PPUSATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART1 (0x1UL << 22) /**< USART1 Secure Access */
+#define _SMU_PPUSATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUSATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUSATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART1_DEFAULT (_SMU_PPUSATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC (0x1UL << 23) /**< BURTC Secure Access */
+#define _SMU_PPUSATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC_DEFAULT (_SMU_PPUSATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1 (0x1UL << 24) /**< I2C1 Secure Access */
+#define _SMU_PPUSATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1_DEFAULT (_SMU_PPUSATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Secure Access */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Secure Access */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Secure Access */
+#define _SMU_PPUSATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG_DEFAULT (_SMU_PPUSATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM (0x1UL << 28) /**< BURAM Secure Access */
+#define _SMU_PPUSATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM_DEFAULT (_SMU_PPUSATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Secure Access */
+#define _SMU_PPUSATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUSATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUSATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_IFADCDEBUG_DEFAULT (_SMU_PPUSATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC (0x1UL << 30) /**< GPCRC Secure Access */
+#define _SMU_PPUSATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC_DEFAULT (_SMU_PPUSATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC (0x1UL << 31) /**< DCDC Secure Access */
+#define _SMU_PPUSATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC_DEFAULT (_SMU_PPUSATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+
+/* Bit fields for SMU PPUSATD1 */
+#define _SMU_PPUSATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUSATD1 */
+#define _SMU_PPUSATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PDM (0x1UL << 0) /**< PDM Secure Access */
+#define _SMU_PPUSATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUSATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUSATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PDM_DEFAULT (_SMU_PPUSATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Secure Access */
+#define _SMU_PPUSATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUSATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUSATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RFSENSE_DEFAULT (_SMU_PPUSATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Secure Access */
+#define _SMU_PPUSATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUSATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUSATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ETAMPDET_DEFAULT (_SMU_PPUSATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM (0x1UL << 3) /**< DMEM Secure Access */
+#define _SMU_PPUSATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM_DEFAULT (_SMU_PPUSATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Secure Access */
+#define _SMU_PPUSATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUSATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUSATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART1_DEFAULT (_SMU_PPUSATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Secure Access */
+#define _SMU_PPUSATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES_DEFAULT (_SMU_PPUSATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU (0x1UL << 6) /**< SMU Secure Access */
+#define _SMU_PPUSATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU_DEFAULT (_SMU_PPUSATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Secure Access */
+#define _SMU_PPUSATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS_DEFAULT (_SMU_PPUSATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RTCC (0x1UL << 8) /**< RTCC Secure Access */
+#define _SMU_PPUSATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUSATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUSATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RTCC_DEFAULT (_SMU_PPUSATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Secure Access */
+#define _SMU_PPUSATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0_DEFAULT (_SMU_PPUSATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Secure Access */
+#define _SMU_PPUSATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0_DEFAULT (_SMU_PPUSATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0 (0x1UL << 11) /**< IADC0 Secure Access */
+#define _SMU_PPUSATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0_DEFAULT (_SMU_PPUSATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Secure Access */
+#define _SMU_PPUSATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0_DEFAULT (_SMU_PPUSATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0 (0x1UL << 13) /**< I2C0 Secure Access */
+#define _SMU_PPUSATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0_DEFAULT (_SMU_PPUSATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Secure Access */
+#define _SMU_PPUSATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0_DEFAULT (_SMU_PPUSATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Secure Access */
+#define _SMU_PPUSATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0_DEFAULT (_SMU_PPUSATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Secure Access */
+#define _SMU_PPUSATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX_DEFAULT (_SMU_PPUSATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Secure Access */
+#define _SMU_PPUSATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO_DEFAULT (_SMU_PPUSATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+
+/* Bit fields for SMU PPUFS */
+#define _SMU_PPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUFS */
+#define _SMU_PPUFS_MASK 0x000000FFUL /**< Mask for SMU_PPUFS */
+#define _SMU_PPUFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUFS */
+#define SMU_PPUFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUFS */
+
+/* Bit fields for SMU BMPUPATD0 */
+#define _SMU_BMPUPATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUPATD0 */
+#define _SMU_BMPUPATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES_DEFAULT (_SMU_BMPUPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Privileged Mode */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUPATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA (0x1UL << 3) /**< LDMA Privileged Mode */
+#define _SMU_BMPUPATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA_DEFAULT (_SMU_BMPUPATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Privileged Mode */
+#define _SMU_BMPUPATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUPATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+
+/* Bit fields for SMU BMPUSATD0 */
+#define _SMU_BMPUSATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUSATD0 */
+#define _SMU_BMPUSATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Secure Mode */
+#define _SMU_BMPUSATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES_DEFAULT (_SMU_BMPUSATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Secure Mode */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Secure Mode */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUSATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA (0x1UL << 3) /**< LDMA Secure Mode */
+#define _SMU_BMPUSATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA_DEFAULT (_SMU_BMPUSATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Secure Mode */
+#define _SMU_BMPUSATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA_DEFAULT (_SMU_BMPUSATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+
+/* Bit fields for SMU BMPUFS */
+#define _SMU_BMPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFS */
+#define _SMU_BMPUFS_MASK 0x000000FFUL /**< Mask for SMU_BMPUFS */
+#define _SMU_BMPUFS_BMPUFSMASTERID_SHIFT 0 /**< Shift value for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_MASK 0xFFUL /**< Bit mask for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFS */
+#define SMU_BMPUFS_BMPUFSMASTERID_DEFAULT (_SMU_BMPUFS_BMPUFSMASTERID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFS */
+
+/* Bit fields for SMU BMPUFSADDR */
+#define _SMU_BMPUFSADDR_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_SHIFT 0 /**< Shift value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFSADDR */
+#define SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT (_SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFSADDR */
+
+/* Bit fields for SMU ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS (0x1UL << 12) /**< Region 3 Non-Secure */
+#define _SMU_ESAURTYPES0_ESAUR3NS_SHIFT 12 /**< Shift value for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS_DEFAULT (_SMU_ESAURTYPES0_ESAUR3NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES0 */
+
+/* Bit fields for SMU ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS (0x1UL << 12) /**< Region 11 Non-Secure */
+#define _SMU_ESAURTYPES1_ESAUR11NS_SHIFT 12 /**< Shift value for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS_DEFAULT (_SMU_ESAURTYPES1_ESAUR11NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES1 */
+
+/* Bit fields for SMU ESAUMRB01 */
+#define _SMU_ESAUMRB01_RESETVALUE 0x0A000000UL /**< Default value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_SHIFT 12 /**< Shift value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_DEFAULT 0x0000A000UL /**< Mode DEFAULT for SMU_ESAUMRB01 */
+#define SMU_ESAUMRB01_ESAUMRB01_DEFAULT (_SMU_ESAUMRB01_ESAUMRB01_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB01 */
+
+/* Bit fields for SMU ESAUMRB12 */
+#define _SMU_ESAUMRB12_RESETVALUE 0x0C000000UL /**< Default value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_SHIFT 12 /**< Shift value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_DEFAULT 0x0000C000UL /**< Mode DEFAULT for SMU_ESAUMRB12 */
+#define SMU_ESAUMRB12_ESAUMRB12_DEFAULT (_SMU_ESAUMRB12_ESAUMRB12_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB12 */
+
+/* Bit fields for SMU ESAUMRB45 */
+#define _SMU_ESAUMRB45_RESETVALUE 0x02000000UL /**< Default value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_SHIFT 12 /**< Shift value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_DEFAULT 0x00002000UL /**< Mode DEFAULT for SMU_ESAUMRB45 */
+#define SMU_ESAUMRB45_ESAUMRB45_DEFAULT (_SMU_ESAUMRB45_ESAUMRB45_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB45 */
+
+/* Bit fields for SMU ESAUMRB56 */
+#define _SMU_ESAUMRB56_RESETVALUE 0x04000000UL /**< Default value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_SHIFT 12 /**< Shift value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_DEFAULT 0x00004000UL /**< Mode DEFAULT for SMU_ESAUMRB56 */
+#define SMU_ESAUMRB56_ESAUMRB56_DEFAULT (_SMU_ESAUMRB56_ESAUMRB56_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB56 */
+
+/** @} End of group EFR32MG29_SMU_BitFields */
+/** @} End of group EFR32MG29_SMU */
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SMU_CFGNS SMU_CFGNS
+ * @{
+ * @brief EFR32MG29 SMU_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SMU_CFGNS Register Declaration. */
+typedef struct smu_cfgns_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED3[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS; /**< Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED5[63U]; /**< Reserved for future use */
+ uint32_t RESERVED6[876U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_SET; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_SET; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_SET; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_SET; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED8[3U]; /**< Reserved for future use */
+ uint32_t RESERVED9[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_SET; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_SET; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED10[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_SET; /**< Fault Status */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_SET; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED12[63U]; /**< Reserved for future use */
+ uint32_t RESERVED13[876U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_CLR; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_CLR; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_CLR; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_CLR; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ uint32_t RESERVED16[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_CLR; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_CLR; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED17[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_CLR; /**< Fault Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_CLR; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED19[63U]; /**< Reserved for future use */
+ uint32_t RESERVED20[876U]; /**< Reserved for future use */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_TGL; /**< Non-Secure Status */
+ __IOM uint32_t NSLOCK_TGL; /**< Non-Secure Lock */
+ __IOM uint32_t NSIF_TGL; /**< Non-Secure Interrupt Flag */
+ __IOM uint32_t NSIEN_TGL; /**< Non-Secure Interrupt Enable */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ uint32_t RESERVED23[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_TGL; /**< PPU Non-Secure Privileged Access 0 */
+ __IOM uint32_t PPUNSPATD1_TGL; /**< PPU Non-Secure Privileged Access 1 */
+ uint32_t RESERVED24[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_TGL; /**< Fault Status */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_TGL; /**< BMPU Non-Secure Privileged Attribute 0 */
+ uint32_t RESERVED26[63U]; /**< Reserved for future use */
+} SMU_CFGNS_TypeDef;
+/** @} End of group EFR32MG29_SMU_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SMU_CFGNS
+ * @{
+ * @defgroup EFR32MG29_SMU_CFGNS_BitFields SMU_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU NSSTATUS */
+#define _SMU_NSSTATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_MASK 0x00000001UL /**< Mask for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK (0x1UL << 0) /**< SMUNS Lock Status */
+#define _SMU_NSSTATUS_SMUNSLOCK_SHIFT 0 /**< Shift value for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_MASK 0x1UL /**< Bit mask for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_DEFAULT (_SMU_NSSTATUS_SMUNSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_UNLOCKED (_SMU_NSSTATUS_SMUNSLOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_LOCKED (_SMU_NSSTATUS_SMUNSLOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_NSSTATUS */
+
+/* Bit fields for SMU NSLOCK */
+#define _SMU_NSLOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_NSLOCK */
+#define _SMU_NSLOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_SHIFT 0 /**< Shift value for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT (_SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK (_SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_NSLOCK */
+
+/* Bit fields for SMU NSIF */
+#define _SMU_NSIF_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIF */
+#define _SMU_NSIF_MASK 0x00000005UL /**< Mask for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Flag */
+#define _SMU_NSIF_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV_DEFAULT (_SMU_NSIF_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Flag */
+#define _SMU_NSIF_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST_DEFAULT (_SMU_NSIF_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIF */
+
+/* Bit fields for SMU NSIEN */
+#define _SMU_NSIEN_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIEN */
+#define _SMU_NSIEN_MASK 0x00000005UL /**< Mask for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Enable */
+#define _SMU_NSIEN_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV_DEFAULT (_SMU_NSIEN_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Enable */
+#define _SMU_NSIEN_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST_DEFAULT (_SMU_NSIEN_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIEN */
+
+/* Bit fields for SMU PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUNSPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU_DEFAULT (_SMU_PPUNSPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUNSPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU_DEFAULT (_SMU_PPUNSPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFXO0 (0x1UL << 3) /**< HFXO0 Privileged Access */
+#define _SMU_PPUNSPATD0_HFXO0_SHIFT 3 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUNSPATD0_HFXO0_MASK 0x8UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUNSPATD0_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFXO0_DEFAULT (_SMU_PPUNSPATD0_HFXO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0 (0x1UL << 4) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUNSPATD0_HFRCO0_SHIFT 4 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_MASK 0x10UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0_DEFAULT (_SMU_PPUNSPATD0_HFRCO0_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO (0x1UL << 5) /**< FSRCO Privileged Access */
+#define _SMU_PPUNSPATD0_FSRCO_SHIFT 5 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_MASK 0x20UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO_DEFAULT (_SMU_PPUNSPATD0_FSRCO_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0 (0x1UL << 6) /**< DPLL0 Privileged Access */
+#define _SMU_PPUNSPATD0_DPLL0_SHIFT 6 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_MASK 0x40UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0_DEFAULT (_SMU_PPUNSPATD0_DPLL0_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO (0x1UL << 7) /**< LFXO Privileged Access */
+#define _SMU_PPUNSPATD0_LFXO_SHIFT 7 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_MASK 0x80UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO_DEFAULT (_SMU_PPUNSPATD0_LFXO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO (0x1UL << 8) /**< LFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_LFRCO_SHIFT 8 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_MASK 0x100UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO_DEFAULT (_SMU_PPUNSPATD0_LFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO (0x1UL << 9) /**< ULFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_ULFRCO_SHIFT 9 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_MASK 0x200UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO_DEFAULT (_SMU_PPUNSPATD0_ULFRCO_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC (0x1UL << 10) /**< MSC Privileged Access */
+#define _SMU_PPUNSPATD0_MSC_SHIFT 10 /**< Shift value for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_MASK 0x400UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC_DEFAULT (_SMU_PPUNSPATD0_MSC_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0 (0x1UL << 11) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUNSPATD0_ICACHE0_SHIFT 11 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_MASK 0x800UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0_DEFAULT (_SMU_PPUNSPATD0_ICACHE0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS (0x1UL << 12) /**< PRS Privileged Access */
+#define _SMU_PPUNSPATD0_PRS_SHIFT 12 /**< Shift value for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_MASK 0x1000UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS_DEFAULT (_SMU_PPUNSPATD0_PRS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO (0x1UL << 13) /**< GPIO Privileged Access */
+#define _SMU_PPUNSPATD0_GPIO_SHIFT 13 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_MASK 0x2000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO_DEFAULT (_SMU_PPUNSPATD0_GPIO_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA (0x1UL << 14) /**< LDMA Privileged Access */
+#define _SMU_PPUNSPATD0_LDMA_SHIFT 14 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_MASK 0x4000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA_DEFAULT (_SMU_PPUNSPATD0_LDMA_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR (0x1UL << 15) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUNSPATD0_LDMAXBAR_SHIFT 15 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_MASK 0x8000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR_DEFAULT (_SMU_PPUNSPATD0_LDMAXBAR_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0 (0x1UL << 16) /**< TIMER0 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER0_SHIFT 16 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_MASK 0x10000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0_DEFAULT (_SMU_PPUNSPATD0_TIMER0_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1 (0x1UL << 17) /**< TIMER1 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER1_SHIFT 17 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_MASK 0x20000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1_DEFAULT (_SMU_PPUNSPATD0_TIMER1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2 (0x1UL << 18) /**< TIMER2 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER2_SHIFT 18 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_MASK 0x40000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2_DEFAULT (_SMU_PPUNSPATD0_TIMER2_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3 (0x1UL << 19) /**< TIMER3 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER3_SHIFT 19 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_MASK 0x80000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3_DEFAULT (_SMU_PPUNSPATD0_TIMER3_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4 (0x1UL << 20) /**< TIMER4 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER4_SHIFT 20 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_MASK 0x100000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4_DEFAULT (_SMU_PPUNSPATD0_TIMER4_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0 (0x1UL << 21) /**< USART0 Privileged Access */
+#define _SMU_PPUNSPATD0_USART0_SHIFT 21 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_MASK 0x200000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0_DEFAULT (_SMU_PPUNSPATD0_USART0_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART1 (0x1UL << 22) /**< USART1 Privileged Access */
+#define _SMU_PPUNSPATD0_USART1_SHIFT 22 /**< Shift value for SMU_USART1 */
+#define _SMU_PPUNSPATD0_USART1_MASK 0x400000UL /**< Bit mask for SMU_USART1 */
+#define _SMU_PPUNSPATD0_USART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART1_DEFAULT (_SMU_PPUNSPATD0_USART1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC (0x1UL << 23) /**< BURTC Privileged Access */
+#define _SMU_PPUNSPATD0_BURTC_SHIFT 23 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_MASK 0x800000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC_DEFAULT (_SMU_PPUNSPATD0_BURTC_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1 (0x1UL << 24) /**< I2C1 Privileged Access */
+#define _SMU_PPUNSPATD0_I2C1_SHIFT 24 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_MASK 0x1000000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1_DEFAULT (_SMU_PPUNSPATD0_I2C1_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL (0x1UL << 25) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_SHIFT 25 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_MASK 0x2000000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS (0x1UL << 26) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_SHIFT 26 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_MASK 0x4000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG (0x1UL << 27) /**< SYSCFG Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFG_SHIFT 27 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_MASK 0x8000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG_DEFAULT (_SMU_PPUNSPATD0_SYSCFG_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM (0x1UL << 28) /**< BURAM Privileged Access */
+#define _SMU_PPUNSPATD0_BURAM_SHIFT 28 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_MASK 0x10000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM_DEFAULT (_SMU_PPUNSPATD0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_IFADCDEBUG (0x1UL << 29) /**< IFADCDEBUG Privileged Access */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_SHIFT 29 /**< Shift value for SMU_IFADCDEBUG */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_MASK 0x20000000UL /**< Bit mask for SMU_IFADCDEBUG */
+#define _SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT (_SMU_PPUNSPATD0_IFADCDEBUG_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC (0x1UL << 30) /**< GPCRC Privileged Access */
+#define _SMU_PPUNSPATD0_GPCRC_SHIFT 30 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_MASK 0x40000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC_DEFAULT (_SMU_PPUNSPATD0_GPCRC_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC (0x1UL << 31) /**< DCDC Privileged Access */
+#define _SMU_PPUNSPATD0_DCDC_SHIFT 31 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_MASK 0x80000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC_DEFAULT (_SMU_PPUNSPATD0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+
+/* Bit fields for SMU PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_RESETVALUE 0x0003FFFFUL /**< Default value for SMU_PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_MASK 0x0003FFFFUL /**< Mask for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PDM (0x1UL << 0) /**< PDM Privileged Access */
+#define _SMU_PPUNSPATD1_PDM_SHIFT 0 /**< Shift value for SMU_PDM */
+#define _SMU_PPUNSPATD1_PDM_MASK 0x1UL /**< Bit mask for SMU_PDM */
+#define _SMU_PPUNSPATD1_PDM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PDM_DEFAULT (_SMU_PPUNSPATD1_PDM_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RFSENSE (0x1UL << 1) /**< RFSENSE Privileged Access */
+#define _SMU_PPUNSPATD1_RFSENSE_SHIFT 1 /**< Shift value for SMU_RFSENSE */
+#define _SMU_PPUNSPATD1_RFSENSE_MASK 0x2UL /**< Bit mask for SMU_RFSENSE */
+#define _SMU_PPUNSPATD1_RFSENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RFSENSE_DEFAULT (_SMU_PPUNSPATD1_RFSENSE_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ETAMPDET (0x1UL << 2) /**< ETAMPDET Privileged Access */
+#define _SMU_PPUNSPATD1_ETAMPDET_SHIFT 2 /**< Shift value for SMU_ETAMPDET */
+#define _SMU_PPUNSPATD1_ETAMPDET_MASK 0x4UL /**< Bit mask for SMU_ETAMPDET */
+#define _SMU_PPUNSPATD1_ETAMPDET_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ETAMPDET_DEFAULT (_SMU_PPUNSPATD1_ETAMPDET_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUNSPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM_DEFAULT (_SMU_PPUNSPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART1 (0x1UL << 4) /**< EUSART1 Privileged Access */
+#define _SMU_PPUNSPATD1_EUSART1_SHIFT 4 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUNSPATD1_EUSART1_MASK 0x10UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUNSPATD1_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART1_DEFAULT (_SMU_PPUNSPATD1_EUSART1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES (0x1UL << 5) /**< RADIOAES Privileged Access */
+#define _SMU_PPUNSPATD1_RADIOAES_SHIFT 5 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_MASK 0x20UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES_DEFAULT (_SMU_PPUNSPATD1_RADIOAES_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU (0x1UL << 6) /**< SMU Privileged Access */
+#define _SMU_PPUNSPATD1_SMU_SHIFT 6 /**< Shift value for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_MASK 0x40UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU_DEFAULT (_SMU_PPUNSPATD1_SMU_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS (0x1UL << 7) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUNSPATD1_SMUCFGNS_SHIFT 7 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_MASK 0x80UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS_DEFAULT (_SMU_PPUNSPATD1_SMUCFGNS_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RTCC (0x1UL << 8) /**< RTCC Privileged Access */
+#define _SMU_PPUNSPATD1_RTCC_SHIFT 8 /**< Shift value for SMU_RTCC */
+#define _SMU_PPUNSPATD1_RTCC_MASK 0x100UL /**< Bit mask for SMU_RTCC */
+#define _SMU_PPUNSPATD1_RTCC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RTCC_DEFAULT (_SMU_PPUNSPATD1_RTCC_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0 (0x1UL << 9) /**< WDOG0 Privileged Access */
+#define _SMU_PPUNSPATD1_WDOG0_SHIFT 9 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_MASK 0x200UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0_DEFAULT (_SMU_PPUNSPATD1_WDOG0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0 (0x1UL << 10) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUNSPATD1_LETIMER0_SHIFT 10 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_MASK 0x400UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0_DEFAULT (_SMU_PPUNSPATD1_LETIMER0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0 (0x1UL << 11) /**< IADC0 Privileged Access */
+#define _SMU_PPUNSPATD1_IADC0_SHIFT 11 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_MASK 0x800UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0_DEFAULT (_SMU_PPUNSPATD1_IADC0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0 (0x1UL << 12) /**< ACMP0 Privileged Access */
+#define _SMU_PPUNSPATD1_ACMP0_SHIFT 12 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_MASK 0x1000UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0_DEFAULT (_SMU_PPUNSPATD1_ACMP0_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0 (0x1UL << 13) /**< I2C0 Privileged Access */
+#define _SMU_PPUNSPATD1_I2C0_SHIFT 13 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_MASK 0x2000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0_DEFAULT (_SMU_PPUNSPATD1_I2C0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0 (0x1UL << 14) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUNSPATD1_AMUXCP0_SHIFT 14 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_MASK 0x4000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0_DEFAULT (_SMU_PPUNSPATD1_AMUXCP0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0 (0x1UL << 15) /**< EUSART0 Privileged Access */
+#define _SMU_PPUNSPATD1_EUSART0_SHIFT 15 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_MASK 0x8000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0_DEFAULT (_SMU_PPUNSPATD1_EUSART0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX (0x1UL << 16) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUNSPATD1_SEMAILBOX_SHIFT 16 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_MASK 0x10000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX_DEFAULT (_SMU_PPUNSPATD1_SEMAILBOX_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO (0x1UL << 17) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUNSPATD1_AHBRADIO_SHIFT 17 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_MASK 0x20000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO_DEFAULT (_SMU_PPUNSPATD1_AHBRADIO_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+
+/* Bit fields for SMU PPUNSFS */
+#define _SMU_PPUNSFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_MASK 0x000000FFUL /**< Mask for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSFS */
+#define SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSFS */
+
+/* Bit fields for SMU BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_RESETVALUE 0x0000001FUL /**< Default value for SMU_BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_MASK 0x0000001FUL /**< Mask for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES (0x1UL << 0) /**< RADIOAES Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES_DEFAULT (_SMU_BMPUNSPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIOSUBSYSTEM Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOIFADCDEBUG (0x1UL << 2) /**< RADIOIFADCDEBUG Privileged Mode */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_SHIFT 2 /**< Shift value for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_MASK 0x4UL /**< Bit mask for SMU_RADIOIFADCDEBUG */
+#define _SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT (_SMU_BMPUNSPATD0_RADIOIFADCDEBUG_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA (0x1UL << 3) /**< LDMA Privileged Mode */
+#define _SMU_BMPUNSPATD0_LDMA_SHIFT 3 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_MASK 0x8UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA_DEFAULT (_SMU_BMPUNSPATD0_LDMA_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA (0x1UL << 4) /**< SEEXTDMA Privileged Mode */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_SHIFT 4 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_MASK 0x10UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+
+/** @} End of group EFR32MG29_SMU_CFGNS_BitFields */
+/** @} End of group EFR32MG29_SMU_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_SMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_syscfg.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_syscfg.h
new file mode 100644
index 000000000..3a1a0cead
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_syscfg.h
@@ -0,0 +1,739 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 SYSCFG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_SYSCFG_H
+#define EFR32MG29_SYSCFG_H
+#define SYSCFG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SYSCFG SYSCFG
+ * @{
+ * @brief EFR32MG29 SYSCFG Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG Register Declaration. */
+typedef struct syscfg_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV; /**< Chip Revision */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC; /**< SysTick clock source */
+ uint32_t RESERVED2[55U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED6[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF; /**< RAM Bias Configuration */
+ uint32_t RESERVED7[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED10[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION; /**< SE SW Version */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_SET; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_SET; /**< Chip Revision */
+ uint32_t RESERVED14[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_SET; /**< SysTick clock source */
+ uint32_t RESERVED15[55U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_SET; /**< DMEM0 Retention Control */
+ uint32_t RESERVED19[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_SET; /**< RAM Bias Configuration */
+ uint32_t RESERVED20[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_SET; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_SET; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_SET; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_SET; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_SET; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_SET; /**< DMEM0 port remap selection */
+ uint32_t RESERVED23[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_SET; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_SET; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_SET; /**< SE SW Version */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_CLR; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_CLR; /**< Chip Revision */
+ uint32_t RESERVED27[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_CLR; /**< SysTick clock source */
+ uint32_t RESERVED28[55U]; /**< Reserved for future use */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ uint32_t RESERVED30[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_CLR; /**< DMEM0 Retention Control */
+ uint32_t RESERVED32[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_CLR; /**< RAM Bias Configuration */
+ uint32_t RESERVED33[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_CLR; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_CLR; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_CLR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_CLR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_CLR; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_CLR; /**< DMEM0 port remap selection */
+ uint32_t RESERVED36[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_CLR; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_CLR; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_CLR; /**< SE SW Version */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[635U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED39[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_TGL; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_TGL; /**< Chip Revision */
+ uint32_t RESERVED40[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_TGL; /**< SysTick clock source */
+ uint32_t RESERVED41[55U]; /**< Reserved for future use */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+ uint32_t RESERVED43[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ uint32_t RESERVED44[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_TGL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED45[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_TGL; /**< RAM Bias Configuration */
+ uint32_t RESERVED46[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_TGL; /**< RADIO SEQRAM Retention Control */
+ uint32_t RESERVED47[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_TGL; /**< RADIO SEQRAM ECC Control */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_TGL; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_TGL; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_TGL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_TGL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED49[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_TGL; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_TGL; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_TGL; /**< SE SW Version */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+} SYSCFG_TypeDef;
+/** @} End of group EFR32MG29_SYSCFG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SYSCFG
+ * @{
+ * @defgroup EFR32MG29_SYSCFG_BitFields SYSCFG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG IPVERSION */
+#define _SYSCFG_IPVERSION_RESETVALUE 0x0000000BUL /**< Default value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_DEFAULT 0x0000000BUL /**< Mode DEFAULT for SYSCFG_IPVERSION */
+#define SYSCFG_IPVERSION_IPVERSION_DEFAULT (_SYSCFG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IPVERSION */
+
+/* Bit fields for SYSCFG IF */
+#define _SYSCFG_IF_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IF */
+#define _SYSCFG_IF_MASK 0x33003F0FUL /**< Mask for SYSCFG_IF */
+#define SYSCFG_IF_SW0 (0x1UL << 0) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW0_DEFAULT (_SYSCFG_IF_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1 (0x1UL << 1) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1_DEFAULT (_SYSCFG_IF_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2 (0x1UL << 2) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2_DEFAULT (_SYSCFG_IF_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3 (0x1UL << 3) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3_DEFAULT (_SYSCFG_IF_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC (0x1UL << 8) /**< FPU Invalid Operation interrupt flag */
+#define _SYSCFG_IF_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC_DEFAULT (_SYSCFG_IF_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC (0x1UL << 9) /**< FPU Divide by zero interrupt flag */
+#define _SYSCFG_IF_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC_DEFAULT (_SYSCFG_IF_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC (0x1UL << 10) /**< FPU Underflow interrupt flag */
+#define _SYSCFG_IF_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC_DEFAULT (_SYSCFG_IF_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC (0x1UL << 11) /**< FPU Overflow interrupt flag */
+#define _SYSCFG_IF_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC_DEFAULT (_SYSCFG_IF_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC (0x1UL << 12) /**< FPU Input denormal interrupt flag */
+#define _SYSCFG_IF_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC_DEFAULT (_SYSCFG_IF_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC (0x1UL << 13) /**< FPU Inexact interrupt flag */
+#define _SYSCFG_IF_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC_DEFAULT (_SYSCFG_IF_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-Bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B_DEFAULT (_SYSCFG_IF_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-Bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B_DEFAULT (_SYSCFG_IF_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-Bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B_DEFAULT (_SYSCFG_IF_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-Bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B_DEFAULT (_SYSCFG_IF_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IF */
+
+/* Bit fields for SYSCFG IEN */
+#define _SYSCFG_IEN_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IEN */
+#define _SYSCFG_IEN_MASK 0x33003F0FUL /**< Mask for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0 (0x1UL << 0) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0_DEFAULT (_SYSCFG_IEN_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1 (0x1UL << 1) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1_DEFAULT (_SYSCFG_IEN_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2 (0x1UL << 2) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2_DEFAULT (_SYSCFG_IEN_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3 (0x1UL << 3) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3_DEFAULT (_SYSCFG_IEN_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC (0x1UL << 8) /**< FPU Invalid Operation Interrupt Enable */
+#define _SYSCFG_IEN_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC_DEFAULT (_SYSCFG_IEN_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC (0x1UL << 9) /**< FPU Divide by zero Interrupt Enable */
+#define _SYSCFG_IEN_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC_DEFAULT (_SYSCFG_IEN_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC (0x1UL << 10) /**< FPU Underflow Interrupt Enable */
+#define _SYSCFG_IEN_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC_DEFAULT (_SYSCFG_IEN_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC (0x1UL << 11) /**< FPU Overflow Interrupt Enable */
+#define _SYSCFG_IEN_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC_DEFAULT (_SYSCFG_IEN_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC (0x1UL << 12) /**< FPU Input denormal Interrupt Enable */
+#define _SYSCFG_IEN_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC_DEFAULT (_SYSCFG_IEN_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC (0x1UL << 13) /**< FPU Inexact Interrupt Enable */
+#define _SYSCFG_IEN_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC_DEFAULT (_SYSCFG_IEN_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B_DEFAULT (_SYSCFG_IEN_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B_DEFAULT (_SYSCFG_IEN_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B_DEFAULT (_SYSCFG_IEN_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B_DEFAULT (_SYSCFG_IEN_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+
+/* Bit fields for SYSCFG CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_RESETVALUE 0x00010014UL /**< Default value for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MASK 0xFF0FFFFFUL /**< Mask for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_SHIFT 0 /**< Shift value for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_MASK 0xFFFUL /**< Bit mask for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT 0x00000014UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT (_SYSCFG_CHIPREVHW_PARTNUMBER_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_MASK 0xF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MINOR_DEFAULT (_SYSCFG_CHIPREVHW_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MAJOR_SHIFT 16 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_MASK 0xF0000UL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MAJOR_DEFAULT (_SYSCFG_CHIPREVHW_MAJOR_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+
+/* Bit fields for SYSCFG CHIPREV */
+#define _SYSCFG_CHIPREV_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MASK 0x000FFFFFUL /**< Mask for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_PARTNUMBER_SHIFT 0 /**< Shift value for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREV_PARTNUMBER_MASK 0xFFFUL /**< Bit mask for SYSCFG_PARTNUMBER */
+#define _SYSCFG_CHIPREV_PARTNUMBER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_PARTNUMBER_DEFAULT (_SYSCFG_CHIPREV_PARTNUMBER_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_MASK 0xF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MINOR_DEFAULT (_SYSCFG_CHIPREV_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MAJOR_SHIFT 16 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_MASK 0xF0000UL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MAJOR_DEFAULT (_SYSCFG_CHIPREV_MAJOR_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+
+/* Bit fields for SYSCFG CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_MASK 0x00000001UL /**< Mask for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN (0x1UL << 0) /**< SysTick External Clock Enable */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_SHIFT 0 /**< Shift value for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_MASK 0x1UL /**< Bit mask for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT (_SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGSYSTIC */
+
+/* Bit fields for SYSCFG CTRL */
+#define _SYSCFG_CTRL_RESETVALUE 0x00000023UL /**< Default value for SYSCFG_CTRL */
+#define _SYSCFG_CTRL_MASK 0x00000023UL /**< Mask for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN (0x1UL << 0) /**< Invalid Address Bus Fault Response Enabl */
+#define _SYSCFG_CTRL_ADDRFAULTEN_SHIFT 0 /**< Shift value for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_MASK 0x1UL /**< Bit mask for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN_DEFAULT (_SYSCFG_CTRL_ADDRFAULTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN (0x1UL << 1) /**< Disabled Clkbus Bus Fault Enable */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_SHIFT 1 /**< Shift value for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_MASK 0x2UL /**< Bit mask for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT (_SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN (0x1UL << 5) /**< Two bit ECC error bus fault response ena */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_SHIFT 5 /**< Shift value for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_MASK 0x20UL /**< Bit mask for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT (_SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+
+/* Bit fields for SYSCFG DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_MASK 0x0000FFFFUL /**< Mask for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_MASK 0xFFFFUL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 0x00008000UL /**< Mode BLK15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 0x0000C000UL /**< Mode BLK14TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 0x0000E000UL /**< Mode BLK13TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 0x0000F000UL /**< Mode BLK12TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 0x0000F800UL /**< Mode BLK11TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 0x0000FC00UL /**< Mode BLK10TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 0x0000FE00UL /**< Mode BLK9TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 0x0000FF00UL /**< Mode BLK8TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 0x0000FF80UL /**< Mode BLK7TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 0x0000FFC0UL /**< Mode BLK6TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 0x0000FFE0UL /**< Mode BLK5TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 0x0000FFF0UL /**< Mode BLK4TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 0x0000FFF8UL /**< Mode BLK3TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 0x0000FFFCUL /**< Mode BLK2TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 0x0000FFFEUL /**< Mode BLK1TO15 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF 0x0000FFFFUL /**< Mode ALLOFF for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK15 << 0) /**< Shifted mode BLK15 for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK14TO15 << 0) /**< Shifted mode BLK14TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK13TO15 << 0) /**< Shifted mode BLK13TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK12TO15 << 0) /**< Shifted mode BLK12TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK11TO15 << 0) /**< Shifted mode BLK11TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK10TO15 << 0) /**< Shifted mode BLK10TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK9TO15 << 0) /**< Shifted mode BLK9TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK8TO15 << 0) /**< Shifted mode BLK8TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK7TO15 << 0) /**< Shifted mode BLK7TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK6TO15 << 0) /**< Shifted mode BLK6TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK5TO15 << 0) /**< Shifted mode BLK5TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK4TO15 << 0) /**< Shifted mode BLK4TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3TO15 << 0) /**< Shifted mode BLK3TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO15 << 0) /**< Shifted mode BLK2TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO15 << 0) /**< Shifted mode BLK1TO15 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_DMEM0RETNCTRL*/
+
+/* Bit fields for SYSCFG RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RESETVALUE 0x00000002UL /**< Default value for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_MASK 0x0000000FUL /**< Mask for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_MASK 0xFUL /**< Bit mask for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT 0x00000002UL /**< Mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_No 0x00000000UL /**< Mode No for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 0x00000001UL /**< Mode VSB100 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 0x00000002UL /**< Mode VSB200 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 0x00000004UL /**< Mode VSB300 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 0x00000008UL /**< Mode VSB400 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_No (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_No << 0) /**< Shifted mode No for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 << 0) /**< Shifted mode VSB100 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 << 0) /**< Shifted mode VSB200 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 << 0) /**< Shifted mode VSB300 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 << 0) /**< Shifted mode VSB400 for SYSCFG_RAMBIASCONF */
+
+/* Bit fields for SYSCFG RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_MASK 0x00000103UL /**< Mask for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_MASK 0x3UL /**< Bit mask for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 0x00000001UL /**< Mode BLK0 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 0x00000002UL /**< Mode BLK1 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF 0x00000003UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 << 0) /**< Shifted mode BLK0 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 << 0) /**< Shifted mode BLK1 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL (0x1UL << 8) /**< FRCRAM Retention Control */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON << 8) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF << 8) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+
+/* Bit fields for SYSCFG RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_MASK 0x00000303UL /**< Mask for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN (0x1UL << 0) /**< SEQRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_MASK 0x1UL /**< Bit mask for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN (0x1UL << 1) /**< SEQRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_SHIFT 1 /**< Shift value for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_MASK 0x2UL /**< Bit mask for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN (0x1UL << 8) /**< FRCRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN (0x1UL << 9) /**< FRCRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_SHIFT 9 /**< Shift value for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_MASK 0x200UL /**< Bit mask for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+
+/* Bit fields for SYSCFG SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_SEQRAMECCADDR */
+#define SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT (_SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_SEQRAMECCADDR*/
+
+/* Bit fields for SYSCFG FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_FRCRAMECCADDR */
+#define SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT (_SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_FRCRAMECCADDR*/
+
+/* Bit fields for SYSCFG ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_MASK 0x00000001UL /**< Mask for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL (0x1UL << 0) /**< ICACHERAM Retention control */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_MASK 0x1UL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL*/
+
+/* Bit fields for SYSCFG DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_RESETVALUE 0x00000055UL /**< Default value for SYSCFG_DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_MASK 0x000000FFUL /**< Mask for SYSCFG_DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_SHIFT 0 /**< Shift value for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_MASK 0x3UL /**< Bit mask for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_SHIFT 2 /**< Shift value for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_MASK 0xCUL /**< Bit mask for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_SHIFT 4 /**< Shift value for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_MASK 0x30UL /**< Bit mask for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_SHIFT 6 /**< Shift value for SYSCFG_IFADCDEBUGPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_MASK 0xC0UL /**< Bit mask for SYSCFG_IFADCDEBUGPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_DEFAULT << 6) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+
+/* Bit fields for SYSCFG ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA0 */
+#define SYSCFG_ROOTDATA0_DATA_DEFAULT (_SYSCFG_ROOTDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA0 */
+
+/* Bit fields for SYSCFG ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA1 */
+#define SYSCFG_ROOTDATA1_DATA_DEFAULT (_SYSCFG_ROOTDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA1 */
+
+/* Bit fields for SYSCFG ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_RESETVALUE 0x007F0107UL /**< Default value for SYSCFG_ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_MASK 0x807F0117UL /**< Mask for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK (0x1UL << 0) /**< Bus Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_SHIFT 0 /**< Shift value for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_MASK 0x1UL /**< Bit mask for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK (0x1UL << 1) /**< Register Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_SHIFT 1 /**< Shift value for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_MASK 0x2UL /**< Bit mask for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK (0x1UL << 2) /**< Manufacture Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_SHIFT 2 /**< Shift value for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_MASK 0x4UL /**< Bit mask for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK (0x1UL << 4) /**< Root Mode Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_SHIFT 4 /**< Shift value for SYSCFG_ROOTMODELOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_MASK 0x10UL /**< Bit mask for SYSCFG_ROOTMODELOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_ROOTMODELOCK_DEFAULT << 4) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK (0x1UL << 8) /**< Root Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_SHIFT 8 /**< Shift value for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_MASK 0x100UL /**< Bit mask for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK (0x1UL << 16) /**< User Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_SHIFT 16 /**< Shift value for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_MASK 0x10000UL /**< Bit mask for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK (0x1UL << 17) /**< User Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_SHIFT 17 /**< Shift value for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_MASK 0x20000UL /**< Bit mask for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT << 17) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK (0x1UL << 18) /**< User Secure Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_SHIFT 18 /**< Shift value for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_MASK 0x40000UL /**< Bit mask for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT << 18) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK (0x1UL << 19) /**< User Secure Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_SHIFT 19 /**< Shift value for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_MASK 0x80000UL /**< Bit mask for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT << 19) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK (0x1UL << 20) /**< User Debug Access Port Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_SHIFT 20 /**< Shift value for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_MASK 0x100000UL /**< Bit mask for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT << 20) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK (0x1UL << 21) /**< Radio Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_SHIFT 21 /**< Shift value for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_MASK 0x200000UL /**< Bit mask for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT << 21) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK (0x1UL << 22) /**< Radio Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_SHIFT 22 /**< Shift value for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_MASK 0x400000UL /**< Bit mask for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT << 22) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED (0x1UL << 31) /**< E-Fuse Unlocked */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_SHIFT 31 /**< Shift value for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_MASK 0x80000000UL /**< Bit mask for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT << 31) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+
+/* Bit fields for SYSCFG ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_SHIFT 0 /**< Shift value for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTSESWVERSION */
+#define SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT (_SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTSESWVERSION*/
+
+/** @} End of group EFR32MG29_SYSCFG_BitFields */
+/** @} End of group EFR32MG29_SYSCFG */
+/**************************************************************************//**
+ * @defgroup EFR32MG29_SYSCFG_CFGNS SYSCFG_CFGNS
+ * @{
+ * @brief EFR32MG29 SYSCFG_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG_CFGNS Register Declaration. */
+typedef struct syscfg_cfgns_typedef{
+ uint32_t RESERVED0[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED1[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1; /**< Data Register 1 */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[637U]; /**< Reserved for future use */
+ uint32_t RESERVED4[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_SET; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED5[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_SET; /**< Data Register 1 */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[637U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_CLR; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED9[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_CLR; /**< Data Register 1 */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[637U]; /**< Reserved for future use */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_TGL; /**< Configure Non-secure Sys-Tick Cal. */
+ uint32_t RESERVED13[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_TGL; /**< Data Register 1 */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} SYSCFG_CFGNS_TypeDef;
+/** @} End of group EFR32MG29_SYSCFG_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_SYSCFG_CFGNS
+ * @{
+ * @defgroup EFR32MG29_SYSCFG_CFGNS_BitFields SYSCFG_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_RESETVALUE 0x01004A37UL /**< Default value for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_MASK 0x03FFFFFFUL /**< Mask for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_TENMS_SHIFT 0 /**< Shift value for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_MASK 0xFFFFFFUL /**< Bit mask for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_DEFAULT 0x00004A37UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_TENMS_DEFAULT (_SYSCFG_CFGNSTCALIB_TENMS_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW (0x1UL << 24) /**< Skew */
+#define _SYSCFG_CFGNSTCALIB_SKEW_SHIFT 24 /**< Shift value for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_MASK 0x1000000UL /**< Bit mask for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW_DEFAULT (_SYSCFG_CFGNSTCALIB_SKEW_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF (0x1UL << 25) /**< No Reference */
+#define _SYSCFG_CFGNSTCALIB_NOREF_SHIFT 25 /**< Shift value for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_MASK 0x2000000UL /**< Bit mask for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_REF 0x00000000UL /**< Mode REF for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_NOREF 0x00000001UL /**< Mode NOREF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_DEFAULT (_SYSCFG_CFGNSTCALIB_NOREF_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_REF (_SYSCFG_CFGNSTCALIB_NOREF_REF << 25) /**< Shifted mode REF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_NOREF (_SYSCFG_CFGNSTCALIB_NOREF_NOREF << 25) /**< Shifted mode NOREF for SYSCFG_CFGNSTCALIB */
+
+/* Bit fields for SYSCFG ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+#define SYSCFG_ROOTNSDATA0_DATA_DEFAULT (_SYSCFG_ROOTNSDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+
+/* Bit fields for SYSCFG ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+#define SYSCFG_ROOTNSDATA1_DATA_DEFAULT (_SYSCFG_ROOTNSDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+
+/** @} End of group EFR32MG29_SYSCFG_CFGNS_BitFields */
+/** @} End of group EFR32MG29_SYSCFG_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_SYSCFG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_timer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_timer.h
new file mode 100644
index 000000000..d0bd0c0dc
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_timer.h
@@ -0,0 +1,1015 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 TIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_TIMER_H
+#define EFR32MG29_TIMER_H
+#define TIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_TIMER TIMER
+ * @{
+ * @brief EFR32MG29 TIMER Register Declaration.
+ *****************************************************************************/
+
+/** TIMER CC Register Group Declaration. */
+typedef struct timer_cc_typedef{
+ __IOM uint32_t CFG; /**< CC Channel Configuration Register */
+ __IOM uint32_t CTRL; /**< CC Channel Control Register */
+ __IOM uint32_t OC; /**< OC Channel Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t OCB; /**< OC Channel Value Buffer Register */
+ __IM uint32_t ICF; /**< IC Channel Value Register */
+ __IM uint32_t ICOF; /**< IC Channel Value Overflow Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+} TIMER_CC_TypeDef;
+
+/** TIMER Register Declaration. */
+typedef struct timer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN; /**< module en */
+ uint32_t RESERVED1[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED3[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_SET; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_SET; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_SET; /**< module en */
+ uint32_t RESERVED5[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_SET[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED6[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_SET; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_SET; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_SET; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_SET; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_SET; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_SET; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_SET; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_SET; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED7[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_CLR; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_CLR; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_CLR; /**< module en */
+ uint32_t RESERVED9[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_CLR[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED10[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_CLR; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_CLR; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_CLR; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_CLR; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_CLR; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_CLR; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_CLR; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_CLR; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED11[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_TGL; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_TGL; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_TGL; /**< module en */
+ uint32_t RESERVED13[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_TGL[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED14[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_TGL; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_TGL; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_TGL; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_TGL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_TGL; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_TGL; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_TGL; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_TGL; /**< DTI Configuration Lock Register */
+} TIMER_TypeDef;
+/** @} End of group EFR32MG29_TIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_TIMER
+ * @{
+ * @defgroup EFR32MG29_TIMER_BitFields TIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for TIMER IPVERSION */
+#define _TIMER_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IPVERSION */
+#define TIMER_IPVERSION_IPVERSION_DEFAULT (_TIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IPVERSION */
+
+/* Bit fields for TIMER CFG */
+#define _TIMER_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CFG */
+#define _TIMER_CFG_MASK 0x0FFF1FFBUL /**< Mask for TIMER_CFG */
+#define _TIMER_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_MODE_UP 0x00000000UL /**< Mode UP for TIMER_CFG */
+#define _TIMER_CFG_MODE_DOWN 0x00000001UL /**< Mode DOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_UPDOWN 0x00000002UL /**< Mode UPDOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_QDEC 0x00000003UL /**< Mode QDEC for TIMER_CFG */
+#define TIMER_CFG_MODE_DEFAULT (_TIMER_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_MODE_UP (_TIMER_CFG_MODE_UP << 0) /**< Shifted mode UP for TIMER_CFG */
+#define TIMER_CFG_MODE_DOWN (_TIMER_CFG_MODE_DOWN << 0) /**< Shifted mode DOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_UPDOWN (_TIMER_CFG_MODE_UPDOWN << 0) /**< Shifted mode UPDOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_QDEC (_TIMER_CFG_MODE_QDEC << 0) /**< Shifted mode QDEC for TIMER_CFG */
+#define TIMER_CFG_SYNC (0x1UL << 3) /**< Timer Start/Stop/Reload Synchronization */
+#define _TIMER_CFG_SYNC_SHIFT 3 /**< Shift value for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_MASK 0x8UL /**< Bit mask for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_DEFAULT (_TIMER_CFG_SYNC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_SYNC_DISABLE (_TIMER_CFG_SYNC_DISABLE << 3) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_ENABLE (_TIMER_CFG_SYNC_ENABLE << 3) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_OSMEN (0x1UL << 4) /**< One-shot Mode Enable */
+#define _TIMER_CFG_OSMEN_SHIFT 4 /**< Shift value for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_MASK 0x10UL /**< Bit mask for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_OSMEN_DEFAULT (_TIMER_CFG_OSMEN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM (0x1UL << 5) /**< Quadrature Decoder Mode Selection */
+#define _TIMER_CFG_QDM_SHIFT 5 /**< Shift value for TIMER_QDM */
+#define _TIMER_CFG_QDM_MASK 0x20UL /**< Bit mask for TIMER_QDM */
+#define _TIMER_CFG_QDM_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_QDM_X2 0x00000000UL /**< Mode X2 for TIMER_CFG */
+#define _TIMER_CFG_QDM_X4 0x00000001UL /**< Mode X4 for TIMER_CFG */
+#define TIMER_CFG_QDM_DEFAULT (_TIMER_CFG_QDM_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM_X2 (_TIMER_CFG_QDM_X2 << 5) /**< Shifted mode X2 for TIMER_CFG */
+#define TIMER_CFG_QDM_X4 (_TIMER_CFG_QDM_X4 << 5) /**< Shifted mode X4 for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN (0x1UL << 6) /**< Debug Mode Run Enable */
+#define _TIMER_CFG_DEBUGRUN_SHIFT 6 /**< Shift value for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_MASK 0x40UL /**< Bit mask for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_HALT 0x00000000UL /**< Mode HALT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_RUN 0x00000001UL /**< Mode RUN for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_DEFAULT (_TIMER_CFG_DEBUGRUN_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_HALT (_TIMER_CFG_DEBUGRUN_HALT << 6) /**< Shifted mode HALT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_RUN (_TIMER_CFG_DEBUGRUN_RUN << 6) /**< Shifted mode RUN for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT (0x1UL << 7) /**< DMA Request Clear on Active */
+#define _TIMER_CFG_DMACLRACT_SHIFT 7 /**< Shift value for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_MASK 0x80UL /**< Bit mask for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT_DEFAULT (_TIMER_CFG_DMACLRACT_DEFAULT << 7) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_SHIFT 8 /**< Shift value for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_MASK 0x300UL /**< Bit mask for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_PRESCEM01GRPACLK 0x00000000UL /**< Mode PRESCEM01GRPACLK for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_CC1 0x00000001UL /**< Mode CC1 for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_TIMEROUF 0x00000002UL /**< Mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_DEFAULT (_TIMER_CFG_CLKSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_PRESCEM01GRPACLK (_TIMER_CFG_CLKSEL_PRESCEM01GRPACLK << 8) /**< Shifted mode PRESCEM01GRPACLK for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_CC1 (_TIMER_CFG_CLKSEL_CC1 << 8) /**< Shifted mode CC1 for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_TIMEROUF (_TIMER_CFG_CLKSEL_TIMEROUF << 8) /**< Shifted mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN (0x1UL << 10) /**< PWM output retimed enable */
+#define _TIMER_CFG_RETIMEEN_SHIFT 10 /**< Shift value for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_MASK 0x400UL /**< Bit mask for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DEFAULT (_TIMER_CFG_RETIMEEN_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DISABLE (_TIMER_CFG_RETIMEEN_DISABLE << 10) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_ENABLE (_TIMER_CFG_RETIMEEN_ENABLE << 10) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT (0x1UL << 11) /**< Disable Timer Start/Stop/Reload output */
+#define _TIMER_CFG_DISSYNCOUT_SHIFT 11 /**< Shift value for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_MASK 0x800UL /**< Bit mask for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_EN 0x00000000UL /**< Mode EN for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_DIS 0x00000001UL /**< Mode DIS for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DEFAULT (_TIMER_CFG_DISSYNCOUT_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_EN (_TIMER_CFG_DISSYNCOUT_EN << 11) /**< Shifted mode EN for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DIS (_TIMER_CFG_DISSYNCOUT_DIS << 11) /**< Shifted mode DIS for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL (0x1UL << 12) /**< PWM output retime select */
+#define _TIMER_CFG_RETIMESEL_SHIFT 12 /**< Shift value for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_MASK 0x1000UL /**< Bit mask for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL_DEFAULT (_TIMER_CFG_RETIMESEL_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI (0x1UL << 16) /**< Always Track Inputs */
+#define _TIMER_CFG_ATI_SHIFT 16 /**< Shift value for TIMER_ATI */
+#define _TIMER_CFG_ATI_MASK 0x10000UL /**< Bit mask for TIMER_ATI */
+#define _TIMER_CFG_ATI_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI_DEFAULT (_TIMER_CFG_ATI_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST (0x1UL << 17) /**< Reload-Start Sets COIST */
+#define _TIMER_CFG_RSSCOIST_SHIFT 17 /**< Shift value for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_MASK 0x20000UL /**< Bit mask for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST_DEFAULT (_TIMER_CFG_RSSCOIST_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_SHIFT 18 /**< Shift value for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_MASK 0xFFC0000UL /**< Bit mask for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV8 0x00000007UL /**< Mode DIV8 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV16 0x0000000FUL /**< Mode DIV16 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV32 0x0000001FUL /**< Mode DIV32 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV64 0x0000003FUL /**< Mode DIV64 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV128 0x0000007FUL /**< Mode DIV128 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV256 0x000000FFUL /**< Mode DIV256 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV512 0x000001FFUL /**< Mode DIV512 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1024 0x000003FFUL /**< Mode DIV1024 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DEFAULT (_TIMER_CFG_PRESC_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1 (_TIMER_CFG_PRESC_DIV1 << 18) /**< Shifted mode DIV1 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV2 (_TIMER_CFG_PRESC_DIV2 << 18) /**< Shifted mode DIV2 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV4 (_TIMER_CFG_PRESC_DIV4 << 18) /**< Shifted mode DIV4 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV8 (_TIMER_CFG_PRESC_DIV8 << 18) /**< Shifted mode DIV8 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV16 (_TIMER_CFG_PRESC_DIV16 << 18) /**< Shifted mode DIV16 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV32 (_TIMER_CFG_PRESC_DIV32 << 18) /**< Shifted mode DIV32 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV64 (_TIMER_CFG_PRESC_DIV64 << 18) /**< Shifted mode DIV64 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV128 (_TIMER_CFG_PRESC_DIV128 << 18) /**< Shifted mode DIV128 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV256 (_TIMER_CFG_PRESC_DIV256 << 18) /**< Shifted mode DIV256 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV512 (_TIMER_CFG_PRESC_DIV512 << 18) /**< Shifted mode DIV512 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1024 (_TIMER_CFG_PRESC_DIV1024 << 18) /**< Shifted mode DIV1024 for TIMER_CFG */
+
+/* Bit fields for TIMER CTRL */
+#define _TIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CTRL */
+#define _TIMER_CTRL_MASK 0x0000001FUL /**< Mask for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_SHIFT 0 /**< Shift value for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_MASK 0x3UL /**< Bit mask for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_DEFAULT (_TIMER_CTRL_RISEA_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_NONE (_TIMER_CTRL_RISEA_NONE << 0) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_START (_TIMER_CTRL_RISEA_START << 0) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_STOP (_TIMER_CTRL_RISEA_STOP << 0) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_RELOADSTART (_TIMER_CTRL_RISEA_RELOADSTART << 0) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_SHIFT 2 /**< Shift value for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_MASK 0xCUL /**< Bit mask for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_DEFAULT (_TIMER_CTRL_FALLA_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_NONE (_TIMER_CTRL_FALLA_NONE << 2) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_START (_TIMER_CTRL_FALLA_START << 2) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_STOP (_TIMER_CTRL_FALLA_STOP << 2) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_RELOADSTART (_TIMER_CTRL_FALLA_RELOADSTART << 2) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT (0x1UL << 4) /**< 2x Count Mode */
+#define _TIMER_CTRL_X2CNT_SHIFT 4 /**< Shift value for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_MASK 0x10UL /**< Bit mask for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT_DEFAULT (_TIMER_CTRL_X2CNT_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CTRL */
+
+/* Bit fields for TIMER CMD */
+#define _TIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for TIMER_CMD */
+#define _TIMER_CMD_MASK 0x00000003UL /**< Mask for TIMER_CMD */
+#define TIMER_CMD_START (0x1UL << 0) /**< Start Timer */
+#define _TIMER_CMD_START_SHIFT 0 /**< Shift value for TIMER_START */
+#define _TIMER_CMD_START_MASK 0x1UL /**< Bit mask for TIMER_START */
+#define _TIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_START_DEFAULT (_TIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP (0x1UL << 1) /**< Stop Timer */
+#define _TIMER_CMD_STOP_SHIFT 1 /**< Shift value for TIMER_STOP */
+#define _TIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for TIMER_STOP */
+#define _TIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP_DEFAULT (_TIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_CMD */
+
+/* Bit fields for TIMER STATUS */
+#define _TIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for TIMER_STATUS */
+#define _TIMER_STATUS_MASK 0x07070777UL /**< Mask for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING (0x1UL << 0) /**< Running */
+#define _TIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING_DEFAULT (_TIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR (0x1UL << 1) /**< Direction */
+#define _TIMER_STATUS_DIR_SHIFT 1 /**< Shift value for TIMER_DIR */
+#define _TIMER_STATUS_DIR_MASK 0x2UL /**< Bit mask for TIMER_DIR */
+#define _TIMER_STATUS_DIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_UP 0x00000000UL /**< Mode UP for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_DOWN 0x00000001UL /**< Mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DEFAULT (_TIMER_STATUS_DIR_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR_UP (_TIMER_STATUS_DIR_UP << 1) /**< Shifted mode UP for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DOWN (_TIMER_STATUS_DIR_DOWN << 1) /**< Shifted mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV (0x1UL << 2) /**< TOP Buffer Valid */
+#define _TIMER_STATUS_TOPBV_SHIFT 2 /**< Shift value for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_MASK 0x4UL /**< Bit mask for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV_DEFAULT (_TIMER_STATUS_TOPBV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS (0x1UL << 4) /**< Timer lock status */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_SHIFT 4 /**< Shift value for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_MASK 0x10UL /**< Bit mask for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT (_TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED << 4) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_LOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_LOCKED << 4) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS (0x1UL << 5) /**< DTI lock status */
+#define _TIMER_STATUS_DTILOCKSTATUS_SHIFT 5 /**< Shift value for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_MASK 0x20UL /**< Bit mask for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_DEFAULT (_TIMER_STATUS_DTILOCKSTATUS_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_UNLOCKED (_TIMER_STATUS_DTILOCKSTATUS_UNLOCKED << 5) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_LOCKED (_TIMER_STATUS_DTILOCKSTATUS_LOCKED << 5) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY (0x1UL << 6) /**< Sync Busy */
+#define _TIMER_STATUS_SYNCBUSY_SHIFT 6 /**< Shift value for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_MASK 0x40UL /**< Bit mask for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY_DEFAULT (_TIMER_STATUS_SYNCBUSY_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0 (0x1UL << 8) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV0_SHIFT 8 /**< Shift value for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_MASK 0x100UL /**< Bit mask for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0_DEFAULT (_TIMER_STATUS_OCBV0_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1 (0x1UL << 9) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV1_SHIFT 9 /**< Shift value for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_MASK 0x200UL /**< Bit mask for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1_DEFAULT (_TIMER_STATUS_OCBV1_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2 (0x1UL << 10) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV2_SHIFT 10 /**< Shift value for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_MASK 0x400UL /**< Bit mask for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2_DEFAULT (_TIMER_STATUS_OCBV2_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0 (0x1UL << 16) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY0_SHIFT 16 /**< Shift value for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_MASK 0x10000UL /**< Bit mask for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0_DEFAULT (_TIMER_STATUS_ICFEMPTY0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1 (0x1UL << 17) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY1_SHIFT 17 /**< Shift value for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_MASK 0x20000UL /**< Bit mask for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1_DEFAULT (_TIMER_STATUS_ICFEMPTY1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2 (0x1UL << 18) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY2_SHIFT 18 /**< Shift value for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_MASK 0x40000UL /**< Bit mask for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2_DEFAULT (_TIMER_STATUS_ICFEMPTY2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0 (0x1UL << 24) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL0_SHIFT 24 /**< Shift value for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_MASK 0x1000000UL /**< Bit mask for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_DEFAULT (_TIMER_STATUS_CCPOL0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_LOWRISE (_TIMER_STATUS_CCPOL0_LOWRISE << 24) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_HIGHFALL (_TIMER_STATUS_CCPOL0_HIGHFALL << 24) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1 (0x1UL << 25) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL1_SHIFT 25 /**< Shift value for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_MASK 0x2000000UL /**< Bit mask for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_DEFAULT (_TIMER_STATUS_CCPOL1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_LOWRISE (_TIMER_STATUS_CCPOL1_LOWRISE << 25) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_HIGHFALL (_TIMER_STATUS_CCPOL1_HIGHFALL << 25) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2 (0x1UL << 26) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL2_SHIFT 26 /**< Shift value for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_MASK 0x4000000UL /**< Bit mask for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_DEFAULT (_TIMER_STATUS_CCPOL2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_LOWRISE (_TIMER_STATUS_CCPOL2_LOWRISE << 26) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_HIGHFALL (_TIMER_STATUS_CCPOL2_HIGHFALL << 26) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+
+/* Bit fields for TIMER IF */
+#define _TIMER_IF_RESETVALUE 0x00000000UL /**< Default value for TIMER_IF */
+#define _TIMER_IF_MASK 0x07770077UL /**< Mask for TIMER_IF */
+#define TIMER_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _TIMER_IF_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IF_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_OF_DEFAULT (_TIMER_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF (0x1UL << 1) /**< Underflow Interrupt Flag */
+#define _TIMER_IF_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IF_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF_DEFAULT (_TIMER_IF_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Flag */
+#define _TIMER_IF_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG_DEFAULT (_TIMER_IF_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0 (0x1UL << 4) /**< Capture Compare Channel 0 Interrupt Flag */
+#define _TIMER_IF_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IF_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IF_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0_DEFAULT (_TIMER_IF_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1 (0x1UL << 5) /**< Capture Compare Channel 1 Interrupt Flag */
+#define _TIMER_IF_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IF_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IF_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1_DEFAULT (_TIMER_IF_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2 (0x1UL << 6) /**< Capture Compare Channel 2 Interrupt Flag */
+#define _TIMER_IF_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IF_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IF_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2_DEFAULT (_TIMER_IF_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0 (0x1UL << 16) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0_DEFAULT (_TIMER_IF_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1 (0x1UL << 17) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1_DEFAULT (_TIMER_IF_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2 (0x1UL << 18) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2_DEFAULT (_TIMER_IF_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0 (0x1UL << 20) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0_DEFAULT (_TIMER_IF_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1 (0x1UL << 21) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1_DEFAULT (_TIMER_IF_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2 (0x1UL << 22) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2_DEFAULT (_TIMER_IF_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0 (0x1UL << 24) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0_DEFAULT (_TIMER_IF_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1 (0x1UL << 25) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1_DEFAULT (_TIMER_IF_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2 (0x1UL << 26) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2_DEFAULT (_TIMER_IF_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IF */
+
+/* Bit fields for TIMER IEN */
+#define _TIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_IEN */
+#define _TIMER_IEN_MASK 0x07770077UL /**< Mask for TIMER_IEN */
+#define TIMER_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Enable */
+#define _TIMER_IEN_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IEN_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_OF_DEFAULT (_TIMER_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF (0x1UL << 1) /**< Underflow Interrupt Enable */
+#define _TIMER_IEN_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IEN_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF_DEFAULT (_TIMER_IEN_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Enable */
+#define _TIMER_IEN_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG_DEFAULT (_TIMER_IEN_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0 (0x1UL << 4) /**< CC0 Interrupt Enable */
+#define _TIMER_IEN_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IEN_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IEN_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0_DEFAULT (_TIMER_IEN_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1 (0x1UL << 5) /**< CC1 Interrupt Enable */
+#define _TIMER_IEN_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IEN_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IEN_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1_DEFAULT (_TIMER_IEN_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2 (0x1UL << 6) /**< CC2 Interrupt Enable */
+#define _TIMER_IEN_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IEN_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IEN_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2_DEFAULT (_TIMER_IEN_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0 (0x1UL << 16) /**< ICFWLFULL0 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0_DEFAULT (_TIMER_IEN_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1 (0x1UL << 17) /**< ICFWLFULL1 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1_DEFAULT (_TIMER_IEN_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2 (0x1UL << 18) /**< ICFWLFULL2 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2_DEFAULT (_TIMER_IEN_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0 (0x1UL << 20) /**< ICFOF0 Interrupt Enable */
+#define _TIMER_IEN_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0_DEFAULT (_TIMER_IEN_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1 (0x1UL << 21) /**< ICFOF1 Interrupt Enable */
+#define _TIMER_IEN_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1_DEFAULT (_TIMER_IEN_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2 (0x1UL << 22) /**< ICFOF2 Interrupt Enable */
+#define _TIMER_IEN_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2_DEFAULT (_TIMER_IEN_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0 (0x1UL << 24) /**< ICFUF0 Interrupt Enable */
+#define _TIMER_IEN_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0_DEFAULT (_TIMER_IEN_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1 (0x1UL << 25) /**< ICFUF1 Interrupt Enable */
+#define _TIMER_IEN_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1_DEFAULT (_TIMER_IEN_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2 (0x1UL << 26) /**< ICFUF2 Interrupt Enable */
+#define _TIMER_IEN_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2_DEFAULT (_TIMER_IEN_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IEN */
+
+/* Bit fields for TIMER TOP */
+#define _TIMER_TOP_RESETVALUE 0x0000FFFFUL /**< Default value for TIMER_TOP */
+#define _TIMER_TOP_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_SHIFT 0 /**< Shift value for TIMER_TOP */
+#define _TIMER_TOP_TOP_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for TIMER_TOP */
+#define TIMER_TOP_TOP_DEFAULT (_TIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOP */
+
+/* Bit fields for TIMER TOPB */
+#define _TIMER_TOPB_RESETVALUE 0x00000000UL /**< Default value for TIMER_TOPB */
+#define _TIMER_TOPB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_SHIFT 0 /**< Shift value for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_TOPB */
+#define TIMER_TOPB_TOPB_DEFAULT (_TIMER_TOPB_TOPB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOPB */
+
+/* Bit fields for TIMER CNT */
+#define _TIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for TIMER_CNT */
+#define _TIMER_CNT_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_SHIFT 0 /**< Shift value for TIMER_CNT */
+#define _TIMER_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CNT */
+#define TIMER_CNT_CNT_DEFAULT (_TIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CNT */
+
+/* Bit fields for TIMER LOCK */
+#define _TIMER_LOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_LOCK */
+#define _TIMER_LOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_DEFAULT (_TIMER_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_UNLOCK (_TIMER_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_LOCK */
+
+/* Bit fields for TIMER EN */
+#define _TIMER_EN_RESETVALUE 0x00000000UL /**< Default value for TIMER_EN */
+#define _TIMER_EN_MASK 0x00000001UL /**< Mask for TIMER_EN */
+#define TIMER_EN_EN (0x1UL << 0) /**< Timer Module Enable */
+#define _TIMER_EN_EN_SHIFT 0 /**< Shift value for TIMER_EN */
+#define _TIMER_EN_EN_MASK 0x1UL /**< Bit mask for TIMER_EN */
+#define _TIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_EN */
+#define TIMER_EN_EN_DEFAULT (_TIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_EN */
+
+/* Bit fields for TIMER CC_CFG */
+#define _TIMER_CC_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MASK 0x003E0013UL /**< Mask for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OFF 0x00000000UL /**< Mode OFF for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_INPUTCAPTURE 0x00000001UL /**< Mode INPUTCAPTURE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OUTPUTCOMPARE 0x00000002UL /**< Mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_PWM 0x00000003UL /**< Mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_DEFAULT (_TIMER_CC_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OFF (_TIMER_CC_CFG_MODE_OFF << 0) /**< Shifted mode OFF for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_INPUTCAPTURE (_TIMER_CC_CFG_MODE_INPUTCAPTURE << 0) /**< Shifted mode INPUTCAPTURE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OUTPUTCOMPARE (_TIMER_CC_CFG_MODE_OUTPUTCOMPARE << 0) /**< Shifted mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_PWM (_TIMER_CC_CFG_MODE_PWM << 0) /**< Shifted mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST (0x1UL << 4) /**< Compare Output Initial State */
+#define _TIMER_CC_CFG_COIST_SHIFT 4 /**< Shift value for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_MASK 0x10UL /**< Bit mask for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST_DEFAULT (_TIMER_CC_CFG_COIST_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_SHIFT 17 /**< Shift value for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_MASK 0x60000UL /**< Bit mask for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PIN 0x00000000UL /**< Mode PIN for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSSYNC 0x00000001UL /**< Mode PRSSYNC for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCLEVEL 0x00000002UL /**< Mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCPULSE 0x00000003UL /**< Mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_DEFAULT (_TIMER_CC_CFG_INSEL_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PIN (_TIMER_CC_CFG_INSEL_PIN << 17) /**< Shifted mode PIN for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSSYNC (_TIMER_CC_CFG_INSEL_PRSSYNC << 17) /**< Shifted mode PRSSYNC for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCLEVEL (_TIMER_CC_CFG_INSEL_PRSASYNCLEVEL << 17) /**< Shifted mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCPULSE (_TIMER_CC_CFG_INSEL_PRSASYNCPULSE << 17) /**< Shifted mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF (0x1UL << 19) /**< PRS Configuration */
+#define _TIMER_CC_CFG_PRSCONF_SHIFT 19 /**< Shift value for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_MASK 0x80000UL /**< Bit mask for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_PULSE 0x00000000UL /**< Mode PULSE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_LEVEL 0x00000001UL /**< Mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_DEFAULT (_TIMER_CC_CFG_PRSCONF_DEFAULT << 19) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_PULSE (_TIMER_CC_CFG_PRSCONF_PULSE << 19) /**< Shifted mode PULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_LEVEL (_TIMER_CC_CFG_PRSCONF_LEVEL << 19) /**< Shifted mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT (0x1UL << 20) /**< Digital Filter */
+#define _TIMER_CC_CFG_FILT_SHIFT 20 /**< Shift value for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_MASK 0x100000UL /**< Bit mask for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DEFAULT (_TIMER_CC_CFG_FILT_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DISABLE (_TIMER_CC_CFG_FILT_DISABLE << 20) /**< Shifted mode DISABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_ENABLE (_TIMER_CC_CFG_FILT_ENABLE << 20) /**< Shifted mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL (0x1UL << 21) /**< Input Capture FIFO watermark level */
+#define _TIMER_CC_CFG_ICFWL_SHIFT 21 /**< Shift value for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_MASK 0x200000UL /**< Bit mask for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL_DEFAULT (_TIMER_CC_CFG_ICFWL_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+
+/* Bit fields for TIMER CC_CTRL */
+#define _TIMER_CC_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_MASK 0x0F003F04UL /**< Mask for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV (0x1UL << 2) /**< Output Invert */
+#define _TIMER_CC_CTRL_OUTINV_SHIFT 2 /**< Shift value for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_MASK 0x4UL /**< Bit mask for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV_DEFAULT (_TIMER_CC_CTRL_OUTINV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SHIFT 8 /**< Shift value for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_MASK 0x300UL /**< Bit mask for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_DEFAULT (_TIMER_CC_CTRL_CMOA_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_NONE (_TIMER_CC_CTRL_CMOA_NONE << 8) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_TOGGLE (_TIMER_CC_CTRL_CMOA_TOGGLE << 8) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_CLEAR (_TIMER_CC_CTRL_CMOA_CLEAR << 8) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_SET (_TIMER_CC_CTRL_CMOA_SET << 8) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SHIFT 10 /**< Shift value for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_MASK 0xC00UL /**< Bit mask for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_DEFAULT (_TIMER_CC_CTRL_COFOA_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_NONE (_TIMER_CC_CTRL_COFOA_NONE << 10) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_TOGGLE (_TIMER_CC_CTRL_COFOA_TOGGLE << 10) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_CLEAR (_TIMER_CC_CTRL_COFOA_CLEAR << 10) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_SET (_TIMER_CC_CTRL_COFOA_SET << 10) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SHIFT 12 /**< Shift value for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_MASK 0x3000UL /**< Bit mask for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_DEFAULT (_TIMER_CC_CTRL_CUFOA_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_NONE (_TIMER_CC_CTRL_CUFOA_NONE << 12) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_TOGGLE (_TIMER_CC_CTRL_CUFOA_TOGGLE << 12) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_CLEAR (_TIMER_CC_CTRL_CUFOA_CLEAR << 12) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_SET (_TIMER_CC_CTRL_CUFOA_SET << 12) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_SHIFT 24 /**< Shift value for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_MASK 0x3000000UL /**< Bit mask for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_RISING 0x00000000UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_FALLING 0x00000001UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_BOTH 0x00000002UL /**< Mode BOTH for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_NONE 0x00000003UL /**< Mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_DEFAULT (_TIMER_CC_CTRL_ICEDGE_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_RISING (_TIMER_CC_CTRL_ICEDGE_RISING << 24) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_FALLING (_TIMER_CC_CTRL_ICEDGE_FALLING << 24) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_BOTH (_TIMER_CC_CTRL_ICEDGE_BOTH << 24) /**< Shifted mode BOTH for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_NONE (_TIMER_CC_CTRL_ICEDGE_NONE << 24) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_SHIFT 26 /**< Shift value for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_MASK 0xC000000UL /**< Bit mask for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE 0x00000000UL /**< Mode EVERYEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE 0x00000001UL /**< Mode EVERYSECONDEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_RISING 0x00000002UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_FALLING 0x00000003UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_DEFAULT (_TIMER_CC_CTRL_ICEVCTRL_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE << 26) /**< Shifted mode EVERYEDGE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE << 26) /**< Shifted mode EVERYSECONDEDGE for TIMER_CC_CTRL*/
+#define TIMER_CC_CTRL_ICEVCTRL_RISING (_TIMER_CC_CTRL_ICEVCTRL_RISING << 26) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_FALLING (_TIMER_CC_CTRL_ICEVCTRL_FALLING << 26) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+
+/* Bit fields for TIMER CC_OC */
+#define _TIMER_CC_OC_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OC */
+#define _TIMER_CC_OC_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OC */
+#define _TIMER_CC_OC_OC_SHIFT 0 /**< Shift value for TIMER_OC */
+#define _TIMER_CC_OC_OC_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OC */
+#define _TIMER_CC_OC_OC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OC */
+#define TIMER_CC_OC_OC_DEFAULT (_TIMER_CC_OC_OC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OC */
+
+/* Bit fields for TIMER CC_OCB */
+#define _TIMER_CC_OCB_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_OCB_SHIFT 0 /**< Shift value for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OCB */
+#define TIMER_CC_OCB_OCB_DEFAULT (_TIMER_CC_OCB_OCB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OCB */
+
+/* Bit fields for TIMER CC_ICF */
+#define _TIMER_CC_ICF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_ICF_SHIFT 0 /**< Shift value for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICF */
+#define TIMER_CC_ICF_ICF_DEFAULT (_TIMER_CC_ICF_ICF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICF */
+
+/* Bit fields for TIMER CC_ICOF */
+#define _TIMER_CC_ICOF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_ICOF_SHIFT 0 /**< Shift value for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICOF */
+#define TIMER_CC_ICOF_ICOF_DEFAULT (_TIMER_CC_ICOF_ICOF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICOF */
+
+/* Bit fields for TIMER DTCFG */
+#define _TIMER_DTCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCFG */
+#define _TIMER_DTCFG_MASK 0x00000E03UL /**< Mask for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN (0x1UL << 0) /**< DTI Enable */
+#define _TIMER_DTCFG_DTEN_SHIFT 0 /**< Shift value for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_MASK 0x1UL /**< Bit mask for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN_DEFAULT (_TIMER_DTCFG_DTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS (0x1UL << 1) /**< DTI Automatic Start-up Functionality */
+#define _TIMER_DTCFG_DTDAS_SHIFT 1 /**< Shift value for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_MASK 0x2UL /**< Bit mask for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_NORESTART 0x00000000UL /**< Mode NORESTART for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_RESTART 0x00000001UL /**< Mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_DEFAULT (_TIMER_DTCFG_DTDAS_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_NORESTART (_TIMER_DTCFG_DTDAS_NORESTART << 1) /**< Shifted mode NORESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_RESTART (_TIMER_DTCFG_DTDAS_RESTART << 1) /**< Shifted mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR (0x1UL << 9) /**< DTI Always Run */
+#define _TIMER_DTCFG_DTAR_SHIFT 9 /**< Shift value for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_MASK 0x200UL /**< Bit mask for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR_DEFAULT (_TIMER_DTCFG_DTAR_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS (0x1UL << 10) /**< DTI Fault Action on Timer Stop */
+#define _TIMER_DTCFG_DTFATS_SHIFT 10 /**< Shift value for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_MASK 0x400UL /**< Bit mask for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS_DEFAULT (_TIMER_DTCFG_DTFATS_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN (0x1UL << 11) /**< DTI PRS Source Enable */
+#define _TIMER_DTCFG_DTPRSEN_SHIFT 11 /**< Shift value for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_MASK 0x800UL /**< Bit mask for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN_DEFAULT (_TIMER_DTCFG_DTPRSEN_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+
+/* Bit fields for TIMER DTTIMECFG */
+#define _TIMER_DTTIMECFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_MASK 0x003FFFFFUL /**< Mask for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTPRESC_SHIFT 0 /**< Shift value for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_MASK 0x3FFUL /**< Bit mask for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTPRESC_DEFAULT (_TIMER_DTTIMECFG_DTPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTRISET_SHIFT 10 /**< Shift value for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_MASK 0xFC00UL /**< Bit mask for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTRISET_DEFAULT (_TIMER_DTTIMECFG_DTRISET_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTFALLT_SHIFT 16 /**< Shift value for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_MASK 0x3F0000UL /**< Bit mask for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTFALLT_DEFAULT (_TIMER_DTTIMECFG_DTFALLT_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+
+/* Bit fields for TIMER DTFCFG */
+#define _TIMER_DTFCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_MASK 0x1F030000UL /**< Mask for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_SHIFT 16 /**< Shift value for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_MASK 0x30000UL /**< Bit mask for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_NONE 0x00000000UL /**< Mode NONE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_INACTIVE 0x00000001UL /**< Mode INACTIVE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_TRISTATE 0x00000003UL /**< Mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_DEFAULT (_TIMER_DTFCFG_DTFA_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_NONE (_TIMER_DTFCFG_DTFA_NONE << 16) /**< Shifted mode NONE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_INACTIVE (_TIMER_DTFCFG_DTFA_INACTIVE << 16) /**< Shifted mode INACTIVE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_CLEAR (_TIMER_DTFCFG_DTFA_CLEAR << 16) /**< Shifted mode CLEAR for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_TRISTATE (_TIMER_DTFCFG_DTFA_TRISTATE << 16) /**< Shifted mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN (0x1UL << 24) /**< DTI PRS 0 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS0FEN_SHIFT 24 /**< Shift value for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_MASK 0x1000000UL /**< Bit mask for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN_DEFAULT (_TIMER_DTFCFG_DTPRS0FEN_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN (0x1UL << 25) /**< DTI PRS 1 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS1FEN_SHIFT 25 /**< Shift value for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_MASK 0x2000000UL /**< Bit mask for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN_DEFAULT (_TIMER_DTFCFG_DTPRS1FEN_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN (0x1UL << 26) /**< DTI Debugger Fault Enable */
+#define _TIMER_DTFCFG_DTDBGFEN_SHIFT 26 /**< Shift value for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_MASK 0x4000000UL /**< Bit mask for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN_DEFAULT (_TIMER_DTFCFG_DTDBGFEN_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN (0x1UL << 27) /**< DTI Lockup Fault Enable */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_SHIFT 27 /**< Shift value for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_MASK 0x8000000UL /**< Bit mask for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT (_TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT << 27) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN (0x1UL << 28) /**< DTI EM23 Fault Enable */
+#define _TIMER_DTFCFG_DTEM23FEN_SHIFT 28 /**< Shift value for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_MASK 0x10000000UL /**< Bit mask for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN_DEFAULT (_TIMER_DTFCFG_DTEM23FEN_DEFAULT << 28) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+
+/* Bit fields for TIMER DTCTRL */
+#define _TIMER_DTCTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCTRL */
+#define _TIMER_DTCTRL_MASK 0x00000003UL /**< Mask for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV (0x1UL << 0) /**< DTI Complementary Output Invert. */
+#define _TIMER_DTCTRL_DTCINV_SHIFT 0 /**< Shift value for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_MASK 0x1UL /**< Bit mask for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV_DEFAULT (_TIMER_DTCTRL_DTCINV_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL (0x1UL << 1) /**< DTI Inactive Polarity */
+#define _TIMER_DTCTRL_DTIPOL_SHIFT 1 /**< Shift value for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_MASK 0x2UL /**< Bit mask for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL_DEFAULT (_TIMER_DTCTRL_DTIPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+
+/* Bit fields for TIMER DTOGEN */
+#define _TIMER_DTOGEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTOGEN */
+#define _TIMER_DTOGEN_MASK 0x0000003FUL /**< Mask for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN (0x1UL << 0) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC0EN_SHIFT 0 /**< Shift value for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_MASK 0x1UL /**< Bit mask for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN_DEFAULT (_TIMER_DTOGEN_DTOGCC0EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN (0x1UL << 1) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC1EN_SHIFT 1 /**< Shift value for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_MASK 0x2UL /**< Bit mask for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN_DEFAULT (_TIMER_DTOGEN_DTOGCC1EN_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN (0x1UL << 2) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC2EN_SHIFT 2 /**< Shift value for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_MASK 0x4UL /**< Bit mask for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN_DEFAULT (_TIMER_DTOGEN_DTOGCC2EN_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN (0x1UL << 3) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_SHIFT 3 /**< Shift value for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_MASK 0x8UL /**< Bit mask for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN (0x1UL << 4) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_SHIFT 4 /**< Shift value for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_MASK 0x10UL /**< Bit mask for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN (0x1UL << 5) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_SHIFT 5 /**< Shift value for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_MASK 0x20UL /**< Bit mask for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+
+/* Bit fields for TIMER DTFAULT */
+#define _TIMER_DTFAULT_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULT */
+#define _TIMER_DTFAULT_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F (0x1UL << 0) /**< DTI PRS 0 Fault */
+#define _TIMER_DTFAULT_DTPRS0F_SHIFT 0 /**< Shift value for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F_DEFAULT (_TIMER_DTFAULT_DTPRS0F_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F (0x1UL << 1) /**< DTI PRS 1 Fault */
+#define _TIMER_DTFAULT_DTPRS1F_SHIFT 1 /**< Shift value for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F_DEFAULT (_TIMER_DTFAULT_DTPRS1F_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF (0x1UL << 2) /**< DTI Debugger Fault */
+#define _TIMER_DTFAULT_DTDBGF_SHIFT 2 /**< Shift value for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_MASK 0x4UL /**< Bit mask for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF_DEFAULT (_TIMER_DTFAULT_DTDBGF_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF (0x1UL << 3) /**< DTI Lockup Fault */
+#define _TIMER_DTFAULT_DTLOCKUPF_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF_DEFAULT (_TIMER_DTFAULT_DTLOCKUPF_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F (0x1UL << 4) /**< DTI EM23 Entry Fault */
+#define _TIMER_DTFAULT_DTEM23F_SHIFT 4 /**< Shift value for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_MASK 0x10UL /**< Bit mask for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F_DEFAULT (_TIMER_DTFAULT_DTEM23F_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+
+/* Bit fields for TIMER DTFAULTC */
+#define _TIMER_DTFAULTC_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULTC */
+#define _TIMER_DTFAULTC_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC (0x1UL << 0) /**< DTI PRS0 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS0FC_SHIFT 0 /**< Shift value for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC_DEFAULT (_TIMER_DTFAULTC_DTPRS0FC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC (0x1UL << 1) /**< DTI PRS1 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS1FC_SHIFT 1 /**< Shift value for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC_DEFAULT (_TIMER_DTFAULTC_DTPRS1FC_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC (0x1UL << 2) /**< DTI Debugger Fault Clear */
+#define _TIMER_DTFAULTC_DTDBGFC_SHIFT 2 /**< Shift value for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_MASK 0x4UL /**< Bit mask for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC_DEFAULT (_TIMER_DTFAULTC_DTDBGFC_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC (0x1UL << 3) /**< DTI Lockup Fault Clear */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT (_TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC (0x1UL << 4) /**< DTI EM23 Fault Clear */
+#define _TIMER_DTFAULTC_DTEM23FC_SHIFT 4 /**< Shift value for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_MASK 0x10UL /**< Bit mask for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC_DEFAULT (_TIMER_DTFAULTC_DTEM23FC_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+
+/* Bit fields for TIMER DTLOCK */
+#define _TIMER_DTLOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_SHIFT 0 /**< Shift value for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_DEFAULT (_TIMER_DTLOCK_DTILOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_UNLOCK (_TIMER_DTLOCK_DTILOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_DTLOCK */
+
+/** @} End of group EFR32MG29_TIMER_BitFields */
+/** @} End of group EFR32MG29_TIMER */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_TIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ulfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ulfrco.h
new file mode 100644
index 000000000..67041f944
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_ulfrco.h
@@ -0,0 +1,147 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 ULFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_ULFRCO_H
+#define EFR32MG29_ULFRCO_H
+#define ULFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_ULFRCO ULFRCO
+ * @{
+ * @brief EFR32MG29 ULFRCO Register Declaration.
+ *****************************************************************************/
+
+/** ULFRCO Register Declaration. */
+typedef struct ulfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED8[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED10[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} ULFRCO_TypeDef;
+/** @} End of group EFR32MG29_ULFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_ULFRCO
+ * @{
+ * @defgroup EFR32MG29_ULFRCO_BitFields ULFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ULFRCO IPVERSION */
+#define _ULFRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IPVERSION */
+#define ULFRCO_IPVERSION_IPVERSION_DEFAULT (_ULFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IPVERSION */
+
+/* Bit fields for ULFRCO STATUS */
+#define _ULFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_STATUS */
+#define _ULFRCO_STATUS_MASK 0x00010001UL /**< Mask for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _ULFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY_DEFAULT (_ULFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _ULFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS_DEFAULT (_ULFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+
+/* Bit fields for ULFRCO IF */
+#define _ULFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IF */
+#define _ULFRCO_IF_MASK 0x00000007UL /**< Mask for ULFRCO_IF */
+#define ULFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _ULFRCO_IF_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_RDY_DEFAULT (_ULFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE (0x1UL << 1) /**< Positive Edge Interrupt Flag */
+#define _ULFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE_DEFAULT (_ULFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE (0x1UL << 2) /**< Negative Edge Interrupt Flag */
+#define _ULFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE_DEFAULT (_ULFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IF */
+
+/* Bit fields for ULFRCO IEN */
+#define _ULFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IEN */
+#define _ULFRCO_IEN_MASK 0x00000007UL /**< Mask for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY (0x1UL << 0) /**< Enable Ready Interrupt */
+#define _ULFRCO_IEN_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY_DEFAULT (_ULFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE (0x1UL << 1) /**< Enable Positive Edge Interrupt */
+#define _ULFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE_DEFAULT (_ULFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Enable Negative Edge Interrupt */
+#define _ULFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE_DEFAULT (_ULFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+
+/** @} End of group EFR32MG29_ULFRCO_BitFields */
+/** @} End of group EFR32MG29_ULFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_ULFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_usart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_usart.h
new file mode 100644
index 000000000..af87e1a6d
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_usart.h
@@ -0,0 +1,1431 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 USART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_USART_H
+#define EFR32MG29_USART_H
+#define USART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_USART USART
+ * @{
+ * @brief EFR32MG29 USART Register Declaration.
+ *****************************************************************************/
+
+/** USART Register Declaration. */
+typedef struct usart_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< USART Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t FRAME; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< USART Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Control Register */
+ __IM uint32_t RXDATAX; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL; /**< I2S Control Register */
+ __IOM uint32_t TIMING; /**< Timing Register */
+ __IOM uint32_t CTRLX; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2; /**< Timer Compare 2 */
+ uint32_t RESERVED0[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< USART Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t FRAME_SET; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_SET; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_SET; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_SET; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_SET; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_SET; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_SET; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_SET; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_SET; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_SET; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_SET; /**< I2S Control Register */
+ __IOM uint32_t TIMING_SET; /**< Timing Register */
+ __IOM uint32_t CTRLX_SET; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_SET; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_SET; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_SET; /**< Timer Compare 2 */
+ uint32_t RESERVED1[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< USART Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t FRAME_CLR; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_CLR; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_CLR; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_CLR; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_CLR; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_CLR; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_CLR; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_CLR; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_CLR; /**< I2S Control Register */
+ __IOM uint32_t TIMING_CLR; /**< Timing Register */
+ __IOM uint32_t CTRLX_CLR; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_CLR; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_CLR; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_CLR; /**< Timer Compare 2 */
+ uint32_t RESERVED2[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< USART Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t FRAME_TGL; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_TGL; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_TGL; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_TGL; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_TGL; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_TGL; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_TGL; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_TGL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_TGL; /**< I2S Control Register */
+ __IOM uint32_t TIMING_TGL; /**< Timing Register */
+ __IOM uint32_t CTRLX_TGL; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_TGL; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_TGL; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_TGL; /**< Timer Compare 2 */
+} USART_TypeDef;
+/** @} End of group EFR32MG29_USART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_USART
+ * @{
+ * @defgroup EFR32MG29_USART_BitFields USART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for USART IPVERSION */
+#define _USART_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for USART_IPVERSION */
+#define _USART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IPVERSION */
+#define USART_IPVERSION_IPVERSION_DEFAULT (_USART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IPVERSION */
+
+/* Bit fields for USART EN */
+#define _USART_EN_RESETVALUE 0x00000000UL /**< Default value for USART_EN */
+#define _USART_EN_MASK 0x00000001UL /**< Mask for USART_EN */
+#define USART_EN_EN (0x1UL << 0) /**< USART Enable */
+#define _USART_EN_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_EN_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_EN */
+#define USART_EN_EN_DEFAULT (_USART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_EN */
+
+/* Bit fields for USART CTRL */
+#define _USART_CTRL_RESETVALUE 0x00000000UL /**< Default value for USART_CTRL */
+#define _USART_CTRL_MASK 0xF3FFFF7FUL /**< Mask for USART_CTRL */
+#define USART_CTRL_SYNC (0x1UL << 0) /**< USART Synchronous Mode */
+#define _USART_CTRL_SYNC_SHIFT 0 /**< Shift value for USART_SYNC */
+#define _USART_CTRL_SYNC_MASK 0x1UL /**< Bit mask for USART_SYNC */
+#define _USART_CTRL_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_SYNC_DEFAULT (_USART_CTRL_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SYNC_DISABLE (_USART_CTRL_SYNC_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_SYNC_ENABLE (_USART_CTRL_SYNC_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _USART_CTRL_LOOPBK_SHIFT 1 /**< Shift value for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_MASK 0x2UL /**< Bit mask for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_DEFAULT (_USART_CTRL_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_LOOPBK_DISABLE (_USART_CTRL_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_ENABLE (_USART_CTRL_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _USART_CTRL_CCEN_SHIFT 2 /**< Shift value for USART_CCEN */
+#define _USART_CTRL_CCEN_MASK 0x4UL /**< Bit mask for USART_CCEN */
+#define _USART_CTRL_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN_DEFAULT (_USART_CTRL_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CCEN_DISABLE (_USART_CTRL_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CCEN_ENABLE (_USART_CTRL_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _USART_CTRL_MPM_SHIFT 3 /**< Shift value for USART_MPM */
+#define _USART_CTRL_MPM_MASK 0x8UL /**< Bit mask for USART_MPM */
+#define _USART_CTRL_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM_DEFAULT (_USART_CTRL_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPM_DISABLE (_USART_CTRL_MPM_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MPM_ENABLE (_USART_CTRL_MPM_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _USART_CTRL_MPAB_SHIFT 4 /**< Shift value for USART_MPAB */
+#define _USART_CTRL_MPAB_MASK 0x10UL /**< Bit mask for USART_MPAB */
+#define _USART_CTRL_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPAB_DEFAULT (_USART_CTRL_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_SHIFT 5 /**< Shift value for USART_OVS */
+#define _USART_CTRL_OVS_MASK 0x60UL /**< Bit mask for USART_OVS */
+#define _USART_CTRL_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_X16 0x00000000UL /**< Mode X16 for USART_CTRL */
+#define _USART_CTRL_OVS_X8 0x00000001UL /**< Mode X8 for USART_CTRL */
+#define _USART_CTRL_OVS_X6 0x00000002UL /**< Mode X6 for USART_CTRL */
+#define _USART_CTRL_OVS_X4 0x00000003UL /**< Mode X4 for USART_CTRL */
+#define USART_CTRL_OVS_DEFAULT (_USART_CTRL_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_OVS_X16 (_USART_CTRL_OVS_X16 << 5) /**< Shifted mode X16 for USART_CTRL */
+#define USART_CTRL_OVS_X8 (_USART_CTRL_OVS_X8 << 5) /**< Shifted mode X8 for USART_CTRL */
+#define USART_CTRL_OVS_X6 (_USART_CTRL_OVS_X6 << 5) /**< Shifted mode X6 for USART_CTRL */
+#define USART_CTRL_OVS_X4 (_USART_CTRL_OVS_X4 << 5) /**< Shifted mode X4 for USART_CTRL */
+#define USART_CTRL_CLKPOL (0x1UL << 8) /**< Clock Polarity */
+#define _USART_CTRL_CLKPOL_SHIFT 8 /**< Shift value for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_MASK 0x100UL /**< Bit mask for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPOL_DEFAULT (_USART_CTRL_CLKPOL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLELOW (_USART_CTRL_CLKPOL_IDLELOW << 8) /**< Shifted mode IDLELOW for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLEHIGH (_USART_CTRL_CLKPOL_IDLEHIGH << 8) /**< Shifted mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPHA (0x1UL << 9) /**< Clock Edge For Setup/Sample */
+#define _USART_CTRL_CLKPHA_SHIFT 9 /**< Shift value for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_MASK 0x200UL /**< Bit mask for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_CLKPHA_DEFAULT (_USART_CTRL_CLKPHA_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLELEADING (_USART_CTRL_CLKPHA_SAMPLELEADING << 9) /**< Shifted mode SAMPLELEADING for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLETRAILING (_USART_CTRL_CLKPHA_SAMPLETRAILING << 9) /**< Shifted mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _USART_CTRL_MSBF_SHIFT 10 /**< Shift value for USART_MSBF */
+#define _USART_CTRL_MSBF_MASK 0x400UL /**< Bit mask for USART_MSBF */
+#define _USART_CTRL_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MSBF_DEFAULT (_USART_CTRL_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MSBF_DISABLE (_USART_CTRL_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MSBF_ENABLE (_USART_CTRL_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSMA (0x1UL << 11) /**< Action On Chip Select In Main Mode */
+#define _USART_CTRL_CSMA_SHIFT 11 /**< Shift value for USART_CSMA */
+#define _USART_CTRL_CSMA_MASK 0x800UL /**< Bit mask for USART_CSMA */
+#define _USART_CTRL_CSMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSMA_NOACTION 0x00000000UL /**< Mode NOACTION for USART_CTRL */
+#define _USART_CTRL_CSMA_GOTOSLAVEMODE 0x00000001UL /**< Mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_CSMA_DEFAULT (_USART_CTRL_CSMA_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSMA_NOACTION (_USART_CTRL_CSMA_NOACTION << 11) /**< Shifted mode NOACTION for USART_CTRL */
+#define USART_CTRL_CSMA_GOTOSLAVEMODE (_USART_CTRL_CSMA_GOTOSLAVEMODE << 11) /**< Shifted mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_TXBIL (0x1UL << 12) /**< TX Buffer Interrupt Level */
+#define _USART_CTRL_TXBIL_SHIFT 12 /**< Shift value for USART_TXBIL */
+#define _USART_CTRL_TXBIL_MASK 0x1000UL /**< Bit mask for USART_TXBIL */
+#define _USART_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for USART_CTRL */
+#define _USART_CTRL_TXBIL_HALFFULL 0x00000001UL /**< Mode HALFFULL for USART_CTRL */
+#define USART_CTRL_TXBIL_DEFAULT (_USART_CTRL_TXBIL_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXBIL_EMPTY (_USART_CTRL_TXBIL_EMPTY << 12) /**< Shifted mode EMPTY for USART_CTRL */
+#define USART_CTRL_TXBIL_HALFFULL (_USART_CTRL_TXBIL_HALFFULL << 12) /**< Shifted mode HALFFULL for USART_CTRL */
+#define USART_CTRL_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _USART_CTRL_RXINV_SHIFT 13 /**< Shift value for USART_RXINV */
+#define _USART_CTRL_RXINV_MASK 0x2000UL /**< Bit mask for USART_RXINV */
+#define _USART_CTRL_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_RXINV_DEFAULT (_USART_CTRL_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_RXINV_DISABLE (_USART_CTRL_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_RXINV_ENABLE (_USART_CTRL_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _USART_CTRL_TXINV_SHIFT 14 /**< Shift value for USART_TXINV */
+#define _USART_CTRL_TXINV_MASK 0x4000UL /**< Bit mask for USART_TXINV */
+#define _USART_CTRL_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV_DEFAULT (_USART_CTRL_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXINV_DISABLE (_USART_CTRL_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_TXINV_ENABLE (_USART_CTRL_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV (0x1UL << 15) /**< Chip Select Invert */
+#define _USART_CTRL_CSINV_SHIFT 15 /**< Shift value for USART_CSINV */
+#define _USART_CTRL_CSINV_MASK 0x8000UL /**< Bit mask for USART_CSINV */
+#define _USART_CTRL_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV_DEFAULT (_USART_CTRL_CSINV_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSINV_DISABLE (_USART_CTRL_CSINV_DISABLE << 15) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CSINV_ENABLE (_USART_CTRL_CSINV_ENABLE << 15) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOCS (0x1UL << 16) /**< Automatic Chip Select */
+#define _USART_CTRL_AUTOCS_SHIFT 16 /**< Shift value for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_MASK 0x10000UL /**< Bit mask for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOCS_DEFAULT (_USART_CTRL_AUTOCS_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _USART_CTRL_AUTOTRI_SHIFT 17 /**< Shift value for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_MASK 0x20000UL /**< Bit mask for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DEFAULT (_USART_CTRL_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DISABLE (_USART_CTRL_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_ENABLE (_USART_CTRL_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SCMODE (0x1UL << 18) /**< SmartCard Mode */
+#define _USART_CTRL_SCMODE_SHIFT 18 /**< Shift value for USART_SCMODE */
+#define _USART_CTRL_SCMODE_MASK 0x40000UL /**< Bit mask for USART_SCMODE */
+#define _USART_CTRL_SCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCMODE_DEFAULT (_USART_CTRL_SCMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS (0x1UL << 19) /**< SmartCard Retransmit */
+#define _USART_CTRL_SCRETRANS_SHIFT 19 /**< Shift value for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_MASK 0x80000UL /**< Bit mask for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS_DEFAULT (_USART_CTRL_SCRETRANS_DEFAULT << 19) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _USART_CTRL_SKIPPERRF_SHIFT 20 /**< Shift value for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_MASK 0x100000UL /**< Bit mask for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF_DEFAULT (_USART_CTRL_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV (0x1UL << 21) /**< Bit 8 Default Value */
+#define _USART_CTRL_BIT8DV_SHIFT 21 /**< Shift value for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_MASK 0x200000UL /**< Bit mask for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV_DEFAULT (_USART_CTRL_BIT8DV_DEFAULT << 21) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA (0x1UL << 22) /**< Halt DMA On Error */
+#define _USART_CTRL_ERRSDMA_SHIFT 22 /**< Shift value for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_MASK 0x400000UL /**< Bit mask for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DEFAULT (_USART_CTRL_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DISABLE (_USART_CTRL_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_ENABLE (_USART_CTRL_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _USART_CTRL_ERRSRX_SHIFT 23 /**< Shift value for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_MASK 0x800000UL /**< Bit mask for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_DEFAULT (_USART_CTRL_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSRX_DISABLE (_USART_CTRL_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_ENABLE (_USART_CTRL_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _USART_CTRL_ERRSTX_SHIFT 24 /**< Shift value for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_MASK 0x1000000UL /**< Bit mask for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_DEFAULT (_USART_CTRL_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSTX_DISABLE (_USART_CTRL_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_ENABLE (_USART_CTRL_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SSSEARLY (0x1UL << 25) /**< Synchronous Secondary Setup Early */
+#define _USART_CTRL_SSSEARLY_SHIFT 25 /**< Shift value for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_MASK 0x2000000UL /**< Bit mask for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SSSEARLY_DEFAULT (_USART_CTRL_SSSEARLY_DEFAULT << 25) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP (0x1UL << 28) /**< Byteswap In Double Accesses */
+#define _USART_CTRL_BYTESWAP_SHIFT 28 /**< Shift value for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_MASK 0x10000000UL /**< Bit mask for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DEFAULT (_USART_CTRL_BYTESWAP_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DISABLE (_USART_CTRL_BYTESWAP_DISABLE << 28) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_ENABLE (_USART_CTRL_BYTESWAP_ENABLE << 28) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTX (0x1UL << 29) /**< Always Transmit When RX Not Full */
+#define _USART_CTRL_AUTOTX_SHIFT 29 /**< Shift value for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_MASK 0x20000000UL /**< Bit mask for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTX_DEFAULT (_USART_CTRL_AUTOTX_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _USART_CTRL_MVDIS_SHIFT 30 /**< Shift value for USART_MVDIS */
+#define _USART_CTRL_MVDIS_MASK 0x40000000UL /**< Bit mask for USART_MVDIS */
+#define _USART_CTRL_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS_DEFAULT (_USART_CTRL_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY (0x1UL << 31) /**< Synchronous Main Sample Delay */
+#define _USART_CTRL_SMSDELAY_SHIFT 31 /**< Shift value for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_MASK 0x80000000UL /**< Bit mask for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY_DEFAULT (_USART_CTRL_SMSDELAY_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CTRL */
+
+/* Bit fields for USART FRAME */
+#define _USART_FRAME_RESETVALUE 0x00001005UL /**< Default value for USART_FRAME */
+#define _USART_FRAME_MASK 0x0000330FUL /**< Mask for USART_FRAME */
+#define _USART_FRAME_DATABITS_SHIFT 0 /**< Shift value for USART_DATABITS */
+#define _USART_FRAME_DATABITS_MASK 0xFUL /**< Bit mask for USART_DATABITS */
+#define _USART_FRAME_DATABITS_DEFAULT 0x00000005UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOUR 0x00000001UL /**< Mode FOUR for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIVE 0x00000002UL /**< Mode FIVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIX 0x00000003UL /**< Mode SIX for USART_FRAME */
+#define _USART_FRAME_DATABITS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_EIGHT 0x00000005UL /**< Mode EIGHT for USART_FRAME */
+#define _USART_FRAME_DATABITS_NINE 0x00000006UL /**< Mode NINE for USART_FRAME */
+#define _USART_FRAME_DATABITS_TEN 0x00000007UL /**< Mode TEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_ELEVEN 0x00000008UL /**< Mode ELEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_TWELVE 0x00000009UL /**< Mode TWELVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_THIRTEEN 0x0000000AUL /**< Mode THIRTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOURTEEN 0x0000000BUL /**< Mode FOURTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIFTEEN 0x0000000CUL /**< Mode FIFTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIXTEEN 0x0000000DUL /**< Mode SIXTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_DEFAULT (_USART_FRAME_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_DATABITS_FOUR (_USART_FRAME_DATABITS_FOUR << 0) /**< Shifted mode FOUR for USART_FRAME */
+#define USART_FRAME_DATABITS_FIVE (_USART_FRAME_DATABITS_FIVE << 0) /**< Shifted mode FIVE for USART_FRAME */
+#define USART_FRAME_DATABITS_SIX (_USART_FRAME_DATABITS_SIX << 0) /**< Shifted mode SIX for USART_FRAME */
+#define USART_FRAME_DATABITS_SEVEN (_USART_FRAME_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_EIGHT (_USART_FRAME_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for USART_FRAME */
+#define USART_FRAME_DATABITS_NINE (_USART_FRAME_DATABITS_NINE << 0) /**< Shifted mode NINE for USART_FRAME */
+#define USART_FRAME_DATABITS_TEN (_USART_FRAME_DATABITS_TEN << 0) /**< Shifted mode TEN for USART_FRAME */
+#define USART_FRAME_DATABITS_ELEVEN (_USART_FRAME_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_TWELVE (_USART_FRAME_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for USART_FRAME */
+#define USART_FRAME_DATABITS_THIRTEEN (_USART_FRAME_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FOURTEEN (_USART_FRAME_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FIFTEEN (_USART_FRAME_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_SIXTEEN (_USART_FRAME_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for USART_FRAME */
+#define _USART_FRAME_PARITY_SHIFT 8 /**< Shift value for USART_PARITY */
+#define _USART_FRAME_PARITY_MASK 0x300UL /**< Bit mask for USART_PARITY */
+#define _USART_FRAME_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_PARITY_NONE 0x00000000UL /**< Mode NONE for USART_FRAME */
+#define _USART_FRAME_PARITY_EVEN 0x00000002UL /**< Mode EVEN for USART_FRAME */
+#define _USART_FRAME_PARITY_ODD 0x00000003UL /**< Mode ODD for USART_FRAME */
+#define USART_FRAME_PARITY_DEFAULT (_USART_FRAME_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_PARITY_NONE (_USART_FRAME_PARITY_NONE << 8) /**< Shifted mode NONE for USART_FRAME */
+#define USART_FRAME_PARITY_EVEN (_USART_FRAME_PARITY_EVEN << 8) /**< Shifted mode EVEN for USART_FRAME */
+#define USART_FRAME_PARITY_ODD (_USART_FRAME_PARITY_ODD << 8) /**< Shifted mode ODD for USART_FRAME */
+#define _USART_FRAME_STOPBITS_SHIFT 12 /**< Shift value for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_MASK 0x3000UL /**< Bit mask for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_STOPBITS_HALF 0x00000000UL /**< Mode HALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONE 0x00000001UL /**< Mode ONE for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_TWO 0x00000003UL /**< Mode TWO for USART_FRAME */
+#define USART_FRAME_STOPBITS_DEFAULT (_USART_FRAME_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_STOPBITS_HALF (_USART_FRAME_STOPBITS_HALF << 12) /**< Shifted mode HALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONE (_USART_FRAME_STOPBITS_ONE << 12) /**< Shifted mode ONE for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONEANDAHALF (_USART_FRAME_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_TWO (_USART_FRAME_STOPBITS_TWO << 12) /**< Shifted mode TWO for USART_FRAME */
+
+/* Bit fields for USART TRIGCTRL */
+#define _USART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_TRIGCTRL */
+#define _USART_TRIGCTRL_MASK 0x00001FF0UL /**< Mask for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN (0x1UL << 4) /**< Receive Trigger Enable */
+#define _USART_TRIGCTRL_RXTEN_SHIFT 4 /**< Shift value for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_MASK 0x10UL /**< Bit mask for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN_DEFAULT (_USART_TRIGCTRL_RXTEN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN (0x1UL << 5) /**< Transmit Trigger Enable */
+#define _USART_TRIGCTRL_TXTEN_SHIFT 5 /**< Shift value for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_MASK 0x20UL /**< Bit mask for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN_DEFAULT (_USART_TRIGCTRL_TXTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN (0x1UL << 6) /**< AUTOTX Trigger Enable */
+#define _USART_TRIGCTRL_AUTOTXTEN_SHIFT 6 /**< Shift value for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_MASK 0x40UL /**< Bit mask for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN_DEFAULT (_USART_TRIGCTRL_AUTOTXTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN (0x1UL << 7) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX0EN_SHIFT 7 /**< Shift value for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_MASK 0x80UL /**< Bit mask for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN_DEFAULT (_USART_TRIGCTRL_TXARX0EN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN (0x1UL << 8) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX1EN_SHIFT 8 /**< Shift value for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_MASK 0x100UL /**< Bit mask for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN_DEFAULT (_USART_TRIGCTRL_TXARX1EN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN (0x1UL << 9) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX2EN_SHIFT 9 /**< Shift value for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_MASK 0x200UL /**< Bit mask for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN_DEFAULT (_USART_TRIGCTRL_TXARX2EN_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN (0x1UL << 10) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX0EN_SHIFT 10 /**< Shift value for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_MASK 0x400UL /**< Bit mask for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN_DEFAULT (_USART_TRIGCTRL_RXATX0EN_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN (0x1UL << 11) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX1EN_SHIFT 11 /**< Shift value for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_MASK 0x800UL /**< Bit mask for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN_DEFAULT (_USART_TRIGCTRL_RXATX1EN_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN (0x1UL << 12) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX2EN_SHIFT 12 /**< Shift value for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_MASK 0x1000UL /**< Bit mask for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN_DEFAULT (_USART_TRIGCTRL_RXATX2EN_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+
+/* Bit fields for USART CMD */
+#define _USART_CMD_RESETVALUE 0x00000000UL /**< Default value for USART_CMD */
+#define _USART_CMD_MASK 0x00000FFFUL /**< Mask for USART_CMD */
+#define USART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _USART_CMD_RXEN_SHIFT 0 /**< Shift value for USART_RXEN */
+#define _USART_CMD_RXEN_MASK 0x1UL /**< Bit mask for USART_RXEN */
+#define _USART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXEN_DEFAULT (_USART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _USART_CMD_RXDIS_SHIFT 1 /**< Shift value for USART_RXDIS */
+#define _USART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for USART_RXDIS */
+#define _USART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS_DEFAULT (_USART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _USART_CMD_TXEN_SHIFT 2 /**< Shift value for USART_TXEN */
+#define _USART_CMD_TXEN_MASK 0x4UL /**< Bit mask for USART_TXEN */
+#define _USART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN_DEFAULT (_USART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _USART_CMD_TXDIS_SHIFT 3 /**< Shift value for USART_TXDIS */
+#define _USART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for USART_TXDIS */
+#define _USART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS_DEFAULT (_USART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN (0x1UL << 4) /**< Main Mode Enable */
+#define _USART_CMD_MASTEREN_SHIFT 4 /**< Shift value for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_MASK 0x10UL /**< Bit mask for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN_DEFAULT (_USART_CMD_MASTEREN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS (0x1UL << 5) /**< Main Mode Disable */
+#define _USART_CMD_MASTERDIS_SHIFT 5 /**< Shift value for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_MASK 0x20UL /**< Bit mask for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS_DEFAULT (_USART_CMD_MASTERDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN (0x1UL << 6) /**< Receiver Block Enable */
+#define _USART_CMD_RXBLOCKEN_SHIFT 6 /**< Shift value for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_MASK 0x40UL /**< Bit mask for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN_DEFAULT (_USART_CMD_RXBLOCKEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS (0x1UL << 7) /**< Receiver Block Disable */
+#define _USART_CMD_RXBLOCKDIS_SHIFT 7 /**< Shift value for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_MASK 0x80UL /**< Bit mask for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS_DEFAULT (_USART_CMD_RXBLOCKDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN (0x1UL << 8) /**< Transmitter Tristate Enable */
+#define _USART_CMD_TXTRIEN_SHIFT 8 /**< Shift value for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_MASK 0x100UL /**< Bit mask for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN_DEFAULT (_USART_CMD_TXTRIEN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS (0x1UL << 9) /**< Transmitter Tristate Disable */
+#define _USART_CMD_TXTRIDIS_SHIFT 9 /**< Shift value for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_MASK 0x200UL /**< Bit mask for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS_DEFAULT (_USART_CMD_TXTRIDIS_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX (0x1UL << 10) /**< Clear TX */
+#define _USART_CMD_CLEARTX_SHIFT 10 /**< Shift value for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_MASK 0x400UL /**< Bit mask for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX_DEFAULT (_USART_CMD_CLEARTX_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX (0x1UL << 11) /**< Clear RX */
+#define _USART_CMD_CLEARRX_SHIFT 11 /**< Shift value for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_MASK 0x800UL /**< Bit mask for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX_DEFAULT (_USART_CMD_CLEARRX_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CMD */
+
+/* Bit fields for USART STATUS */
+#define _USART_STATUS_RESETVALUE 0x00002040UL /**< Default value for USART_STATUS */
+#define _USART_STATUS_MASK 0x00037FFFUL /**< Mask for USART_STATUS */
+#define USART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _USART_STATUS_RXENS_SHIFT 0 /**< Shift value for USART_RXENS */
+#define _USART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for USART_RXENS */
+#define _USART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXENS_DEFAULT (_USART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _USART_STATUS_TXENS_SHIFT 1 /**< Shift value for USART_TXENS */
+#define _USART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for USART_TXENS */
+#define _USART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS_DEFAULT (_USART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER (0x1UL << 2) /**< SPI Main Mode */
+#define _USART_STATUS_MASTER_SHIFT 2 /**< Shift value for USART_MASTER */
+#define _USART_STATUS_MASTER_MASK 0x4UL /**< Bit mask for USART_MASTER */
+#define _USART_STATUS_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER_DEFAULT (_USART_STATUS_MASTER_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _USART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK_DEFAULT (_USART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _USART_STATUS_TXTRI_SHIFT 4 /**< Shift value for USART_TXTRI */
+#define _USART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for USART_TXTRI */
+#define _USART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI_DEFAULT (_USART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _USART_STATUS_TXC_SHIFT 5 /**< Shift value for USART_TXC */
+#define _USART_STATUS_TXC_MASK 0x20UL /**< Bit mask for USART_TXC */
+#define _USART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC_DEFAULT (_USART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL (0x1UL << 6) /**< TX Buffer Level */
+#define _USART_STATUS_TXBL_SHIFT 6 /**< Shift value for USART_TXBL */
+#define _USART_STATUS_TXBL_MASK 0x40UL /**< Bit mask for USART_TXBL */
+#define _USART_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL_DEFAULT (_USART_STATUS_TXBL_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV (0x1UL << 7) /**< RX Data Valid */
+#define _USART_STATUS_RXDATAV_SHIFT 7 /**< Shift value for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_MASK 0x80UL /**< Bit mask for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV_DEFAULT (_USART_STATUS_RXDATAV_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _USART_STATUS_RXFULL_SHIFT 8 /**< Shift value for USART_RXFULL */
+#define _USART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for USART_RXFULL */
+#define _USART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL_DEFAULT (_USART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT (0x1UL << 9) /**< TX Buffer Expects Double Right Data */
+#define _USART_STATUS_TXBDRIGHT_SHIFT 9 /**< Shift value for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_MASK 0x200UL /**< Bit mask for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT_DEFAULT (_USART_STATUS_TXBDRIGHT_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT (0x1UL << 10) /**< TX Buffer Expects Single Right Data */
+#define _USART_STATUS_TXBSRIGHT_SHIFT 10 /**< Shift value for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_MASK 0x400UL /**< Bit mask for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT_DEFAULT (_USART_STATUS_TXBSRIGHT_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT (0x1UL << 11) /**< RX Data Right */
+#define _USART_STATUS_RXDATAVRIGHT_SHIFT 11 /**< Shift value for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_MASK 0x800UL /**< Bit mask for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT_DEFAULT (_USART_STATUS_RXDATAVRIGHT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT (0x1UL << 12) /**< RX Full of Right Data */
+#define _USART_STATUS_RXFULLRIGHT_SHIFT 12 /**< Shift value for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_MASK 0x1000UL /**< Bit mask for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT_DEFAULT (_USART_STATUS_RXFULLRIGHT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _USART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE_DEFAULT (_USART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED (0x1UL << 14) /**< The USART Timer restarted itself */
+#define _USART_STATUS_TIMERRESTARTED_SHIFT 14 /**< Shift value for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_MASK 0x4000UL /**< Bit mask for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED_DEFAULT (_USART_STATUS_TIMERRESTARTED_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_STATUS */
+#define _USART_STATUS_TXBUFCNT_SHIFT 16 /**< Shift value for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_MASK 0x30000UL /**< Bit mask for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBUFCNT_DEFAULT (_USART_STATUS_TXBUFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_STATUS */
+
+/* Bit fields for USART CLKDIV */
+#define _USART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for USART_CLKDIV */
+#define _USART_CLKDIV_MASK 0x807FFFF8UL /**< Mask for USART_CLKDIV */
+#define _USART_CLKDIV_DIV_SHIFT 3 /**< Shift value for USART_DIV */
+#define _USART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for USART_DIV */
+#define _USART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_DIV_DEFAULT (_USART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _USART_CLKDIV_AUTOBAUDEN_SHIFT 31 /**< Shift value for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN_DEFAULT (_USART_CLKDIV_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CLKDIV */
+
+/* Bit fields for USART RXDATAX */
+#define _USART_RXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAX */
+#define _USART_RXDATAX_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAX */
+#define _USART_RXDATAX_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_MASK 0x1FFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_RXDATA_DEFAULT (_USART_RXDATAX_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR (0x1UL << 14) /**< Data Parity Error */
+#define _USART_RXDATAX_PERR_SHIFT 14 /**< Shift value for USART_PERR */
+#define _USART_RXDATAX_PERR_MASK 0x4000UL /**< Bit mask for USART_PERR */
+#define _USART_RXDATAX_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR_DEFAULT (_USART_RXDATAX_PERR_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR (0x1UL << 15) /**< Data Framing Error */
+#define _USART_RXDATAX_FERR_SHIFT 15 /**< Shift value for USART_FERR */
+#define _USART_RXDATAX_FERR_MASK 0x8000UL /**< Bit mask for USART_FERR */
+#define _USART_RXDATAX_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR_DEFAULT (_USART_RXDATAX_FERR_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAX */
+
+/* Bit fields for USART RXDATA */
+#define _USART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATA */
+#define _USART_RXDATA_MASK 0x000000FFUL /**< Mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATA */
+#define USART_RXDATA_RXDATA_DEFAULT (_USART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATA */
+
+/* Bit fields for USART RXDOUBLEX */
+#define _USART_RXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_MASK 0x1FFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA0_DEFAULT (_USART_RXDOUBLEX_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0 (0x1UL << 14) /**< Data Parity Error 0 */
+#define _USART_RXDOUBLEX_PERR0_SHIFT 14 /**< Shift value for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_MASK 0x4000UL /**< Bit mask for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0_DEFAULT (_USART_RXDOUBLEX_PERR0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0 (0x1UL << 15) /**< Data Framing Error 0 */
+#define _USART_RXDOUBLEX_FERR0_SHIFT 15 /**< Shift value for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_MASK 0x8000UL /**< Bit mask for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0_DEFAULT (_USART_RXDOUBLEX_FERR0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA1_SHIFT 16 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA1_DEFAULT (_USART_RXDOUBLEX_RXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1 (0x1UL << 30) /**< Data Parity Error 1 */
+#define _USART_RXDOUBLEX_PERR1_SHIFT 30 /**< Shift value for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_MASK 0x40000000UL /**< Bit mask for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1_DEFAULT (_USART_RXDOUBLEX_PERR1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1 (0x1UL << 31) /**< Data Framing Error 1 */
+#define _USART_RXDOUBLEX_FERR1_SHIFT 31 /**< Shift value for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_MASK 0x80000000UL /**< Bit mask for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1_DEFAULT (_USART_RXDOUBLEX_FERR1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+
+/* Bit fields for USART RXDOUBLE */
+#define _USART_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA0_DEFAULT (_USART_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA1_DEFAULT (_USART_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+
+/* Bit fields for USART RXDATAXP */
+#define _USART_RXDATAXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAXP */
+#define _USART_RXDATAXP_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAXP */
+#define _USART_RXDATAXP_RXDATAP_SHIFT 0 /**< Shift value for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_RXDATAP_DEFAULT (_USART_RXDATAXP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP (0x1UL << 14) /**< Data Parity Error Peek */
+#define _USART_RXDATAXP_PERRP_SHIFT 14 /**< Shift value for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_MASK 0x4000UL /**< Bit mask for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP_DEFAULT (_USART_RXDATAXP_PERRP_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP (0x1UL << 15) /**< Data Framing Error Peek */
+#define _USART_RXDATAXP_FERRP_SHIFT 15 /**< Shift value for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_MASK 0x8000UL /**< Bit mask for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP_DEFAULT (_USART_RXDATAXP_FERRP_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+
+/* Bit fields for USART RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP0_SHIFT 0 /**< Shift value for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP0_DEFAULT (_USART_RXDOUBLEXP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0 (0x1UL << 14) /**< Data Parity Error 0 Peek */
+#define _USART_RXDOUBLEXP_PERRP0_SHIFT 14 /**< Shift value for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_MASK 0x4000UL /**< Bit mask for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0_DEFAULT (_USART_RXDOUBLEXP_PERRP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0 (0x1UL << 15) /**< Data Framing Error 0 Peek */
+#define _USART_RXDOUBLEXP_FERRP0_SHIFT 15 /**< Shift value for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_MASK 0x8000UL /**< Bit mask for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0_DEFAULT (_USART_RXDOUBLEXP_FERRP0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP1_SHIFT 16 /**< Shift value for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP1_DEFAULT (_USART_RXDOUBLEXP_RXDATAP1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1 (0x1UL << 30) /**< Data Parity Error 1 Peek */
+#define _USART_RXDOUBLEXP_PERRP1_SHIFT 30 /**< Shift value for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_MASK 0x40000000UL /**< Bit mask for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1_DEFAULT (_USART_RXDOUBLEXP_PERRP1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1 (0x1UL << 31) /**< Data Framing Error 1 Peek */
+#define _USART_RXDOUBLEXP_FERRP1_SHIFT 31 /**< Shift value for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_MASK 0x80000000UL /**< Bit mask for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1_DEFAULT (_USART_RXDOUBLEXP_FERRP1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+
+/* Bit fields for USART TXDATAX */
+#define _USART_TXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATAX */
+#define _USART_TXDATAX_MASK 0x0000F9FFUL /**< Mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_SHIFT 0 /**< Shift value for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_MASK 0x1FFUL /**< Bit mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDATAX_DEFAULT (_USART_TXDATAX_TXDATAX_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDATAX_UBRXAT_SHIFT 11 /**< Shift value for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_MASK 0x800UL /**< Bit mask for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT_DEFAULT (_USART_TXDATAX_UBRXAT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDATAX_TXTRIAT_SHIFT 12 /**< Shift value for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT_DEFAULT (_USART_TXDATAX_TXTRIAT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDATAX_TXBREAK_SHIFT 13 /**< Shift value for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_MASK 0x2000UL /**< Bit mask for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK_DEFAULT (_USART_TXDATAX_TXBREAK_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDATAX_TXDISAT_SHIFT 14 /**< Shift value for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_MASK 0x4000UL /**< Bit mask for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT_DEFAULT (_USART_TXDATAX_TXDISAT_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDATAX_RXENAT_SHIFT 15 /**< Shift value for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_MASK 0x8000UL /**< Bit mask for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT_DEFAULT (_USART_TXDATAX_RXENAT_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDATAX */
+
+/* Bit fields for USART TXDATA */
+#define _USART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATA */
+#define _USART_TXDATA_MASK 0x000000FFUL /**< Mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATA */
+#define USART_TXDATA_TXDATA_DEFAULT (_USART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATA */
+
+/* Bit fields for USART TXDOUBLEX */
+#define _USART_TXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_MASK 0xF9FFF9FFUL /**< Mask for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_MASK 0x1FFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA0_DEFAULT (_USART_TXDOUBLEX_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0 (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT0_SHIFT 11 /**< Shift value for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_MASK 0x800UL /**< Bit mask for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0_DEFAULT (_USART_TXDOUBLEX_UBRXAT0_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0 (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT0_SHIFT 12 /**< Shift value for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0_DEFAULT (_USART_TXDOUBLEX_TXTRIAT0_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0 (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK0_SHIFT 13 /**< Shift value for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_MASK 0x2000UL /**< Bit mask for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0_DEFAULT (_USART_TXDOUBLEX_TXBREAK0_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0 (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT0_SHIFT 14 /**< Shift value for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_MASK 0x4000UL /**< Bit mask for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0_DEFAULT (_USART_TXDOUBLEX_TXDISAT0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0 (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT0_SHIFT 15 /**< Shift value for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_MASK 0x8000UL /**< Bit mask for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0_DEFAULT (_USART_TXDOUBLEX_RXENAT0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA1_SHIFT 16 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA1_DEFAULT (_USART_TXDOUBLEX_TXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1 (0x1UL << 27) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT1_SHIFT 27 /**< Shift value for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_MASK 0x8000000UL /**< Bit mask for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1_DEFAULT (_USART_TXDOUBLEX_UBRXAT1_DEFAULT << 27) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1 (0x1UL << 28) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT1_SHIFT 28 /**< Shift value for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_MASK 0x10000000UL /**< Bit mask for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1_DEFAULT (_USART_TXDOUBLEX_TXTRIAT1_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1 (0x1UL << 29) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK1_SHIFT 29 /**< Shift value for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_MASK 0x20000000UL /**< Bit mask for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1_DEFAULT (_USART_TXDOUBLEX_TXBREAK1_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1 (0x1UL << 30) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT1_SHIFT 30 /**< Shift value for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_MASK 0x40000000UL /**< Bit mask for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1_DEFAULT (_USART_TXDOUBLEX_TXDISAT1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1 (0x1UL << 31) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT1_SHIFT 31 /**< Shift value for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_MASK 0x80000000UL /**< Bit mask for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1_DEFAULT (_USART_TXDOUBLEX_RXENAT1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+
+/* Bit fields for USART TXDOUBLE */
+#define _USART_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA0_DEFAULT (_USART_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA1_DEFAULT (_USART_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+
+/* Bit fields for USART IF */
+#define _USART_IF_RESETVALUE 0x00000002UL /**< Default value for USART_IF */
+#define _USART_IF_MASK 0x0001FFFFUL /**< Mask for USART_IF */
+#define USART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _USART_IF_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IF_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXC_DEFAULT (_USART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Flag */
+#define _USART_IF_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IF_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IF_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXBL_DEFAULT (_USART_IF_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Flag */
+#define _USART_IF_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IF_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV_DEFAULT (_USART_IF_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Flag */
+#define _USART_IF_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IF_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL_DEFAULT (_USART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Flag */
+#define _USART_IF_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IF_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXOF_DEFAULT (_USART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Flag */
+#define _USART_IF_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IF_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXUF_DEFAULT (_USART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Flag */
+#define _USART_IF_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IF_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXOF_DEFAULT (_USART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Flag */
+#define _USART_IF_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IF_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXUF_DEFAULT (_USART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _USART_IF_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IF_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_PERR_DEFAULT (_USART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _USART_IF_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IF_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_FERR_DEFAULT (_USART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IF_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IF_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_MPAF_DEFAULT (_USART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IF_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IF_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IF_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_SSM_DEFAULT (_USART_IF_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _USART_IF_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IF_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_CCF_DEFAULT (_USART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _USART_IF_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE_DEFAULT (_USART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Flag */
+#define _USART_IF_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IF_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IF_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0_DEFAULT (_USART_IF_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Flag */
+#define _USART_IF_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IF_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IF_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1_DEFAULT (_USART_IF_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Flag */
+#define _USART_IF_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IF_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IF_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2_DEFAULT (_USART_IF_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IF */
+
+/* Bit fields for USART IEN */
+#define _USART_IEN_RESETVALUE 0x00000000UL /**< Default value for USART_IEN */
+#define _USART_IEN_MASK 0x0001FFFFUL /**< Mask for USART_IEN */
+#define USART_IEN_TXC (0x1UL << 0) /**< TX Complete Interrupt Enable */
+#define _USART_IEN_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IEN_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXC_DEFAULT (_USART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Enable */
+#define _USART_IEN_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IEN_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL_DEFAULT (_USART_IEN_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Enable */
+#define _USART_IEN_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV_DEFAULT (_USART_IEN_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Enable */
+#define _USART_IEN_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL_DEFAULT (_USART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Enable */
+#define _USART_IEN_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IEN_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF_DEFAULT (_USART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Enable */
+#define _USART_IEN_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IEN_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF_DEFAULT (_USART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Enable */
+#define _USART_IEN_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IEN_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF_DEFAULT (_USART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Enable */
+#define _USART_IEN_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IEN_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF_DEFAULT (_USART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR (0x1UL << 8) /**< Parity Error Interrupt Enable */
+#define _USART_IEN_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IEN_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR_DEFAULT (_USART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR (0x1UL << 9) /**< Framing Error Interrupt Enable */
+#define _USART_IEN_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IEN_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR_DEFAULT (_USART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IEN_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IEN_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF_DEFAULT (_USART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IEN_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IEN_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IEN_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM_DEFAULT (_USART_IEN_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Enable */
+#define _USART_IEN_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IEN_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF_DEFAULT (_USART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Enable */
+#define _USART_IEN_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE_DEFAULT (_USART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Enable */
+#define _USART_IEN_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IEN_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IEN_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0_DEFAULT (_USART_IEN_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Enable */
+#define _USART_IEN_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IEN_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IEN_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1_DEFAULT (_USART_IEN_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Enable */
+#define _USART_IEN_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IEN_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IEN_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2_DEFAULT (_USART_IEN_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IEN */
+
+/* Bit fields for USART IRCTRL */
+#define _USART_IRCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_IRCTRL */
+#define _USART_IRCTRL_MASK 0x0000008FUL /**< Mask for USART_IRCTRL */
+#define USART_IRCTRL_IREN (0x1UL << 0) /**< Enable IrDA Module */
+#define _USART_IRCTRL_IREN_SHIFT 0 /**< Shift value for USART_IREN */
+#define _USART_IRCTRL_IREN_MASK 0x1UL /**< Bit mask for USART_IREN */
+#define _USART_IRCTRL_IREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IREN_DEFAULT (_USART_IRCTRL_IREN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_SHIFT 1 /**< Shift value for USART_IRPW */
+#define _USART_IRCTRL_IRPW_MASK 0x6UL /**< Bit mask for USART_IRPW */
+#define _USART_IRCTRL_IRPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_ONE 0x00000000UL /**< Mode ONE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_TWO 0x00000001UL /**< Mode TWO for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_THREE 0x00000002UL /**< Mode THREE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_FOUR 0x00000003UL /**< Mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_DEFAULT (_USART_IRCTRL_IRPW_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_ONE (_USART_IRCTRL_IRPW_ONE << 1) /**< Shifted mode ONE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_TWO (_USART_IRCTRL_IRPW_TWO << 1) /**< Shifted mode TWO for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_THREE (_USART_IRCTRL_IRPW_THREE << 1) /**< Shifted mode THREE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_FOUR (_USART_IRCTRL_IRPW_FOUR << 1) /**< Shifted mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _USART_IRCTRL_IRFILT_SHIFT 3 /**< Shift value for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_MASK 0x8UL /**< Bit mask for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DEFAULT (_USART_IRCTRL_IRFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DISABLE (_USART_IRCTRL_IRFILT_DISABLE << 3) /**< Shifted mode DISABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_ENABLE (_USART_IRCTRL_IRFILT_ENABLE << 3) /**< Shifted mode ENABLE for USART_IRCTRL */
+
+/* Bit fields for USART I2SCTRL */
+#define _USART_I2SCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_I2SCTRL */
+#define _USART_I2SCTRL_MASK 0x0000071FUL /**< Mask for USART_I2SCTRL */
+#define USART_I2SCTRL_EN (0x1UL << 0) /**< Enable I2S Mode */
+#define _USART_I2SCTRL_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_I2SCTRL_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_I2SCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_EN_DEFAULT (_USART_I2SCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO (0x1UL << 1) /**< Stero or Mono */
+#define _USART_I2SCTRL_MONO_SHIFT 1 /**< Shift value for USART_MONO */
+#define _USART_I2SCTRL_MONO_MASK 0x2UL /**< Bit mask for USART_MONO */
+#define _USART_I2SCTRL_MONO_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO_DEFAULT (_USART_I2SCTRL_MONO_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY (0x1UL << 2) /**< Justification of I2S Data */
+#define _USART_I2SCTRL_JUSTIFY_SHIFT 2 /**< Shift value for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_MASK 0x4UL /**< Bit mask for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_LEFT 0x00000000UL /**< Mode LEFT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_RIGHT 0x00000001UL /**< Mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_DEFAULT (_USART_I2SCTRL_JUSTIFY_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_LEFT (_USART_I2SCTRL_JUSTIFY_LEFT << 2) /**< Shifted mode LEFT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_RIGHT (_USART_I2SCTRL_JUSTIFY_RIGHT << 2) /**< Shifted mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT (0x1UL << 3) /**< Separate DMA Request For Left/Right Data */
+#define _USART_I2SCTRL_DMASPLIT_SHIFT 3 /**< Shift value for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_MASK 0x8UL /**< Bit mask for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT_DEFAULT (_USART_I2SCTRL_DMASPLIT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY (0x1UL << 4) /**< Delay on I2S data */
+#define _USART_I2SCTRL_DELAY_SHIFT 4 /**< Shift value for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_MASK 0x10UL /**< Bit mask for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY_DEFAULT (_USART_I2SCTRL_DELAY_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_SHIFT 8 /**< Shift value for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_MASK 0x700UL /**< Bit mask for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D32 0x00000000UL /**< Mode W32D32 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24M 0x00000001UL /**< Mode W32D24M for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24 0x00000002UL /**< Mode W32D24 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D16 0x00000003UL /**< Mode W32D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D8 0x00000004UL /**< Mode W32D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D16 0x00000005UL /**< Mode W16D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D8 0x00000006UL /**< Mode W16D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W8D8 0x00000007UL /**< Mode W8D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_DEFAULT (_USART_I2SCTRL_FORMAT_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D32 (_USART_I2SCTRL_FORMAT_W32D32 << 8) /**< Shifted mode W32D32 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24M (_USART_I2SCTRL_FORMAT_W32D24M << 8) /**< Shifted mode W32D24M for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24 (_USART_I2SCTRL_FORMAT_W32D24 << 8) /**< Shifted mode W32D24 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D16 (_USART_I2SCTRL_FORMAT_W32D16 << 8) /**< Shifted mode W32D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D8 (_USART_I2SCTRL_FORMAT_W32D8 << 8) /**< Shifted mode W32D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D16 (_USART_I2SCTRL_FORMAT_W16D16 << 8) /**< Shifted mode W16D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D8 (_USART_I2SCTRL_FORMAT_W16D8 << 8) /**< Shifted mode W16D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W8D8 (_USART_I2SCTRL_FORMAT_W8D8 << 8) /**< Shifted mode W8D8 for USART_I2SCTRL */
+
+/* Bit fields for USART TIMING */
+#define _USART_TIMING_RESETVALUE 0x00000000UL /**< Default value for USART_TIMING */
+#define _USART_TIMING_MASK 0x77770000UL /**< Mask for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SHIFT 16 /**< Shift value for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_MASK 0x70000UL /**< Bit mask for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_TXDELAY_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_TXDELAY_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_TXDELAY_DEFAULT (_USART_TIMING_TXDELAY_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_TXDELAY_DISABLE (_USART_TIMING_TXDELAY_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMING */
+#define USART_TIMING_TXDELAY_ONE (_USART_TIMING_TXDELAY_ONE << 16) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_TXDELAY_TWO (_USART_TIMING_TXDELAY_TWO << 16) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_TXDELAY_THREE (_USART_TIMING_TXDELAY_THREE << 16) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_TXDELAY_SEVEN (_USART_TIMING_TXDELAY_SEVEN << 16) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP0 (_USART_TIMING_TXDELAY_TCMP0 << 16) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP1 (_USART_TIMING_TXDELAY_TCMP1 << 16) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP2 (_USART_TIMING_TXDELAY_TCMP2 << 16) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SHIFT 20 /**< Shift value for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_MASK 0x700000UL /**< Bit mask for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSSETUP_DEFAULT (_USART_TIMING_CSSETUP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSSETUP_ZERO (_USART_TIMING_CSSETUP_ZERO << 20) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSSETUP_ONE (_USART_TIMING_CSSETUP_ONE << 20) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSSETUP_TWO (_USART_TIMING_CSSETUP_TWO << 20) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSSETUP_THREE (_USART_TIMING_CSSETUP_THREE << 20) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSSETUP_SEVEN (_USART_TIMING_CSSETUP_SEVEN << 20) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP0 (_USART_TIMING_CSSETUP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP1 (_USART_TIMING_CSSETUP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP2 (_USART_TIMING_CSSETUP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_ICS_SHIFT 24 /**< Shift value for USART_ICS */
+#define _USART_TIMING_ICS_MASK 0x7000000UL /**< Bit mask for USART_ICS */
+#define _USART_TIMING_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_ICS_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_ICS_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_ICS_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_ICS_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_ICS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_ICS_DEFAULT (_USART_TIMING_ICS_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_ICS_ZERO (_USART_TIMING_ICS_ZERO << 24) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_ICS_ONE (_USART_TIMING_ICS_ONE << 24) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_ICS_TWO (_USART_TIMING_ICS_TWO << 24) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_ICS_THREE (_USART_TIMING_ICS_THREE << 24) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_ICS_SEVEN (_USART_TIMING_ICS_SEVEN << 24) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_ICS_TCMP0 (_USART_TIMING_ICS_TCMP0 << 24) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP1 (_USART_TIMING_ICS_TCMP1 << 24) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP2 (_USART_TIMING_ICS_TCMP2 << 24) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SHIFT 28 /**< Shift value for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_MASK 0x70000000UL /**< Bit mask for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSHOLD_DEFAULT (_USART_TIMING_CSHOLD_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSHOLD_ZERO (_USART_TIMING_CSHOLD_ZERO << 28) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSHOLD_ONE (_USART_TIMING_CSHOLD_ONE << 28) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSHOLD_TWO (_USART_TIMING_CSHOLD_TWO << 28) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSHOLD_THREE (_USART_TIMING_CSHOLD_THREE << 28) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSHOLD_SEVEN (_USART_TIMING_CSHOLD_SEVEN << 28) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP0 (_USART_TIMING_CSHOLD_TCMP0 << 28) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP1 (_USART_TIMING_CSHOLD_TCMP1 << 28) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP2 (_USART_TIMING_CSHOLD_TCMP2 << 28) /**< Shifted mode TCMP2 for USART_TIMING */
+
+/* Bit fields for USART CTRLX */
+#define _USART_CTRLX_RESETVALUE 0x00000000UL /**< Default value for USART_CTRLX */
+#define _USART_CTRLX_MASK 0x8000808FUL /**< Mask for USART_CTRLX */
+#define USART_CTRLX_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _USART_CTRLX_DBGHALT_SHIFT 0 /**< Shift value for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_MASK 0x1UL /**< Bit mask for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DEFAULT (_USART_CTRLX_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DISABLE (_USART_CTRLX_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_ENABLE (_USART_CTRLX_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV (0x1UL << 1) /**< CTS Pin Inversion */
+#define _USART_CTRLX_CTSINV_SHIFT 1 /**< Shift value for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_MASK 0x2UL /**< Bit mask for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DEFAULT (_USART_CTRLX_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DISABLE (_USART_CTRLX_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_ENABLE (_USART_CTRLX_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN (0x1UL << 2) /**< CTS Function enabled */
+#define _USART_CTRLX_CTSEN_SHIFT 2 /**< Shift value for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_MASK 0x4UL /**< Bit mask for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DEFAULT (_USART_CTRLX_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DISABLE (_USART_CTRLX_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_ENABLE (_USART_CTRLX_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV (0x1UL << 3) /**< RTS Pin Inversion */
+#define _USART_CTRLX_RTSINV_SHIFT 3 /**< Shift value for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_MASK 0x8UL /**< Bit mask for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DEFAULT (_USART_CTRLX_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DISABLE (_USART_CTRLX_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_ENABLE (_USART_CTRLX_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN (0x1UL << 7) /**< PRS RX Enable */
+#define _USART_CTRLX_RXPRSEN_SHIFT 7 /**< Shift value for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_MASK 0x80UL /**< Bit mask for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN_DEFAULT (_USART_CTRLX_RXPRSEN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN (0x1UL << 15) /**< PRS CLK Enable */
+#define _USART_CTRLX_CLKPRSEN_SHIFT 15 /**< Shift value for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_MASK 0x8000UL /**< Bit mask for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN_DEFAULT (_USART_CTRLX_CLKPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRLX */
+
+/* Bit fields for USART TIMECMP0 */
+#define _USART_TIMECMP0_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP0 */
+#define _USART_TIMECMP0_MASK 0x017700FFUL /**< Mask for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TCMPVAL_DEFAULT (_USART_TIMECMP0_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DEFAULT (_USART_TIMECMP0_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DISABLE (_USART_TIMECMP0_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXEOF (_USART_TIMECMP0_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXC (_USART_TIMECMP0_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXACT (_USART_TIMECMP0_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXEOF (_USART_TIMECMP0_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TCMP0 0x00000000UL /**< Mode TCMP0 for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_DEFAULT (_USART_TIMECMP0_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TCMP0 (_USART_TIMECMP0_TSTOP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TXST (_USART_TIMECMP0_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACT (_USART_TIMECMP0_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACTN (_USART_TIMECMP0_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP0 */
+#define _USART_TIMECMP0_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DEFAULT (_USART_TIMECMP0_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DISABLE (_USART_TIMECMP0_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_ENABLE (_USART_TIMECMP0_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP0 */
+
+/* Bit fields for USART TIMECMP1 */
+#define _USART_TIMECMP1_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP1 */
+#define _USART_TIMECMP1_MASK 0x017700FFUL /**< Mask for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TCMPVAL_DEFAULT (_USART_TIMECMP1_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DEFAULT (_USART_TIMECMP1_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DISABLE (_USART_TIMECMP1_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXEOF (_USART_TIMECMP1_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXC (_USART_TIMECMP1_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXACT (_USART_TIMECMP1_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXEOF (_USART_TIMECMP1_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TCMP1 0x00000000UL /**< Mode TCMP1 for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_DEFAULT (_USART_TIMECMP1_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TCMP1 (_USART_TIMECMP1_TSTOP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TXST (_USART_TIMECMP1_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACT (_USART_TIMECMP1_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACTN (_USART_TIMECMP1_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP1 */
+#define _USART_TIMECMP1_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DEFAULT (_USART_TIMECMP1_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DISABLE (_USART_TIMECMP1_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_ENABLE (_USART_TIMECMP1_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP1 */
+
+/* Bit fields for USART TIMECMP2 */
+#define _USART_TIMECMP2_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP2 */
+#define _USART_TIMECMP2_MASK 0x017700FFUL /**< Mask for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TCMPVAL_DEFAULT (_USART_TIMECMP2_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DEFAULT (_USART_TIMECMP2_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DISABLE (_USART_TIMECMP2_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXEOF (_USART_TIMECMP2_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXC (_USART_TIMECMP2_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXACT (_USART_TIMECMP2_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXEOF (_USART_TIMECMP2_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TCMP2 0x00000000UL /**< Mode TCMP2 for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_DEFAULT (_USART_TIMECMP2_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TCMP2 (_USART_TIMECMP2_TSTOP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TXST (_USART_TIMECMP2_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACT (_USART_TIMECMP2_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACTN (_USART_TIMECMP2_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP2 */
+#define _USART_TIMECMP2_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DEFAULT (_USART_TIMECMP2_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DISABLE (_USART_TIMECMP2_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_ENABLE (_USART_TIMECMP2_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP2 */
+
+/** @} End of group EFR32MG29_USART_BitFields */
+/** @} End of group EFR32MG29_USART */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_USART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_wdog.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_wdog.h
new file mode 100644
index 000000000..3a063251a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29_wdog.h
@@ -0,0 +1,361 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32MG29 WDOG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29_WDOG_H
+#define EFR32MG29_WDOG_H
+#define WDOG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32MG29_WDOG WDOG
+ * @{
+ * @brief EFR32MG29 WDOG Register Declaration.
+ *****************************************************************************/
+
+/** WDOG Register Declaration. */
+typedef struct wdog_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+} WDOG_TypeDef;
+/** @} End of group EFR32MG29_WDOG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32MG29_WDOG
+ * @{
+ * @defgroup EFR32MG29_WDOG_BitFields WDOG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for WDOG IPVERSION */
+#define _WDOG_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IPVERSION */
+#define WDOG_IPVERSION_IPVERSION_DEFAULT (_WDOG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IPVERSION */
+
+/* Bit fields for WDOG EN */
+#define _WDOG_EN_RESETVALUE 0x00000000UL /**< Default value for WDOG_EN */
+#define _WDOG_EN_MASK 0x00000001UL /**< Mask for WDOG_EN */
+#define WDOG_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _WDOG_EN_EN_SHIFT 0 /**< Shift value for WDOG_EN */
+#define _WDOG_EN_EN_MASK 0x1UL /**< Bit mask for WDOG_EN */
+#define _WDOG_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_EN */
+#define WDOG_EN_EN_DEFAULT (_WDOG_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_EN */
+
+/* Bit fields for WDOG CFG */
+#define _WDOG_CFG_RESETVALUE 0x000F0000UL /**< Default value for WDOG_CFG */
+#define _WDOG_CFG_MASK 0x730F071FUL /**< Mask for WDOG_CFG */
+#define WDOG_CFG_CLRSRC (0x1UL << 0) /**< WDOG Clear Source */
+#define _WDOG_CFG_CLRSRC_SHIFT 0 /**< Shift value for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_MASK 0x1UL /**< Bit mask for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_SW 0x00000000UL /**< Mode SW for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_PRSSRC0 0x00000001UL /**< Mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_DEFAULT (_WDOG_CFG_CLRSRC_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_SW (_WDOG_CFG_CLRSRC_SW << 0) /**< Shifted mode SW for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_PRSSRC0 (_WDOG_CFG_CLRSRC_PRSSRC0 << 0) /**< Shifted mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_EM2RUN (0x1UL << 1) /**< EM2 Run */
+#define _WDOG_CFG_EM2RUN_SHIFT 1 /**< Shift value for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_MASK 0x2UL /**< Bit mask for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DEFAULT (_WDOG_CFG_EM2RUN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DISABLE (_WDOG_CFG_EM2RUN_DISABLE << 1) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_ENABLE (_WDOG_CFG_EM2RUN_ENABLE << 1) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN (0x1UL << 2) /**< EM3 Run */
+#define _WDOG_CFG_EM3RUN_SHIFT 2 /**< Shift value for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_MASK 0x4UL /**< Bit mask for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DEFAULT (_WDOG_CFG_EM3RUN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DISABLE (_WDOG_CFG_EM3RUN_DISABLE << 2) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_ENABLE (_WDOG_CFG_EM3RUN_ENABLE << 2) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK (0x1UL << 3) /**< EM4 Block */
+#define _WDOG_CFG_EM4BLOCK_SHIFT 3 /**< Shift value for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_MASK 0x8UL /**< Bit mask for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DEFAULT (_WDOG_CFG_EM4BLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DISABLE (_WDOG_CFG_EM4BLOCK_DISABLE << 3) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_ENABLE (_WDOG_CFG_EM4BLOCK_ENABLE << 3) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN (0x1UL << 4) /**< Debug Mode Run */
+#define _WDOG_CFG_DEBUGRUN_SHIFT 4 /**< Shift value for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_MASK 0x10UL /**< Bit mask for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DEFAULT (_WDOG_CFG_DEBUGRUN_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DISABLE (_WDOG_CFG_DEBUGRUN_DISABLE << 4) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_ENABLE (_WDOG_CFG_DEBUGRUN_ENABLE << 4) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS (0x1UL << 8) /**< WDOG Reset Disable */
+#define _WDOG_CFG_WDOGRSTDIS_SHIFT 8 /**< Shift value for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_MASK 0x100UL /**< Bit mask for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_EN 0x00000000UL /**< Mode EN for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_DIS 0x00000001UL /**< Mode DIS for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DEFAULT (_WDOG_CFG_WDOGRSTDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_EN (_WDOG_CFG_WDOGRSTDIS_EN << 8) /**< Shifted mode EN for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DIS (_WDOG_CFG_WDOGRSTDIS_DIS << 8) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN (0x1UL << 9) /**< PRS Src0 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS0MISSRSTEN_SHIFT 9 /**< Shift value for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_MASK 0x200UL /**< Bit mask for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN_DEFAULT (_WDOG_CFG_PRS0MISSRSTEN_DEFAULT << 9) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN (0x1UL << 10) /**< PRS Src1 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS1MISSRSTEN_SHIFT 10 /**< Shift value for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_MASK 0x400UL /**< Bit mask for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN_DEFAULT (_WDOG_CFG_PRS1MISSRSTEN_DEFAULT << 10) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SHIFT 16 /**< Shift value for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_MASK 0xF0000UL /**< Bit mask for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_DEFAULT 0x0000000FUL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL0 0x00000000UL /**< Mode SEL0 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL8 0x00000008UL /**< Mode SEL8 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL9 0x00000009UL /**< Mode SEL9 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL10 0x0000000AUL /**< Mode SEL10 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL11 0x0000000BUL /**< Mode SEL11 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL12 0x0000000CUL /**< Mode SEL12 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL13 0x0000000DUL /**< Mode SEL13 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL14 0x0000000EUL /**< Mode SEL14 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL15 0x0000000FUL /**< Mode SEL15 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_DEFAULT (_WDOG_CFG_PERSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL0 (_WDOG_CFG_PERSEL_SEL0 << 16) /**< Shifted mode SEL0 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL1 (_WDOG_CFG_PERSEL_SEL1 << 16) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL2 (_WDOG_CFG_PERSEL_SEL2 << 16) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL3 (_WDOG_CFG_PERSEL_SEL3 << 16) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL4 (_WDOG_CFG_PERSEL_SEL4 << 16) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL5 (_WDOG_CFG_PERSEL_SEL5 << 16) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL6 (_WDOG_CFG_PERSEL_SEL6 << 16) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL7 (_WDOG_CFG_PERSEL_SEL7 << 16) /**< Shifted mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL8 (_WDOG_CFG_PERSEL_SEL8 << 16) /**< Shifted mode SEL8 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL9 (_WDOG_CFG_PERSEL_SEL9 << 16) /**< Shifted mode SEL9 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL10 (_WDOG_CFG_PERSEL_SEL10 << 16) /**< Shifted mode SEL10 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL11 (_WDOG_CFG_PERSEL_SEL11 << 16) /**< Shifted mode SEL11 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL12 (_WDOG_CFG_PERSEL_SEL12 << 16) /**< Shifted mode SEL12 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL13 (_WDOG_CFG_PERSEL_SEL13 << 16) /**< Shifted mode SEL13 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL14 (_WDOG_CFG_PERSEL_SEL14 << 16) /**< Shifted mode SEL14 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL15 (_WDOG_CFG_PERSEL_SEL15 << 16) /**< Shifted mode SEL15 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SHIFT 24 /**< Shift value for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_MASK 0x3000000UL /**< Bit mask for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DEFAULT (_WDOG_CFG_WARNSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DIS (_WDOG_CFG_WARNSEL_DIS << 24) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL1 (_WDOG_CFG_WARNSEL_SEL1 << 24) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL2 (_WDOG_CFG_WARNSEL_SEL2 << 24) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL3 (_WDOG_CFG_WARNSEL_SEL3 << 24) /**< Shifted mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SHIFT 28 /**< Shift value for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_MASK 0x70000000UL /**< Bit mask for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DEFAULT (_WDOG_CFG_WINSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DIS (_WDOG_CFG_WINSEL_DIS << 28) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL1 (_WDOG_CFG_WINSEL_SEL1 << 28) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL2 (_WDOG_CFG_WINSEL_SEL2 << 28) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL3 (_WDOG_CFG_WINSEL_SEL3 << 28) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL4 (_WDOG_CFG_WINSEL_SEL4 << 28) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL5 (_WDOG_CFG_WINSEL_SEL5 << 28) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL6 (_WDOG_CFG_WINSEL_SEL6 << 28) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL7 (_WDOG_CFG_WINSEL_SEL7 << 28) /**< Shifted mode SEL7 for WDOG_CFG */
+
+/* Bit fields for WDOG CMD */
+#define _WDOG_CMD_RESETVALUE 0x00000000UL /**< Default value for WDOG_CMD */
+#define _WDOG_CMD_MASK 0x00000001UL /**< Mask for WDOG_CMD */
+#define WDOG_CMD_CLEAR (0x1UL << 0) /**< WDOG Timer Clear */
+#define _WDOG_CMD_CLEAR_SHIFT 0 /**< Shift value for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_MASK 0x1UL /**< Bit mask for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_UNCHANGED 0x00000000UL /**< Mode UNCHANGED for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_CLEARED 0x00000001UL /**< Mode CLEARED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_DEFAULT (_WDOG_CMD_CLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CMD */
+#define WDOG_CMD_CLEAR_UNCHANGED (_WDOG_CMD_CLEAR_UNCHANGED << 0) /**< Shifted mode UNCHANGED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_CLEARED (_WDOG_CMD_CLEAR_CLEARED << 0) /**< Shifted mode CLEARED for WDOG_CMD */
+
+/* Bit fields for WDOG STATUS */
+#define _WDOG_STATUS_RESETVALUE 0x00000000UL /**< Default value for WDOG_STATUS */
+#define _WDOG_STATUS_MASK 0x80000000UL /**< Mask for WDOG_STATUS */
+#define WDOG_STATUS_LOCK (0x1UL << 31) /**< WDOG Configuration Lock Status */
+#define _WDOG_STATUS_LOCK_SHIFT 31 /**< Shift value for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_DEFAULT (_WDOG_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_UNLOCKED (_WDOG_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_LOCKED (_WDOG_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for WDOG_STATUS */
+
+/* Bit fields for WDOG IF */
+#define _WDOG_IF_RESETVALUE 0x00000000UL /**< Default value for WDOG_IF */
+#define _WDOG_IF_MASK 0x0000001FUL /**< Mask for WDOG_IF */
+#define WDOG_IF_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Flag */
+#define _WDOG_IF_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IF_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IF_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_TOUT_DEFAULT (_WDOG_IF_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Flag */
+#define _WDOG_IF_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IF_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IF_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN_DEFAULT (_WDOG_IF_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN (0x1UL << 2) /**< WDOG Window Interrupt Flag */
+#define _WDOG_IF_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IF_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IF_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN_DEFAULT (_WDOG_IF_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0_DEFAULT (_WDOG_IF_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1_DEFAULT (_WDOG_IF_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IF */
+
+/* Bit fields for WDOG IEN */
+#define _WDOG_IEN_RESETVALUE 0x00000000UL /**< Default value for WDOG_IEN */
+#define _WDOG_IEN_MASK 0x0000001FUL /**< Mask for WDOG_IEN */
+#define WDOG_IEN_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Enable */
+#define _WDOG_IEN_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_TOUT_DEFAULT (_WDOG_IEN_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Enable */
+#define _WDOG_IEN_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IEN_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IEN_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN_DEFAULT (_WDOG_IEN_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN (0x1UL << 2) /**< WDOG Window Interrupt Enable */
+#define _WDOG_IEN_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IEN_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IEN_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN_DEFAULT (_WDOG_IEN_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0_DEFAULT (_WDOG_IEN_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1_DEFAULT (_WDOG_IEN_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IEN */
+
+/* Bit fields for WDOG LOCK */
+#define _WDOG_LOCK_RESETVALUE 0x0000ABE8UL /**< Default value for WDOG_LOCK */
+#define _WDOG_LOCK_MASK 0x0000FFFFUL /**< Mask for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_DEFAULT 0x0000ABE8UL /**< Mode DEFAULT for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_UNLOCK 0x0000ABE8UL /**< Mode UNLOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_DEFAULT (_WDOG_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_LOCK (_WDOG_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_UNLOCK (_WDOG_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for WDOG_LOCK */
+
+/* Bit fields for WDOG SYNCBUSY */
+#define _WDOG_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for WDOG_SYNCBUSY */
+#define _WDOG_SYNCBUSY_MASK 0x00000001UL /**< Mask for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD (0x1UL << 0) /**< Sync Busy for Cmd Register */
+#define _WDOG_SYNCBUSY_CMD_SHIFT 0 /**< Shift value for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_MASK 0x1UL /**< Bit mask for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD_DEFAULT (_WDOG_SYNCBUSY_CMD_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_SYNCBUSY */
+
+/** @} End of group EFR32MG29_WDOG_BitFields */
+/** @} End of group EFR32MG29_WDOG */
+/** @} End of group Parts */
+
+#endif // EFR32MG29_WDOG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b140f1024im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b140f1024im40.h
new file mode 100644
index 000000000..5a323ecc8
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b140f1024im40.h
@@ -0,0 +1,1471 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32MG29B140F1024IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29B140F1024IM40_H
+#define EFR32MG29B140F1024IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40 EFR32MG29B140F1024IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32MG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40_Core EFR32MG29B140F1024IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32MG29B140F1024IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32MG29B140F1024IM40_Part EFR32MG29B140F1024IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32MG29B140F1024IM40)
+#define EFR32MG29B140F1024IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32MG29B140F1024IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_MIGHTY_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_MG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 8 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32MG29B140F1024IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00040000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 5U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x001FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PB_PIN4 1U /**< GPIO pin PB4 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32mg29.h" /* System Header File */
+
+/** @} End of group EFR32MG29B140F1024IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40_Peripheral_TypeDefs EFR32MG29B140F1024IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32mg29_emu.h"
+#include "efr32mg29_cmu.h"
+#include "efr32mg29_hfxo.h"
+#include "efr32mg29_hfrco.h"
+#include "efr32mg29_fsrco.h"
+#include "efr32mg29_dpll.h"
+#include "efr32mg29_lfxo.h"
+#include "efr32mg29_lfrco.h"
+#include "efr32mg29_ulfrco.h"
+#include "efr32mg29_msc.h"
+#include "efr32mg29_icache.h"
+#include "efr32mg29_prs.h"
+#include "efr32mg29_gpio.h"
+#include "efr32mg29_ldma.h"
+#include "efr32mg29_ldmaxbar.h"
+#include "efr32mg29_timer.h"
+#include "efr32mg29_usart.h"
+#include "efr32mg29_burtc.h"
+#include "efr32mg29_i2c.h"
+#include "efr32mg29_syscfg.h"
+#include "efr32mg29_buram.h"
+#include "efr32mg29_gpcrc.h"
+#include "efr32mg29_dcdc.h"
+#include "efr32mg29_pdm.h"
+#include "efr32mg29_etampdet.h"
+#include "efr32mg29_mpahbram.h"
+#include "efr32mg29_eusart.h"
+#include "efr32mg29_aes.h"
+#include "efr32mg29_smu.h"
+#include "efr32mg29_rtcc.h"
+#include "efr32mg29_wdog.h"
+#include "efr32mg29_letimer.h"
+#include "efr32mg29_iadc.h"
+#include "efr32mg29_acmp.h"
+#include "efr32mg29_semailbox.h"
+#include "efr32mg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32mg29_prs_signals.h"
+#include "efr32mg29_dma_descriptor.h"
+#include "efr32mg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32MG29B140F1024IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40_Peripheral_Base EFR32MG29B140F1024IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32MG29B140F1024IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40_Peripheral_Declaration EFR32MG29B140F1024IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32MG29B140F1024IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B140F1024IM40_Peripheral_Parameters EFR32MG29B140F1024IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32MG29B140F1024IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32MG29B140F1024IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b230f1024cm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b230f1024cm40.h
new file mode 100644
index 000000000..7aacce8e6
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/efr32mg29b230f1024cm40.h
@@ -0,0 +1,1470 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32MG29B230F1024CM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32MG29B230F1024CM40_H
+#define EFR32MG29B230F1024CM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40 EFR32MG29B230F1024CM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32MG29 Peripheral Interrupt Numbers ******************************************/
+
+ SETAMPERHOST_IRQn = 0, /*!< 0 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 1, /*!< 1 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 2, /*!< 2 EFR32 SEMBTX Interrupt */
+ SMU_SECURE_IRQn = 3, /*!< 3 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 4, /*!< 4 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 5, /*!< 5 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 6, /*!< 6 EFR32 EMU Interrupt */
+ EMUEFP_IRQn = 7, /*!< 7 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 8, /*!< 8 EFR32 DCDC Interrupt */
+ ETAMPDET_IRQn = 9, /*!< 9 EFR32 ETAMPDET Interrupt */
+ TIMER0_IRQn = 10, /*!< 10 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 11, /*!< 11 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 12, /*!< 12 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 13, /*!< 13 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 14, /*!< 14 EFR32 TIMER4 Interrupt */
+ RTCC_IRQn = 15, /*!< 15 EFR32 RTCC Interrupt */
+ USART0_RX_IRQn = 16, /*!< 16 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 17, /*!< 17 EFR32 USART0_TX Interrupt */
+ USART1_RX_IRQn = 18, /*!< 18 EFR32 USART1_RX Interrupt */
+ USART1_TX_IRQn = 19, /*!< 19 EFR32 USART1_TX Interrupt */
+ EUSART0_RX_IRQn = 20, /*!< 20 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 21, /*!< 21 EFR32 EUSART0_TX Interrupt */
+ ICACHE0_IRQn = 22, /*!< 22 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 23, /*!< 23 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 24, /*!< 24 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 25, /*!< 25 EFR32 SYSCFG Interrupt */
+ LDMA_IRQn = 26, /*!< 26 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 27, /*!< 27 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 28, /*!< 28 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 29, /*!< 29 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 30, /*!< 30 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 31, /*!< 31 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 32, /*!< 32 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 33, /*!< 33 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 34, /*!< 34 EFR32 EMUDG Interrupt */
+ EMUSE_IRQn = 35, /*!< 35 EFR32 EMUSE Interrupt */
+ AGC_IRQn = 36, /*!< 36 EFR32 AGC Interrupt */
+ BUFC_IRQn = 37, /*!< 37 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 38, /*!< 38 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 39, /*!< 39 EFR32 FRC Interrupt */
+ MODEM_IRQn = 40, /*!< 40 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 41, /*!< 41 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 42, /*!< 42 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 43, /*!< 43 EFR32 RAC_SEQ Interrupt */
+ RDMAILBOX_IRQn = 44, /*!< 44 EFR32 RDMAILBOX Interrupt */
+ RFSENSE_IRQn = 45, /*!< 45 EFR32 RFSENSE Interrupt */
+ SYNTH_IRQn = 46, /*!< 46 EFR32 SYNTH Interrupt */
+ PRORTC_IRQn = 47, /*!< 47 EFR32 PRORTC Interrupt */
+ ACMP0_IRQn = 48, /*!< 48 EFR32 ACMP0 Interrupt */
+ WDOG0_IRQn = 49, /*!< 49 EFR32 WDOG0 Interrupt */
+ HFXO0_IRQn = 50, /*!< 50 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 51, /*!< 51 EFR32 HFRCO0 Interrupt */
+ CMU_IRQn = 52, /*!< 52 EFR32 CMU Interrupt */
+ AES_IRQn = 53, /*!< 53 EFR32 AES Interrupt */
+ IADC_IRQn = 54, /*!< 54 EFR32 IADC Interrupt */
+ MSC_IRQn = 55, /*!< 55 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 56, /*!< 56 EFR32 DPLL0 Interrupt */
+ PDM_IRQn = 57, /*!< 57 EFR32 PDM Interrupt */
+ SW0_IRQn = 58, /*!< 58 EFR32 SW0 Interrupt */
+ SW1_IRQn = 59, /*!< 59 EFR32 SW1 Interrupt */
+ SW2_IRQn = 60, /*!< 60 EFR32 SW2 Interrupt */
+ SW3_IRQn = 61, /*!< 61 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 62, /*!< 62 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 63, /*!< 63 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 64, /*!< 64 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 65, /*!< 65 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 66, /*!< 66 EFR32 FPUEXH Interrupt */
+ MPAHBRAM_IRQn = 67, /*!< 67 EFR32 MPAHBRAM Interrupt */
+ EUSART1_RX_IRQn = 68, /*!< 68 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 69, /*!< 69 EFR32 EUSART1_TX Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40_Core EFR32MG29B230F1024CM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32MG29B230F1024CM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32MG29B230F1024CM40_Part EFR32MG29B230F1024CM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32MG29B230F1024CM40)
+#define EFR32MG29B230F1024CM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32MG29B230F1024CM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_MIGHTY_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_MG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_9 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 9 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_240 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root Of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_2G4HZ /** Radio type */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM 6 /** Radio 2G4HZ HP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_MAX_OUTPUT_DBM 0 /** Radio 2G4HZ LP PA output power */
+#define _SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT /** Radio 2G4HZ HP PA is present */
+#define _SILICON_LABS_EFR32_2G4HZ_LP_PA_PRESENT /** Radio 2G4HZ LP PA is present */
+#define LFRCO_PRECISION_MODE 1 /** Precision mode of LFRCO enabled or disabled */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00100000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x080FFFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x15UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00100000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x080FFFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x15UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00040000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2003FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x13UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00040000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2003FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x13UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32MG29B230F1024CM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00100000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00040000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 70 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 8U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x00FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 5U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x001FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PB_PIN4 1U /**< GPIO pin PB4 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define ETAMPDET_ETAMPIN0_PORT GPIO_PB_INDEX /**< Port of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN0_PIN 1U /**< Pin of ETAMPIN0.*/
+#define ETAMPDET_ETAMPIN1_PORT GPIO_PC_INDEX /**< Port of ETAMPIN1.*/
+#define ETAMPDET_ETAMPIN1_PIN 0U /**< Pin of ETAMPIN1.*/
+#define ETAMPDET_ETAMPOUT0_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT0_PIN 1U /**< Pin of ETAMPOUT0.*/
+#define ETAMPDET_ETAMPOUT1_PORT GPIO_PC_INDEX /**< Port of ETAMPOUT1.*/
+#define ETAMPDET_ETAMPOUT1_PIN 2U /**< Pin of ETAMPOUT1.*/
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EFP_INT_PORT GPIO_PC_INDEX /**< Port of EFP_INT.*/
+#define GPIO_EFP_INT_PIN 5U /**< Pin of EFP_INT.*/
+#define GPIO_EFP_TX_SCL_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SCL_PIN 2U /**< Pin of EFP_TX_SCL.*/
+#define GPIO_EFP_TX_SDA_PORT GPIO_PC_INDEX /**< Port of EFP_TX_SDA.*/
+#define GPIO_EFP_TX_SDA_PIN 1U /**< Pin of EFP_TX_SDA.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 0U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_HALFSWITCH_PORT GPIO_PC_INDEX /**< Port of THMSW_HALFSWITCH.*/
+#define GPIO_THMSW_HALFSWITCH_PIN 0U /**< Pin of THMSW_HALFSWITCH.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 1 /** 1 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define ETAMPDET_PRESENT /** ETAMPDET is available in this part */
+#define ETAMPDET_COUNT 1 /** 1 ETAMPDETs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 2 /** 2 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PDM_PRESENT /** PDM is available in this part */
+#define PDM_COUNT 1 /** 1 PDMs available */
+#define PRORTC_PRESENT /** PRORTC is available in this part */
+#define PRORTC_COUNT 1 /** 1 PRORTCs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define RTCC_PRESENT /** RTCC is available in this part */
+#define RTCC_COUNT 1 /** 1 RTCCs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 2 /** 2 USARTs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 1 /** 1 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32mg29.h" /* System Header File */
+
+/** @} End of group EFR32MG29B230F1024CM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40_Peripheral_TypeDefs EFR32MG29B230F1024CM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32mg29_emu.h"
+#include "efr32mg29_cmu.h"
+#include "efr32mg29_hfxo.h"
+#include "efr32mg29_hfrco.h"
+#include "efr32mg29_fsrco.h"
+#include "efr32mg29_dpll.h"
+#include "efr32mg29_lfxo.h"
+#include "efr32mg29_lfrco.h"
+#include "efr32mg29_ulfrco.h"
+#include "efr32mg29_msc.h"
+#include "efr32mg29_icache.h"
+#include "efr32mg29_prs.h"
+#include "efr32mg29_gpio.h"
+#include "efr32mg29_ldma.h"
+#include "efr32mg29_ldmaxbar.h"
+#include "efr32mg29_timer.h"
+#include "efr32mg29_usart.h"
+#include "efr32mg29_burtc.h"
+#include "efr32mg29_i2c.h"
+#include "efr32mg29_syscfg.h"
+#include "efr32mg29_buram.h"
+#include "efr32mg29_gpcrc.h"
+#include "efr32mg29_dcdc.h"
+#include "efr32mg29_pdm.h"
+#include "efr32mg29_etampdet.h"
+#include "efr32mg29_mpahbram.h"
+#include "efr32mg29_eusart.h"
+#include "efr32mg29_aes.h"
+#include "efr32mg29_smu.h"
+#include "efr32mg29_rtcc.h"
+#include "efr32mg29_wdog.h"
+#include "efr32mg29_letimer.h"
+#include "efr32mg29_iadc.h"
+#include "efr32mg29_acmp.h"
+#include "efr32mg29_semailbox.h"
+#include "efr32mg29_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32mg29_prs_signals.h"
+#include "efr32mg29_dma_descriptor.h"
+#include "efr32mg29_ldmaxbar_defines.h"
+
+/** @} End of group EFR32MG29B230F1024CM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40_Peripheral_Base EFR32MG29B230F1024CM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFXO0_S_BASE (0x4000C000UL) /* HFXO0_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define USART1_S_BASE (0x40060000UL) /* USART1_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define PDM_S_BASE (0x40098000UL) /* PDM_S base address */
+#define ETAMPDET_S_BASE (0x400A4000UL) /* ETAMPDET_S base address */
+#define DMEM_S_BASE (0x400B0000UL) /* DMEM_S base address */
+#define EUSART1_S_BASE (0x400B4000UL) /* EUSART1_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define RTCC_S_BASE (0x48000000UL) /* RTCC_S base address */
+#define WDOG0_S_BASE (0x48018000UL) /* WDOG0_S base address */
+#define LETIMER0_S_BASE (0x4A000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x4A004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x4A008000UL) /* ACMP0_S base address */
+#define I2C0_S_BASE (0x4A010000UL) /* I2C0_S base address */
+#define EUSART0_S_BASE (0x4A040000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define PRORTC_S_BASE (0xA8000000UL) /* PRORTC_S base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFXO0_NS_BASE (0x5000C000UL) /* HFXO0_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define USART1_NS_BASE (0x50060000UL) /* USART1_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define PDM_NS_BASE (0x50098000UL) /* PDM_NS base address */
+#define ETAMPDET_NS_BASE (0x500A4000UL) /* ETAMPDET_NS base address */
+#define DMEM_NS_BASE (0x500B0000UL) /* DMEM_NS base address */
+#define EUSART1_NS_BASE (0x500B4000UL) /* EUSART1_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define RTCC_NS_BASE (0x58000000UL) /* RTCC_NS base address */
+#define WDOG0_NS_BASE (0x58018000UL) /* WDOG0_NS base address */
+#define LETIMER0_NS_BASE (0x5A000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x5A004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x5A008000UL) /* ACMP0_NS base address */
+#define I2C0_NS_BASE (0x5A010000UL) /* I2C0_NS base address */
+#define EUSART0_NS_BASE (0x5A040000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+#define PRORTC_NS_BASE (0xB8000000UL) /* PRORTC_NS base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART1_S) && (SL_TRUSTZONE_PERIPHERAL_USART1_S != 0)))
+#define USART1_BASE (USART1_S_BASE) /* USART1 base address */
+#else
+#define USART1_BASE (USART1_NS_BASE) /* USART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PDM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PDM_S) && (SL_TRUSTZONE_PERIPHERAL_PDM_S != 0)))
+#define PDM_BASE (PDM_S_BASE) /* PDM base address */
+#else
+#define PDM_BASE (PDM_NS_BASE) /* PDM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PDM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S) && (SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S != 0)))
+#define ETAMPDET_BASE (ETAMPDET_S_BASE) /* ETAMPDET base address */
+#else
+#define ETAMPDET_BASE (ETAMPDET_NS_BASE) /* ETAMPDET base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ETAMPDET_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RTCC_S) && (SL_TRUSTZONE_PERIPHERAL_RTCC_S != 0)))
+#define RTCC_BASE (RTCC_S_BASE) /* RTCC base address */
+#else
+#define RTCC_BASE (RTCC_NS_BASE) /* RTCC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RTCC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRORTC_S) && (SL_TRUSTZONE_PERIPHERAL_PRORTC_S != 0)))
+#define PRORTC_BASE (PRORTC_S_BASE) /* PRORTC base address */
+#else
+#define PRORTC_BASE (PRORTC_NS_BASE) /* PRORTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRORTC_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32MG29B230F1024CM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40_Peripheral_Declaration EFR32MG29B230F1024CM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define USART1_S ((USART_TypeDef *) USART1_S_BASE) /**< USART1_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define PDM_S ((PDM_TypeDef *) PDM_S_BASE) /**< PDM_S base pointer */
+#define ETAMPDET_S ((ETAMPDET_TypeDef *) ETAMPDET_S_BASE) /**< ETAMPDET_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define RTCC_S ((RTCC_TypeDef *) RTCC_S_BASE) /**< RTCC_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define PRORTC_S ((RTCC_TypeDef *) PRORTC_S_BASE) /**< PRORTC_S base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define USART1_NS ((USART_TypeDef *) USART1_NS_BASE) /**< USART1_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define PDM_NS ((PDM_TypeDef *) PDM_NS_BASE) /**< PDM_NS base pointer */
+#define ETAMPDET_NS ((ETAMPDET_TypeDef *) ETAMPDET_NS_BASE) /**< ETAMPDET_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define RTCC_NS ((RTCC_TypeDef *) RTCC_NS_BASE) /**< RTCC_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define PRORTC_NS ((RTCC_TypeDef *) PRORTC_NS_BASE) /**< PRORTC_NS base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define USART1 ((USART_TypeDef *) USART1_BASE) /**< USART1 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define PDM ((PDM_TypeDef *) PDM_BASE) /**< PDM base pointer */
+#define ETAMPDET ((ETAMPDET_TypeDef *) ETAMPDET_BASE) /**< ETAMPDET base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define RTCC ((RTCC_TypeDef *) RTCC_BASE) /**< RTCC base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define PRORTC ((RTCC_TypeDef *) PRORTC_BASE) /**< PRORTC base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32MG29B230F1024CM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32MG29B230F1024CM40_Peripheral_Parameters EFR32MG29B230F1024CM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x15UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x15UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x90UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_AHB_DATA_WIDTH 0x20UL /**> Data width of the AHB interface */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK10_SIZE 0x4000UL /**> Bank10 size */
+#define DMEM_BANK11_SIZE 0x4000UL /**> Bank11 size */
+#define DMEM_BANK12_SIZE 0x4000UL /**> Bank12 size */
+#define DMEM_BANK13_SIZE 0x4000UL /**> Bank13 size */
+#define DMEM_BANK14_SIZE 0x4000UL /**> Bank14 size */
+#define DMEM_BANK15_SIZE 0x4000UL /**> Bank15 size */
+#define DMEM_BANK16_SIZE 0x0UL /**> Bank16 size */
+#define DMEM_BANK17_SIZE 0x0UL /**> Bank17 size */
+#define DMEM_BANK18_SIZE 0x0UL /**> Bank18 size */
+#define DMEM_BANK19_SIZE 0x0UL /**> Bank19 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK20_SIZE 0x0UL /**> Bank20 size */
+#define DMEM_BANK21_SIZE 0x0UL /**> Bank21 size */
+#define DMEM_BANK22_SIZE 0x0UL /**> Bank22 size */
+#define DMEM_BANK23_SIZE 0x0UL /**> Bank23 size */
+#define DMEM_BANK24_SIZE 0x0UL /**> Bank24 size */
+#define DMEM_BANK25_SIZE 0x0UL /**> Bank25 size */
+#define DMEM_BANK26_SIZE 0x0UL /**> Bank26 size */
+#define DMEM_BANK27_SIZE 0x0UL /**> Bank27 size */
+#define DMEM_BANK28_SIZE 0x0UL /**> Bank28 size */
+#define DMEM_BANK29_SIZE 0x0UL /**> Bank29 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK30_SIZE 0x0UL /**> Bank30 size */
+#define DMEM_BANK31_SIZE 0x0UL /**> Bank31 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x4000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x4000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x4000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x4000UL /**> Bank7 size */
+#define DMEM_BANK8_SIZE 0x4000UL /**> Bank8 size */
+#define DMEM_BANK9_SIZE 0x4000UL /**> Bank9 size */
+#define DMEM_ECC_EXCLUDE 0x0UL /**> ECC exclude */
+#define DMEM_MEM_SIZE 0x40000UL /**> Total memory size */
+#define DMEM_NUM_BANKS 0x10UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define DMEM_WAITSTATE_EXCLUDE 0x0UL /**> Waitstate exclude */
+#define HFRCO0_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x100000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x1UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x100000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x5UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x3UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x4UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x2UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x4UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x2UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x4UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x2UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0x9UL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x1UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x5UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x5UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0x8UL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x0UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x4UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x4UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define USART1_AUTOTX_REG 0x1UL /**> None */
+#define USART1_AUTOTX_REG_B 0x0UL /**> None */
+#define USART1_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART1_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART1_CLK_PRS 0x1UL /**> None */
+#define USART1_CLK_PRS_B 0x0UL /**> New Param */
+#define USART1_FLOW_CONTROL 0x1UL /**> None */
+#define USART1_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART1_I2S 0x1UL /**> None */
+#define USART1_I2S_B 0x0UL /**> New Param */
+#define USART1_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART1_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_MVDIS_FUNC 0x1UL /**> None */
+#define USART1_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART1_RX_PRS 0x1UL /**> None */
+#define USART1_RX_PRS_B 0x0UL /**> New Param */
+#define USART1_SC_AVAILABLE 0x1UL /**> None */
+#define USART1_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART1_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART1_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART1_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART1_TIMER 0x1UL /**> New Param */
+#define USART1_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_PARTNUMBER 0x4UL /**> Chip Part Number */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_RAM0_INST_COUNT 0x10UL /**> None */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DCDCMODE_WIDTH 0x1UL /**> Mode register width */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define PDM_FIFO_LEN 0x4UL /**> New Param */
+#define PDM_NUM_CH 0x2UL /**> None */
+#define PDM_CH2_PRESENT_B 0x1UL /**> New Param */
+#define PDM_CH3_PRESENT_B 0x1UL /**> New Param */
+#define PDM_NUM_CH_WIDTH 0x1UL /**> New Param */
+#define PDM_PIPELINE 0x0UL /**> None */
+#define PDM_STEREO23_PRESENT_B 0x1UL /**> New Param */
+#define ETAMPDET_NUM_CHNLS 0x2UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_EXCLUDE_DALI 0x0UL /**> Exclude DALI */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x5UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x32UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x12UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x12UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define RTCC_CC_NUM 0x3UL /**> None */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x0UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x0UL /**> None */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_EXCLUDE_DALI 0x1UL /**> Exclude DALI */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+#define PRORTC_CC_NUM 0x2UL /**> None */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_EXCLUDE_DALI(n) (((n) == 0) ? EUSART0_EXCLUDE_DALI \
+ : ((n) == 1) ? EUSART1_EXCLUDE_DALI \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for IADC */
+#define IADC(n) (((n) == 0) ? IADC0 \
+ : 0x0UL)
+#define IADC_NUM(ref) (((ref) == IADC0) ? 0 \
+ : -1)
+#define IADC_CONFIGNUM(n) (((n) == 0) ? IADC0_CONFIGNUM \
+ : 0x0UL)
+#define IADC_FULLRANGEUNIPOLAR(n) (((n) == 0) ? IADC0_FULLRANGEUNIPOLAR \
+ : 0x0UL)
+#define IADC_SCANBYTES(n) (((n) == 0) ? IADC0_SCANBYTES \
+ : 0x0UL)
+#define IADC_ENTRIES(n) (((n) == 0) ? IADC0_ENTRIES \
+ : 0x0UL)
+
+/* Instance macros for LETIMER */
+#define LETIMER(n) (((n) == 0) ? LETIMER0 \
+ : 0x0UL)
+#define LETIMER_NUM(ref) (((ref) == LETIMER0) ? 0 \
+ : -1)
+#define LETIMER_CNT_WIDTH(n) (((n) == 0) ? LETIMER0_CNT_WIDTH \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for USART */
+#define USART(n) (((n) == 0) ? USART0 \
+ : ((n) == 1) ? USART1 \
+ : 0x0UL)
+#define USART_NUM(ref) (((ref) == USART0) ? 0 \
+ : ((ref) == USART1) ? 1 \
+ : -1)
+#define USART_AUTOTX_REG(n) (((n) == 0) ? USART0_AUTOTX_REG \
+ : ((n) == 1) ? USART1_AUTOTX_REG \
+ : 0x0UL)
+#define USART_AUTOTX_REG_B(n) (((n) == 0) ? USART0_AUTOTX_REG_B \
+ : ((n) == 1) ? USART1_AUTOTX_REG_B \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER \
+ : 0x0UL)
+#define USART_AUTOTX_TRIGGER_B(n) (((n) == 0) ? USART0_AUTOTX_TRIGGER_B \
+ : ((n) == 1) ? USART1_AUTOTX_TRIGGER_B \
+ : 0x0UL)
+#define USART_CLK_PRS(n) (((n) == 0) ? USART0_CLK_PRS \
+ : ((n) == 1) ? USART1_CLK_PRS \
+ : 0x0UL)
+#define USART_CLK_PRS_B(n) (((n) == 0) ? USART0_CLK_PRS_B \
+ : ((n) == 1) ? USART1_CLK_PRS_B \
+ : 0x0UL)
+#define USART_FLOW_CONTROL(n) (((n) == 0) ? USART0_FLOW_CONTROL \
+ : ((n) == 1) ? USART1_FLOW_CONTROL \
+ : 0x0UL)
+#define USART_FLOW_CONTROL_B(n) (((n) == 0) ? USART0_FLOW_CONTROL_B \
+ : ((n) == 1) ? USART1_FLOW_CONTROL_B \
+ : 0x0UL)
+#define USART_I2S(n) (((n) == 0) ? USART0_I2S \
+ : ((n) == 1) ? USART1_I2S \
+ : 0x0UL)
+#define USART_I2S_B(n) (((n) == 0) ? USART0_I2S_B \
+ : ((n) == 1) ? USART1_I2S_B \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE(n) (((n) == 0) ? USART0_IRDA_AVAILABLE \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE \
+ : 0x0UL)
+#define USART_IRDA_AVAILABLE_B(n) (((n) == 0) ? USART0_IRDA_AVAILABLE_B \
+ : ((n) == 1) ? USART1_IRDA_AVAILABLE_B \
+ : 0x0UL)
+#define USART_MVDIS_FUNC(n) (((n) == 0) ? USART0_MVDIS_FUNC \
+ : ((n) == 1) ? USART1_MVDIS_FUNC \
+ : 0x0UL)
+#define USART_MVDIS_FUNC_B(n) (((n) == 0) ? USART0_MVDIS_FUNC_B \
+ : ((n) == 1) ? USART1_MVDIS_FUNC_B \
+ : 0x0UL)
+#define USART_RX_PRS(n) (((n) == 0) ? USART0_RX_PRS \
+ : ((n) == 1) ? USART1_RX_PRS \
+ : 0x0UL)
+#define USART_RX_PRS_B(n) (((n) == 0) ? USART0_RX_PRS_B \
+ : ((n) == 1) ? USART1_RX_PRS_B \
+ : 0x0UL)
+#define USART_SC_AVAILABLE(n) (((n) == 0) ? USART0_SC_AVAILABLE \
+ : ((n) == 1) ? USART1_SC_AVAILABLE \
+ : 0x0UL)
+#define USART_SC_AVAILABLE_B(n) (((n) == 0) ? USART0_SC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE(n) (((n) == 0) ? USART0_SYNC_AVAILABLE \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE \
+ : 0x0UL)
+#define USART_SYNC_AVAILABLE_B(n) (((n) == 0) ? USART0_SYNC_AVAILABLE_B \
+ : ((n) == 1) ? USART1_SYNC_AVAILABLE_B \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE \
+ : 0x0UL)
+#define USART_SYNC_LATE_SAMPLE_B(n) (((n) == 0) ? USART0_SYNC_LATE_SAMPLE_B \
+ : ((n) == 1) ? USART1_SYNC_LATE_SAMPLE_B \
+ : 0x0UL)
+#define USART_TIMER(n) (((n) == 0) ? USART0_TIMER \
+ : ((n) == 1) ? USART1_TIMER \
+ : 0x0UL)
+#define USART_TIMER_B(n) (((n) == 0) ? USART0_TIMER_B \
+ : ((n) == 1) ? USART1_TIMER_B \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32MG29B230F1024CM40_Peripheral_Parameters */
+
+/** @} End of group EFR32MG29B230F1024CM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/em_device.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/em_device.h
new file mode 100644
index 000000000..3f2cec628
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/em_device.h
@@ -0,0 +1,61 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories
+ * microcontroller devices
+ *
+ * This is a convenience header file for defining the part number on the
+ * build command line, instead of specifying the part specific header file.
+ *
+ * @verbatim
+ * Example: Add "-DEFM32G890F128" to your build options, to define part
+ * Add "#include "em_device.h" to your source files
+
+ *
+ * @endverbatim
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef EM_DEVICE_H
+#define EM_DEVICE_H
+#if defined(EFR32MG29B140F1024IM40)
+#include "efr32mg29b140f1024im40.h"
+
+#elif defined(EFR32MG29B230F1024CM40)
+#include "efr32mg29b230f1024cm40.h"
+
+#else
+#error "em_device.h: PART NUMBER undefined"
+#endif
+
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+
+#if defined(SL_TRUSTZONE_SECURE) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_TRUSTZONE_SECURE and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+#endif /* EM_DEVICE_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/system_efr32mg29.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/system_efr32mg29.h
new file mode 100644
index 000000000..9eb90cba5
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Include/system_efr32mg29.h
@@ -0,0 +1,247 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS system header file for EFR32MG29
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef SYSTEM_EFR32MG29_H
+#define SYSTEM_EFR32MG29_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include "sl_code_classification.h"
+
+/***************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ ******************************************************************************/
+/***************************************************************************//**
+ * @addtogroup EFR32MG29 EFR32MG29
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ****************************** TYPEDEFS ***********************************
+ ******************************************************************************/
+
+/* Interrupt vectortable entry */
+typedef union {
+ void (*VECTOR_TABLE_Type)(void);
+ void *topOfStack;
+} tVectorEntry;
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+extern uint32_t SystemCoreClock; /**< System Clock Frequency (Core Clock) */
+extern uint32_t SystemHfrcoFreq; /**< System HFRCO frequency */
+#endif
+
+/*Re-direction of IRQn.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQn SMU_S_PRIVILEGED_IRQn
+#else
+#define SMU_PRIVILEGED_IRQn SMU_NS_PRIVILEGED_IRQn
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*Re-direction of IRQHandler.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQHandler SMU_S_PRIVILEGED_IRQHandler
+#else
+#define SMU_PRIVILEGED_IRQHandler SMU_NS_PRIVILEGED_IRQHandler
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*******************************************************************************
+ ***************************** PROTOTYPES **********************************
+ ******************************************************************************/
+
+void Reset_Handler(void); /**< Reset Handler */
+void NMI_Handler(void); /**< NMI Handler */
+void HardFault_Handler(void); /**< Hard Fault Handler */
+void MemManage_Handler(void); /**< MPU Fault Handler */
+void BusFault_Handler(void); /**< Bus Fault Handler */
+void UsageFault_Handler(void); /**< Usage Fault Handler */
+void SecureFault_Handler(void); /**< Secure Fault Handler */
+void SVC_Handler(void); /**< SVCall Handler */
+void DebugMon_Handler(void); /**< Debug Monitor Handler */
+void PendSV_Handler(void); /**< PendSV Handler */
+void SysTick_Handler(void); /**< SysTick Handler */
+
+/* Part Specific Interrupts */
+void SETAMPERHOST_IRQHandler(void); /**< SETAMPERHOST IRQ Handler */
+void SEMBRX_IRQHandler(void); /**< SEMBRX IRQ Handler */
+void SEMBTX_IRQHandler(void); /**< SEMBTX IRQ Handler */
+void SMU_SECURE_IRQHandler(void); /**< SMU_SECURE IRQ Handler */
+void SMU_S_PRIVILEGED_IRQHandler(void); /**< SMU_S_PRIVILEGED IRQ Handler */
+void SMU_NS_PRIVILEGED_IRQHandler(void); /**< SMU_NS_PRIVILEGED IRQ Handler */
+void EMU_IRQHandler(void); /**< EMU IRQ Handler */
+void EMUEFP_IRQHandler(void); /**< EMUEFP IRQ Handler */
+void DCDC_IRQHandler(void); /**< DCDC IRQ Handler */
+void ETAMPDET_IRQHandler(void); /**< ETAMPDET IRQ Handler */
+void TIMER0_IRQHandler(void); /**< TIMER0 IRQ Handler */
+void TIMER1_IRQHandler(void); /**< TIMER1 IRQ Handler */
+void TIMER2_IRQHandler(void); /**< TIMER2 IRQ Handler */
+void TIMER3_IRQHandler(void); /**< TIMER3 IRQ Handler */
+void TIMER4_IRQHandler(void); /**< TIMER4 IRQ Handler */
+void RTCC_IRQHandler(void); /**< RTCC IRQ Handler */
+void USART0_RX_IRQHandler(void); /**< USART0_RX IRQ Handler */
+void USART0_TX_IRQHandler(void); /**< USART0_TX IRQ Handler */
+void USART1_RX_IRQHandler(void); /**< USART1_RX IRQ Handler */
+void USART1_TX_IRQHandler(void); /**< USART1_TX IRQ Handler */
+void EUSART0_RX_IRQHandler(void); /**< EUSART0_RX IRQ Handler */
+void EUSART0_TX_IRQHandler(void); /**< EUSART0_TX IRQ Handler */
+void ICACHE0_IRQHandler(void); /**< ICACHE0 IRQ Handler */
+void BURTC_IRQHandler(void); /**< BURTC IRQ Handler */
+void LETIMER0_IRQHandler(void); /**< LETIMER0 IRQ Handler */
+void SYSCFG_IRQHandler(void); /**< SYSCFG IRQ Handler */
+void LDMA_IRQHandler(void); /**< LDMA IRQ Handler */
+void LFXO_IRQHandler(void); /**< LFXO IRQ Handler */
+void LFRCO_IRQHandler(void); /**< LFRCO IRQ Handler */
+void ULFRCO_IRQHandler(void); /**< ULFRCO IRQ Handler */
+void GPIO_ODD_IRQHandler(void); /**< GPIO_ODD IRQ Handler */
+void GPIO_EVEN_IRQHandler(void); /**< GPIO_EVEN IRQ Handler */
+void I2C0_IRQHandler(void); /**< I2C0 IRQ Handler */
+void I2C1_IRQHandler(void); /**< I2C1 IRQ Handler */
+void EMUDG_IRQHandler(void); /**< EMUDG IRQ Handler */
+void EMUSE_IRQHandler(void); /**< EMUSE IRQ Handler */
+void AGC_IRQHandler(void); /**< AGC IRQ Handler */
+void BUFC_IRQHandler(void); /**< BUFC IRQ Handler */
+void FRC_PRI_IRQHandler(void); /**< FRC_PRI IRQ Handler */
+void FRC_IRQHandler(void); /**< FRC IRQ Handler */
+void MODEM_IRQHandler(void); /**< MODEM IRQ Handler */
+void PROTIMER_IRQHandler(void); /**< PROTIMER IRQ Handler */
+void RAC_RSM_IRQHandler(void); /**< RAC_RSM IRQ Handler */
+void RAC_SEQ_IRQHandler(void); /**< RAC_SEQ IRQ Handler */
+void RDMAILBOX_IRQHandler(void); /**< RDMAILBOX IRQ Handler */
+void RFSENSE_IRQHandler(void); /**< RFSENSE IRQ Handler */
+void SYNTH_IRQHandler(void); /**< SYNTH IRQ Handler */
+void PRORTC_IRQHandler(void); /**< PRORTC IRQ Handler */
+void ACMP0_IRQHandler(void); /**< ACMP0 IRQ Handler */
+void WDOG0_IRQHandler(void); /**< WDOG0 IRQ Handler */
+void HFXO0_IRQHandler(void); /**< HFXO0 IRQ Handler */
+void HFRCO0_IRQHandler(void); /**< HFRCO0 IRQ Handler */
+void CMU_IRQHandler(void); /**< CMU IRQ Handler */
+void AES_IRQHandler(void); /**< AES IRQ Handler */
+void IADC_IRQHandler(void); /**< IADC IRQ Handler */
+void MSC_IRQHandler(void); /**< MSC IRQ Handler */
+void DPLL0_IRQHandler(void); /**< DPLL0 IRQ Handler */
+void PDM_IRQHandler(void); /**< PDM IRQ Handler */
+void SW0_IRQHandler(void); /**< SW0 IRQ Handler */
+void SW1_IRQHandler(void); /**< SW1 IRQ Handler */
+void SW2_IRQHandler(void); /**< SW2 IRQ Handler */
+void SW3_IRQHandler(void); /**< SW3 IRQ Handler */
+void KERNEL0_IRQHandler(void); /**< KERNEL0 IRQ Handler */
+void KERNEL1_IRQHandler(void); /**< KERNEL1 IRQ Handler */
+void M33CTI0_IRQHandler(void); /**< M33CTI0 IRQ Handler */
+void M33CTI1_IRQHandler(void); /**< M33CTI1 IRQ Handler */
+void FPUEXH_IRQHandler(void); /**< FPUEXH IRQ Handler */
+void MPAHBRAM_IRQHandler(void); /**< MPAHBRAM IRQ Handler */
+void EUSART1_RX_IRQHandler(void); /**< EUSART1_RX IRQ Handler */
+void EUSART1_TX_IRQHandler(void); /**< EUSART1_TX IRQ Handler */
+
+#if (__FPU_PRESENT == 1)
+void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
+#endif
+
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHCLKGet(void);
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE uint32_t SystemCoreClockGet(void)
+{
+ return SystemHCLKGet();
+}
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE void SystemCoreClockUpdate(void)
+{
+ SystemHCLKGet();
+}
+
+void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFRCODPLLClockGet(void);
+void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFXOClockGet(void);
+void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFXOClockGet(void);
+void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemULFRCOClockGet(void);
+
+/** @} End of group */
+/** @} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SYSTEM_EFR32MG29_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Source/system_efr32mg29.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Source/system_efr32mg29.c
new file mode 100644
index 000000000..eac647830
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32MG29/Source/system_efr32mg29.c
@@ -0,0 +1,598 @@
+/***************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M33 system support for EFR32MG29 devices.
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#include
+#include "em_device.h"
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
+/*******************************************************************************
+ ****************************** DEFINES ************************************
+ ******************************************************************************/
+
+// System oscillator frequencies. These frequencies are normally constant
+// for a target, but they are made configurable in order to allow run-time
+// handling of different boards. The crystal oscillator clocks can be set
+// compile time to a non-default value by defining respective nFXO_FREQ
+// values according to board design. By defining the nFXO_FREQ to 0,
+// one indicates that the oscillator is not present, in order to save some
+// SW footprint.
+
+#if !defined(FSRCO_FREQ)
+// FSRCO frequency
+#define FSRCO_FREQ (20000000UL)
+#endif
+
+#if !defined(HFXO_FREQ)
+// HFXO frequency
+#define HFXO_FREQ (38400000UL)
+#endif
+
+#if !defined(HFRCODPLL_STARTUP_FREQ)
+// HFRCODPLL startup frequency
+#define HFRCODPLL_STARTUP_FREQ (19000000UL)
+#endif
+
+#if !defined(HFRCODPLL_MAX_FREQ)
+// Maximum HFRCODPLL frequency
+#define HFRCODPLL_MAX_FREQ (80000000UL)
+#endif
+
+// CLKIN0 input
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
+#define CLKIN0_FREQ (0UL)
+#endif
+
+#if !defined(LFRCO_MAX_FREQ)
+// LFRCO frequency, tuned to below frequency during manufacturing.
+#define LFRCO_FREQ (32768UL)
+#endif
+
+#if !defined(ULFRCO_FREQ)
+// ULFRCO frequency
+#define ULFRCO_FREQ (1000UL)
+#endif
+
+#if !defined(LFXO_FREQ)
+// LFXO frequency
+#define LFXO_FREQ (LFRCO_FREQ)
+#endif
+
+/*******************************************************************************
+ ************************** LOCAL VARIABLES ********************************
+ ******************************************************************************/
+
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// NOTE: Gecko bootloaders can't have static variable allocation.
+// System HFXO clock frequency
+static uint32_t SystemHFXOClock = HFXO_FREQ;
+#endif
+
+#if (LFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// System LFXO clock frequency
+static uint32_t SystemLFXOClock = LFXO_FREQ;
+#endif
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+// System HFRCODPLL clock frequency
+static uint32_t SystemHFRCODPLLClock = HFRCODPLL_STARTUP_FREQ;
+#endif
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+
+/**
+ * @brief
+ * System System Clock Frequency (Core Clock).
+ *
+ * @details
+ * Required CMSIS global variable that must be kept up-to-date.
+ */
+uint32_t SystemCoreClock = HFRCODPLL_STARTUP_FREQ;
+
+#endif
+
+/*---------------------------------------------------------------------------
+ * Exception / Interrupt Vector table
+ *---------------------------------------------------------------------------*/
+extern const tVectorEntry __VECTOR_TABLE[16 + EXT_IRQ_COUNT];
+
+/*******************************************************************************
+ ************************** GLOBAL FUNCTIONS *******************************
+ ******************************************************************************/
+
+/**************************************************************************//**
+ * @brief
+ * Initialize the system.
+ *
+ * @details
+ * Do required generic HW system init.
+ *
+ * @note
+ * This function is invoked during system init, before the main() routine
+ * and any data has been initialized. For this reason, it cannot do any
+ * initialization of variables etc.
+ *****************************************************************************/
+void SystemInit(void)
+{
+#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
+ SCB->VTOR = (uint32_t) (&__VECTOR_TABLE[0]);
+#endif
+
+#if defined(UNALIGNED_SUPPORT_DISABLE)
+ SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
+#endif
+
+#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3U << 10U * 2U) /* set CP10 Full Access */
+ | (3U << 11U * 2U)); /* set CP11 Full Access */
+#endif
+
+/* Secure app takes care of moving between the security states.
+ * SL_TRUSTZONE_SECURE MACRO is for secure access.
+ * SL_TRUSTZONE_NONSECURE MACRO is for non-secure access.
+ * When both the MACROS are not defined, during start-up below code makes sure
+ * that all the peripherals are accessed from non-secure address except SMU,
+ * as SMU is used to configure the trustzone state of the system. */
+#if !defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_NONSECURE) \
+ && defined(__TZ_PRESENT)
+ CMU->CLKEN1_SET = CMU_CLKEN1_SMU;
+
+ // config SMU to Secure and other peripherals to Non-Secure.
+ SMU->PPUSATD0_CLR = _SMU_PPUSATD0_MASK;
+#if defined (SEMAILBOX_PRESENT)
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & (~SMU_PPUSATD1_SMU & ~SMU_PPUSATD1_SEMAILBOX));
+#else
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & ~SMU_PPUSATD1_SMU);
+#endif
+
+ // SAU treats all accesses as non-secure
+#if defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
+ SAU->CTRL = SAU_CTRL_ALLNS_Msk;
+ __DSB();
+ __ISB();
+#else
+ #error "The startup code requires access to the CMSE toolchain extension to set proper SAU settings."
+#endif // __ARM_FEATURE_CMSE
+
+// Clear and Enable the SMU PPUSEC and BMPUSEC interrupt.
+ NVIC_ClearPendingIRQ(SMU_SECURE_IRQn);
+ SMU->IF_CLR = SMU_IF_PPUSEC | SMU_IF_BMPUSEC;
+ NVIC_EnableIRQ(SMU_SECURE_IRQn);
+ SMU->IEN = SMU_IEN_PPUSEC | SMU_IEN_BMPUSEC;
+#endif //SL_TRUSTZONE_SECURE
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current HFRCODPLL frequency.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemHFRCODPLLClockGet(void)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ return SystemHFRCODPLLClock;
+#else
+ uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
+
+ // Get oscillator frequency band
+ switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
+ >> _HFRCO_CAL_FREQRANGE_SHIFT) {
+ case 0:
+ switch (HFRCO0->CAL & _HFRCO_CAL_CLKDIV_MASK) {
+ case HFRCO_CAL_CLKDIV_DIV1:
+ ret = 4000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV2:
+ ret = 2000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV4:
+ ret = 1000000UL;
+ break;
+
+ default:
+ ret = 0UL;
+ break;
+ }
+ break;
+
+ case 3:
+ ret = 7000000UL;
+ break;
+
+ case 6:
+ ret = 13000000UL;
+ break;
+
+ case 7:
+ ret = 16000000UL;
+ break;
+
+ case 8:
+ ret = 19000000UL;
+ break;
+
+ case 10:
+ ret = 26000000UL;
+ break;
+
+ case 11:
+ ret = 32000000UL;
+ break;
+
+ case 12:
+ ret = 38000000UL;
+ break;
+
+ case 13:
+ ret = 48000000UL;
+ break;
+
+ case 14:
+ ret = 56000000UL;
+ break;
+
+ case 15:
+ ret = 64000000UL;
+ break;
+
+ case 16:
+ ret = 80000000UL;
+ break;
+
+ default:
+ break;
+ }
+ return ret;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set HFRCODPLL frequency value.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+void SystemHFRCODPLLClockSet(uint32_t freq)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFRCODPLLClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system clock frequency (SYSCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * hardware configuration.
+ *
+ * @note
+ * This is an EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * Current system clock (SYSCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemSYSCLKGet(void)
+{
+ uint32_t ret = 0U;
+
+ // Find clock source
+ switch (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK) {
+ case _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL:
+ ret = SystemHFRCODPLLClockGet();
+ break;
+
+#if (HFXO_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_HFXO:
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ ret = HFXO_FREQ;
+#else
+ ret = SystemHFXOClock;
+#endif
+ break;
+#endif
+
+#if (CLKIN0_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_CLKIN0:
+ ret = CLKIN0_FREQ;
+ break;
+#endif
+
+ case _CMU_SYSCLKCTRL_CLKSEL_FSRCO:
+ ret = FSRCO_FREQ;
+ break;
+
+ default:
+ // Unknown clock source.
+ while (1) {
+ }
+ }
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system core clock frequency (HCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * configuration. Assuming that the SystemCoreClock global variable is
+ * maintained, the core clock frequency is stored in that variable as well.
+ * This function will however calculate the core clock based on actual HW
+ * configuration. It will also update the SystemCoreClock global variable.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The current core clock (HCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemHCLKGet(void)
+{
+ uint32_t presc, ret;
+
+ ret = SystemSYSCLKGet();
+
+ presc = (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_HCLKPRESC_MASK)
+ >> _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT;
+
+ ret /= presc + 1U;
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ // Keep CMSIS system clock variable up-to-date
+ SystemCoreClock = ret;
+#endif
+
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the maximum core clock frequency.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The maximum core clock frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemMaxCoreClockGet(void)
+{
+ return(HFRCODPLL_MAX_FREQ > HFXO_FREQ \
+ ? HFRCODPLL_MAX_FREQ : HFXO_FREQ);
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFXO frequency in Hz. 0 if the external crystal oscillator is not present.
+ *****************************************************************************/
+uint32_t SystemHFXOClockGet(void)
+{
+ // The external crystal oscillator is not present if HFXO_FREQ==0
+#if (HFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return HFXO_FREQ;
+#else
+ return SystemHFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemHFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFXOClock = freq;
+
+ // Update core clock frequency if HFXO is used to clock core
+ if ((CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK)
+ == _CMU_SYSCLKCTRL_CLKSEL_HFXO) {
+ // This function will update the global variable
+ SystemHCLKGet();
+ }
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current CLKIN0 frequency.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * CLKIN0 frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemCLKIN0Get(void)
+{
+ return CLKIN0_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get FSRCO frequency.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * FSRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemFSRCOClockGet(void)
+{
+ return FSRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFRCOClockGet(void)
+{
+ return LFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get ultra low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * ULFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemULFRCOClockGet(void)
+{
+ // The ULFRCO frequency is not tuned, and can be very inaccurate
+ return ULFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFXO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFXOClockGet(void)
+{
+ // External crystal present?
+#if (LFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return LFXO_FREQ;
+#else
+ return SystemLFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32MG29 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * LFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemLFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (LFXO_FREQ > 0U) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemLFXOClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_acmp.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_acmp.h
new file mode 100644
index 000000000..96c92057a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_acmp.h
@@ -0,0 +1,654 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 ACMP register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_ACMP_H
+#define EFR32ZG23_ACMP_H
+#define ACMP_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_ACMP ACMP
+ * @{
+ * @brief EFR32ZG23 ACMP Register Declaration.
+ *****************************************************************************/
+
+/** ACMP Register Declaration. */
+typedef struct acmp_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< ACMP enable */
+ __IOM uint32_t SWRST; /**< Software reset */
+ __IOM uint32_t CFG; /**< Configuration register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL; /**< Input Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< ACMP enable */
+ __IOM uint32_t SWRST_SET; /**< Software reset */
+ __IOM uint32_t CFG_SET; /**< Configuration register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_SET; /**< Input Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< ACMP enable */
+ __IOM uint32_t SWRST_CLR; /**< Software reset */
+ __IOM uint32_t CFG_CLR; /**< Configuration register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_CLR; /**< Input Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< ACMP enable */
+ __IOM uint32_t SWRST_TGL; /**< Software reset */
+ __IOM uint32_t CFG_TGL; /**< Configuration register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t INPUTCTRL_TGL; /**< Input Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy */
+} ACMP_TypeDef;
+/** @} End of group EFR32ZG23_ACMP */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_ACMP
+ * @{
+ * @defgroup EFR32ZG23_ACMP_BitFields ACMP Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ACMP IPVERSION */
+#define _ACMP_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ACMP_IPVERSION */
+#define _ACMP_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for ACMP_IPVERSION */
+#define ACMP_IPVERSION_IPVERSION_DEFAULT (_ACMP_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IPVERSION */
+
+/* Bit fields for ACMP EN */
+#define _ACMP_EN_RESETVALUE 0x00000000UL /**< Default value for ACMP_EN */
+#define _ACMP_EN_MASK 0x00000003UL /**< Mask for ACMP_EN */
+#define ACMP_EN_EN (0x1UL << 0) /**< Module enable */
+#define _ACMP_EN_EN_SHIFT 0 /**< Shift value for ACMP_EN */
+#define _ACMP_EN_EN_MASK 0x1UL /**< Bit mask for ACMP_EN */
+#define _ACMP_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_EN_DEFAULT (_ACMP_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _ACMP_EN_DISABLING_SHIFT 1 /**< Shift value for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_MASK 0x2UL /**< Bit mask for ACMP_DISABLING */
+#define _ACMP_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_EN */
+#define ACMP_EN_DISABLING_DEFAULT (_ACMP_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_EN */
+
+/* Bit fields for ACMP SWRST */
+#define _ACMP_SWRST_RESETVALUE 0x00000000UL /**< Default value for ACMP_SWRST */
+#define _ACMP_SWRST_MASK 0x00000003UL /**< Mask for ACMP_SWRST */
+#define ACMP_SWRST_SWRST (0x1UL << 0) /**< Software reset */
+#define _ACMP_SWRST_SWRST_SHIFT 0 /**< Shift value for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_MASK 0x1UL /**< Bit mask for ACMP_SWRST */
+#define _ACMP_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_SWRST_DEFAULT (_ACMP_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _ACMP_SWRST_RESETTING_SHIFT 1 /**< Shift value for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for ACMP_RESETTING */
+#define _ACMP_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SWRST */
+#define ACMP_SWRST_RESETTING_DEFAULT (_ACMP_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_SWRST */
+
+/* Bit fields for ACMP CFG */
+#define _ACMP_CFG_RESETVALUE 0x00000004UL /**< Default value for ACMP_CFG */
+#define _ACMP_CFG_MASK 0x00030F07UL /**< Mask for ACMP_CFG */
+#define _ACMP_CFG_BIAS_SHIFT 0 /**< Shift value for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_MASK 0x7UL /**< Bit mask for ACMP_BIAS */
+#define _ACMP_CFG_BIAS_DEFAULT 0x00000004UL /**< Mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_BIAS_DEFAULT (_ACMP_CFG_BIAS_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_SHIFT 8 /**< Shift value for ACMP_HYST */
+#define _ACMP_CFG_HYST_MASK 0xF00UL /**< Bit mask for ACMP_HYST */
+#define _ACMP_CFG_HYST_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_HYST_DISABLED 0x00000000UL /**< Mode DISABLED for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM10MV 0x00000001UL /**< Mode SYM10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM20MV 0x00000002UL /**< Mode SYM20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_SYM30MV 0x00000003UL /**< Mode SYM30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS10MV 0x00000004UL /**< Mode POS10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS20MV 0x00000005UL /**< Mode POS20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_POS30MV 0x00000006UL /**< Mode POS30MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG10MV 0x00000008UL /**< Mode NEG10MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG20MV 0x00000009UL /**< Mode NEG20MV for ACMP_CFG */
+#define _ACMP_CFG_HYST_NEG30MV 0x0000000AUL /**< Mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_DEFAULT (_ACMP_CFG_HYST_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_HYST_DISABLED (_ACMP_CFG_HYST_DISABLED << 8) /**< Shifted mode DISABLED for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM10MV (_ACMP_CFG_HYST_SYM10MV << 8) /**< Shifted mode SYM10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM20MV (_ACMP_CFG_HYST_SYM20MV << 8) /**< Shifted mode SYM20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_SYM30MV (_ACMP_CFG_HYST_SYM30MV << 8) /**< Shifted mode SYM30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS10MV (_ACMP_CFG_HYST_POS10MV << 8) /**< Shifted mode POS10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS20MV (_ACMP_CFG_HYST_POS20MV << 8) /**< Shifted mode POS20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_POS30MV (_ACMP_CFG_HYST_POS30MV << 8) /**< Shifted mode POS30MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG10MV (_ACMP_CFG_HYST_NEG10MV << 8) /**< Shifted mode NEG10MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG20MV (_ACMP_CFG_HYST_NEG20MV << 8) /**< Shifted mode NEG20MV for ACMP_CFG */
+#define ACMP_CFG_HYST_NEG30MV (_ACMP_CFG_HYST_NEG30MV << 8) /**< Shifted mode NEG30MV for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE (0x1UL << 16) /**< Input Range */
+#define _ACMP_CFG_INPUTRANGE_SHIFT 16 /**< Shift value for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_MASK 0x10000UL /**< Bit mask for ACMP_INPUTRANGE */
+#define _ACMP_CFG_INPUTRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_FULL 0x00000000UL /**< Mode FULL for ACMP_CFG */
+#define _ACMP_CFG_INPUTRANGE_REDUCED 0x00000001UL /**< Mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_DEFAULT (_ACMP_CFG_INPUTRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_FULL (_ACMP_CFG_INPUTRANGE_FULL << 16) /**< Shifted mode FULL for ACMP_CFG */
+#define ACMP_CFG_INPUTRANGE_REDUCED (_ACMP_CFG_INPUTRANGE_REDUCED << 16) /**< Shifted mode REDUCED for ACMP_CFG */
+#define ACMP_CFG_ACCURACY (0x1UL << 17) /**< ACMP accuracy mode */
+#define _ACMP_CFG_ACCURACY_SHIFT 17 /**< Shift value for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_MASK 0x20000UL /**< Bit mask for ACMP_ACCURACY */
+#define _ACMP_CFG_ACCURACY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_LOW 0x00000000UL /**< Mode LOW for ACMP_CFG */
+#define _ACMP_CFG_ACCURACY_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_DEFAULT (_ACMP_CFG_ACCURACY_DEFAULT << 17) /**< Shifted mode DEFAULT for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_LOW (_ACMP_CFG_ACCURACY_LOW << 17) /**< Shifted mode LOW for ACMP_CFG */
+#define ACMP_CFG_ACCURACY_HIGH (_ACMP_CFG_ACCURACY_HIGH << 17) /**< Shifted mode HIGH for ACMP_CFG */
+
+/* Bit fields for ACMP CTRL */
+#define _ACMP_CTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_CTRL */
+#define _ACMP_CTRL_MASK 0x00000003UL /**< Mask for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL (0x1UL << 0) /**< Not Ready Value */
+#define _ACMP_CTRL_NOTRDYVAL_SHIFT 0 /**< Shift value for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_MASK 0x1UL /**< Bit mask for ACMP_NOTRDYVAL */
+#define _ACMP_CTRL_NOTRDYVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_LOW 0x00000000UL /**< Mode LOW for ACMP_CTRL */
+#define _ACMP_CTRL_NOTRDYVAL_HIGH 0x00000001UL /**< Mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_DEFAULT (_ACMP_CTRL_NOTRDYVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_LOW (_ACMP_CTRL_NOTRDYVAL_LOW << 0) /**< Shifted mode LOW for ACMP_CTRL */
+#define ACMP_CTRL_NOTRDYVAL_HIGH (_ACMP_CTRL_NOTRDYVAL_HIGH << 0) /**< Shifted mode HIGH for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV (0x1UL << 1) /**< Comparator GPIO Output Invert */
+#define _ACMP_CTRL_GPIOINV_SHIFT 1 /**< Shift value for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_MASK 0x2UL /**< Bit mask for ACMP_GPIOINV */
+#define _ACMP_CTRL_GPIOINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_NOTINV 0x00000000UL /**< Mode NOTINV for ACMP_CTRL */
+#define _ACMP_CTRL_GPIOINV_INV 0x00000001UL /**< Mode INV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_DEFAULT (_ACMP_CTRL_GPIOINV_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_NOTINV (_ACMP_CTRL_GPIOINV_NOTINV << 1) /**< Shifted mode NOTINV for ACMP_CTRL */
+#define ACMP_CTRL_GPIOINV_INV (_ACMP_CTRL_GPIOINV_INV << 1) /**< Shifted mode INV for ACMP_CTRL */
+
+/* Bit fields for ACMP INPUTCTRL */
+#define _ACMP_INPUTCTRL_RESETVALUE 0x00000000UL /**< Default value for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_MASK 0x703FFFFFUL /**< Mask for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_SHIFT 0 /**< Shift value for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_MASK 0xFFUL /**< Bit mask for ACMP_POSSEL */
+#define _ACMP_INPUTCTRL_POSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VDACOUT0 0x00000040UL /**< Mode VDACOUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_VDACOUT1 0x00000041UL /**< Mode VDACOUT1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPA 0x00000050UL /**< Mode EXTPA for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPB 0x00000051UL /**< Mode EXTPB for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPC 0x00000052UL /**< Mode EXTPC for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_EXTPD 0x00000053UL /**< Mode EXTPD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_POSSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_DEFAULT (_ACMP_INPUTCTRL_POSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VSS (_ACMP_INPUTCTRL_POSSEL_VSS << 0) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDD << 0) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_POSSEL_VREFDIVAVDDLP << 0) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25 << 0) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV1V25LP << 0) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5 << 0) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_POSSEL_VREFDIV2V5LP << 0) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4 << 0) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE01DIV4LP << 0) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4 << 0) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_POSSEL_VSENSE11DIV4LP << 0) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_POSSEL_VDACOUT0 (_ACMP_INPUTCTRL_POSSEL_VDACOUT0 << 0) /**< Shifted mode VDACOUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_VDACOUT1 (_ACMP_INPUTCTRL_POSSEL_VDACOUT1 << 0) /**< Shifted mode VDACOUT1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPA (_ACMP_INPUTCTRL_POSSEL_EXTPA << 0) /**< Shifted mode EXTPA for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPB (_ACMP_INPUTCTRL_POSSEL_EXTPB << 0) /**< Shifted mode EXTPB for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPC (_ACMP_INPUTCTRL_POSSEL_EXTPC << 0) /**< Shifted mode EXTPC for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_EXTPD (_ACMP_INPUTCTRL_POSSEL_EXTPD << 0) /**< Shifted mode EXTPD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA0 (_ACMP_INPUTCTRL_POSSEL_PA0 << 0) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA1 (_ACMP_INPUTCTRL_POSSEL_PA1 << 0) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA2 (_ACMP_INPUTCTRL_POSSEL_PA2 << 0) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA3 (_ACMP_INPUTCTRL_POSSEL_PA3 << 0) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA4 (_ACMP_INPUTCTRL_POSSEL_PA4 << 0) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA5 (_ACMP_INPUTCTRL_POSSEL_PA5 << 0) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA6 (_ACMP_INPUTCTRL_POSSEL_PA6 << 0) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA7 (_ACMP_INPUTCTRL_POSSEL_PA7 << 0) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA8 (_ACMP_INPUTCTRL_POSSEL_PA8 << 0) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA9 (_ACMP_INPUTCTRL_POSSEL_PA9 << 0) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA10 (_ACMP_INPUTCTRL_POSSEL_PA10 << 0) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA11 (_ACMP_INPUTCTRL_POSSEL_PA11 << 0) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA12 (_ACMP_INPUTCTRL_POSSEL_PA12 << 0) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA13 (_ACMP_INPUTCTRL_POSSEL_PA13 << 0) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA14 (_ACMP_INPUTCTRL_POSSEL_PA14 << 0) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PA15 (_ACMP_INPUTCTRL_POSSEL_PA15 << 0) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB0 (_ACMP_INPUTCTRL_POSSEL_PB0 << 0) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB1 (_ACMP_INPUTCTRL_POSSEL_PB1 << 0) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB2 (_ACMP_INPUTCTRL_POSSEL_PB2 << 0) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB3 (_ACMP_INPUTCTRL_POSSEL_PB3 << 0) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB4 (_ACMP_INPUTCTRL_POSSEL_PB4 << 0) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB5 (_ACMP_INPUTCTRL_POSSEL_PB5 << 0) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB6 (_ACMP_INPUTCTRL_POSSEL_PB6 << 0) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB7 (_ACMP_INPUTCTRL_POSSEL_PB7 << 0) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB8 (_ACMP_INPUTCTRL_POSSEL_PB8 << 0) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB9 (_ACMP_INPUTCTRL_POSSEL_PB9 << 0) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB10 (_ACMP_INPUTCTRL_POSSEL_PB10 << 0) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB11 (_ACMP_INPUTCTRL_POSSEL_PB11 << 0) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB12 (_ACMP_INPUTCTRL_POSSEL_PB12 << 0) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB13 (_ACMP_INPUTCTRL_POSSEL_PB13 << 0) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB14 (_ACMP_INPUTCTRL_POSSEL_PB14 << 0) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PB15 (_ACMP_INPUTCTRL_POSSEL_PB15 << 0) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC0 (_ACMP_INPUTCTRL_POSSEL_PC0 << 0) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC1 (_ACMP_INPUTCTRL_POSSEL_PC1 << 0) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC2 (_ACMP_INPUTCTRL_POSSEL_PC2 << 0) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC3 (_ACMP_INPUTCTRL_POSSEL_PC3 << 0) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC4 (_ACMP_INPUTCTRL_POSSEL_PC4 << 0) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC5 (_ACMP_INPUTCTRL_POSSEL_PC5 << 0) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC6 (_ACMP_INPUTCTRL_POSSEL_PC6 << 0) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC7 (_ACMP_INPUTCTRL_POSSEL_PC7 << 0) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC8 (_ACMP_INPUTCTRL_POSSEL_PC8 << 0) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC9 (_ACMP_INPUTCTRL_POSSEL_PC9 << 0) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC10 (_ACMP_INPUTCTRL_POSSEL_PC10 << 0) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC11 (_ACMP_INPUTCTRL_POSSEL_PC11 << 0) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC12 (_ACMP_INPUTCTRL_POSSEL_PC12 << 0) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC13 (_ACMP_INPUTCTRL_POSSEL_PC13 << 0) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC14 (_ACMP_INPUTCTRL_POSSEL_PC14 << 0) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PC15 (_ACMP_INPUTCTRL_POSSEL_PC15 << 0) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD0 (_ACMP_INPUTCTRL_POSSEL_PD0 << 0) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD1 (_ACMP_INPUTCTRL_POSSEL_PD1 << 0) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD2 (_ACMP_INPUTCTRL_POSSEL_PD2 << 0) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD3 (_ACMP_INPUTCTRL_POSSEL_PD3 << 0) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD4 (_ACMP_INPUTCTRL_POSSEL_PD4 << 0) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD5 (_ACMP_INPUTCTRL_POSSEL_PD5 << 0) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD6 (_ACMP_INPUTCTRL_POSSEL_PD6 << 0) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD7 (_ACMP_INPUTCTRL_POSSEL_PD7 << 0) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD8 (_ACMP_INPUTCTRL_POSSEL_PD8 << 0) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD9 (_ACMP_INPUTCTRL_POSSEL_PD9 << 0) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD10 (_ACMP_INPUTCTRL_POSSEL_PD10 << 0) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD11 (_ACMP_INPUTCTRL_POSSEL_PD11 << 0) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD12 (_ACMP_INPUTCTRL_POSSEL_PD12 << 0) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD13 (_ACMP_INPUTCTRL_POSSEL_PD13 << 0) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD14 (_ACMP_INPUTCTRL_POSSEL_PD14 << 0) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_POSSEL_PD15 (_ACMP_INPUTCTRL_POSSEL_PD15 << 0) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_SHIFT 8 /**< Shift value for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_MASK 0xFF00UL /**< Bit mask for ACMP_NEGSEL */
+#define _ACMP_INPUTCTRL_NEGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSS 0x00000000UL /**< Mode VSS for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD 0x00000010UL /**< Mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP 0x00000011UL /**< Mode VREFDIVAVDDLP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 0x00000012UL /**< Mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP 0x00000013UL /**< Mode VREFDIV1V25LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 0x00000014UL /**< Mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP 0x00000015UL /**< Mode VREFDIV2V5LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 0x00000020UL /**< Mode VSENSE01DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP 0x00000021UL /**< Mode VSENSE01DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 0x00000022UL /**< Mode VSENSE11DIV4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP 0x00000023UL /**< Mode VSENSE11DIV4LP for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_CAPSENSE 0x00000030UL /**< Mode CAPSENSE for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDACOUT0 0x00000040UL /**< Mode VDACOUT0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_VDACOUT1 0x00000041UL /**< Mode VDACOUT1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA0 0x00000080UL /**< Mode PA0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA1 0x00000081UL /**< Mode PA1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA2 0x00000082UL /**< Mode PA2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA3 0x00000083UL /**< Mode PA3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA4 0x00000084UL /**< Mode PA4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA5 0x00000085UL /**< Mode PA5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA6 0x00000086UL /**< Mode PA6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA7 0x00000087UL /**< Mode PA7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA8 0x00000088UL /**< Mode PA8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA9 0x00000089UL /**< Mode PA9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA10 0x0000008AUL /**< Mode PA10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA11 0x0000008BUL /**< Mode PA11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA12 0x0000008CUL /**< Mode PA12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA13 0x0000008DUL /**< Mode PA13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA14 0x0000008EUL /**< Mode PA14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PA15 0x0000008FUL /**< Mode PA15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB0 0x00000090UL /**< Mode PB0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB1 0x00000091UL /**< Mode PB1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB2 0x00000092UL /**< Mode PB2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB3 0x00000093UL /**< Mode PB3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB4 0x00000094UL /**< Mode PB4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB5 0x00000095UL /**< Mode PB5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB6 0x00000096UL /**< Mode PB6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB7 0x00000097UL /**< Mode PB7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB8 0x00000098UL /**< Mode PB8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB9 0x00000099UL /**< Mode PB9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB10 0x0000009AUL /**< Mode PB10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB11 0x0000009BUL /**< Mode PB11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB12 0x0000009CUL /**< Mode PB12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB13 0x0000009DUL /**< Mode PB13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB14 0x0000009EUL /**< Mode PB14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PB15 0x0000009FUL /**< Mode PB15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC0 0x000000A0UL /**< Mode PC0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC1 0x000000A1UL /**< Mode PC1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC2 0x000000A2UL /**< Mode PC2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC3 0x000000A3UL /**< Mode PC3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC4 0x000000A4UL /**< Mode PC4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC5 0x000000A5UL /**< Mode PC5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC6 0x000000A6UL /**< Mode PC6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC7 0x000000A7UL /**< Mode PC7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC8 0x000000A8UL /**< Mode PC8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC9 0x000000A9UL /**< Mode PC9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC10 0x000000AAUL /**< Mode PC10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC11 0x000000ABUL /**< Mode PC11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC12 0x000000ACUL /**< Mode PC12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC13 0x000000ADUL /**< Mode PC13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC14 0x000000AEUL /**< Mode PC14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PC15 0x000000AFUL /**< Mode PC15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD0 0x000000B0UL /**< Mode PD0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD1 0x000000B1UL /**< Mode PD1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD2 0x000000B2UL /**< Mode PD2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD3 0x000000B3UL /**< Mode PD3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD4 0x000000B4UL /**< Mode PD4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD5 0x000000B5UL /**< Mode PD5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD6 0x000000B6UL /**< Mode PD6 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD7 0x000000B7UL /**< Mode PD7 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD8 0x000000B8UL /**< Mode PD8 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD9 0x000000B9UL /**< Mode PD9 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD10 0x000000BAUL /**< Mode PD10 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD11 0x000000BBUL /**< Mode PD11 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD12 0x000000BCUL /**< Mode PD12 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD13 0x000000BDUL /**< Mode PD13 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD14 0x000000BEUL /**< Mode PD14 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_NEGSEL_PD15 0x000000BFUL /**< Mode PD15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_DEFAULT (_ACMP_INPUTCTRL_NEGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VSS (_ACMP_INPUTCTRL_NEGSEL_VSS << 8) /**< Shifted mode VSS for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDD << 8) /**< Shifted mode VREFDIVAVDD for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP (_ACMP_INPUTCTRL_NEGSEL_VREFDIVAVDDLP << 8) /**< Shifted mode VREFDIVAVDDLP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25 << 8) /**< Shifted mode VREFDIV1V25 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV1V25LP << 8) /**< Shifted mode VREFDIV1V25LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5 << 8) /**< Shifted mode VREFDIV2V5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP (_ACMP_INPUTCTRL_NEGSEL_VREFDIV2V5LP << 8) /**< Shifted mode VREFDIV2V5LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4 << 8) /**< Shifted mode VSENSE01DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE01DIV4LP << 8) /**< Shifted mode VSENSE01DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4 << 8) /**< Shifted mode VSENSE11DIV4 for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP (_ACMP_INPUTCTRL_NEGSEL_VSENSE11DIV4LP << 8) /**< Shifted mode VSENSE11DIV4LP for ACMP_INPUTCTRL*/
+#define ACMP_INPUTCTRL_NEGSEL_CAPSENSE (_ACMP_INPUTCTRL_NEGSEL_CAPSENSE << 8) /**< Shifted mode CAPSENSE for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDACOUT0 (_ACMP_INPUTCTRL_NEGSEL_VDACOUT0 << 8) /**< Shifted mode VDACOUT0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_VDACOUT1 (_ACMP_INPUTCTRL_NEGSEL_VDACOUT1 << 8) /**< Shifted mode VDACOUT1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA0 (_ACMP_INPUTCTRL_NEGSEL_PA0 << 8) /**< Shifted mode PA0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA1 (_ACMP_INPUTCTRL_NEGSEL_PA1 << 8) /**< Shifted mode PA1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA2 (_ACMP_INPUTCTRL_NEGSEL_PA2 << 8) /**< Shifted mode PA2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA3 (_ACMP_INPUTCTRL_NEGSEL_PA3 << 8) /**< Shifted mode PA3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA4 (_ACMP_INPUTCTRL_NEGSEL_PA4 << 8) /**< Shifted mode PA4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA5 (_ACMP_INPUTCTRL_NEGSEL_PA5 << 8) /**< Shifted mode PA5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA6 (_ACMP_INPUTCTRL_NEGSEL_PA6 << 8) /**< Shifted mode PA6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA7 (_ACMP_INPUTCTRL_NEGSEL_PA7 << 8) /**< Shifted mode PA7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA8 (_ACMP_INPUTCTRL_NEGSEL_PA8 << 8) /**< Shifted mode PA8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA9 (_ACMP_INPUTCTRL_NEGSEL_PA9 << 8) /**< Shifted mode PA9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA10 (_ACMP_INPUTCTRL_NEGSEL_PA10 << 8) /**< Shifted mode PA10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA11 (_ACMP_INPUTCTRL_NEGSEL_PA11 << 8) /**< Shifted mode PA11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA12 (_ACMP_INPUTCTRL_NEGSEL_PA12 << 8) /**< Shifted mode PA12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA13 (_ACMP_INPUTCTRL_NEGSEL_PA13 << 8) /**< Shifted mode PA13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA14 (_ACMP_INPUTCTRL_NEGSEL_PA14 << 8) /**< Shifted mode PA14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PA15 (_ACMP_INPUTCTRL_NEGSEL_PA15 << 8) /**< Shifted mode PA15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB0 (_ACMP_INPUTCTRL_NEGSEL_PB0 << 8) /**< Shifted mode PB0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB1 (_ACMP_INPUTCTRL_NEGSEL_PB1 << 8) /**< Shifted mode PB1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB2 (_ACMP_INPUTCTRL_NEGSEL_PB2 << 8) /**< Shifted mode PB2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB3 (_ACMP_INPUTCTRL_NEGSEL_PB3 << 8) /**< Shifted mode PB3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB4 (_ACMP_INPUTCTRL_NEGSEL_PB4 << 8) /**< Shifted mode PB4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB5 (_ACMP_INPUTCTRL_NEGSEL_PB5 << 8) /**< Shifted mode PB5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB6 (_ACMP_INPUTCTRL_NEGSEL_PB6 << 8) /**< Shifted mode PB6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB7 (_ACMP_INPUTCTRL_NEGSEL_PB7 << 8) /**< Shifted mode PB7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB8 (_ACMP_INPUTCTRL_NEGSEL_PB8 << 8) /**< Shifted mode PB8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB9 (_ACMP_INPUTCTRL_NEGSEL_PB9 << 8) /**< Shifted mode PB9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB10 (_ACMP_INPUTCTRL_NEGSEL_PB10 << 8) /**< Shifted mode PB10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB11 (_ACMP_INPUTCTRL_NEGSEL_PB11 << 8) /**< Shifted mode PB11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB12 (_ACMP_INPUTCTRL_NEGSEL_PB12 << 8) /**< Shifted mode PB12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB13 (_ACMP_INPUTCTRL_NEGSEL_PB13 << 8) /**< Shifted mode PB13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB14 (_ACMP_INPUTCTRL_NEGSEL_PB14 << 8) /**< Shifted mode PB14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PB15 (_ACMP_INPUTCTRL_NEGSEL_PB15 << 8) /**< Shifted mode PB15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC0 (_ACMP_INPUTCTRL_NEGSEL_PC0 << 8) /**< Shifted mode PC0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC1 (_ACMP_INPUTCTRL_NEGSEL_PC1 << 8) /**< Shifted mode PC1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC2 (_ACMP_INPUTCTRL_NEGSEL_PC2 << 8) /**< Shifted mode PC2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC3 (_ACMP_INPUTCTRL_NEGSEL_PC3 << 8) /**< Shifted mode PC3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC4 (_ACMP_INPUTCTRL_NEGSEL_PC4 << 8) /**< Shifted mode PC4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC5 (_ACMP_INPUTCTRL_NEGSEL_PC5 << 8) /**< Shifted mode PC5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC6 (_ACMP_INPUTCTRL_NEGSEL_PC6 << 8) /**< Shifted mode PC6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC7 (_ACMP_INPUTCTRL_NEGSEL_PC7 << 8) /**< Shifted mode PC7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC8 (_ACMP_INPUTCTRL_NEGSEL_PC8 << 8) /**< Shifted mode PC8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC9 (_ACMP_INPUTCTRL_NEGSEL_PC9 << 8) /**< Shifted mode PC9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC10 (_ACMP_INPUTCTRL_NEGSEL_PC10 << 8) /**< Shifted mode PC10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC11 (_ACMP_INPUTCTRL_NEGSEL_PC11 << 8) /**< Shifted mode PC11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC12 (_ACMP_INPUTCTRL_NEGSEL_PC12 << 8) /**< Shifted mode PC12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC13 (_ACMP_INPUTCTRL_NEGSEL_PC13 << 8) /**< Shifted mode PC13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC14 (_ACMP_INPUTCTRL_NEGSEL_PC14 << 8) /**< Shifted mode PC14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PC15 (_ACMP_INPUTCTRL_NEGSEL_PC15 << 8) /**< Shifted mode PC15 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD0 (_ACMP_INPUTCTRL_NEGSEL_PD0 << 8) /**< Shifted mode PD0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD1 (_ACMP_INPUTCTRL_NEGSEL_PD1 << 8) /**< Shifted mode PD1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD2 (_ACMP_INPUTCTRL_NEGSEL_PD2 << 8) /**< Shifted mode PD2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD3 (_ACMP_INPUTCTRL_NEGSEL_PD3 << 8) /**< Shifted mode PD3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD4 (_ACMP_INPUTCTRL_NEGSEL_PD4 << 8) /**< Shifted mode PD4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD5 (_ACMP_INPUTCTRL_NEGSEL_PD5 << 8) /**< Shifted mode PD5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD6 (_ACMP_INPUTCTRL_NEGSEL_PD6 << 8) /**< Shifted mode PD6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD7 (_ACMP_INPUTCTRL_NEGSEL_PD7 << 8) /**< Shifted mode PD7 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD8 (_ACMP_INPUTCTRL_NEGSEL_PD8 << 8) /**< Shifted mode PD8 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD9 (_ACMP_INPUTCTRL_NEGSEL_PD9 << 8) /**< Shifted mode PD9 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD10 (_ACMP_INPUTCTRL_NEGSEL_PD10 << 8) /**< Shifted mode PD10 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD11 (_ACMP_INPUTCTRL_NEGSEL_PD11 << 8) /**< Shifted mode PD11 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD12 (_ACMP_INPUTCTRL_NEGSEL_PD12 << 8) /**< Shifted mode PD12 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD13 (_ACMP_INPUTCTRL_NEGSEL_PD13 << 8) /**< Shifted mode PD13 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD14 (_ACMP_INPUTCTRL_NEGSEL_PD14 << 8) /**< Shifted mode PD14 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_NEGSEL_PD15 (_ACMP_INPUTCTRL_NEGSEL_PD15 << 8) /**< Shifted mode PD15 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_VREFDIV_SHIFT 16 /**< Shift value for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_MASK 0x3F0000UL /**< Bit mask for ACMP_VREFDIV */
+#define _ACMP_INPUTCTRL_VREFDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_VREFDIV_DEFAULT (_ACMP_INPUTCTRL_VREFDIV_DEFAULT << 16) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_SHIFT 28 /**< Shift value for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_MASK 0x70000000UL /**< Bit mask for ACMP_CSRESSEL */
+#define _ACMP_INPUTCTRL_CSRESSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES0 0x00000000UL /**< Mode RES0 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES1 0x00000001UL /**< Mode RES1 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES2 0x00000002UL /**< Mode RES2 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES3 0x00000003UL /**< Mode RES3 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES4 0x00000004UL /**< Mode RES4 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES5 0x00000005UL /**< Mode RES5 for ACMP_INPUTCTRL */
+#define _ACMP_INPUTCTRL_CSRESSEL_RES6 0x00000006UL /**< Mode RES6 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_DEFAULT (_ACMP_INPUTCTRL_CSRESSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES0 (_ACMP_INPUTCTRL_CSRESSEL_RES0 << 28) /**< Shifted mode RES0 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES1 (_ACMP_INPUTCTRL_CSRESSEL_RES1 << 28) /**< Shifted mode RES1 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES2 (_ACMP_INPUTCTRL_CSRESSEL_RES2 << 28) /**< Shifted mode RES2 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES3 (_ACMP_INPUTCTRL_CSRESSEL_RES3 << 28) /**< Shifted mode RES3 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES4 (_ACMP_INPUTCTRL_CSRESSEL_RES4 << 28) /**< Shifted mode RES4 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES5 (_ACMP_INPUTCTRL_CSRESSEL_RES5 << 28) /**< Shifted mode RES5 for ACMP_INPUTCTRL */
+#define ACMP_INPUTCTRL_CSRESSEL_RES6 (_ACMP_INPUTCTRL_CSRESSEL_RES6 << 28) /**< Shifted mode RES6 for ACMP_INPUTCTRL */
+
+/* Bit fields for ACMP STATUS */
+#define _ACMP_STATUS_RESETVALUE 0x00000000UL /**< Default value for ACMP_STATUS */
+#define _ACMP_STATUS_MASK 0x0000001DUL /**< Mask for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT (0x1UL << 0) /**< Analog Comparator Output */
+#define _ACMP_STATUS_ACMPOUT_SHIFT 0 /**< Shift value for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_MASK 0x1UL /**< Bit mask for ACMP_ACMPOUT */
+#define _ACMP_STATUS_ACMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPOUT_DEFAULT (_ACMP_STATUS_ACMPOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY (0x1UL << 2) /**< Analog Comparator Ready */
+#define _ACMP_STATUS_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_STATUS_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_ACMPRDY_DEFAULT (_ACMP_STATUS_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT (0x1UL << 3) /**< INPUT conflict */
+#define _ACMP_STATUS_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_STATUS_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_INPUTCONFLICT_DEFAULT (_ACMP_STATUS_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_STATUS_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_STATUS_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_STATUS */
+#define ACMP_STATUS_PORTALLOCERR_DEFAULT (_ACMP_STATUS_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_STATUS */
+
+/* Bit fields for ACMP IF */
+#define _ACMP_IF_RESETVALUE 0x00000000UL /**< Default value for ACMP_IF */
+#define _ACMP_IF_MASK 0x0000001FUL /**< Mask for ACMP_IF */
+#define ACMP_IF_RISE (0x1UL << 0) /**< Rising Edge Triggered Interrupt Flag */
+#define _ACMP_IF_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IF_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IF_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_RISE_DEFAULT (_ACMP_IF_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL (0x1UL << 1) /**< Falling Edge Triggered Interrupt Flag */
+#define _ACMP_IF_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IF_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IF_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_FALL_DEFAULT (_ACMP_IF_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY (0x1UL << 2) /**< ACMP ready Interrupt flag */
+#define _ACMP_IF_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IF_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_ACMPRDY_DEFAULT (_ACMP_IF_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT (0x1UL << 3) /**< Input conflict */
+#define _ACMP_IF_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IF_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_INPUTCONFLICT_DEFAULT (_ACMP_IF_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR (0x1UL << 4) /**< Port allocation error */
+#define _ACMP_IF_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IF */
+#define ACMP_IF_PORTALLOCERR_DEFAULT (_ACMP_IF_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IF */
+
+/* Bit fields for ACMP IEN */
+#define _ACMP_IEN_RESETVALUE 0x00000000UL /**< Default value for ACMP_IEN */
+#define _ACMP_IEN_MASK 0x0000001FUL /**< Mask for ACMP_IEN */
+#define ACMP_IEN_RISE (0x1UL << 0) /**< Rising edge interrupt enable */
+#define _ACMP_IEN_RISE_SHIFT 0 /**< Shift value for ACMP_RISE */
+#define _ACMP_IEN_RISE_MASK 0x1UL /**< Bit mask for ACMP_RISE */
+#define _ACMP_IEN_RISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_RISE_DEFAULT (_ACMP_IEN_RISE_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL (0x1UL << 1) /**< Falling edge interrupt enable */
+#define _ACMP_IEN_FALL_SHIFT 1 /**< Shift value for ACMP_FALL */
+#define _ACMP_IEN_FALL_MASK 0x2UL /**< Bit mask for ACMP_FALL */
+#define _ACMP_IEN_FALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_FALL_DEFAULT (_ACMP_IEN_FALL_DEFAULT << 1) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY (0x1UL << 2) /**< ACMP ready interrupt enable */
+#define _ACMP_IEN_ACMPRDY_SHIFT 2 /**< Shift value for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_MASK 0x4UL /**< Bit mask for ACMP_ACMPRDY */
+#define _ACMP_IEN_ACMPRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_ACMPRDY_DEFAULT (_ACMP_IEN_ACMPRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT (0x1UL << 3) /**< Input conflict interrupt enable */
+#define _ACMP_IEN_INPUTCONFLICT_SHIFT 3 /**< Shift value for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_MASK 0x8UL /**< Bit mask for ACMP_INPUTCONFLICT */
+#define _ACMP_IEN_INPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_INPUTCONFLICT_DEFAULT (_ACMP_IEN_INPUTCONFLICT_DEFAULT << 3) /**< Shifted mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR (0x1UL << 4) /**< Port allocation error interrupt enable */
+#define _ACMP_IEN_PORTALLOCERR_SHIFT 4 /**< Shift value for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_MASK 0x10UL /**< Bit mask for ACMP_PORTALLOCERR */
+#define _ACMP_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_IEN */
+#define ACMP_IEN_PORTALLOCERR_DEFAULT (_ACMP_IEN_PORTALLOCERR_DEFAULT << 4) /**< Shifted mode DEFAULT for ACMP_IEN */
+
+/* Bit fields for ACMP SYNCBUSY */
+#define _ACMP_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for ACMP_SYNCBUSY */
+#define _ACMP_SYNCBUSY_MASK 0x00000001UL /**< Mask for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL (0x1UL << 0) /**< Syncbusy for INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_SHIFT 0 /**< Shift value for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_MASK 0x1UL /**< Bit mask for ACMP_INPUTCTRL */
+#define _ACMP_SYNCBUSY_INPUTCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for ACMP_SYNCBUSY */
+#define ACMP_SYNCBUSY_INPUTCTRL_DEFAULT (_ACMP_SYNCBUSY_INPUTCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for ACMP_SYNCBUSY */
+
+/** @} End of group EFR32ZG23_ACMP_BitFields */
+/** @} End of group EFR32ZG23_ACMP */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_ACMP_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_aes.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_aes.h
new file mode 100644
index 000000000..1aa8f207f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_aes.h
@@ -0,0 +1,453 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 AES register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_AES_H
+#define EFR32ZG23_AES_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_AES AES
+ * @{
+ * @brief EFR32ZG23 AES Register Declaration.
+ *****************************************************************************/
+
+/** AES Register Declaration. */
+typedef struct aes_typedef{
+ __IOM uint32_t FETCHADDR; /**< Fetcher Address */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t FETCHLEN; /**< Fetcher Length */
+ __IOM uint32_t FETCHTAG; /**< Fetcher Tag */
+ __IOM uint32_t PUSHADDR; /**< Pusher Address */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t PUSHLEN; /**< Pusher Length */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IM uint32_t IF; /**< Interrupt Flags */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt status clear */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IOM uint32_t CMD; /**< Command register */
+ __IM uint32_t STATUS; /**< Status register */
+ uint32_t RESERVED4[240U]; /**< Reserved for future use */
+ __IM uint32_t INCL_IPS_HW_CFG; /**< INCL_IPS_HW_CFG */
+ __IM uint32_t BA411E_HW_CFG_1; /**< BA411E_HW_CFG_1 */
+ __IM uint32_t BA411E_HW_CFG_2; /**< BA411E_HW_CFG_2 */
+ __IM uint32_t BA413_HW_CFG; /**< BA413_HW_CFG */
+ __IM uint32_t BA418_HW_CFG; /**< BA418_HW_CFG */
+ __IM uint32_t BA419_HW_CFG; /**< BA419_HW_CFG */
+} AES_TypeDef;
+/** @} End of group EFR32ZG23_AES */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_AES
+ * @{
+ * @defgroup EFR32ZG23_AES_BitFields AES Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for AES FETCHADDR */
+#define _AES_FETCHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHADDR */
+#define _AES_FETCHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHADDR */
+#define _AES_FETCHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_FETCHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHADDR */
+#define AES_FETCHADDR_ADDR_DEFAULT (_AES_FETCHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHADDR */
+
+/* Bit fields for AES FETCHLEN */
+#define _AES_FETCHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHLEN */
+#define _AES_FETCHLEN_MASK 0x3FFFFFFFUL /**< Mask for AES_FETCHLEN */
+#define _AES_FETCHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_FETCHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_LENGTH_DEFAULT (_AES_FETCHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_FETCHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_FETCHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_CONSTADDR_DEFAULT (_AES_FETCHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN (0x1UL << 29) /**< Realign lengh */
+#define _AES_FETCHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_FETCHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHLEN */
+#define AES_FETCHLEN_REALIGN_DEFAULT (_AES_FETCHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_FETCHLEN */
+
+/* Bit fields for AES FETCHTAG */
+#define _AES_FETCHTAG_RESETVALUE 0x00000000UL /**< Default value for AES_FETCHTAG */
+#define _AES_FETCHTAG_MASK 0xFFFFFFFFUL /**< Mask for AES_FETCHTAG */
+#define _AES_FETCHTAG_TAG_SHIFT 0 /**< Shift value for AES_TAG */
+#define _AES_FETCHTAG_TAG_MASK 0xFFFFFFFFUL /**< Bit mask for AES_TAG */
+#define _AES_FETCHTAG_TAG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_FETCHTAG */
+#define AES_FETCHTAG_TAG_DEFAULT (_AES_FETCHTAG_TAG_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_FETCHTAG */
+
+/* Bit fields for AES PUSHADDR */
+#define _AES_PUSHADDR_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHADDR */
+#define _AES_PUSHADDR_MASK 0xFFFFFFFFUL /**< Mask for AES_PUSHADDR */
+#define _AES_PUSHADDR_ADDR_SHIFT 0 /**< Shift value for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for AES_ADDR */
+#define _AES_PUSHADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHADDR */
+#define AES_PUSHADDR_ADDR_DEFAULT (_AES_PUSHADDR_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHADDR */
+
+/* Bit fields for AES PUSHLEN */
+#define _AES_PUSHLEN_RESETVALUE 0x00000000UL /**< Default value for AES_PUSHLEN */
+#define _AES_PUSHLEN_MASK 0x7FFFFFFFUL /**< Mask for AES_PUSHLEN */
+#define _AES_PUSHLEN_LENGTH_SHIFT 0 /**< Shift value for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_MASK 0xFFFFFFFUL /**< Bit mask for AES_LENGTH */
+#define _AES_PUSHLEN_LENGTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_LENGTH_DEFAULT (_AES_PUSHLEN_LENGTH_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR (0x1UL << 28) /**< Constant address */
+#define _AES_PUSHLEN_CONSTADDR_SHIFT 28 /**< Shift value for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_MASK 0x10000000UL /**< Bit mask for AES_CONSTADDR */
+#define _AES_PUSHLEN_CONSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_CONSTADDR_DEFAULT (_AES_PUSHLEN_CONSTADDR_DEFAULT << 28) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN (0x1UL << 29) /**< Realign length */
+#define _AES_PUSHLEN_REALIGN_SHIFT 29 /**< Shift value for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_MASK 0x20000000UL /**< Bit mask for AES_REALIGN */
+#define _AES_PUSHLEN_REALIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_REALIGN_DEFAULT (_AES_PUSHLEN_REALIGN_DEFAULT << 29) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD (0x1UL << 30) /**< Discard data */
+#define _AES_PUSHLEN_DISCARD_SHIFT 30 /**< Shift value for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_MASK 0x40000000UL /**< Bit mask for AES_DISCARD */
+#define _AES_PUSHLEN_DISCARD_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_PUSHLEN */
+#define AES_PUSHLEN_DISCARD_DEFAULT (_AES_PUSHLEN_DISCARD_DEFAULT << 30) /**< Shifted mode DEFAULT for AES_PUSHLEN */
+
+/* Bit fields for AES IEN */
+#define _AES_IEN_RESETVALUE 0x00000000UL /**< Default value for AES_IEN */
+#define _AES_IEN_MASK 0x0000003FUL /**< Mask for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt enable */
+#define _AES_IEN_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IEN_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERENDOFBLOCK_DEFAULT (_AES_IEN_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt enable */
+#define _AES_IEN_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IEN_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERSTOPPED_DEFAULT (_AES_IEN_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR (0x1UL << 2) /**< Error interrupt enable */
+#define _AES_IEN_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IEN_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_FETCHERERROR_DEFAULT (_AES_IEN_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt enable */
+#define _AES_IEN_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IEN_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERENDOFBLOCK_DEFAULT (_AES_IEN_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt enable */
+#define _AES_IEN_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IEN_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERSTOPPED_DEFAULT (_AES_IEN_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR (0x1UL << 5) /**< Error interrupt enable */
+#define _AES_IEN_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IEN_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IEN */
+#define AES_IEN_PUSHERERROR_DEFAULT (_AES_IEN_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IEN */
+
+/* Bit fields for AES IF */
+#define _AES_IF_RESETVALUE 0x00000000UL /**< Default value for AES_IF */
+#define _AES_IF_MASK 0x0000003FUL /**< Mask for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag */
+#define _AES_IF_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag */
+#define _AES_IF_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERSTOPPED_DEFAULT (_AES_IF_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag */
+#define _AES_IF_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_FETCHERERROR_DEFAULT (_AES_IF_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK (0x1UL << 3) /**< End of block interrupt flag */
+#define _AES_IF_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED (0x1UL << 4) /**< Stopped interrupt flag */
+#define _AES_IF_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERSTOPPED_DEFAULT (_AES_IF_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR (0x1UL << 5) /**< Error interrupt flag */
+#define _AES_IF_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF */
+#define AES_IF_PUSHERERROR_DEFAULT (_AES_IF_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF */
+
+/* Bit fields for AES IF_CLR */
+#define _AES_IF_CLR_RESETVALUE 0x00000000UL /**< Default value for AES_IF_CLR */
+#define _AES_IF_CLR_MASK 0x0000003FUL /**< Mask for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK (0x1UL << 0) /**< End of block interrupt flag clear */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_SHIFT 0 /**< Shift value for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_MASK 0x1UL /**< Bit mask for AES_FETCHERENDOFBLOCK */
+#define _AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_FETCHERENDOFBLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED (0x1UL << 1) /**< Stopped interrupt flag clear */
+#define _AES_IF_CLR_FETCHERSTOPPED_SHIFT 1 /**< Shift value for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_MASK 0x2UL /**< Bit mask for AES_FETCHERSTOPPED */
+#define _AES_IF_CLR_FETCHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERSTOPPED_DEFAULT (_AES_IF_CLR_FETCHERSTOPPED_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR (0x1UL << 2) /**< Error interrupt flag clear */
+#define _AES_IF_CLR_FETCHERERROR_SHIFT 2 /**< Shift value for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_MASK 0x4UL /**< Bit mask for AES_FETCHERERROR */
+#define _AES_IF_CLR_FETCHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_FETCHERERROR_DEFAULT (_AES_IF_CLR_FETCHERERROR_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK (0x1UL << 3) /**< FETCHERENDOFBLOCKIFC */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_SHIFT 3 /**< Shift value for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_MASK 0x8UL /**< Bit mask for AES_PUSHERENDOFBLOCK */
+#define _AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT (_AES_IF_CLR_PUSHERENDOFBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED (0x1UL << 4) /**< FETCHERSTOPPEDIFC */
+#define _AES_IF_CLR_PUSHERSTOPPED_SHIFT 4 /**< Shift value for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_MASK 0x10UL /**< Bit mask for AES_PUSHERSTOPPED */
+#define _AES_IF_CLR_PUSHERSTOPPED_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERSTOPPED_DEFAULT (_AES_IF_CLR_PUSHERSTOPPED_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR (0x1UL << 5) /**< FETCHERERRORIFC */
+#define _AES_IF_CLR_PUSHERERROR_SHIFT 5 /**< Shift value for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_MASK 0x20UL /**< Bit mask for AES_PUSHERERROR */
+#define _AES_IF_CLR_PUSHERERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_IF_CLR */
+#define AES_IF_CLR_PUSHERERROR_DEFAULT (_AES_IF_CLR_PUSHERERROR_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_IF_CLR */
+
+/* Bit fields for AES CTRL */
+#define _AES_CTRL_RESETVALUE 0x00000000UL /**< Default value for AES_CTRL */
+#define _AES_CTRL_MASK 0x0000001FUL /**< Mask for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER (0x1UL << 0) /**< Fetcher scatter/gather */
+#define _AES_CTRL_FETCHERSCATTERGATHER_SHIFT 0 /**< Shift value for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_MASK 0x1UL /**< Bit mask for AES_FETCHERSCATTERGATHER */
+#define _AES_CTRL_FETCHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_FETCHERSCATTERGATHER_DEFAULT (_AES_CTRL_FETCHERSCATTERGATHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER (0x1UL << 1) /**< Pusher scatter/gather */
+#define _AES_CTRL_PUSHERSCATTERGATHER_SHIFT 1 /**< Shift value for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_MASK 0x2UL /**< Bit mask for AES_PUSHERSCATTERGATHER */
+#define _AES_CTRL_PUSHERSCATTERGATHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_PUSHERSCATTERGATHER_DEFAULT (_AES_CTRL_PUSHERSCATTERGATHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER (0x1UL << 2) /**< Stop fetcher */
+#define _AES_CTRL_STOPFETCHER_SHIFT 2 /**< Shift value for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_MASK 0x4UL /**< Bit mask for AES_STOPFETCHER */
+#define _AES_CTRL_STOPFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPFETCHER_DEFAULT (_AES_CTRL_STOPFETCHER_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER (0x1UL << 3) /**< Stop pusher */
+#define _AES_CTRL_STOPPUSHER_SHIFT 3 /**< Shift value for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_MASK 0x8UL /**< Bit mask for AES_STOPPUSHER */
+#define _AES_CTRL_STOPPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_STOPPUSHER_DEFAULT (_AES_CTRL_STOPPUSHER_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET (0x1UL << 4) /**< Software reset */
+#define _AES_CTRL_SWRESET_SHIFT 4 /**< Shift value for AES_SWRESET */
+#define _AES_CTRL_SWRESET_MASK 0x10UL /**< Bit mask for AES_SWRESET */
+#define _AES_CTRL_SWRESET_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CTRL */
+#define AES_CTRL_SWRESET_DEFAULT (_AES_CTRL_SWRESET_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_CTRL */
+
+/* Bit fields for AES CMD */
+#define _AES_CMD_RESETVALUE 0x00000000UL /**< Default value for AES_CMD */
+#define _AES_CMD_MASK 0x00000003UL /**< Mask for AES_CMD */
+#define AES_CMD_STARTFETCHER (0x1UL << 0) /**< Start fetch */
+#define _AES_CMD_STARTFETCHER_SHIFT 0 /**< Shift value for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_MASK 0x1UL /**< Bit mask for AES_STARTFETCHER */
+#define _AES_CMD_STARTFETCHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTFETCHER_DEFAULT (_AES_CMD_STARTFETCHER_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER (0x1UL << 1) /**< Start push */
+#define _AES_CMD_STARTPUSHER_SHIFT 1 /**< Shift value for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_MASK 0x2UL /**< Bit mask for AES_STARTPUSHER */
+#define _AES_CMD_STARTPUSHER_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_CMD */
+#define AES_CMD_STARTPUSHER_DEFAULT (_AES_CMD_STARTPUSHER_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_CMD */
+
+/* Bit fields for AES STATUS */
+#define _AES_STATUS_RESETVALUE 0x00000000UL /**< Default value for AES_STATUS */
+#define _AES_STATUS_MASK 0xFFFF0073UL /**< Mask for AES_STATUS */
+#define AES_STATUS_FETCHERBSY (0x1UL << 0) /**< Fetcher busy */
+#define _AES_STATUS_FETCHERBSY_SHIFT 0 /**< Shift value for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_MASK 0x1UL /**< Bit mask for AES_FETCHERBSY */
+#define _AES_STATUS_FETCHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FETCHERBSY_DEFAULT (_AES_STATUS_FETCHERBSY_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY (0x1UL << 1) /**< Pusher busy */
+#define _AES_STATUS_PUSHERBSY_SHIFT 1 /**< Shift value for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_MASK 0x2UL /**< Bit mask for AES_PUSHERBSY */
+#define _AES_STATUS_PUSHERBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_PUSHERBSY_DEFAULT (_AES_STATUS_PUSHERBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY (0x1UL << 4) /**< Not empty flag from input FIFO (fetcher) */
+#define _AES_STATUS_NOTEMPTY_SHIFT 4 /**< Shift value for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_MASK 0x10UL /**< Bit mask for AES_NOTEMPTY */
+#define _AES_STATUS_NOTEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_NOTEMPTY_DEFAULT (_AES_STATUS_NOTEMPTY_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING (0x1UL << 5) /**< Pusher waiting for FIFO */
+#define _AES_STATUS_WAITING_SHIFT 5 /**< Shift value for AES_WAITING */
+#define _AES_STATUS_WAITING_MASK 0x20UL /**< Bit mask for AES_WAITING */
+#define _AES_STATUS_WAITING_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_WAITING_DEFAULT (_AES_STATUS_WAITING_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY (0x1UL << 6) /**< Software reset busy */
+#define _AES_STATUS_SOFTRSTBSY_SHIFT 6 /**< Shift value for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_MASK 0x40UL /**< Bit mask for AES_SOFTRSTBSY */
+#define _AES_STATUS_SOFTRSTBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_SOFTRSTBSY_DEFAULT (_AES_STATUS_SOFTRSTBSY_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_STATUS */
+#define _AES_STATUS_FIFODATANUM_SHIFT 16 /**< Shift value for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_MASK 0xFFFF0000UL /**< Bit mask for AES_FIFODATANUM */
+#define _AES_STATUS_FIFODATANUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_STATUS */
+#define AES_STATUS_FIFODATANUM_DEFAULT (_AES_STATUS_FIFODATANUM_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_STATUS */
+
+/* Bit fields for AES INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_INCL_IPS_HW_CFG */
+#define _AES_INCL_IPS_HW_CFG_MASK 0x000007FFUL /**< Mask for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES (0x1UL << 0) /**< Generic g_IncludeAES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_SHIFT 0 /**< Shift value for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_MASK 0x1UL /**< Bit mask for AES_g_IncludeAES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAES_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM (0x1UL << 1) /**< Generic g_IncludeAESGCM value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_SHIFT 1 /**< Shift value for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_MASK 0x2UL /**< Bit mask for AES_g_IncludeAESGCM */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESGCM_DEFAULT << 1) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS (0x1UL << 2) /**< Generic g_IncludeAESXTS value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_SHIFT 2 /**< Shift value for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_MASK 0x4UL /**< Bit mask for AES_g_IncludeAESXTS */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeAESXTS_DEFAULT << 2) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES (0x1UL << 3) /**< Generic g_IncludeDES value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_SHIFT 3 /**< Shift value for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_MASK 0x8UL /**< Bit mask for AES_g_IncludeDES */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeDES_DEFAULT << 3) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH (0x1UL << 4) /**< Generic g_IncludeHASH value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_SHIFT 4 /**< Shift value for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_MASK 0x10UL /**< Bit mask for AES_g_IncludeHASH */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeHASH_DEFAULT << 4) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly (0x1UL << 5) /**< Generic g_IncludeChachaPoly value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_SHIFT 5 /**< Shift value for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_MASK 0x20UL /**< Bit mask for AES_g_IncludeChachaPoly */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeChachaPoly_DEFAULT << 5) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3 (0x1UL << 6) /**< Generic g_IncludeSHA3 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_SHIFT 6 /**< Shift value for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_MASK 0x40UL /**< Bit mask for AES_g_IncludeSHA3 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSHA3_DEFAULT << 6) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC (0x1UL << 7) /**< Generic g_IncludeZUC value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_SHIFT 7 /**< Shift value for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_MASK 0x80UL /**< Bit mask for AES_g_IncludeZUC */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeZUC_DEFAULT << 7) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4 (0x1UL << 8) /**< Generic g_IncludeSM4 value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_SHIFT 8 /**< Shift value for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_MASK 0x100UL /**< Bit mask for AES_g_IncludeSM4 */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeSM4_DEFAULT << 8) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE (0x1UL << 9) /**< Generic g_IncludePKE value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_SHIFT 9 /**< Shift value for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_MASK 0x200UL /**< Bit mask for AES_g_IncludePKE */
+#define _AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludePKE_DEFAULT << 9) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG (0x1UL << 10) /**< Generic g_IncludeNDRNG value */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_SHIFT 10 /**< Shift value for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_MASK 0x400UL /**< Bit mask for AES_g_IncludeNDRNG */
+#define _AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_INCL_IPS_HW_CFG */
+#define AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT (_AES_INCL_IPS_HW_CFG_g_IncludeNDRNG_DEFAULT << 10) /**< Shifted mode DEFAULT for AES_INCL_IPS_HW_CFG*/
+
+/* Bit fields for AES BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_RESETVALUE 0x05010127UL /**< Default value for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_MASK 0x070301FFUL /**< Mask for AES_BA411E_HW_CFG_1 */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_SHIFT 0 /**< Shift value for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_MASK 0x1FFUL /**< Bit mask for AES_g_AesModesPoss */
+#define _AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT 0x00000127UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT (_AES_BA411E_HW_CFG_1_g_AesModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_CS (0x1UL << 16) /**< Generic g_CS value */
+#define _AES_BA411E_HW_CFG_1_g_CS_SHIFT 16 /**< Shift value for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_MASK 0x10000UL /**< Bit mask for AES_g_CS */
+#define _AES_BA411E_HW_CFG_1_g_CS_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_CS_DEFAULT (_AES_BA411E_HW_CFG_1_g_CS_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define AES_BA411E_HW_CFG_1_g_UseMasking (0x1UL << 17) /**< Generic g_UseMasking value */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_SHIFT 17 /**< Shift value for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_MASK 0x20000UL /**< Bit mask for AES_g_UseMasking */
+#define _AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT (_AES_BA411E_HW_CFG_1_g_UseMasking_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+#define _AES_BA411E_HW_CFG_1_g_Keysize_SHIFT 24 /**< Shift value for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_MASK 0x7000000UL /**< Bit mask for AES_g_Keysize */
+#define _AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT 0x00000005UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_1 */
+#define AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT (_AES_BA411E_HW_CFG_1_g_Keysize_DEFAULT << 24) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_1*/
+
+/* Bit fields for AES BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_RESETVALUE 0x00000080UL /**< Default value for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_MASK 0x0000FFFFUL /**< Mask for AES_BA411E_HW_CFG_2 */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_SHIFT 0 /**< Shift value for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_MASK 0xFFFFUL /**< Bit mask for AES_g_CtrSize */
+#define _AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT 0x00000080UL /**< Mode DEFAULT for AES_BA411E_HW_CFG_2 */
+#define AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT (_AES_BA411E_HW_CFG_2_g_CtrSize_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA411E_HW_CFG_2*/
+
+/* Bit fields for AES BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_MASK 0x0007007FUL /**< Mask for AES_BA413_HW_CFG */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_SHIFT 0 /**< Shift value for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_MASK 0x7FUL /**< Bit mask for AES_g_HashMaskFunc */
+#define _AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT (_AES_BA413_HW_CFG_g_HashMaskFunc_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding (0x1UL << 16) /**< Generic g_HashPadding value */
+#define _AES_BA413_HW_CFG_g_HashPadding_SHIFT 16 /**< Shift value for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_MASK 0x10000UL /**< Bit mask for AES_g_HashPadding */
+#define _AES_BA413_HW_CFG_g_HashPadding_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashPadding_DEFAULT (_AES_BA413_HW_CFG_g_HashPadding_DEFAULT << 16) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled (0x1UL << 17) /**< Generic g_HMAC_enabled value */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_SHIFT 17 /**< Shift value for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_MASK 0x20000UL /**< Bit mask for AES_g_HMAC_enabled */
+#define _AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT (_AES_BA413_HW_CFG_g_HMAC_enabled_DEFAULT << 17) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest (0x1UL << 18) /**< Generic g_HashVerifyDigest value */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_SHIFT 18 /**< Shift value for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_MASK 0x40000UL /**< Bit mask for AES_g_HashVerifyDigest */
+#define _AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA413_HW_CFG */
+#define AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT (_AES_BA413_HW_CFG_g_HashVerifyDigest_DEFAULT << 18) /**< Shifted mode DEFAULT for AES_BA413_HW_CFG */
+
+/* Bit fields for AES BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_RESETVALUE 0x00000001UL /**< Default value for AES_BA418_HW_CFG */
+#define _AES_BA418_HW_CFG_MASK 0x00000001UL /**< Mask for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn (0x1UL << 0) /**< Generic g_Sha3CtxtEn value */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_SHIFT 0 /**< Shift value for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_MASK 0x1UL /**< Bit mask for AES_g_Sha3CtxtEn */
+#define _AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT 0x00000001UL /**< Mode DEFAULT for AES_BA418_HW_CFG */
+#define AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT (_AES_BA418_HW_CFG_g_Sha3CtxtEn_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA418_HW_CFG */
+
+/* Bit fields for AES BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_RESETVALUE 0x00000000UL /**< Default value for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_MASK 0x0000007FUL /**< Mask for AES_BA419_HW_CFG */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_SHIFT 0 /**< Shift value for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_MASK 0x7FUL /**< Bit mask for AES_g_SM4ModesPoss */
+#define _AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT 0x00000000UL /**< Mode DEFAULT for AES_BA419_HW_CFG */
+#define AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT (_AES_BA419_HW_CFG_g_SM4ModesPoss_DEFAULT << 0) /**< Shifted mode DEFAULT for AES_BA419_HW_CFG */
+
+/** @} End of group EFR32ZG23_AES_BitFields */
+/** @} End of group EFR32ZG23_AES */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_AES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_buram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_buram.h
new file mode 100644
index 000000000..fe4fb54c7
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_buram.h
@@ -0,0 +1,80 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 BURAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_BURAM_H
+#define EFR32ZG23_BURAM_H
+#define BURAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_BURAM BURAM
+ * @{
+ * @brief EFR32ZG23 BURAM Register Declaration.
+ *****************************************************************************/
+
+/** BURAM RET Register Group Declaration. */
+typedef struct buram_ret_typedef{
+ __IOM uint32_t REG; /**< Retention Register */
+} BURAM_RET_TypeDef;
+
+/** BURAM Register Declaration. */
+typedef struct buram_typedef{
+ BURAM_RET_TypeDef RET[32U]; /**< RetentionReg */
+ uint32_t RESERVED0[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_SET[32U]; /**< RetentionReg */
+ uint32_t RESERVED1[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_CLR[32U]; /**< RetentionReg */
+ uint32_t RESERVED2[992U]; /**< Reserved for future use */
+ BURAM_RET_TypeDef RET_TGL[32U]; /**< RetentionReg */
+} BURAM_TypeDef;
+/** @} End of group EFR32ZG23_BURAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_BURAM
+ * @{
+ * @defgroup EFR32ZG23_BURAM_BitFields BURAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURAM RET_REG */
+#define _BURAM_RET_REG_RESETVALUE 0x00000000UL /**< Default value for BURAM_RET_REG */
+#define _BURAM_RET_REG_MASK 0xFFFFFFFFUL /**< Mask for BURAM_RET_REG */
+#define _BURAM_RET_REG_RETREG_SHIFT 0 /**< Shift value for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_MASK 0xFFFFFFFFUL /**< Bit mask for BURAM_RETREG */
+#define _BURAM_RET_REG_RETREG_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURAM_RET_REG */
+#define BURAM_RET_REG_RETREG_DEFAULT (_BURAM_RET_REG_RETREG_DEFAULT << 0) /**< Shifted mode DEFAULT for BURAM_RET_REG */
+
+/** @} End of group EFR32ZG23_BURAM_BitFields */
+/** @} End of group EFR32ZG23_BURAM */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_BURAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_burtc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_burtc.h
new file mode 100644
index 000000000..5390ff393
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_burtc.h
@@ -0,0 +1,332 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 BURTC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_BURTC_H
+#define EFR32ZG23_BURTC_H
+#define BURTC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_BURTC BURTC
+ * @{
+ * @brief EFR32ZG23 BURTC Register Declaration.
+ *****************************************************************************/
+
+/** BURTC Register Declaration. */
+typedef struct burtc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t COMP; /**< Compare Value Register */
+ uint32_t RESERVED0[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_SET; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_SET; /**< Compare Value Register */
+ uint32_t RESERVED1[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_CLR; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_CLR; /**< Compare Value Register */
+ uint32_t RESERVED2[1011U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t PRECNT_TGL; /**< Pre-Counter Value Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup request Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t COMP_TGL; /**< Compare Value Register */
+} BURTC_TypeDef;
+/** @} End of group EFR32ZG23_BURTC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_BURTC
+ * @{
+ * @defgroup EFR32ZG23_BURTC_BitFields BURTC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for BURTC IPVERSION */
+#define _BURTC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_IPVERSION */
+#define _BURTC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for BURTC_IPVERSION */
+#define BURTC_IPVERSION_IPVERSION_DEFAULT (_BURTC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IPVERSION */
+
+/* Bit fields for BURTC EN */
+#define _BURTC_EN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EN */
+#define _BURTC_EN_MASK 0x00000003UL /**< Mask for BURTC_EN */
+#define BURTC_EN_EN (0x1UL << 0) /**< BURTC Enable */
+#define _BURTC_EN_EN_SHIFT 0 /**< Shift value for BURTC_EN */
+#define _BURTC_EN_EN_MASK 0x1UL /**< Bit mask for BURTC_EN */
+#define _BURTC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EN */
+#define BURTC_EN_EN_DEFAULT (_BURTC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EN */
+#define BURTC_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _BURTC_EN_DISABLING_SHIFT 1 /**< Shift value for BURTC_DISABLING */
+#define _BURTC_EN_DISABLING_MASK 0x2UL /**< Bit mask for BURTC_DISABLING */
+#define _BURTC_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EN */
+#define BURTC_EN_DISABLING_DEFAULT (_BURTC_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_EN */
+
+/* Bit fields for BURTC CFG */
+#define _BURTC_CFG_RESETVALUE 0x00000000UL /**< Default value for BURTC_CFG */
+#define _BURTC_CFG_MASK 0x000000F3UL /**< Mask for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _BURTC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for BURTC_DEBUGRUN */
+#define _BURTC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_X0 0x00000000UL /**< Mode X0 for BURTC_CFG */
+#define _BURTC_CFG_DEBUGRUN_X1 0x00000001UL /**< Mode X1 for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_DEFAULT (_BURTC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_X0 (_BURTC_CFG_DEBUGRUN_X0 << 0) /**< Shifted mode X0 for BURTC_CFG */
+#define BURTC_CFG_DEBUGRUN_X1 (_BURTC_CFG_DEBUGRUN_X1 << 0) /**< Shifted mode X1 for BURTC_CFG */
+#define BURTC_CFG_COMPTOP (0x1UL << 1) /**< Compare Channel is Top Value */
+#define _BURTC_CFG_COMPTOP_SHIFT 1 /**< Shift value for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_MASK 0x2UL /**< Bit mask for BURTC_COMPTOP */
+#define _BURTC_CFG_COMPTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_DISABLE 0x00000000UL /**< Mode DISABLE for BURTC_CFG */
+#define _BURTC_CFG_COMPTOP_ENABLE 0x00000001UL /**< Mode ENABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DEFAULT (_BURTC_CFG_COMPTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_DISABLE (_BURTC_CFG_COMPTOP_DISABLE << 1) /**< Shifted mode DISABLE for BURTC_CFG */
+#define BURTC_CFG_COMPTOP_ENABLE (_BURTC_CFG_COMPTOP_ENABLE << 1) /**< Shifted mode ENABLE for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_SHIFT 4 /**< Shift value for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_MASK 0xF0UL /**< Bit mask for BURTC_CNTPRESC */
+#define _BURTC_CFG_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV512 0x00000009UL /**< Mode DIV512 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV1024 0x0000000AUL /**< Mode DIV1024 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV2048 0x0000000BUL /**< Mode DIV2048 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV4096 0x0000000CUL /**< Mode DIV4096 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV8192 0x0000000DUL /**< Mode DIV8192 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV16384 0x0000000EUL /**< Mode DIV16384 for BURTC_CFG */
+#define _BURTC_CFG_CNTPRESC_DIV32768 0x0000000FUL /**< Mode DIV32768 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DEFAULT (_BURTC_CFG_CNTPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1 (_BURTC_CFG_CNTPRESC_DIV1 << 4) /**< Shifted mode DIV1 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2 (_BURTC_CFG_CNTPRESC_DIV2 << 4) /**< Shifted mode DIV2 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4 (_BURTC_CFG_CNTPRESC_DIV4 << 4) /**< Shifted mode DIV4 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8 (_BURTC_CFG_CNTPRESC_DIV8 << 4) /**< Shifted mode DIV8 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16 (_BURTC_CFG_CNTPRESC_DIV16 << 4) /**< Shifted mode DIV16 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32 (_BURTC_CFG_CNTPRESC_DIV32 << 4) /**< Shifted mode DIV32 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV64 (_BURTC_CFG_CNTPRESC_DIV64 << 4) /**< Shifted mode DIV64 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV128 (_BURTC_CFG_CNTPRESC_DIV128 << 4) /**< Shifted mode DIV128 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV256 (_BURTC_CFG_CNTPRESC_DIV256 << 4) /**< Shifted mode DIV256 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV512 (_BURTC_CFG_CNTPRESC_DIV512 << 4) /**< Shifted mode DIV512 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV1024 (_BURTC_CFG_CNTPRESC_DIV1024 << 4) /**< Shifted mode DIV1024 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV2048 (_BURTC_CFG_CNTPRESC_DIV2048 << 4) /**< Shifted mode DIV2048 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV4096 (_BURTC_CFG_CNTPRESC_DIV4096 << 4) /**< Shifted mode DIV4096 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV8192 (_BURTC_CFG_CNTPRESC_DIV8192 << 4) /**< Shifted mode DIV8192 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV16384 (_BURTC_CFG_CNTPRESC_DIV16384 << 4) /**< Shifted mode DIV16384 for BURTC_CFG */
+#define BURTC_CFG_CNTPRESC_DIV32768 (_BURTC_CFG_CNTPRESC_DIV32768 << 4) /**< Shifted mode DIV32768 for BURTC_CFG */
+
+/* Bit fields for BURTC CMD */
+#define _BURTC_CMD_RESETVALUE 0x00000000UL /**< Default value for BURTC_CMD */
+#define _BURTC_CMD_MASK 0x00000003UL /**< Mask for BURTC_CMD */
+#define BURTC_CMD_START (0x1UL << 0) /**< Start BURTC counter */
+#define _BURTC_CMD_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_CMD_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_START_DEFAULT (_BURTC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP (0x1UL << 1) /**< Stop BURTC counter */
+#define _BURTC_CMD_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_CMD_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CMD */
+#define BURTC_CMD_STOP_DEFAULT (_BURTC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_CMD */
+
+/* Bit fields for BURTC STATUS */
+#define _BURTC_STATUS_RESETVALUE 0x00000000UL /**< Default value for BURTC_STATUS */
+#define _BURTC_STATUS_MASK 0x00000003UL /**< Mask for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING (0x1UL << 0) /**< BURTC running status */
+#define _BURTC_STATUS_RUNNING_SHIFT 0 /**< Shift value for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for BURTC_RUNNING */
+#define _BURTC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_RUNNING_DEFAULT (_BURTC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK (0x1UL << 1) /**< Configuration Lock Status */
+#define _BURTC_STATUS_LOCK_SHIFT 1 /**< Shift value for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_MASK 0x2UL /**< Bit mask for BURTC_LOCK */
+#define _BURTC_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for BURTC_STATUS */
+#define _BURTC_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_DEFAULT (_BURTC_STATUS_LOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_UNLOCKED (_BURTC_STATUS_LOCK_UNLOCKED << 1) /**< Shifted mode UNLOCKED for BURTC_STATUS */
+#define BURTC_STATUS_LOCK_LOCKED (_BURTC_STATUS_LOCK_LOCKED << 1) /**< Shifted mode LOCKED for BURTC_STATUS */
+
+/* Bit fields for BURTC IF */
+#define _BURTC_IF_RESETVALUE 0x00000000UL /**< Default value for BURTC_IF */
+#define _BURTC_IF_MASK 0x00000003UL /**< Mask for BURTC_IF */
+#define BURTC_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IF_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IF_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_OF_DEFAULT (_BURTC_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IF_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IF_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IF_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IF */
+#define BURTC_IF_COMP_DEFAULT (_BURTC_IF_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IF */
+
+/* Bit fields for BURTC IEN */
+#define _BURTC_IEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_IEN */
+#define _BURTC_IEN_MASK 0x00000003UL /**< Mask for BURTC_IEN */
+#define BURTC_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _BURTC_IEN_OF_SHIFT 0 /**< Shift value for BURTC_OF */
+#define _BURTC_IEN_OF_MASK 0x1UL /**< Bit mask for BURTC_OF */
+#define _BURTC_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_OF_DEFAULT (_BURTC_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP (0x1UL << 1) /**< Compare Match Interrupt Flag */
+#define _BURTC_IEN_COMP_SHIFT 1 /**< Shift value for BURTC_COMP */
+#define _BURTC_IEN_COMP_MASK 0x2UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_IEN_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_IEN */
+#define BURTC_IEN_COMP_DEFAULT (_BURTC_IEN_COMP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_IEN */
+
+/* Bit fields for BURTC PRECNT */
+#define _BURTC_PRECNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_PRECNT */
+#define _BURTC_PRECNT_MASK 0x00007FFFUL /**< Mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_SHIFT 0 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_MASK 0x7FFFUL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_PRECNT_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_PRECNT */
+#define BURTC_PRECNT_PRECNT_DEFAULT (_BURTC_PRECNT_PRECNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_PRECNT */
+
+/* Bit fields for BURTC CNT */
+#define _BURTC_CNT_RESETVALUE 0x00000000UL /**< Default value for BURTC_CNT */
+#define _BURTC_CNT_MASK 0xFFFFFFFFUL /**< Mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_SHIFT 0 /**< Shift value for BURTC_CNT */
+#define _BURTC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_CNT */
+#define _BURTC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_CNT */
+#define BURTC_CNT_CNT_DEFAULT (_BURTC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_CNT */
+
+/* Bit fields for BURTC EM4WUEN */
+#define _BURTC_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for BURTC_EM4WUEN */
+#define _BURTC_EM4WUEN_MASK 0x00000003UL /**< Mask for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN (0x1UL << 0) /**< Overflow EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_OFEM4WUEN_SHIFT 0 /**< Shift value for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_MASK 0x1UL /**< Bit mask for BURTC_OFEM4WUEN */
+#define _BURTC_EM4WUEN_OFEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_OFEM4WUEN_DEFAULT (_BURTC_EM4WUEN_OFEM4WUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN (0x1UL << 1) /**< Compare Match EM4 Wakeup Enable */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_SHIFT 1 /**< Shift value for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_MASK 0x2UL /**< Bit mask for BURTC_COMPEM4WUEN */
+#define _BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_EM4WUEN */
+#define BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT (_BURTC_EM4WUEN_COMPEM4WUEN_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_EM4WUEN */
+
+/* Bit fields for BURTC SYNCBUSY */
+#define _BURTC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for BURTC_SYNCBUSY */
+#define _BURTC_SYNCBUSY_MASK 0x0000001FUL /**< Mask for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START */
+#define _BURTC_SYNCBUSY_START_SHIFT 0 /**< Shift value for BURTC_START */
+#define _BURTC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for BURTC_START */
+#define _BURTC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_START_DEFAULT (_BURTC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP */
+#define _BURTC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for BURTC_STOP */
+#define _BURTC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_STOP_DEFAULT (_BURTC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT (0x1UL << 2) /**< Sync busy for PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_SHIFT 2 /**< Shift value for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_MASK 0x4UL /**< Bit mask for BURTC_PRECNT */
+#define _BURTC_SYNCBUSY_PRECNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_PRECNT_DEFAULT (_BURTC_SYNCBUSY_PRECNT_DEFAULT << 2) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT (0x1UL << 3) /**< Sync busy for CNT */
+#define _BURTC_SYNCBUSY_CNT_SHIFT 3 /**< Shift value for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_MASK 0x8UL /**< Bit mask for BURTC_CNT */
+#define _BURTC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_CNT_DEFAULT (_BURTC_SYNCBUSY_CNT_DEFAULT << 3) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP (0x1UL << 4) /**< Sync busy for COMP */
+#define _BURTC_SYNCBUSY_COMP_SHIFT 4 /**< Shift value for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_MASK 0x10UL /**< Bit mask for BURTC_COMP */
+#define _BURTC_SYNCBUSY_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_SYNCBUSY */
+#define BURTC_SYNCBUSY_COMP_DEFAULT (_BURTC_SYNCBUSY_COMP_DEFAULT << 4) /**< Shifted mode DEFAULT for BURTC_SYNCBUSY */
+
+/* Bit fields for BURTC LOCK */
+#define _BURTC_LOCK_RESETVALUE 0x0000AEE8UL /**< Default value for BURTC_LOCK */
+#define _BURTC_LOCK_MASK 0x0000FFFFUL /**< Mask for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for BURTC_LOCKKEY */
+#define _BURTC_LOCK_LOCKKEY_DEFAULT 0x0000AEE8UL /**< Mode DEFAULT for BURTC_LOCK */
+#define _BURTC_LOCK_LOCKKEY_UNLOCK 0x0000AEE8UL /**< Mode UNLOCK for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_DEFAULT (_BURTC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_LOCK */
+#define BURTC_LOCK_LOCKKEY_UNLOCK (_BURTC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for BURTC_LOCK */
+
+/* Bit fields for BURTC COMP */
+#define _BURTC_COMP_RESETVALUE 0x00000000UL /**< Default value for BURTC_COMP */
+#define _BURTC_COMP_MASK 0xFFFFFFFFUL /**< Mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_SHIFT 0 /**< Shift value for BURTC_COMP */
+#define _BURTC_COMP_COMP_MASK 0xFFFFFFFFUL /**< Bit mask for BURTC_COMP */
+#define _BURTC_COMP_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for BURTC_COMP */
+#define BURTC_COMP_COMP_DEFAULT (_BURTC_COMP_COMP_DEFAULT << 0) /**< Shifted mode DEFAULT for BURTC_COMP */
+
+/** @} End of group EFR32ZG23_BURTC_BitFields */
+/** @} End of group EFR32ZG23_BURTC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_BURTC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_cmu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_cmu.h
new file mode 100644
index 000000000..13ee3a9d4
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_cmu.h
@@ -0,0 +1,1128 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 CMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_CMU_H
+#define EFR32ZG23_CMU_H
+#define CMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_CMU CMU
+ * @{
+ * @brief EFR32ZG23 CMU Register Declaration.
+ *****************************************************************************/
+
+/** CMU Register Declaration. */
+typedef struct cmu_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED3[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT; /**< Calibration Result Counter Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1; /**< Clock Enable Register 1 */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL; /**< System Clock Control */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL; /**< Export Clock Control */
+ uint32_t RESERVED8[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL; /**< EM01 Peripheral Group A Clock Control */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPCCLKCTRL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED11[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL; /**< IADC Clock Control */
+ uint32_t RESERVED14[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG1CLKCTRL; /**< Watchdog1 Clock Control */
+ uint32_t RESERVED16[5U]; /**< Reserved for future use */
+ __IOM uint32_t EUSART0CLKCTRL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED17[7U]; /**< Reserved for future use */
+ __IOM uint32_t SYSRTC0CLKCTRL; /**< System RTC0 Clock Control */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCLKCTRL; /**< LCD Clock Control */
+ uint32_t RESERVED19[3U]; /**< Reserved for future use */
+ __IOM uint32_t VDAC0CLKCTRL; /**< VDAC0 Clock Control */
+ uint32_t RESERVED20[3U]; /**< Reserved for future use */
+ __IOM uint32_t PCNT0CLKCTRL; /**< Pulse counter 0 Clock Control */
+ uint32_t RESERVED21[3U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL; /**< Radio Clock Control */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ __IOM uint32_t LESENSEHFCLKCTRL; /**< LESENSE HF Clock Control */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ uint32_t RESERVED24[858U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_SET; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED27[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED28[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_SET; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_SET; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_SET; /**< Calibration Result Counter Register */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_SET; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_SET; /**< Clock Enable Register 1 */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_SET; /**< System Clock Control */
+ uint32_t RESERVED31[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_SET; /**< Debug Trace Clock Control */
+ uint32_t RESERVED32[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_SET; /**< Export Clock Control */
+ uint32_t RESERVED33[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_SET; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_SET; /**< EM01 Peripheral Group A Clock Control */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPCCLKCTRL_SET; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED36[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_SET; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED37[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_SET; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED38[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_SET; /**< IADC Clock Control */
+ uint32_t RESERVED39[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_SET; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG1CLKCTRL_SET; /**< Watchdog1 Clock Control */
+ uint32_t RESERVED41[5U]; /**< Reserved for future use */
+ __IOM uint32_t EUSART0CLKCTRL_SET; /**< EUSART0 Clock Control */
+ uint32_t RESERVED42[7U]; /**< Reserved for future use */
+ __IOM uint32_t SYSRTC0CLKCTRL_SET; /**< System RTC0 Clock Control */
+ uint32_t RESERVED43[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCLKCTRL_SET; /**< LCD Clock Control */
+ uint32_t RESERVED44[3U]; /**< Reserved for future use */
+ __IOM uint32_t VDAC0CLKCTRL_SET; /**< VDAC0 Clock Control */
+ uint32_t RESERVED45[3U]; /**< Reserved for future use */
+ __IOM uint32_t PCNT0CLKCTRL_SET; /**< Pulse counter 0 Clock Control */
+ uint32_t RESERVED46[3U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_SET; /**< Radio Clock Control */
+ uint32_t RESERVED47[3U]; /**< Reserved for future use */
+ __IOM uint32_t LESENSEHFCLKCTRL_SET; /**< LESENSE HF Clock Control */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ uint32_t RESERVED49[858U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED51[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_CLR; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED52[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED53[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_CLR; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_CLR; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_CLR; /**< Calibration Result Counter Register */
+ uint32_t RESERVED54[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_CLR; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_CLR; /**< Clock Enable Register 1 */
+ uint32_t RESERVED55[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_CLR; /**< System Clock Control */
+ uint32_t RESERVED56[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_CLR; /**< Debug Trace Clock Control */
+ uint32_t RESERVED57[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_CLR; /**< Export Clock Control */
+ uint32_t RESERVED58[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_CLR; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED59[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_CLR; /**< EM01 Peripheral Group A Clock Control */
+ uint32_t RESERVED60[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPCCLKCTRL_CLR; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED61[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_CLR; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED62[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_CLR; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED63[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_CLR; /**< IADC Clock Control */
+ uint32_t RESERVED64[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_CLR; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED65[1U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG1CLKCTRL_CLR; /**< Watchdog1 Clock Control */
+ uint32_t RESERVED66[5U]; /**< Reserved for future use */
+ __IOM uint32_t EUSART0CLKCTRL_CLR; /**< EUSART0 Clock Control */
+ uint32_t RESERVED67[7U]; /**< Reserved for future use */
+ __IOM uint32_t SYSRTC0CLKCTRL_CLR; /**< System RTC0 Clock Control */
+ uint32_t RESERVED68[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCLKCTRL_CLR; /**< LCD Clock Control */
+ uint32_t RESERVED69[3U]; /**< Reserved for future use */
+ __IOM uint32_t VDAC0CLKCTRL_CLR; /**< VDAC0 Clock Control */
+ uint32_t RESERVED70[3U]; /**< Reserved for future use */
+ __IOM uint32_t PCNT0CLKCTRL_CLR; /**< Pulse counter 0 Clock Control */
+ uint32_t RESERVED71[3U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_CLR; /**< Radio Clock Control */
+ uint32_t RESERVED72[3U]; /**< Reserved for future use */
+ __IOM uint32_t LESENSEHFCLKCTRL_CLR; /**< LESENSE HF Clock Control */
+ uint32_t RESERVED73[1U]; /**< Reserved for future use */
+ uint32_t RESERVED74[858U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED75[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED76[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t WDOGLOCK_TGL; /**< WDOG Configuration Lock Register */
+ uint32_t RESERVED77[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED78[10U]; /**< Reserved for future use */
+ __IOM uint32_t CALCMD_TGL; /**< Calibration Command Register */
+ __IOM uint32_t CALCTRL_TGL; /**< Calibration Control Register */
+ __IM uint32_t CALCNT_TGL; /**< Calibration Result Counter Register */
+ uint32_t RESERVED79[2U]; /**< Reserved for future use */
+ __IOM uint32_t CLKEN0_TGL; /**< Clock Enable Register 0 */
+ __IOM uint32_t CLKEN1_TGL; /**< Clock Enable Register 1 */
+ uint32_t RESERVED80[1U]; /**< Reserved for future use */
+ __IOM uint32_t SYSCLKCTRL_TGL; /**< System Clock Control */
+ uint32_t RESERVED81[3U]; /**< Reserved for future use */
+ __IOM uint32_t TRACECLKCTRL_TGL; /**< Debug Trace Clock Control */
+ uint32_t RESERVED82[3U]; /**< Reserved for future use */
+ __IOM uint32_t EXPORTCLKCTRL_TGL; /**< Export Clock Control */
+ uint32_t RESERVED83[27U]; /**< Reserved for future use */
+ __IOM uint32_t DPLLREFCLKCTRL_TGL; /**< Digital PLL Reference Clock Control */
+ uint32_t RESERVED84[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPACLKCTRL_TGL; /**< EM01 Peripheral Group A Clock Control */
+ uint32_t RESERVED85[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM01GRPCCLKCTRL_TGL; /**< EM01 Peripheral Group C Clock Control */
+ uint32_t RESERVED86[5U]; /**< Reserved for future use */
+ __IOM uint32_t EM23GRPACLKCTRL_TGL; /**< EM23 Peripheral Group A Clock Control */
+ uint32_t RESERVED87[7U]; /**< Reserved for future use */
+ __IOM uint32_t EM4GRPACLKCTRL_TGL; /**< EM4 Peripheral Group A Clock Control */
+ uint32_t RESERVED88[7U]; /**< Reserved for future use */
+ __IOM uint32_t IADCCLKCTRL_TGL; /**< IADC Clock Control */
+ uint32_t RESERVED89[31U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG0CLKCTRL_TGL; /**< Watchdog0 Clock Control */
+ uint32_t RESERVED90[1U]; /**< Reserved for future use */
+ __IOM uint32_t WDOG1CLKCTRL_TGL; /**< Watchdog1 Clock Control */
+ uint32_t RESERVED91[5U]; /**< Reserved for future use */
+ __IOM uint32_t EUSART0CLKCTRL_TGL; /**< EUSART0 Clock Control */
+ uint32_t RESERVED92[7U]; /**< Reserved for future use */
+ __IOM uint32_t SYSRTC0CLKCTRL_TGL; /**< System RTC0 Clock Control */
+ uint32_t RESERVED93[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCLKCTRL_TGL; /**< LCD Clock Control */
+ uint32_t RESERVED94[3U]; /**< Reserved for future use */
+ __IOM uint32_t VDAC0CLKCTRL_TGL; /**< VDAC0 Clock Control */
+ uint32_t RESERVED95[3U]; /**< Reserved for future use */
+ __IOM uint32_t PCNT0CLKCTRL_TGL; /**< Pulse counter 0 Clock Control */
+ uint32_t RESERVED96[3U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOCLKCTRL_TGL; /**< Radio Clock Control */
+ uint32_t RESERVED97[3U]; /**< Reserved for future use */
+ __IOM uint32_t LESENSEHFCLKCTRL_TGL; /**< LESENSE HF Clock Control */
+ uint32_t RESERVED98[1U]; /**< Reserved for future use */
+} CMU_TypeDef;
+/** @} End of group EFR32ZG23_CMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_CMU
+ * @{
+ * @defgroup EFR32ZG23_CMU_BitFields CMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for CMU IPVERSION */
+#define _CMU_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for CMU_IPVERSION */
+#define _CMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for CMU_IPVERSION */
+#define _CMU_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for CMU_IPVERSION */
+#define CMU_IPVERSION_IPVERSION_DEFAULT (_CMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IPVERSION */
+
+/* Bit fields for CMU STATUS */
+#define _CMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for CMU_STATUS */
+#define _CMU_STATUS_MASK 0xC0038001UL /**< Mask for CMU_STATUS */
+#define CMU_STATUS_CALRDY (0x1UL << 0) /**< Calibration Ready */
+#define _CMU_STATUS_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_STATUS_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_CALRDY_DEFAULT (_CMU_STATUS_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK (0x1UL << 30) /**< Configuration Lock Status for WDOG */
+#define _CMU_STATUS_WDOGLOCK_SHIFT 30 /**< Shift value for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_MASK 0x40000000UL /**< Bit mask for CMU_WDOGLOCK */
+#define _CMU_STATUS_WDOGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_WDOGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_DEFAULT (_CMU_STATUS_WDOGLOCK_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_UNLOCKED (_CMU_STATUS_WDOGLOCK_UNLOCKED << 30) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_WDOGLOCK_LOCKED (_CMU_STATUS_WDOGLOCK_LOCKED << 30) /**< Shifted mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _CMU_STATUS_LOCK_SHIFT 31 /**< Shift value for CMU_LOCK */
+#define _CMU_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for CMU_LOCK */
+#define _CMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_STATUS */
+#define _CMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for CMU_STATUS */
+#define _CMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_DEFAULT (_CMU_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_STATUS */
+#define CMU_STATUS_LOCK_UNLOCKED (_CMU_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for CMU_STATUS */
+#define CMU_STATUS_LOCK_LOCKED (_CMU_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for CMU_STATUS */
+
+/* Bit fields for CMU LOCK */
+#define _CMU_LOCK_RESETVALUE 0x000093F7UL /**< Default value for CMU_LOCK */
+#define _CMU_LOCK_MASK 0x0000FFFFUL /**< Mask for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_LOCK_LOCKKEY_DEFAULT 0x000093F7UL /**< Mode DEFAULT for CMU_LOCK */
+#define _CMU_LOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_DEFAULT (_CMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_LOCK */
+#define CMU_LOCK_LOCKKEY_UNLOCK (_CMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_LOCK */
+
+/* Bit fields for CMU WDOGLOCK */
+#define _CMU_WDOGLOCK_RESETVALUE 0x00005257UL /**< Default value for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_MASK 0x0000FFFFUL /**< Mask for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_SHIFT 0 /**< Shift value for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for CMU_LOCKKEY */
+#define _CMU_WDOGLOCK_LOCKKEY_DEFAULT 0x00005257UL /**< Mode DEFAULT for CMU_WDOGLOCK */
+#define _CMU_WDOGLOCK_LOCKKEY_UNLOCK 0x000093F7UL /**< Mode UNLOCK for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_DEFAULT (_CMU_WDOGLOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOGLOCK */
+#define CMU_WDOGLOCK_LOCKKEY_UNLOCK (_CMU_WDOGLOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for CMU_WDOGLOCK */
+
+/* Bit fields for CMU IF */
+#define _CMU_IF_RESETVALUE 0x00000000UL /**< Default value for CMU_IF */
+#define _CMU_IF_MASK 0x00000003UL /**< Mask for CMU_IF */
+#define CMU_IF_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Flag */
+#define _CMU_IF_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IF_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IF_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALRDY_DEFAULT (_CMU_IF_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Flag */
+#define _CMU_IF_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IF_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IF_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IF */
+#define CMU_IF_CALOF_DEFAULT (_CMU_IF_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IF */
+
+/* Bit fields for CMU IEN */
+#define _CMU_IEN_RESETVALUE 0x00000000UL /**< Default value for CMU_IEN */
+#define _CMU_IEN_MASK 0x00000003UL /**< Mask for CMU_IEN */
+#define CMU_IEN_CALRDY (0x1UL << 0) /**< Calibration Ready Interrupt Enable */
+#define _CMU_IEN_CALRDY_SHIFT 0 /**< Shift value for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_MASK 0x1UL /**< Bit mask for CMU_CALRDY */
+#define _CMU_IEN_CALRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALRDY_DEFAULT (_CMU_IEN_CALRDY_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF (0x1UL << 1) /**< Calibration Overflow Interrupt Enable */
+#define _CMU_IEN_CALOF_SHIFT 1 /**< Shift value for CMU_CALOF */
+#define _CMU_IEN_CALOF_MASK 0x2UL /**< Bit mask for CMU_CALOF */
+#define _CMU_IEN_CALOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_IEN */
+#define CMU_IEN_CALOF_DEFAULT (_CMU_IEN_CALOF_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_IEN */
+
+/* Bit fields for CMU CALCMD */
+#define _CMU_CALCMD_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCMD */
+#define _CMU_CALCMD_MASK 0x00000003UL /**< Mask for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART (0x1UL << 0) /**< Calibration Start */
+#define _CMU_CALCMD_CALSTART_SHIFT 0 /**< Shift value for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_MASK 0x1UL /**< Bit mask for CMU_CALSTART */
+#define _CMU_CALCMD_CALSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTART_DEFAULT (_CMU_CALCMD_CALSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP (0x1UL << 1) /**< Calibration Stop */
+#define _CMU_CALCMD_CALSTOP_SHIFT 1 /**< Shift value for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_MASK 0x2UL /**< Bit mask for CMU_CALSTOP */
+#define _CMU_CALCMD_CALSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCMD */
+#define CMU_CALCMD_CALSTOP_DEFAULT (_CMU_CALCMD_CALSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CALCMD */
+
+/* Bit fields for CMU CALCTRL */
+#define _CMU_CALCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCTRL */
+#define _CMU_CALCTRL_MASK 0xFF8FFFFFUL /**< Mask for CMU_CALCTRL */
+#define _CMU_CALCTRL_CALTOP_SHIFT 0 /**< Shift value for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_MASK 0xFFFFFUL /**< Bit mask for CMU_CALTOP */
+#define _CMU_CALCTRL_CALTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CALTOP_DEFAULT (_CMU_CALCTRL_CALTOP_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT (0x1UL << 23) /**< Continuous Calibration */
+#define _CMU_CALCTRL_CONT_SHIFT 23 /**< Shift value for CMU_CONT */
+#define _CMU_CALCTRL_CONT_MASK 0x800000UL /**< Bit mask for CMU_CONT */
+#define _CMU_CALCTRL_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_CONT_DEFAULT (_CMU_CALCTRL_CONT_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_SHIFT 24 /**< Shift value for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_MASK 0xF000000UL /**< Bit mask for CMU_UPSEL */
+#define _CMU_CALCTRL_UPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_PRS 0x00000001UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFXO 0x00000003UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFRCODPLL 0x00000004UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_HFRCOEM23 0x00000005UL /**< Mode HFRCOEM23 for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_LFRCO 0x00000009UL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_UPSEL_ULFRCO 0x0000000AUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DEFAULT (_CMU_CALCTRL_UPSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_DISABLED (_CMU_CALCTRL_UPSEL_DISABLED << 24) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_PRS (_CMU_CALCTRL_UPSEL_PRS << 24) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFXO (_CMU_CALCTRL_UPSEL_HFXO << 24) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFXO (_CMU_CALCTRL_UPSEL_LFXO << 24) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFRCODPLL (_CMU_CALCTRL_UPSEL_HFRCODPLL << 24) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_HFRCOEM23 (_CMU_CALCTRL_UPSEL_HFRCOEM23 << 24) /**< Shifted mode HFRCOEM23 for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_FSRCO (_CMU_CALCTRL_UPSEL_FSRCO << 24) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_LFRCO (_CMU_CALCTRL_UPSEL_LFRCO << 24) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_UPSEL_ULFRCO (_CMU_CALCTRL_UPSEL_ULFRCO << 24) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_SHIFT 28 /**< Shift value for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_MASK 0xF0000000UL /**< Bit mask for CMU_DOWNSEL */
+#define _CMU_CALCTRL_DOWNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HCLK 0x00000001UL /**< Mode HCLK for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_PRS 0x00000002UL /**< Mode PRS for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFXO 0x00000004UL /**< Mode LFXO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFRCODPLL 0x00000005UL /**< Mode HFRCODPLL for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_HFRCOEM23 0x00000006UL /**< Mode HFRCOEM23 for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_FSRCO 0x00000009UL /**< Mode FSRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_LFRCO 0x0000000AUL /**< Mode LFRCO for CMU_CALCTRL */
+#define _CMU_CALCTRL_DOWNSEL_ULFRCO 0x0000000BUL /**< Mode ULFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DEFAULT (_CMU_CALCTRL_DOWNSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_DISABLED (_CMU_CALCTRL_DOWNSEL_DISABLED << 28) /**< Shifted mode DISABLED for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HCLK (_CMU_CALCTRL_DOWNSEL_HCLK << 28) /**< Shifted mode HCLK for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_PRS (_CMU_CALCTRL_DOWNSEL_PRS << 28) /**< Shifted mode PRS for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFXO (_CMU_CALCTRL_DOWNSEL_HFXO << 28) /**< Shifted mode HFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFXO (_CMU_CALCTRL_DOWNSEL_LFXO << 28) /**< Shifted mode LFXO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFRCODPLL (_CMU_CALCTRL_DOWNSEL_HFRCODPLL << 28) /**< Shifted mode HFRCODPLL for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_HFRCOEM23 (_CMU_CALCTRL_DOWNSEL_HFRCOEM23 << 28) /**< Shifted mode HFRCOEM23 for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_FSRCO (_CMU_CALCTRL_DOWNSEL_FSRCO << 28) /**< Shifted mode FSRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_LFRCO (_CMU_CALCTRL_DOWNSEL_LFRCO << 28) /**< Shifted mode LFRCO for CMU_CALCTRL */
+#define CMU_CALCTRL_DOWNSEL_ULFRCO (_CMU_CALCTRL_DOWNSEL_ULFRCO << 28) /**< Shifted mode ULFRCO for CMU_CALCTRL */
+
+/* Bit fields for CMU CALCNT */
+#define _CMU_CALCNT_RESETVALUE 0x00000000UL /**< Default value for CMU_CALCNT */
+#define _CMU_CALCNT_MASK 0x000FFFFFUL /**< Mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_SHIFT 0 /**< Shift value for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_MASK 0xFFFFFUL /**< Bit mask for CMU_CALCNT */
+#define _CMU_CALCNT_CALCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CALCNT */
+#define CMU_CALCNT_CALCNT_DEFAULT (_CMU_CALCNT_CALCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CALCNT */
+
+/* Bit fields for CMU CLKEN0 */
+#define _CMU_CLKEN0_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN0 */
+#define _CMU_CLKEN0_MASK 0xFFFFFFFFUL /**< Mask for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMA_SHIFT 0 /**< Shift value for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_MASK 0x1UL /**< Bit mask for CMU_LDMA */
+#define _CMU_CLKEN0_LDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMA_DEFAULT (_CMU_CLKEN0_LDMA_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LDMAXBAR_SHIFT 1 /**< Shift value for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_MASK 0x2UL /**< Bit mask for CMU_LDMAXBAR */
+#define _CMU_CLKEN0_LDMAXBAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LDMAXBAR_DEFAULT (_CMU_CLKEN0_LDMAXBAR_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_RADIOAES_SHIFT 2 /**< Shift value for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_MASK 0x4UL /**< Bit mask for CMU_RADIOAES */
+#define _CMU_CLKEN0_RADIOAES_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_RADIOAES_DEFAULT (_CMU_CLKEN0_RADIOAES_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPCRC_SHIFT 3 /**< Shift value for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_MASK 0x8UL /**< Bit mask for CMU_GPCRC */
+#define _CMU_CLKEN0_GPCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPCRC_DEFAULT (_CMU_CLKEN0_GPCRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0 (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER0_SHIFT 4 /**< Shift value for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_MASK 0x10UL /**< Bit mask for CMU_TIMER0 */
+#define _CMU_CLKEN0_TIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER0_DEFAULT (_CMU_CLKEN0_TIMER0_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1 (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER1_SHIFT 5 /**< Shift value for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_MASK 0x20UL /**< Bit mask for CMU_TIMER1 */
+#define _CMU_CLKEN0_TIMER1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER1_DEFAULT (_CMU_CLKEN0_TIMER1_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2 (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER2_SHIFT 6 /**< Shift value for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_MASK 0x40UL /**< Bit mask for CMU_TIMER2 */
+#define _CMU_CLKEN0_TIMER2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER2_DEFAULT (_CMU_CLKEN0_TIMER2_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3 (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER3_SHIFT 7 /**< Shift value for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_MASK 0x80UL /**< Bit mask for CMU_TIMER3 */
+#define _CMU_CLKEN0_TIMER3_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER3_DEFAULT (_CMU_CLKEN0_TIMER3_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER4 (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_TIMER4_SHIFT 8 /**< Shift value for CMU_TIMER4 */
+#define _CMU_CLKEN0_TIMER4_MASK 0x100UL /**< Bit mask for CMU_TIMER4 */
+#define _CMU_CLKEN0_TIMER4_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_TIMER4_DEFAULT (_CMU_CLKEN0_TIMER4_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0 (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_USART0_SHIFT 9 /**< Shift value for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_MASK 0x200UL /**< Bit mask for CMU_USART0 */
+#define _CMU_CLKEN0_USART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_USART0_DEFAULT (_CMU_CLKEN0_USART0_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0 (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_IADC0_SHIFT 10 /**< Shift value for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_MASK 0x400UL /**< Bit mask for CMU_IADC0 */
+#define _CMU_CLKEN0_IADC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_IADC0_DEFAULT (_CMU_CLKEN0_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0 (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_AMUXCP0_SHIFT 11 /**< Shift value for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_MASK 0x800UL /**< Bit mask for CMU_AMUXCP0 */
+#define _CMU_CLKEN0_AMUXCP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_AMUXCP0_DEFAULT (_CMU_CLKEN0_AMUXCP0_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0 (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LETIMER0_SHIFT 12 /**< Shift value for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_MASK 0x1000UL /**< Bit mask for CMU_LETIMER0 */
+#define _CMU_CLKEN0_LETIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LETIMER0_DEFAULT (_CMU_CLKEN0_LETIMER0_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0 (0x1UL << 13) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_WDOG0_SHIFT 13 /**< Shift value for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_MASK 0x2000UL /**< Bit mask for CMU_WDOG0 */
+#define _CMU_CLKEN0_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_WDOG0_DEFAULT (_CMU_CLKEN0_WDOG0_DEFAULT << 13) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0 (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C0_SHIFT 14 /**< Shift value for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_MASK 0x4000UL /**< Bit mask for CMU_I2C0 */
+#define _CMU_CLKEN0_I2C0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C0_DEFAULT (_CMU_CLKEN0_I2C0_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1 (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_I2C1_SHIFT 15 /**< Shift value for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_MASK 0x8000UL /**< Bit mask for CMU_I2C1 */
+#define _CMU_CLKEN0_I2C1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_I2C1_DEFAULT (_CMU_CLKEN0_I2C1_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_SYSCFG_SHIFT 16 /**< Shift value for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_MASK 0x10000UL /**< Bit mask for CMU_SYSCFG */
+#define _CMU_CLKEN0_SYSCFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSCFG_DEFAULT (_CMU_CLKEN0_SYSCFG_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0 (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DPLL0_SHIFT 17 /**< Shift value for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_MASK 0x20000UL /**< Bit mask for CMU_DPLL0 */
+#define _CMU_CLKEN0_DPLL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DPLL0_DEFAULT (_CMU_CLKEN0_DPLL0_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFRCO0_SHIFT 18 /**< Shift value for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_MASK 0x40000UL /**< Bit mask for CMU_HFRCO0 */
+#define _CMU_CLKEN0_HFRCO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCO0_DEFAULT (_CMU_CLKEN0_HFRCO0_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCOEM23 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFRCOEM23_SHIFT 19 /**< Shift value for CMU_HFRCOEM23 */
+#define _CMU_CLKEN0_HFRCOEM23_MASK 0x80000UL /**< Bit mask for CMU_HFRCOEM23 */
+#define _CMU_CLKEN0_HFRCOEM23_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFRCOEM23_DEFAULT (_CMU_CLKEN0_HFRCOEM23_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0 (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_HFXO0_SHIFT 20 /**< Shift value for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_MASK 0x100000UL /**< Bit mask for CMU_HFXO0 */
+#define _CMU_CLKEN0_HFXO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_HFXO0_DEFAULT (_CMU_CLKEN0_HFXO0_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_FSRCO_SHIFT 21 /**< Shift value for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_MASK 0x200000UL /**< Bit mask for CMU_FSRCO */
+#define _CMU_CLKEN0_FSRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_FSRCO_DEFAULT (_CMU_CLKEN0_FSRCO_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFRCO_SHIFT 22 /**< Shift value for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_MASK 0x400000UL /**< Bit mask for CMU_LFRCO */
+#define _CMU_CLKEN0_LFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFRCO_DEFAULT (_CMU_CLKEN0_LFRCO_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LFXO_SHIFT 23 /**< Shift value for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_MASK 0x800000UL /**< Bit mask for CMU_LFXO */
+#define _CMU_CLKEN0_LFXO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LFXO_DEFAULT (_CMU_CLKEN0_LFXO_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO (0x1UL << 24) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_ULFRCO_SHIFT 24 /**< Shift value for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_MASK 0x1000000UL /**< Bit mask for CMU_ULFRCO */
+#define _CMU_CLKEN0_ULFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_ULFRCO_DEFAULT (_CMU_CLKEN0_ULFRCO_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LESENSE (0x1UL << 25) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_LESENSE_SHIFT 25 /**< Shift value for CMU_LESENSE */
+#define _CMU_CLKEN0_LESENSE_MASK 0x2000000UL /**< Bit mask for CMU_LESENSE */
+#define _CMU_CLKEN0_LESENSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_LESENSE_DEFAULT (_CMU_CLKEN0_LESENSE_DEFAULT << 25) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO (0x1UL << 26) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_GPIO_SHIFT 26 /**< Shift value for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_MASK 0x4000000UL /**< Bit mask for CMU_GPIO */
+#define _CMU_CLKEN0_GPIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_GPIO_DEFAULT (_CMU_CLKEN0_GPIO_DEFAULT << 26) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS (0x1UL << 27) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_PRS_SHIFT 27 /**< Shift value for CMU_PRS */
+#define _CMU_CLKEN0_PRS_MASK 0x8000000UL /**< Bit mask for CMU_PRS */
+#define _CMU_CLKEN0_PRS_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_PRS_DEFAULT (_CMU_CLKEN0_PRS_DEFAULT << 27) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURAM_SHIFT 28 /**< Shift value for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_MASK 0x10000000UL /**< Bit mask for CMU_BURAM */
+#define _CMU_CLKEN0_BURAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURAM_DEFAULT (_CMU_CLKEN0_BURAM_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC (0x1UL << 29) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_BURTC_SHIFT 29 /**< Shift value for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_MASK 0x20000000UL /**< Bit mask for CMU_BURTC */
+#define _CMU_CLKEN0_BURTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_BURTC_DEFAULT (_CMU_CLKEN0_BURTC_DEFAULT << 29) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSRTC0 (0x1UL << 30) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_SYSRTC0_SHIFT 30 /**< Shift value for CMU_SYSRTC0 */
+#define _CMU_CLKEN0_SYSRTC0_MASK 0x40000000UL /**< Bit mask for CMU_SYSRTC0 */
+#define _CMU_CLKEN0_SYSRTC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_SYSRTC0_DEFAULT (_CMU_CLKEN0_SYSRTC0_DEFAULT << 30) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC (0x1UL << 31) /**< Enable Bus Clock */
+#define _CMU_CLKEN0_DCDC_SHIFT 31 /**< Shift value for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_MASK 0x80000000UL /**< Bit mask for CMU_DCDC */
+#define _CMU_CLKEN0_DCDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN0 */
+#define CMU_CLKEN0_DCDC_DEFAULT (_CMU_CLKEN0_DCDC_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_CLKEN0 */
+
+/* Bit fields for CMU CLKEN1 */
+#define _CMU_CLKEN1_RESETVALUE 0x00000000UL /**< Default value for CMU_CLKEN1 */
+#define _CMU_CLKEN1_MASK 0x1FFFFFFFUL /**< Mask for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC (0x1UL << 0) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_AGC_SHIFT 0 /**< Shift value for CMU_AGC */
+#define _CMU_CLKEN1_AGC_MASK 0x1UL /**< Bit mask for CMU_AGC */
+#define _CMU_CLKEN1_AGC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_AGC_DEFAULT (_CMU_CLKEN1_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM (0x1UL << 1) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MODEM_SHIFT 1 /**< Shift value for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_MASK 0x2UL /**< Bit mask for CMU_MODEM */
+#define _CMU_CLKEN1_MODEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MODEM_DEFAULT (_CMU_CLKEN1_MODEM_DEFAULT << 1) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC (0x1UL << 2) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFCRC_SHIFT 2 /**< Shift value for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_MASK 0x4UL /**< Bit mask for CMU_RFCRC */
+#define _CMU_CLKEN1_RFCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFCRC_DEFAULT (_CMU_CLKEN1_RFCRC_DEFAULT << 2) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC (0x1UL << 3) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_FRC_SHIFT 3 /**< Shift value for CMU_FRC */
+#define _CMU_CLKEN1_FRC_MASK 0x8UL /**< Bit mask for CMU_FRC */
+#define _CMU_CLKEN1_FRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_FRC_DEFAULT (_CMU_CLKEN1_FRC_DEFAULT << 3) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER (0x1UL << 4) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PROTIMER_SHIFT 4 /**< Shift value for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_MASK 0x10UL /**< Bit mask for CMU_PROTIMER */
+#define _CMU_CLKEN1_PROTIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PROTIMER_DEFAULT (_CMU_CLKEN1_PROTIMER_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC (0x1UL << 5) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RAC_SHIFT 5 /**< Shift value for CMU_RAC */
+#define _CMU_CLKEN1_RAC_MASK 0x20UL /**< Bit mask for CMU_RAC */
+#define _CMU_CLKEN1_RAC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RAC_DEFAULT (_CMU_CLKEN1_RAC_DEFAULT << 5) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH (0x1UL << 6) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SYNTH_SHIFT 6 /**< Shift value for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_MASK 0x40UL /**< Bit mask for CMU_SYNTH */
+#define _CMU_CLKEN1_SYNTH_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SYNTH_DEFAULT (_CMU_CLKEN1_SYNTH_DEFAULT << 6) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSCRATCHPAD (0x1UL << 7) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFSCRATCHPAD_SHIFT 7 /**< Shift value for CMU_RFSCRATCHPAD */
+#define _CMU_CLKEN1_RFSCRATCHPAD_MASK 0x80UL /**< Bit mask for CMU_RFSCRATCHPAD */
+#define _CMU_CLKEN1_RFSCRATCHPAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFSCRATCHPAD_DEFAULT (_CMU_CLKEN1_RFSCRATCHPAD_DEFAULT << 7) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_HOSTMAILBOX (0x1UL << 8) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_HOSTMAILBOX_SHIFT 8 /**< Shift value for CMU_HOSTMAILBOX */
+#define _CMU_CLKEN1_HOSTMAILBOX_MASK 0x100UL /**< Bit mask for CMU_HOSTMAILBOX */
+#define _CMU_CLKEN1_HOSTMAILBOX_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_HOSTMAILBOX_DEFAULT (_CMU_CLKEN1_HOSTMAILBOX_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFMAILBOX (0x1UL << 9) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFMAILBOX_SHIFT 9 /**< Shift value for CMU_RFMAILBOX */
+#define _CMU_CLKEN1_RFMAILBOX_MASK 0x200UL /**< Bit mask for CMU_RFMAILBOX */
+#define _CMU_CLKEN1_RFMAILBOX_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFMAILBOX_DEFAULT (_CMU_CLKEN1_RFMAILBOX_DEFAULT << 9) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST (0x1UL << 10) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SEMAILBOXHOST_SHIFT 10 /**< Shift value for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_MASK 0x400UL /**< Bit mask for CMU_SEMAILBOXHOST */
+#define _CMU_CLKEN1_SEMAILBOXHOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SEMAILBOXHOST_DEFAULT (_CMU_CLKEN1_SEMAILBOXHOST_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC (0x1UL << 11) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_BUFC_SHIFT 11 /**< Shift value for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_MASK 0x800UL /**< Bit mask for CMU_BUFC */
+#define _CMU_CLKEN1_BUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_BUFC_DEFAULT (_CMU_CLKEN1_BUFC_DEFAULT << 11) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_LCD (0x1UL << 12) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_LCD_SHIFT 12 /**< Shift value for CMU_LCD */
+#define _CMU_CLKEN1_LCD_MASK 0x1000UL /**< Bit mask for CMU_LCD */
+#define _CMU_CLKEN1_LCD_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_LCD_DEFAULT (_CMU_CLKEN1_LCD_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_KEYSCAN (0x1UL << 13) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_KEYSCAN_SHIFT 13 /**< Shift value for CMU_KEYSCAN */
+#define _CMU_CLKEN1_KEYSCAN_MASK 0x2000UL /**< Bit mask for CMU_KEYSCAN */
+#define _CMU_CLKEN1_KEYSCAN_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_KEYSCAN_DEFAULT (_CMU_CLKEN1_KEYSCAN_DEFAULT << 13) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU (0x1UL << 14) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_SMU_SHIFT 14 /**< Shift value for CMU_SMU */
+#define _CMU_CLKEN1_SMU_MASK 0x4000UL /**< Bit mask for CMU_SMU */
+#define _CMU_CLKEN1_SMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_SMU_DEFAULT (_CMU_CLKEN1_SMU_DEFAULT << 14) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0 (0x1UL << 15) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ICACHE0_SHIFT 15 /**< Shift value for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_MASK 0x8000UL /**< Bit mask for CMU_ICACHE0 */
+#define _CMU_CLKEN1_ICACHE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ICACHE0_DEFAULT (_CMU_CLKEN1_ICACHE0_DEFAULT << 15) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC (0x1UL << 16) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_MSC_SHIFT 16 /**< Shift value for CMU_MSC */
+#define _CMU_CLKEN1_MSC_MASK 0x10000UL /**< Bit mask for CMU_MSC */
+#define _CMU_CLKEN1_MSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_MSC_DEFAULT (_CMU_CLKEN1_MSC_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_WDOG1 (0x1UL << 17) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_WDOG1_SHIFT 17 /**< Shift value for CMU_WDOG1 */
+#define _CMU_CLKEN1_WDOG1_MASK 0x20000UL /**< Bit mask for CMU_WDOG1 */
+#define _CMU_CLKEN1_WDOG1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_WDOG1_DEFAULT (_CMU_CLKEN1_WDOG1_DEFAULT << 17) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0 (0x1UL << 18) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ACMP0_SHIFT 18 /**< Shift value for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_MASK 0x40000UL /**< Bit mask for CMU_ACMP0 */
+#define _CMU_CLKEN1_ACMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP0_DEFAULT (_CMU_CLKEN1_ACMP0_DEFAULT << 18) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP1 (0x1UL << 19) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ACMP1_SHIFT 19 /**< Shift value for CMU_ACMP1 */
+#define _CMU_CLKEN1_ACMP1_MASK 0x80000UL /**< Bit mask for CMU_ACMP1 */
+#define _CMU_CLKEN1_ACMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ACMP1_DEFAULT (_CMU_CLKEN1_ACMP1_DEFAULT << 19) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_VDAC0 (0x1UL << 20) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_VDAC0_SHIFT 20 /**< Shift value for CMU_VDAC0 */
+#define _CMU_CLKEN1_VDAC0_MASK 0x100000UL /**< Bit mask for CMU_VDAC0 */
+#define _CMU_CLKEN1_VDAC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_VDAC0_DEFAULT (_CMU_CLKEN1_VDAC0_DEFAULT << 20) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PCNT0 (0x1UL << 21) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_PCNT0_SHIFT 21 /**< Shift value for CMU_PCNT0 */
+#define _CMU_CLKEN1_PCNT0_MASK 0x200000UL /**< Bit mask for CMU_PCNT0 */
+#define _CMU_CLKEN1_PCNT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_PCNT0_DEFAULT (_CMU_CLKEN1_PCNT0_DEFAULT << 21) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0 (0x1UL << 22) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART0_SHIFT 22 /**< Shift value for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_MASK 0x400000UL /**< Bit mask for CMU_EUSART0 */
+#define _CMU_CLKEN1_EUSART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART0_DEFAULT (_CMU_CLKEN1_EUSART0_DEFAULT << 22) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1 (0x1UL << 23) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART1_SHIFT 23 /**< Shift value for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_MASK 0x800000UL /**< Bit mask for CMU_EUSART1 */
+#define _CMU_CLKEN1_EUSART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART1_DEFAULT (_CMU_CLKEN1_EUSART1_DEFAULT << 23) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART2 (0x1UL << 24) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_EUSART2_SHIFT 24 /**< Shift value for CMU_EUSART2 */
+#define _CMU_CLKEN1_EUSART2_MASK 0x1000000UL /**< Bit mask for CMU_EUSART2 */
+#define _CMU_CLKEN1_EUSART2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_EUSART2_DEFAULT (_CMU_CLKEN1_EUSART2_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFECA0 (0x1UL << 25) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFECA0_SHIFT 25 /**< Shift value for CMU_RFECA0 */
+#define _CMU_CLKEN1_RFECA0_MASK 0x2000000UL /**< Bit mask for CMU_RFECA0 */
+#define _CMU_CLKEN1_RFECA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFECA0_DEFAULT (_CMU_CLKEN1_RFECA0_DEFAULT << 25) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFECA1 (0x1UL << 26) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_RFECA1_SHIFT 26 /**< Shift value for CMU_RFECA1 */
+#define _CMU_CLKEN1_RFECA1_MASK 0x4000000UL /**< Bit mask for CMU_RFECA1 */
+#define _CMU_CLKEN1_RFECA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_RFECA1_DEFAULT (_CMU_CLKEN1_RFECA1_DEFAULT << 26) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM (0x1UL << 27) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_DMEM_SHIFT 27 /**< Shift value for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_MASK 0x8000000UL /**< Bit mask for CMU_DMEM */
+#define _CMU_CLKEN1_DMEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_DMEM_DEFAULT (_CMU_CLKEN1_DMEM_DEFAULT << 27) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ECAIFADC (0x1UL << 28) /**< Enable Bus Clock */
+#define _CMU_CLKEN1_ECAIFADC_SHIFT 28 /**< Shift value for CMU_ECAIFADC */
+#define _CMU_CLKEN1_ECAIFADC_MASK 0x10000000UL /**< Bit mask for CMU_ECAIFADC */
+#define _CMU_CLKEN1_ECAIFADC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_CLKEN1 */
+#define CMU_CLKEN1_ECAIFADC_DEFAULT (_CMU_CLKEN1_ECAIFADC_DEFAULT << 28) /**< Shifted mode DEFAULT for CMU_CLKEN1 */
+
+/* Bit fields for CMU SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_MASK 0x0001F507UL /**< Mask for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_SYSCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_FSRCO 0x00000001UL /**< Mode FSRCO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL 0x00000002UL /**< Mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_HFXO 0x00000003UL /**< Mode HFXO for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_CLKSEL_CLKIN0 0x00000004UL /**< Mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_DEFAULT (_CMU_SYSCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_FSRCO (_CMU_SYSCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL (_CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_HFXO (_CMU_SYSCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_CLKSEL_CLKIN0 (_CMU_SYSCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC (0x1UL << 10) /**< PCLK Prescaler */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_SHIFT 10 /**< Shift value for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_MASK 0x400UL /**< Bit mask for CMU_PCLKPRESC */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_PCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_PCLKPRESC_DEFAULT << 10) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV1 << 10) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_PCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_PCLKPRESC_DIV2 << 10) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT 12 /**< Shift value for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_MASK 0xF000UL /**< Bit mask for CMU_HCLKPRESC */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV8 0x00000007UL /**< Mode DIV8 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_HCLKPRESC_DIV16 0x0000000FUL /**< Mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_HCLKPRESC_DEFAULT << 12) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV1 << 12) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV2 << 12) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV4 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV4 << 12) /**< Shifted mode DIV4 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV8 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV8 << 12) /**< Shifted mode DIV8 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_HCLKPRESC_DIV16 (_CMU_SYSCLKCTRL_HCLKPRESC_DIV16 << 12) /**< Shifted mode DIV16 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC (0x1UL << 16) /**< Radio HCLK Prescaler */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_SHIFT 16 /**< Shift value for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_MASK 0x10000UL /**< Bit mask for CMU_RHCLKPRESC */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_SYSCLKCTRL */
+#define _CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT (_CMU_SYSCLKCTRL_RHCLKPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV1 << 16) /**< Shifted mode DIV1 for CMU_SYSCLKCTRL */
+#define CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 (_CMU_SYSCLKCTRL_RHCLKPRESC_DIV2 << 16) /**< Shifted mode DIV2 for CMU_SYSCLKCTRL */
+
+/* Bit fields for CMU TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_MASK 0x00000030UL /**< Mask for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_SHIFT 4 /**< Shift value for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_MASK 0x30UL /**< Bit mask for CMU_PRESC */
+#define _CMU_TRACECLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for CMU_TRACECLKCTRL */
+#define _CMU_TRACECLKCTRL_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DEFAULT (_CMU_TRACECLKCTRL_PRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV1 (_CMU_TRACECLKCTRL_PRESC_DIV1 << 4) /**< Shifted mode DIV1 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV2 (_CMU_TRACECLKCTRL_PRESC_DIV2 << 4) /**< Shifted mode DIV2 for CMU_TRACECLKCTRL */
+#define CMU_TRACECLKCTRL_PRESC_DIV4 (_CMU_TRACECLKCTRL_PRESC_DIV4 << 4) /**< Shifted mode DIV4 for CMU_TRACECLKCTRL */
+
+/* Bit fields for CMU EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_MASK 0x1F0F0F0FUL /**< Mask for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_SHIFT 0 /**< Shift value for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_MASK 0xFUL /**< Bit mask for CMU_CLKOUTSEL0 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCOEM23 0x00000009UL /**< Mode HFRCOEM23 for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HCLK << 0) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFEXPCLK << 0) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_LFXO << 0) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFXO << 0) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCOEM23 (_CMU_EXPORTCLKCTRL_CLKOUTSEL0_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_EXPORTCLKCTRL*/
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_SHIFT 8 /**< Shift value for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_MASK 0xF00UL /**< Bit mask for CMU_CLKOUTSEL1 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCOEM23 0x00000009UL /**< Mode HFRCOEM23 for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DEFAULT << 8) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_DISABLED << 8) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HCLK << 8) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFEXPCLK << 8) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_ULFRCO << 8) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFRCO << 8) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_LFXO << 8) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCODPLL << 8) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFXO << 8) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_FSRCO << 8) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCOEM23 (_CMU_EXPORTCLKCTRL_CLKOUTSEL1_HFRCOEM23 << 8) /**< Shifted mode HFRCOEM23 for CMU_EXPORTCLKCTRL*/
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_SHIFT 16 /**< Shift value for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_MASK 0xF0000UL /**< Bit mask for CMU_CLKOUTSEL2 */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK 0x00000001UL /**< Mode HCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK 0x00000002UL /**< Mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO 0x00000004UL /**< Mode LFRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO 0x00000005UL /**< Mode LFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL 0x00000006UL /**< Mode HFRCODPLL for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO 0x00000007UL /**< Mode HFXO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO 0x00000008UL /**< Mode FSRCO for CMU_EXPORTCLKCTRL */
+#define _CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCOEM23 0x00000009UL /**< Mode HFRCOEM23 for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DEFAULT << 16) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_DISABLED << 16) /**< Shifted mode DISABLED for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HCLK << 16) /**< Shifted mode HCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFEXPCLK << 16) /**< Shifted mode HFEXPCLK for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_ULFRCO << 16) /**< Shifted mode ULFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFRCO << 16) /**< Shifted mode LFRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_LFXO << 16) /**< Shifted mode LFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCODPLL << 16) /**< Shifted mode HFRCODPLL for CMU_EXPORTCLKCTRL*/
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFXO << 16) /**< Shifted mode HFXO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_FSRCO << 16) /**< Shifted mode FSRCO for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCOEM23 (_CMU_EXPORTCLKCTRL_CLKOUTSEL2_HFRCOEM23 << 16) /**< Shifted mode HFRCOEM23 for CMU_EXPORTCLKCTRL*/
+#define _CMU_EXPORTCLKCTRL_PRESC_SHIFT 24 /**< Shift value for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_MASK 0x1F000000UL /**< Bit mask for CMU_PRESC */
+#define _CMU_EXPORTCLKCTRL_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_EXPORTCLKCTRL */
+#define CMU_EXPORTCLKCTRL_PRESC_DEFAULT (_CMU_EXPORTCLKCTRL_PRESC_DEFAULT << 24) /**< Shifted mode DEFAULT for CMU_EXPORTCLKCTRL */
+
+/* Bit fields for CMU DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_HFXO 0x00000001UL /**< Mode HFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_DPLLREFCLKCTRL */
+#define _CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 0x00000003UL /**< Mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT (_CMU_DPLLREFCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED (_CMU_DPLLREFCLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_DPLLREFCLKCTRL*/
+#define CMU_DPLLREFCLKCTRL_CLKSEL_HFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_LFXO (_CMU_DPLLREFCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_DPLLREFCLKCTRL */
+#define CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 (_CMU_DPLLREFCLKCTRL_CLKSEL_CLKIN0 << 0) /**< Shifted mode CLKIN0 for CMU_DPLLREFCLKCTRL */
+
+/* Bit fields for CMU EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_MASK 0x00000007UL /**< Mask for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFRCOEM23 0x00000004UL /**< Mode HFRCOEM23 for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLLRT 0x00000005UL /**< Mode HFRCODPLLRT for CMU_EM01GRPACLKCTRL */
+#define _CMU_EM01GRPACLKCTRL_CLKSEL_HFXORT 0x00000006UL /**< Mode HFXORT for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPACLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPACLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPACLKCTRL */
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFRCOEM23 (_CMU_EM01GRPACLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_EM01GRPACLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_EM01GRPACLKCTRL*/
+#define CMU_EM01GRPACLKCTRL_CLKSEL_HFXORT (_CMU_EM01GRPACLKCTRL_CLKSEL_HFXORT << 0) /**< Shifted mode HFXORT for CMU_EM01GRPACLKCTRL */
+
+/* Bit fields for CMU EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_MASK 0x00000007UL /**< Mask for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL 0x00000001UL /**< Mode HFRCODPLL for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO 0x00000002UL /**< Mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23 0x00000004UL /**< Mode HFRCOEM23 for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLLRT 0x00000005UL /**< Mode HFRCODPLLRT for CMU_EM01GRPCCLKCTRL */
+#define _CMU_EM01GRPCCLKCTRL_CLKSEL_HFXORT 0x00000006UL /**< Mode HFXORT for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT (_CMU_EM01GRPCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLL << 0) /**< Shifted mode HFRCODPLL for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO << 0) /**< Shifted mode HFXO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO (_CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_EM01GRPCCLKCTRL */
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23 (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLLRT (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLLRT << 0) /**< Shifted mode HFRCODPLLRT for CMU_EM01GRPCCLKCTRL*/
+#define CMU_EM01GRPCCLKCTRL_CLKSEL_HFXORT (_CMU_EM01GRPCCLKCTRL_CLKSEL_HFXORT << 0) /**< Shifted mode HFXORT for CMU_EM01GRPCCLKCTRL */
+
+/* Bit fields for CMU EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM23GRPACLKCTRL */
+#define _CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM23GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM23GRPACLKCTRL*/
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM23GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM23GRPACLKCTRL */
+#define CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM23GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM23GRPACLKCTRL */
+
+/* Bit fields for CMU EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_MASK 0x00000003UL /**< Mask for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_EM4GRPACLKCTRL */
+#define _CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT (_CMU_EM4GRPACLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_LFXO (_CMU_EM4GRPACLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EM4GRPACLKCTRL */
+#define CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO (_CMU_EM4GRPACLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_EM4GRPACLKCTRL */
+
+/* Bit fields for CMU IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_IADCCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_FSRCO 0x00000002UL /**< Mode FSRCO for CMU_IADCCLKCTRL */
+#define _CMU_IADCCLKCTRL_CLKSEL_HFRCOEM23 0x00000003UL /**< Mode HFRCOEM23 for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_DEFAULT (_CMU_IADCCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK (_CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_IADCCLKCTRL*/
+#define CMU_IADCCLKCTRL_CLKSEL_FSRCO (_CMU_IADCCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_IADCCLKCTRL */
+#define CMU_IADCCLKCTRL_CLKSEL_HFRCOEM23 (_CMU_IADCCLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_IADCCLKCTRL */
+
+/* Bit fields for CMU WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define _CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 0x00000004UL /**< Mode HCLKDIV1024 for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT (_CMU_WDOG0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_LFXO (_CMU_WDOG0CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO (_CMU_WDOG0CLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_WDOG0CLKCTRL */
+#define CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 (_CMU_WDOG0CLKCTRL_CLKSEL_HCLKDIV1024 << 0) /**< Shifted mode HCLKDIV1024 for CMU_WDOG0CLKCTRL*/
+
+/* Bit fields for CMU WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_WDOG1CLKCTRL */
+#define _CMU_WDOG1CLKCTRL_CLKSEL_HCLKDIV1024 0x00000004UL /**< Mode HCLKDIV1024 for CMU_WDOG1CLKCTRL */
+#define CMU_WDOG1CLKCTRL_CLKSEL_DEFAULT (_CMU_WDOG1CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_WDOG1CLKCTRL */
+#define CMU_WDOG1CLKCTRL_CLKSEL_LFRCO (_CMU_WDOG1CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_WDOG1CLKCTRL */
+#define CMU_WDOG1CLKCTRL_CLKSEL_LFXO (_CMU_WDOG1CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_WDOG1CLKCTRL */
+#define CMU_WDOG1CLKCTRL_CLKSEL_ULFRCO (_CMU_WDOG1CLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_WDOG1CLKCTRL */
+#define CMU_WDOG1CLKCTRL_CLKSEL_HCLKDIV1024 (_CMU_WDOG1CLKCTRL_CLKSEL_HCLKDIV1024 << 0) /**< Shifted mode HCLKDIV1024 for CMU_WDOG1CLKCTRL*/
+
+/* Bit fields for CMU EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK 0x00000001UL /**< Mode EM01GRPCCLK for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_HFRCOEM23 0x00000002UL /**< Mode HFRCOEM23 for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_LFRCO 0x00000003UL /**< Mode LFRCO for CMU_EUSART0CLKCTRL */
+#define _CMU_EUSART0CLKCTRL_CLKSEL_LFXO 0x00000004UL /**< Mode LFXO for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT (_CMU_EUSART0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_DISABLED (_CMU_EUSART0CLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK (_CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK << 0) /**< Shifted mode EM01GRPCCLK for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_HFRCOEM23 (_CMU_EUSART0CLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_EUSART0CLKCTRL*/
+#define CMU_EUSART0CLKCTRL_CLKSEL_LFRCO (_CMU_EUSART0CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_EUSART0CLKCTRL */
+#define CMU_EUSART0CLKCTRL_CLKSEL_LFXO (_CMU_EUSART0CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_EUSART0CLKCTRL */
+
+/* Bit fields for CMU SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_MASK 0x00000003UL /**< Mask for CMU_SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_SYSRTC0CLKCTRL */
+#define _CMU_SYSRTC0CLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_SYSRTC0CLKCTRL */
+#define CMU_SYSRTC0CLKCTRL_CLKSEL_DEFAULT (_CMU_SYSRTC0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_SYSRTC0CLKCTRL */
+#define CMU_SYSRTC0CLKCTRL_CLKSEL_LFRCO (_CMU_SYSRTC0CLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_SYSRTC0CLKCTRL */
+#define CMU_SYSRTC0CLKCTRL_CLKSEL_LFXO (_CMU_SYSRTC0CLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_SYSRTC0CLKCTRL */
+#define CMU_SYSRTC0CLKCTRL_CLKSEL_ULFRCO (_CMU_SYSRTC0CLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_SYSRTC0CLKCTRL */
+
+/* Bit fields for CMU LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_LCDCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_LCDCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_CLKSEL_LFRCO 0x00000001UL /**< Mode LFRCO for CMU_LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_CLKSEL_LFXO 0x00000002UL /**< Mode LFXO for CMU_LCDCLKCTRL */
+#define _CMU_LCDCLKCTRL_CLKSEL_ULFRCO 0x00000003UL /**< Mode ULFRCO for CMU_LCDCLKCTRL */
+#define CMU_LCDCLKCTRL_CLKSEL_DEFAULT (_CMU_LCDCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_LCDCLKCTRL */
+#define CMU_LCDCLKCTRL_CLKSEL_LFRCO (_CMU_LCDCLKCTRL_CLKSEL_LFRCO << 0) /**< Shifted mode LFRCO for CMU_LCDCLKCTRL */
+#define CMU_LCDCLKCTRL_CLKSEL_LFXO (_CMU_LCDCLKCTRL_CLKSEL_LFXO << 0) /**< Shifted mode LFXO for CMU_LCDCLKCTRL */
+#define CMU_LCDCLKCTRL_CLKSEL_ULFRCO (_CMU_LCDCLKCTRL_CLKSEL_ULFRCO << 0) /**< Shifted mode ULFRCO for CMU_LCDCLKCTRL */
+
+/* Bit fields for CMU VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_MASK 0x00000007UL /**< Mask for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_MASK 0x7UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK 0x00000001UL /**< Mode EM01GRPACLK for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_EM23GRPACLK 0x00000002UL /**< Mode EM23GRPACLK for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_FSRCO 0x00000003UL /**< Mode FSRCO for CMU_VDAC0CLKCTRL */
+#define _CMU_VDAC0CLKCTRL_CLKSEL_HFRCOEM23 0x00000004UL /**< Mode HFRCOEM23 for CMU_VDAC0CLKCTRL */
+#define CMU_VDAC0CLKCTRL_CLKSEL_DEFAULT (_CMU_VDAC0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_VDAC0CLKCTRL */
+#define CMU_VDAC0CLKCTRL_CLKSEL_DISABLED (_CMU_VDAC0CLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_VDAC0CLKCTRL */
+#define CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK (_CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK << 0) /**< Shifted mode EM01GRPACLK for CMU_VDAC0CLKCTRL*/
+#define CMU_VDAC0CLKCTRL_CLKSEL_EM23GRPACLK (_CMU_VDAC0CLKCTRL_CLKSEL_EM23GRPACLK << 0) /**< Shifted mode EM23GRPACLK for CMU_VDAC0CLKCTRL*/
+#define CMU_VDAC0CLKCTRL_CLKSEL_FSRCO (_CMU_VDAC0CLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_VDAC0CLKCTRL */
+#define CMU_VDAC0CLKCTRL_CLKSEL_HFRCOEM23 (_CMU_VDAC0CLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_VDAC0CLKCTRL */
+
+/* Bit fields for CMU PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_MASK 0x00000003UL /**< Mask for CMU_PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_DISABLED 0x00000000UL /**< Mode DISABLED for CMU_PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK 0x00000001UL /**< Mode EM23GRPACLK for CMU_PCNT0CLKCTRL */
+#define _CMU_PCNT0CLKCTRL_CLKSEL_PCNTS0 0x00000002UL /**< Mode PCNTS0 for CMU_PCNT0CLKCTRL */
+#define CMU_PCNT0CLKCTRL_CLKSEL_DEFAULT (_CMU_PCNT0CLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_PCNT0CLKCTRL */
+#define CMU_PCNT0CLKCTRL_CLKSEL_DISABLED (_CMU_PCNT0CLKCTRL_CLKSEL_DISABLED << 0) /**< Shifted mode DISABLED for CMU_PCNT0CLKCTRL */
+#define CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK (_CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK << 0) /**< Shifted mode EM23GRPACLK for CMU_PCNT0CLKCTRL*/
+#define CMU_PCNT0CLKCTRL_CLKSEL_PCNTS0 (_CMU_PCNT0CLKCTRL_CLKSEL_PCNTS0 << 0) /**< Shifted mode PCNTS0 for CMU_PCNT0CLKCTRL */
+
+/* Bit fields for CMU RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_RESETVALUE 0x00000000UL /**< Default value for CMU_RADIOCLKCTRL */
+#define _CMU_RADIOCLKCTRL_MASK 0x80000003UL /**< Mask for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN (0x1UL << 0) /**< Enable */
+#define _CMU_RADIOCLKCTRL_EN_SHIFT 0 /**< Shift value for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_MASK 0x1UL /**< Bit mask for CMU_EN */
+#define _CMU_RADIOCLKCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_EN_DEFAULT (_CMU_RADIOCLKCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK (0x1UL << 31) /**< Enable Clock for Debugger */
+#define _CMU_RADIOCLKCTRL_DBGCLK_SHIFT 31 /**< Shift value for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_MASK 0x80000000UL /**< Bit mask for CMU_DBGCLK */
+#define _CMU_RADIOCLKCTRL_DBGCLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for CMU_RADIOCLKCTRL */
+#define CMU_RADIOCLKCTRL_DBGCLK_DEFAULT (_CMU_RADIOCLKCTRL_DBGCLK_DEFAULT << 31) /**< Shifted mode DEFAULT for CMU_RADIOCLKCTRL */
+
+/* Bit fields for CMU LESENSEHFCLKCTRL */
+#define _CMU_LESENSEHFCLKCTRL_RESETVALUE 0x00000001UL /**< Default value for CMU_LESENSEHFCLKCTRL */
+#define _CMU_LESENSEHFCLKCTRL_MASK 0x00000003UL /**< Mask for CMU_LESENSEHFCLKCTRL */
+#define _CMU_LESENSEHFCLKCTRL_CLKSEL_SHIFT 0 /**< Shift value for CMU_CLKSEL */
+#define _CMU_LESENSEHFCLKCTRL_CLKSEL_MASK 0x3UL /**< Bit mask for CMU_CLKSEL */
+#define _CMU_LESENSEHFCLKCTRL_CLKSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for CMU_LESENSEHFCLKCTRL */
+#define _CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO 0x00000001UL /**< Mode FSRCO for CMU_LESENSEHFCLKCTRL */
+#define _CMU_LESENSEHFCLKCTRL_CLKSEL_HFRCOEM23 0x00000002UL /**< Mode HFRCOEM23 for CMU_LESENSEHFCLKCTRL */
+#define CMU_LESENSEHFCLKCTRL_CLKSEL_DEFAULT (_CMU_LESENSEHFCLKCTRL_CLKSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for CMU_LESENSEHFCLKCTRL*/
+#define CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO (_CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO << 0) /**< Shifted mode FSRCO for CMU_LESENSEHFCLKCTRL */
+#define CMU_LESENSEHFCLKCTRL_CLKSEL_HFRCOEM23 (_CMU_LESENSEHFCLKCTRL_CLKSEL_HFRCOEM23 << 0) /**< Shifted mode HFRCOEM23 for CMU_LESENSEHFCLKCTRL*/
+
+/** @} End of group EFR32ZG23_CMU_BitFields */
+/** @} End of group EFR32ZG23_CMU */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_CMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dcdc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dcdc.h
new file mode 100644
index 000000000..493acefe9
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dcdc.h
@@ -0,0 +1,461 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 DCDC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_DCDC_H
+#define EFR32ZG23_DCDC_H
+#define DCDC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_DCDC DCDC
+ * @{
+ * @brief EFR32ZG23 DCDC Register Declaration.
+ *****************************************************************************/
+
+/** DCDC Register Declaration. */
+typedef struct dcdc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t CTRL; /**< Control */
+ __IOM uint32_t EM01CTRL0; /**< EM01 Control */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM23CTRL0; /**< EM23 Control */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t PFMXCTRL; /**< PFMX Control Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IM uint32_t SYNCBUSY; /**< Syncbusy Status Register */
+ uint32_t RESERVED3[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS; /**< Lock Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ uint32_t RESERVED6[7U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[987U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ __IOM uint32_t EM01CTRL0_SET; /**< EM01 Control */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM23CTRL0_SET; /**< EM23 Control */
+ uint32_t RESERVED12[3U]; /**< Reserved for future use */
+ __IOM uint32_t PFMXCTRL_SET; /**< PFMX Control Register */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Syncbusy Status Register */
+ uint32_t RESERVED14[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_SET; /**< Lock Status Register */
+ uint32_t RESERVED15[2U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[7U]; /**< Reserved for future use */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[7U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[987U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ __IOM uint32_t EM01CTRL0_CLR; /**< EM01 Control */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM23CTRL0_CLR; /**< EM23 Control */
+ uint32_t RESERVED23[3U]; /**< Reserved for future use */
+ __IOM uint32_t PFMXCTRL_CLR; /**< PFMX Control Register */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Syncbusy Status Register */
+ uint32_t RESERVED25[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_CLR; /**< Lock Status Register */
+ uint32_t RESERVED26[2U]; /**< Reserved for future use */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[7U]; /**< Reserved for future use */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ uint32_t RESERVED30[7U]; /**< Reserved for future use */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ uint32_t RESERVED32[987U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ __IOM uint32_t EM01CTRL0_TGL; /**< EM01 Control */
+ uint32_t RESERVED33[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM23CTRL0_TGL; /**< EM23 Control */
+ uint32_t RESERVED34[3U]; /**< Reserved for future use */
+ __IOM uint32_t PFMXCTRL_TGL; /**< PFMX Control Register */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Syncbusy Status Register */
+ uint32_t RESERVED36[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t LOCKSTATUS_TGL; /**< Lock Status Register */
+ uint32_t RESERVED37[2U]; /**< Reserved for future use */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ uint32_t RESERVED39[7U]; /**< Reserved for future use */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ uint32_t RESERVED41[7U]; /**< Reserved for future use */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+} DCDC_TypeDef;
+/** @} End of group EFR32ZG23_DCDC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_DCDC
+ * @{
+ * @defgroup EFR32ZG23_DCDC_BitFields DCDC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DCDC IPVERSION */
+#define _DCDC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DCDC_IPVERSION */
+#define _DCDC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_IPVERSION */
+#define DCDC_IPVERSION_IPVERSION_DEFAULT (_DCDC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IPVERSION */
+
+/* Bit fields for DCDC CTRL */
+#define _DCDC_CTRL_RESETVALUE 0x00000100UL /**< Default value for DCDC_CTRL */
+#define _DCDC_CTRL_MASK 0x800001F1UL /**< Mask for DCDC_CTRL */
+#define DCDC_CTRL_MODE (0x1UL << 0) /**< DCDC/Bypass Mode Control */
+#define _DCDC_CTRL_MODE_SHIFT 0 /**< Shift value for DCDC_MODE */
+#define _DCDC_CTRL_MODE_MASK 0x1UL /**< Bit mask for DCDC_MODE */
+#define _DCDC_CTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_BYPASS 0x00000000UL /**< Mode BYPASS for DCDC_CTRL */
+#define _DCDC_CTRL_MODE_DCDCREGULATION 0x00000001UL /**< Mode DCDCREGULATION for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DEFAULT (_DCDC_CTRL_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_MODE_BYPASS (_DCDC_CTRL_MODE_BYPASS << 0) /**< Shifted mode BYPASS for DCDC_CTRL */
+#define DCDC_CTRL_MODE_DCDCREGULATION (_DCDC_CTRL_MODE_DCDCREGULATION << 0) /**< Shifted mode DCDCREGULATION for DCDC_CTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_SHIFT 4 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_MASK 0x1F0UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_CTRL_IPKTMAXCTRL_DEFAULT 0x00000010UL /**< Mode DEFAULT for DCDC_CTRL */
+#define DCDC_CTRL_IPKTMAXCTRL_DEFAULT (_DCDC_CTRL_IPKTMAXCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_CTRL */
+
+/* Bit fields for DCDC EM01CTRL0 */
+#define _DCDC_EM01CTRL0_RESETVALUE 0x00000109UL /**< Default value for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM01CTRL0_IPKVAL_DEFAULT 0x00000009UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load36mA 0x00000003UL /**< Mode Load36mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load40mA 0x00000004UL /**< Mode Load40mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load44mA 0x00000005UL /**< Mode Load44mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load48mA 0x00000006UL /**< Mode Load48mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load52mA 0x00000007UL /**< Mode Load52mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load56mA 0x00000008UL /**< Mode Load56mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_IPKVAL_Load60mA 0x00000009UL /**< Mode Load60mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_DEFAULT (_DCDC_EM01CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load36mA (_DCDC_EM01CTRL0_IPKVAL_Load36mA << 0) /**< Shifted mode Load36mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load40mA (_DCDC_EM01CTRL0_IPKVAL_Load40mA << 0) /**< Shifted mode Load40mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load44mA (_DCDC_EM01CTRL0_IPKVAL_Load44mA << 0) /**< Shifted mode Load44mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load48mA (_DCDC_EM01CTRL0_IPKVAL_Load48mA << 0) /**< Shifted mode Load48mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load52mA (_DCDC_EM01CTRL0_IPKVAL_Load52mA << 0) /**< Shifted mode Load52mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load56mA (_DCDC_EM01CTRL0_IPKVAL_Load56mA << 0) /**< Shifted mode Load56mA for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_IPKVAL_Load60mA (_DCDC_EM01CTRL0_IPKVAL_Load60mA << 0) /**< Shifted mode Load60mA for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_BEST_EMI 0x00000000UL /**< Mode BEST_EMI for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_INTERMEDIATE 0x00000002UL /**< Mode INTERMEDIATE for DCDC_EM01CTRL0 */
+#define _DCDC_EM01CTRL0_DRVSPEED_BEST_EFFICIENCY 0x00000003UL /**< Mode BEST_EFFICIENCY for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_BEST_EMI (_DCDC_EM01CTRL0_DRVSPEED_BEST_EMI << 8) /**< Shifted mode BEST_EMI for DCDC_EM01CTRL0 */
+#define DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM01CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM01CTRL0*/
+#define DCDC_EM01CTRL0_DRVSPEED_INTERMEDIATE (_DCDC_EM01CTRL0_DRVSPEED_INTERMEDIATE << 8) /**< Shifted mode INTERMEDIATE for DCDC_EM01CTRL0*/
+#define DCDC_EM01CTRL0_DRVSPEED_BEST_EFFICIENCY (_DCDC_EM01CTRL0_DRVSPEED_BEST_EFFICIENCY << 8) /**< Shifted mode BEST_EFFICIENCY for DCDC_EM01CTRL0*/
+
+/* Bit fields for DCDC EM23CTRL0 */
+#define _DCDC_EM23CTRL0_RESETVALUE 0x00000103UL /**< Default value for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_MASK 0x0000030FUL /**< Mask for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_EM23CTRL0_IPKVAL_DEFAULT 0x00000003UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load5mA 0x00000003UL /**< Mode Load5mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_IPKVAL_Load10mA 0x00000009UL /**< Mode Load10mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_DEFAULT (_DCDC_EM23CTRL0_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load5mA (_DCDC_EM23CTRL0_IPKVAL_Load5mA << 0) /**< Shifted mode Load5mA for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_IPKVAL_Load10mA (_DCDC_EM23CTRL0_IPKVAL_Load10mA << 0) /**< Shifted mode Load10mA for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_SHIFT 8 /**< Shift value for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_MASK 0x300UL /**< Bit mask for DCDC_DRVSPEED */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_BEST_EMI 0x00000000UL /**< Mode BEST_EMI for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING 0x00000001UL /**< Mode DEFAULT_SETTING for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_INTERMEDIATE 0x00000002UL /**< Mode INTERMEDIATE for DCDC_EM23CTRL0 */
+#define _DCDC_EM23CTRL0_DRVSPEED_BEST_EFFICIENCY 0x00000003UL /**< Mode BEST_EFFICIENCY for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_BEST_EMI (_DCDC_EM23CTRL0_DRVSPEED_BEST_EMI << 8) /**< Shifted mode BEST_EMI for DCDC_EM23CTRL0 */
+#define DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING (_DCDC_EM23CTRL0_DRVSPEED_DEFAULT_SETTING << 8) /**< Shifted mode DEFAULT_SETTING for DCDC_EM23CTRL0*/
+#define DCDC_EM23CTRL0_DRVSPEED_INTERMEDIATE (_DCDC_EM23CTRL0_DRVSPEED_INTERMEDIATE << 8) /**< Shifted mode INTERMEDIATE for DCDC_EM23CTRL0*/
+#define DCDC_EM23CTRL0_DRVSPEED_BEST_EFFICIENCY (_DCDC_EM23CTRL0_DRVSPEED_BEST_EFFICIENCY << 8) /**< Shifted mode BEST_EFFICIENCY for DCDC_EM23CTRL0*/
+
+/* Bit fields for DCDC PFMXCTRL */
+#define _DCDC_PFMXCTRL_RESETVALUE 0x00000C0CUL /**< Default value for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_MASK 0x00001F0FUL /**< Mask for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_SHIFT 0 /**< Shift value for DCDC_IPKVAL */
+#define _DCDC_PFMXCTRL_IPKVAL_MASK 0xFUL /**< Bit mask for DCDC_IPKVAL */
+#define _DCDC_PFMXCTRL_IPKVAL_DEFAULT 0x0000000CUL /**< Mode DEFAULT for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD50MA 0x00000003UL /**< Mode LOAD50MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD65MA 0x00000004UL /**< Mode LOAD65MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD73MA 0x00000005UL /**< Mode LOAD73MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD80MA 0x00000006UL /**< Mode LOAD80MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD86MA 0x00000007UL /**< Mode LOAD86MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD93MA 0x00000008UL /**< Mode LOAD93MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD100MA 0x00000009UL /**< Mode LOAD100MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD106MA 0x0000000AUL /**< Mode LOAD106MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD113MA 0x0000000BUL /**< Mode LOAD113MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKVAL_LOAD120MA 0x0000000CUL /**< Mode LOAD120MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_DEFAULT (_DCDC_PFMXCTRL_IPKVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD50MA (_DCDC_PFMXCTRL_IPKVAL_LOAD50MA << 0) /**< Shifted mode LOAD50MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD65MA (_DCDC_PFMXCTRL_IPKVAL_LOAD65MA << 0) /**< Shifted mode LOAD65MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD73MA (_DCDC_PFMXCTRL_IPKVAL_LOAD73MA << 0) /**< Shifted mode LOAD73MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD80MA (_DCDC_PFMXCTRL_IPKVAL_LOAD80MA << 0) /**< Shifted mode LOAD80MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD86MA (_DCDC_PFMXCTRL_IPKVAL_LOAD86MA << 0) /**< Shifted mode LOAD86MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD93MA (_DCDC_PFMXCTRL_IPKVAL_LOAD93MA << 0) /**< Shifted mode LOAD93MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD100MA (_DCDC_PFMXCTRL_IPKVAL_LOAD100MA << 0) /**< Shifted mode LOAD100MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD106MA (_DCDC_PFMXCTRL_IPKVAL_LOAD106MA << 0) /**< Shifted mode LOAD106MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD113MA (_DCDC_PFMXCTRL_IPKVAL_LOAD113MA << 0) /**< Shifted mode LOAD113MA for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKVAL_LOAD120MA (_DCDC_PFMXCTRL_IPKVAL_LOAD120MA << 0) /**< Shifted mode LOAD120MA for DCDC_PFMXCTRL */
+#define _DCDC_PFMXCTRL_IPKTMAXCTRL_SHIFT 8 /**< Shift value for DCDC_IPKTMAXCTRL */
+#define _DCDC_PFMXCTRL_IPKTMAXCTRL_MASK 0x1F00UL /**< Bit mask for DCDC_IPKTMAXCTRL */
+#define _DCDC_PFMXCTRL_IPKTMAXCTRL_DEFAULT 0x0000000CUL /**< Mode DEFAULT for DCDC_PFMXCTRL */
+#define DCDC_PFMXCTRL_IPKTMAXCTRL_DEFAULT (_DCDC_PFMXCTRL_IPKTMAXCTRL_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_PFMXCTRL */
+
+/* Bit fields for DCDC IF */
+#define _DCDC_IF_RESETVALUE 0x00000000UL /**< Default value for DCDC_IF */
+#define _DCDC_IF_MASK 0x000003FFUL /**< Mask for DCDC_IF */
+#define DCDC_IF_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled */
+#define _DCDC_IF_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IF_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_BYPSW_DEFAULT (_DCDC_IF_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM (0x1UL << 1) /**< DCDC Warmup Time Done */
+#define _DCDC_IF_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IF_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IF_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_WARM_DEFAULT (_DCDC_IF_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING (0x1UL << 2) /**< DCDC Running */
+#define _DCDC_IF_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IF_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_RUNNING_DEFAULT (_DCDC_IF_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW (0x1UL << 3) /**< VREGIN below threshold */
+#define _DCDC_IF_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IF_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINLOW_DEFAULT (_DCDC_IF_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH (0x1UL << 4) /**< VREGIN above threshold */
+#define _DCDC_IF_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IF_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_VREGINHIGH_DEFAULT (_DCDC_IF_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION (0x1UL << 5) /**< DCDC in regulation */
+#define _DCDC_IF_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IF_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_REGULATION_DEFAULT (_DCDC_IF_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX (0x1UL << 6) /**< Ton_max Timeout Reached */
+#define _DCDC_IF_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IF_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IF_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_TMAX_DEFAULT (_DCDC_IF_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR (0x1UL << 7) /**< EM4 Entry Request Error */
+#define _DCDC_IF_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IF_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_EM4ERR_DEFAULT (_DCDC_IF_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_PPMODE (0x1UL << 8) /**< Entered Pulse Pairing mode */
+#define _DCDC_IF_PPMODE_SHIFT 8 /**< Shift value for DCDC_PPMODE */
+#define _DCDC_IF_PPMODE_MASK 0x100UL /**< Bit mask for DCDC_PPMODE */
+#define _DCDC_IF_PPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_PPMODE_DEFAULT (_DCDC_IF_PPMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_IF */
+#define DCDC_IF_PFMXMODE (0x1UL << 9) /**< Entered PFMX mode */
+#define _DCDC_IF_PFMXMODE_SHIFT 9 /**< Shift value for DCDC_PFMXMODE */
+#define _DCDC_IF_PFMXMODE_MASK 0x200UL /**< Bit mask for DCDC_PFMXMODE */
+#define _DCDC_IF_PFMXMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IF */
+#define DCDC_IF_PFMXMODE_DEFAULT (_DCDC_IF_PFMXMODE_DEFAULT << 9) /**< Shifted mode DEFAULT for DCDC_IF */
+
+/* Bit fields for DCDC IEN */
+#define _DCDC_IEN_RESETVALUE 0x00000000UL /**< Default value for DCDC_IEN */
+#define _DCDC_IEN_MASK 0x000003FFUL /**< Mask for DCDC_IEN */
+#define DCDC_IEN_BYPSW (0x1UL << 0) /**< Bypass Switch Enabled Interrupt Enable */
+#define _DCDC_IEN_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_IEN_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_BYPSW_DEFAULT (_DCDC_IEN_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM (0x1UL << 1) /**< DCDC Warmup Time Done Interrupt Enable */
+#define _DCDC_IEN_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_IEN_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_IEN_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_WARM_DEFAULT (_DCDC_IEN_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING (0x1UL << 2) /**< DCDC Running Interrupt Enable */
+#define _DCDC_IEN_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_IEN_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_RUNNING_DEFAULT (_DCDC_IEN_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW (0x1UL << 3) /**< VREGIN below threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINLOW_SHIFT 3 /**< Shift value for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_MASK 0x8UL /**< Bit mask for DCDC_VREGINLOW */
+#define _DCDC_IEN_VREGINLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINLOW_DEFAULT (_DCDC_IEN_VREGINLOW_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH (0x1UL << 4) /**< VREGIN above threshold Interrupt Enable */
+#define _DCDC_IEN_VREGINHIGH_SHIFT 4 /**< Shift value for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_MASK 0x10UL /**< Bit mask for DCDC_VREGINHIGH */
+#define _DCDC_IEN_VREGINHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_VREGINHIGH_DEFAULT (_DCDC_IEN_VREGINHIGH_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION (0x1UL << 5) /**< DCDC in Regulation Interrupt Enable */
+#define _DCDC_IEN_REGULATION_SHIFT 5 /**< Shift value for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_MASK 0x20UL /**< Bit mask for DCDC_REGULATION */
+#define _DCDC_IEN_REGULATION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_REGULATION_DEFAULT (_DCDC_IEN_REGULATION_DEFAULT << 5) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX (0x1UL << 6) /**< Ton_max Timeout Interrupt Enable */
+#define _DCDC_IEN_TMAX_SHIFT 6 /**< Shift value for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_MASK 0x40UL /**< Bit mask for DCDC_TMAX */
+#define _DCDC_IEN_TMAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_TMAX_DEFAULT (_DCDC_IEN_TMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR (0x1UL << 7) /**< EM4 Entry Req Interrupt Enable */
+#define _DCDC_IEN_EM4ERR_SHIFT 7 /**< Shift value for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_MASK 0x80UL /**< Bit mask for DCDC_EM4ERR */
+#define _DCDC_IEN_EM4ERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_EM4ERR_DEFAULT (_DCDC_IEN_EM4ERR_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_PPMODE (0x1UL << 8) /**< Pulse Pairing Mode Interrupt Enable */
+#define _DCDC_IEN_PPMODE_SHIFT 8 /**< Shift value for DCDC_PPMODE */
+#define _DCDC_IEN_PPMODE_MASK 0x100UL /**< Bit mask for DCDC_PPMODE */
+#define _DCDC_IEN_PPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_PPMODE_DEFAULT (_DCDC_IEN_PPMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_PFMXMODE (0x1UL << 9) /**< PFMX Mode Interrupt Enable */
+#define _DCDC_IEN_PFMXMODE_SHIFT 9 /**< Shift value for DCDC_PFMXMODE */
+#define _DCDC_IEN_PFMXMODE_MASK 0x200UL /**< Bit mask for DCDC_PFMXMODE */
+#define _DCDC_IEN_PFMXMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_IEN */
+#define DCDC_IEN_PFMXMODE_DEFAULT (_DCDC_IEN_PFMXMODE_DEFAULT << 9) /**< Shifted mode DEFAULT for DCDC_IEN */
+
+/* Bit fields for DCDC STATUS */
+#define _DCDC_STATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_STATUS */
+#define _DCDC_STATUS_MASK 0x0000071FUL /**< Mask for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW (0x1UL << 0) /**< Bypass Switch is currently enabled */
+#define _DCDC_STATUS_BYPSW_SHIFT 0 /**< Shift value for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_MASK 0x1UL /**< Bit mask for DCDC_BYPSW */
+#define _DCDC_STATUS_BYPSW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPSW_DEFAULT (_DCDC_STATUS_BYPSW_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM (0x1UL << 1) /**< DCDC Warmup Done */
+#define _DCDC_STATUS_WARM_SHIFT 1 /**< Shift value for DCDC_WARM */
+#define _DCDC_STATUS_WARM_MASK 0x2UL /**< Bit mask for DCDC_WARM */
+#define _DCDC_STATUS_WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_WARM_DEFAULT (_DCDC_STATUS_WARM_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING (0x1UL << 2) /**< DCDC is running */
+#define _DCDC_STATUS_RUNNING_SHIFT 2 /**< Shift value for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_MASK 0x4UL /**< Bit mask for DCDC_RUNNING */
+#define _DCDC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_RUNNING_DEFAULT (_DCDC_STATUS_RUNNING_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN (0x1UL << 3) /**< VREGVDD comparator status */
+#define _DCDC_STATUS_VREGIN_SHIFT 3 /**< Shift value for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_MASK 0x8UL /**< Bit mask for DCDC_VREGIN */
+#define _DCDC_STATUS_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_VREGIN_DEFAULT (_DCDC_STATUS_VREGIN_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT (0x1UL << 4) /**< Bypass Comparator Output */
+#define _DCDC_STATUS_BYPCMPOUT_SHIFT 4 /**< Shift value for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_MASK 0x10UL /**< Bit mask for DCDC_BYPCMPOUT */
+#define _DCDC_STATUS_BYPCMPOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_BYPCMPOUT_DEFAULT (_DCDC_STATUS_BYPCMPOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_PPMODE (0x1UL << 8) /**< DCDC in pulse-pairing mode */
+#define _DCDC_STATUS_PPMODE_SHIFT 8 /**< Shift value for DCDC_PPMODE */
+#define _DCDC_STATUS_PPMODE_MASK 0x100UL /**< Bit mask for DCDC_PPMODE */
+#define _DCDC_STATUS_PPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_PPMODE_DEFAULT (_DCDC_STATUS_PPMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_PFMXMODE (0x1UL << 9) /**< DCDC in PFMX mode */
+#define _DCDC_STATUS_PFMXMODE_SHIFT 9 /**< Shift value for DCDC_PFMXMODE */
+#define _DCDC_STATUS_PFMXMODE_MASK 0x200UL /**< Bit mask for DCDC_PFMXMODE */
+#define _DCDC_STATUS_PFMXMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_STATUS */
+#define DCDC_STATUS_PFMXMODE_DEFAULT (_DCDC_STATUS_PFMXMODE_DEFAULT << 9) /**< Shifted mode DEFAULT for DCDC_STATUS */
+
+/* Bit fields for DCDC SYNCBUSY */
+#define _DCDC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for DCDC_SYNCBUSY */
+#define _DCDC_SYNCBUSY_MASK 0x000000FFUL /**< Mask for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_CTRL (0x1UL << 0) /**< CTRL Sync Busy Status */
+#define _DCDC_SYNCBUSY_CTRL_SHIFT 0 /**< Shift value for DCDC_CTRL */
+#define _DCDC_SYNCBUSY_CTRL_MASK 0x1UL /**< Bit mask for DCDC_CTRL */
+#define _DCDC_SYNCBUSY_CTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_CTRL_DEFAULT (_DCDC_SYNCBUSY_CTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM01CTRL0 (0x1UL << 1) /**< EM01CTRL0 Sync Busy Status */
+#define _DCDC_SYNCBUSY_EM01CTRL0_SHIFT 1 /**< Shift value for DCDC_EM01CTRL0 */
+#define _DCDC_SYNCBUSY_EM01CTRL0_MASK 0x2UL /**< Bit mask for DCDC_EM01CTRL0 */
+#define _DCDC_SYNCBUSY_EM01CTRL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM01CTRL0_DEFAULT (_DCDC_SYNCBUSY_EM01CTRL0_DEFAULT << 1) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM01CTRL1 (0x1UL << 2) /**< EM01CTRL1 Sync Bust Status */
+#define _DCDC_SYNCBUSY_EM01CTRL1_SHIFT 2 /**< Shift value for DCDC_EM01CTRL1 */
+#define _DCDC_SYNCBUSY_EM01CTRL1_MASK 0x4UL /**< Bit mask for DCDC_EM01CTRL1 */
+#define _DCDC_SYNCBUSY_EM01CTRL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM01CTRL1_DEFAULT (_DCDC_SYNCBUSY_EM01CTRL1_DEFAULT << 2) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM23CTRL0 (0x1UL << 3) /**< EM23CTRL0 Sync Busy Status */
+#define _DCDC_SYNCBUSY_EM23CTRL0_SHIFT 3 /**< Shift value for DCDC_EM23CTRL0 */
+#define _DCDC_SYNCBUSY_EM23CTRL0_MASK 0x8UL /**< Bit mask for DCDC_EM23CTRL0 */
+#define _DCDC_SYNCBUSY_EM23CTRL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_EM23CTRL0_DEFAULT (_DCDC_SYNCBUSY_EM23CTRL0_DEFAULT << 3) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_PFMXCTRL (0x1UL << 7) /**< PFMXCTRL Sync Busy Status */
+#define _DCDC_SYNCBUSY_PFMXCTRL_SHIFT 7 /**< Shift value for DCDC_PFMXCTRL */
+#define _DCDC_SYNCBUSY_PFMXCTRL_MASK 0x80UL /**< Bit mask for DCDC_PFMXCTRL */
+#define _DCDC_SYNCBUSY_PFMXCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_SYNCBUSY */
+#define DCDC_SYNCBUSY_PFMXCTRL_DEFAULT (_DCDC_SYNCBUSY_PFMXCTRL_DEFAULT << 7) /**< Shifted mode DEFAULT for DCDC_SYNCBUSY */
+
+/* Bit fields for DCDC LOCK */
+#define _DCDC_LOCK_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCK */
+#define _DCDC_LOCK_MASK 0x0000FFFFUL /**< Mask for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DCDC_LOCKKEY */
+#define _DCDC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCK */
+#define _DCDC_LOCK_LOCKKEY_UNLOCKKEY 0x0000ABCDUL /**< Mode UNLOCKKEY for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_DEFAULT (_DCDC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCK */
+#define DCDC_LOCK_LOCKKEY_UNLOCKKEY (_DCDC_LOCK_LOCKKEY_UNLOCKKEY << 0) /**< Shifted mode UNLOCKKEY for DCDC_LOCK */
+
+/* Bit fields for DCDC LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_MASK 0x00000001UL /**< Mask for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK (0x1UL << 0) /**< Lock Status */
+#define _DCDC_LOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for DCDC_LOCK */
+#define _DCDC_LOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DCDC_LOCKSTATUS */
+#define _DCDC_LOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_DEFAULT (_DCDC_LOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_UNLOCKED (_DCDC_LOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for DCDC_LOCKSTATUS */
+#define DCDC_LOCKSTATUS_LOCK_LOCKED (_DCDC_LOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for DCDC_LOCKSTATUS */
+
+/** @} End of group EFR32ZG23_DCDC_BitFields */
+/** @} End of group EFR32ZG23_DCDC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_DCDC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_devinfo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_devinfo.h
new file mode 100644
index 000000000..7db9611d8
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_devinfo.h
@@ -0,0 +1,1008 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 DEVINFO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_DEVINFO_H
+#define EFR32ZG23_DEVINFO_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_DEVINFO DEVINFO
+ * @{
+ * @brief EFR32ZG23 DEVINFO Register Declaration.
+ *****************************************************************************/
+
+/** DEVINFO HFRCODPLLCAL Register Group Declaration. */
+typedef struct devinfo_hfrcodpllcal_typedef{
+ __IM uint32_t HFRCODPLLCAL; /**< HFRCODPLL Calibration */
+} DEVINFO_HFRCODPLLCAL_TypeDef;
+
+/** DEVINFO HFRCOEM23CAL Register Group Declaration. */
+typedef struct devinfo_hfrcoem23cal_typedef{
+ __IM uint32_t HFRCOEM23CAL; /**< HFRCOEM23 Calibration */
+} DEVINFO_HFRCOEM23CAL_TypeDef;
+
+/** DEVINFO HFRCOSECAL Register Group Declaration. */
+typedef struct devinfo_hfrcosecal_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} DEVINFO_HFRCOSECAL_TypeDef;
+
+/** DEVINFO Register Declaration. */
+typedef struct devinfo_typedef{
+ __IM uint32_t INFO; /**< DI Information */
+ __IM uint32_t PART; /**< Part Info */
+ __IM uint32_t MEMINFO; /**< Memory Info */
+ __IM uint32_t MSIZE; /**< Memory Size */
+ __IM uint32_t PKGINFO; /**< Misc Device Info */
+ __IM uint32_t CUSTOMINFO; /**< Custom Part Info */
+ __IM uint32_t SWFIX; /**< SW Fix Register */
+ __IM uint32_t SWCAPA0; /**< Software Restriction */
+ __IM uint32_t SWCAPA1; /**< Software Restriction */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t EXTINFO; /**< External Component Info */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t EUI48L; /**< EUI 48 Low */
+ __IM uint32_t EUI48H; /**< EUI 48 High */
+ __IM uint32_t EUI64L; /**< EUI64 Low */
+ __IM uint32_t EUI64H; /**< EUI64 High */
+ __IM uint32_t CALTEMP; /**< Calibration temperature */
+ __IM uint32_t EMUTEMP; /**< EMU Temp */
+ DEVINFO_HFRCODPLLCAL_TypeDef HFRCODPLLCAL[18U]; /**< */
+ DEVINFO_HFRCOEM23CAL_TypeDef HFRCOEM23CAL[18U]; /**< */
+ DEVINFO_HFRCOSECAL_TypeDef HFRCOSECAL[18U]; /**< */
+ __IM uint32_t MODULENAME0; /**< Module Name Information */
+ __IM uint32_t MODULENAME1; /**< Module Name Information */
+ __IM uint32_t MODULENAME2; /**< Module Name Information */
+ __IM uint32_t MODULENAME3; /**< Module Name Information */
+ __IM uint32_t MODULENAME4; /**< Module Name Information */
+ __IM uint32_t MODULENAME5; /**< Module Name Information */
+ __IM uint32_t MODULENAME6; /**< Module Name Information */
+ __IM uint32_t MODULEINFO; /**< Module Information */
+ __IM uint32_t MODXOCAL; /**< Module External Oscillator Calibration Information */
+ uint32_t RESERVED3[10U]; /**< Reserved for future use */
+ __IM uint32_t HFXOCAL; /**< High Frequency Crystal Oscillator Calibration data */
+ __IM uint32_t IADC0GAIN0; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0GAIN1; /**< IADC Gain Calibration */
+ __IM uint32_t IADC0OFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0NORMALOFFSETCAL1; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL0; /**< IADC Offset Calibration */
+ __IM uint32_t IADC0HISPDOFFSETCAL1; /**< IADC Offset Calibration */
+ uint32_t RESERVED4[24U]; /**< Reserved for future use */
+ __IM uint32_t LEGACY; /**< Legacy Device Info */
+ uint32_t RESERVED5[23U]; /**< Reserved for future use */
+ __IM uint32_t RTHERM; /**< */
+ uint32_t RESERVED6[80U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+} DEVINFO_TypeDef;
+/** @} End of group EFR32ZG23_DEVINFO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_DEVINFO
+ * @{
+ * @defgroup EFR32ZG23_DEVINFO_BitFields DEVINFO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DEVINFO INFO */
+#define _DEVINFO_INFO_RESETVALUE 0x0C000000UL /**< Default value for DEVINFO_INFO */
+#define _DEVINFO_INFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_INFO */
+#define _DEVINFO_INFO_CRC_SHIFT 0 /**< Shift value for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_MASK 0xFFFFUL /**< Bit mask for DEVINFO_CRC */
+#define _DEVINFO_INFO_CRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_CRC_DEFAULT (_DEVINFO_INFO_CRC_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_PRODREV_SHIFT 16 /**< Shift value for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PRODREV */
+#define _DEVINFO_INFO_PRODREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_PRODREV_DEFAULT (_DEVINFO_INFO_PRODREV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+#define _DEVINFO_INFO_DEVINFOREV_SHIFT 24 /**< Shift value for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_MASK 0xFF000000UL /**< Bit mask for DEVINFO_DEVINFOREV */
+#define _DEVINFO_INFO_DEVINFOREV_DEFAULT 0x0000000CUL /**< Mode DEFAULT for DEVINFO_INFO */
+#define DEVINFO_INFO_DEVINFOREV_DEFAULT (_DEVINFO_INFO_DEVINFOREV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_INFO */
+
+/* Bit fields for DEVINFO PART */
+#define _DEVINFO_PART_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PART */
+#define _DEVINFO_PART_MASK 0x3F3FFFFFUL /**< Mask for DEVINFO_PART */
+#define _DEVINFO_PART_DEVICENUM_SHIFT 0 /**< Shift value for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_DEVICENUM */
+#define _DEVINFO_PART_DEVICENUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_DEVICENUM_DEFAULT (_DEVINFO_PART_DEVICENUM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILYNUM_SHIFT 16 /**< Shift value for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_MASK 0x3F0000UL /**< Bit mask for DEVINFO_FAMILYNUM */
+#define _DEVINFO_PART_FAMILYNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILYNUM_DEFAULT (_DEVINFO_PART_FAMILYNUM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_SHIFT 24 /**< Shift value for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_MASK 0x3F000000UL /**< Bit mask for DEVINFO_FAMILY */
+#define _DEVINFO_PART_FAMILY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_FG 0x00000000UL /**< Mode FG for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_ZG 0x00000003UL /**< Mode ZG for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_PG 0x00000005UL /**< Mode PG for DEVINFO_PART */
+#define _DEVINFO_PART_FAMILY_SG 0x00000008UL /**< Mode SG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_DEFAULT (_DEVINFO_PART_FAMILY_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_FG (_DEVINFO_PART_FAMILY_FG << 24) /**< Shifted mode FG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_ZG (_DEVINFO_PART_FAMILY_ZG << 24) /**< Shifted mode ZG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_PG (_DEVINFO_PART_FAMILY_PG << 24) /**< Shifted mode PG for DEVINFO_PART */
+#define DEVINFO_PART_FAMILY_SG (_DEVINFO_PART_FAMILY_SG << 24) /**< Shifted mode SG for DEVINFO_PART */
+
+/* Bit fields for DEVINFO MEMINFO */
+#define _DEVINFO_MEMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_SHIFT 0 /**< Shift value for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_MASK 0xFFUL /**< Bit mask for DEVINFO_FLASHPAGESIZE */
+#define _DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_FLASHPAGESIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_SHIFT 8 /**< Shift value for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_MASK 0xFF00UL /**< Bit mask for DEVINFO_UDPAGESIZE */
+#define _DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT (_DEVINFO_MEMINFO_UDPAGESIZE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+#define _DEVINFO_MEMINFO_DILEN_SHIFT 16 /**< Shift value for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_DILEN */
+#define _DEVINFO_MEMINFO_DILEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MEMINFO */
+#define DEVINFO_MEMINFO_DILEN_DEFAULT (_DEVINFO_MEMINFO_DILEN_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MEMINFO */
+
+/* Bit fields for DEVINFO MSIZE */
+#define _DEVINFO_MSIZE_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_MASK 0x07FFFFFFUL /**< Mask for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_FLASH_SHIFT 0 /**< Shift value for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_MASK 0xFFFFUL /**< Bit mask for DEVINFO_FLASH */
+#define _DEVINFO_MSIZE_FLASH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_FLASH_DEFAULT (_DEVINFO_MSIZE_FLASH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+#define _DEVINFO_MSIZE_SRAM_SHIFT 16 /**< Shift value for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_MASK 0x7FF0000UL /**< Bit mask for DEVINFO_SRAM */
+#define _DEVINFO_MSIZE_SRAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_MSIZE */
+#define DEVINFO_MSIZE_SRAM_DEFAULT (_DEVINFO_MSIZE_SRAM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MSIZE */
+
+/* Bit fields for DEVINFO PKGINFO */
+#define _DEVINFO_PKGINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_SHIFT 0 /**< Shift value for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMPGRADE */
+#define _DEVINFO_PKGINFO_TEMPGRADE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO85 0x00000000UL /**< Mode N40TO85 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO125 0x00000001UL /**< Mode N40TO125 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N40TO105 0x00000002UL /**< Mode N40TO105 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_TEMPGRADE_N0TO70 0x00000003UL /**< Mode N0TO70 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_DEFAULT (_DEVINFO_PKGINFO_TEMPGRADE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO85 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO85 << 0) /**< Shifted mode N40TO85 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO125 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO125 << 0) /**< Shifted mode N40TO125 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N40TO105 (_DEVINFO_PKGINFO_TEMPGRADE_N40TO105 << 0) /**< Shifted mode N40TO105 for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_TEMPGRADE_N0TO70 (_DEVINFO_PKGINFO_TEMPGRADE_N0TO70 << 0) /**< Shifted mode N0TO70 for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_SHIFT 8 /**< Shift value for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_MASK 0xFF00UL /**< Bit mask for DEVINFO_PKGTYPE */
+#define _DEVINFO_PKGINFO_PKGTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_WLCSP 0x0000004AUL /**< Mode WLCSP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_BGA 0x0000004CUL /**< Mode BGA for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFN 0x0000004DUL /**< Mode QFN for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PKGTYPE_QFP 0x00000051UL /**< Mode QFP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_DEFAULT (_DEVINFO_PKGINFO_PKGTYPE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_WLCSP (_DEVINFO_PKGINFO_PKGTYPE_WLCSP << 8) /**< Shifted mode WLCSP for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_BGA (_DEVINFO_PKGINFO_PKGTYPE_BGA << 8) /**< Shifted mode BGA for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFN (_DEVINFO_PKGINFO_PKGTYPE_QFN << 8) /**< Shifted mode QFN for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PKGTYPE_QFP (_DEVINFO_PKGINFO_PKGTYPE_QFP << 8) /**< Shifted mode QFP for DEVINFO_PKGINFO */
+#define _DEVINFO_PKGINFO_PINCOUNT_SHIFT 16 /**< Shift value for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_MASK 0xFF0000UL /**< Bit mask for DEVINFO_PINCOUNT */
+#define _DEVINFO_PKGINFO_PINCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_PKGINFO */
+#define DEVINFO_PKGINFO_PINCOUNT_DEFAULT (_DEVINFO_PKGINFO_PINCOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_PKGINFO */
+
+/* Bit fields for DEVINFO CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_MASK 0xFFFF0000UL /**< Mask for DEVINFO_CUSTOMINFO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_SHIFT 16 /**< Shift value for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_PARTNO */
+#define _DEVINFO_CUSTOMINFO_PARTNO_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CUSTOMINFO */
+#define DEVINFO_CUSTOMINFO_PARTNO_DEFAULT (_DEVINFO_CUSTOMINFO_PARTNO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_CUSTOMINFO */
+
+/* Bit fields for DEVINFO SWFIX */
+#define _DEVINFO_SWFIX_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_SWFIX */
+#define _DEVINFO_SWFIX_RSV_SHIFT 0 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_SWFIX_RSV_DEFAULT 0xFFFFFFFFUL /**< Mode DEFAULT for DEVINFO_SWFIX */
+#define DEVINFO_SWFIX_RSV_DEFAULT (_DEVINFO_SWFIX_RSV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWFIX */
+
+/* Bit fields for DEVINFO SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_MASK 0x07333333UL /**< Mask for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_SHIFT 0 /**< Shift value for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_MASK 0x3UL /**< Bit mask for DEVINFO_ZIGBEE */
+#define _DEVINFO_SWCAPA0_ZIGBEE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_DEFAULT (_DEVINFO_SWCAPA0_ZIGBEE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL0 << 0) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL1 << 0) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL2 << 0) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 (_DEVINFO_SWCAPA0_ZIGBEE_LEVEL3 << 0) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_SHIFT 4 /**< Shift value for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_MASK 0x30UL /**< Bit mask for DEVINFO_THREAD */
+#define _DEVINFO_SWCAPA0_THREAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_THREAD_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_DEFAULT (_DEVINFO_SWCAPA0_THREAD_DEFAULT << 4) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL0 (_DEVINFO_SWCAPA0_THREAD_LEVEL0 << 4) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL1 (_DEVINFO_SWCAPA0_THREAD_LEVEL1 << 4) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL2 (_DEVINFO_SWCAPA0_THREAD_LEVEL2 << 4) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_THREAD_LEVEL3 (_DEVINFO_SWCAPA0_THREAD_LEVEL3 << 4) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_SHIFT 8 /**< Shift value for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_MASK 0x300UL /**< Bit mask for DEVINFO_RF4CE */
+#define _DEVINFO_SWCAPA0_RF4CE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_RF4CE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_DEFAULT (_DEVINFO_SWCAPA0_RF4CE_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL0 (_DEVINFO_SWCAPA0_RF4CE_LEVEL0 << 8) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL1 (_DEVINFO_SWCAPA0_RF4CE_LEVEL1 << 8) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL2 (_DEVINFO_SWCAPA0_RF4CE_LEVEL2 << 8) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_RF4CE_LEVEL3 (_DEVINFO_SWCAPA0_RF4CE_LEVEL3 << 8) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_SHIFT 12 /**< Shift value for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_MASK 0x3000UL /**< Bit mask for DEVINFO_BTSMART */
+#define _DEVINFO_SWCAPA0_BTSMART_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_BTSMART_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_DEFAULT (_DEVINFO_SWCAPA0_BTSMART_DEFAULT << 12) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL0 (_DEVINFO_SWCAPA0_BTSMART_LEVEL0 << 12) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL1 (_DEVINFO_SWCAPA0_BTSMART_LEVEL1 << 12) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL2 (_DEVINFO_SWCAPA0_BTSMART_LEVEL2 << 12) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_BTSMART_LEVEL3 (_DEVINFO_SWCAPA0_BTSMART_LEVEL3 << 12) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_SHIFT 16 /**< Shift value for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_MASK 0x30000UL /**< Bit mask for DEVINFO_CONNECT */
+#define _DEVINFO_SWCAPA0_CONNECT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_CONNECT_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_DEFAULT (_DEVINFO_SWCAPA0_CONNECT_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL0 (_DEVINFO_SWCAPA0_CONNECT_LEVEL0 << 16) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL1 (_DEVINFO_SWCAPA0_CONNECT_LEVEL1 << 16) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL2 (_DEVINFO_SWCAPA0_CONNECT_LEVEL2 << 16) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_CONNECT_LEVEL3 (_DEVINFO_SWCAPA0_CONNECT_LEVEL3 << 16) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_SHIFT 20 /**< Shift value for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_MASK 0x300000UL /**< Bit mask for DEVINFO_SRI */
+#define _DEVINFO_SWCAPA0_SRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_SRI_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_DEFAULT (_DEVINFO_SWCAPA0_SRI_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL0 (_DEVINFO_SWCAPA0_SRI_LEVEL0 << 20) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL1 (_DEVINFO_SWCAPA0_SRI_LEVEL1 << 20) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL2 (_DEVINFO_SWCAPA0_SRI_LEVEL2 << 20) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_SRI_LEVEL3 (_DEVINFO_SWCAPA0_SRI_LEVEL3 << 20) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_SHIFT 24 /**< Shift value for DEVINFO_ZWAVE */
+#define _DEVINFO_SWCAPA0_ZWAVE_MASK 0x7000000UL /**< Bit mask for DEVINFO_ZWAVE */
+#define _DEVINFO_SWCAPA0_ZWAVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_LEVEL0 0x00000000UL /**< Mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_LEVEL1 0x00000001UL /**< Mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_LEVEL2 0x00000002UL /**< Mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_LEVEL3 0x00000003UL /**< Mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define _DEVINFO_SWCAPA0_ZWAVE_LEVEL4 0x00000004UL /**< Mode LEVEL4 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_DEFAULT (_DEVINFO_SWCAPA0_ZWAVE_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_LEVEL0 (_DEVINFO_SWCAPA0_ZWAVE_LEVEL0 << 24) /**< Shifted mode LEVEL0 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_LEVEL1 (_DEVINFO_SWCAPA0_ZWAVE_LEVEL1 << 24) /**< Shifted mode LEVEL1 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_LEVEL2 (_DEVINFO_SWCAPA0_ZWAVE_LEVEL2 << 24) /**< Shifted mode LEVEL2 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_LEVEL3 (_DEVINFO_SWCAPA0_ZWAVE_LEVEL3 << 24) /**< Shifted mode LEVEL3 for DEVINFO_SWCAPA0 */
+#define DEVINFO_SWCAPA0_ZWAVE_LEVEL4 (_DEVINFO_SWCAPA0_ZWAVE_LEVEL4 << 24) /**< Shifted mode LEVEL4 for DEVINFO_SWCAPA0 */
+
+/* Bit fields for DEVINFO SWCAPA1 */
+#define _DEVINFO_SWCAPA1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_SWCAPA1 */
+#define _DEVINFO_SWCAPA1_MASK 0x0000001FUL /**< Mask for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN (0x1UL << 0) /**< RF-MCU */
+#define _DEVINFO_SWCAPA1_RFMCUEN_SHIFT 0 /**< Shift value for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_MASK 0x1UL /**< Bit mask for DEVINFO_RFMCUEN */
+#define _DEVINFO_SWCAPA1_RFMCUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_RFMCUEN_DEFAULT (_DEVINFO_SWCAPA1_RFMCUEN_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN (0x1UL << 1) /**< NCP */
+#define _DEVINFO_SWCAPA1_NCPEN_SHIFT 1 /**< Shift value for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_MASK 0x2UL /**< Bit mask for DEVINFO_NCPEN */
+#define _DEVINFO_SWCAPA1_NCPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_NCPEN_DEFAULT (_DEVINFO_SWCAPA1_NCPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN (0x1UL << 2) /**< Gateway */
+#define _DEVINFO_SWCAPA1_GWEN_SHIFT 2 /**< Shift value for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_MASK 0x4UL /**< Bit mask for DEVINFO_GWEN */
+#define _DEVINFO_SWCAPA1_GWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_GWEN_DEFAULT (_DEVINFO_SWCAPA1_GWEN_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_XOUT (0x1UL << 3) /**< XOUT */
+#define _DEVINFO_SWCAPA1_XOUT_SHIFT 3 /**< Shift value for DEVINFO_XOUT */
+#define _DEVINFO_SWCAPA1_XOUT_MASK 0x8UL /**< Bit mask for DEVINFO_XOUT */
+#define _DEVINFO_SWCAPA1_XOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_SWCAPA1 */
+#define DEVINFO_SWCAPA1_XOUT_DEFAULT (_DEVINFO_SWCAPA1_XOUT_DEFAULT << 3) /**< Shifted mode DEFAULT for DEVINFO_SWCAPA1 */
+
+/* Bit fields for DEVINFO EXTINFO */
+#define _DEVINFO_EXTINFO_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_MASK 0x00FFFFFFUL /**< Mask for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_SHIFT 0 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_MASK 0xFFUL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_EXTINFO_TYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_TYPE_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_DEFAULT (_DEVINFO_EXTINFO_TYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_TYPE_NONE (_DEVINFO_EXTINFO_TYPE_NONE << 0) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SHIFT 8 /**< Shift value for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_MASK 0xFF00UL /**< Bit mask for DEVINFO_CONNECTION */
+#define _DEVINFO_EXTINFO_CONNECTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_SPI 0x00000000UL /**< Mode SPI for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_CONNECTION_NONE 0x000000FFUL /**< Mode NONE for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_DEFAULT (_DEVINFO_EXTINFO_CONNECTION_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_SPI (_DEVINFO_EXTINFO_CONNECTION_SPI << 8) /**< Shifted mode SPI for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_CONNECTION_NONE (_DEVINFO_EXTINFO_CONNECTION_NONE << 8) /**< Shifted mode NONE for DEVINFO_EXTINFO */
+#define _DEVINFO_EXTINFO_REV_SHIFT 16 /**< Shift value for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_MASK 0xFF0000UL /**< Bit mask for DEVINFO_REV */
+#define _DEVINFO_EXTINFO_REV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EXTINFO */
+#define DEVINFO_EXTINFO_REV_DEFAULT (_DEVINFO_EXTINFO_REV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EXTINFO */
+
+/* Bit fields for DEVINFO EUI48L */
+#define _DEVINFO_EUI48L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_UNIQUEID_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_MASK 0xFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEID */
+#define _DEVINFO_EUI48L_UNIQUEID_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_UNIQUEID_DEFAULT (_DEVINFO_EUI48L_UNIQUEID_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+#define _DEVINFO_EUI48L_OUI48L_SHIFT 24 /**< Shift value for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_MASK 0xFF000000UL /**< Bit mask for DEVINFO_OUI48L */
+#define _DEVINFO_EUI48L_OUI48L_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48L */
+#define DEVINFO_EUI48L_OUI48L_DEFAULT (_DEVINFO_EUI48L_OUI48L_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_EUI48L */
+
+/* Bit fields for DEVINFO EUI48H */
+#define _DEVINFO_EUI48H_RESETVALUE 0xFFFF0000UL /**< Default value for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_OUI48H_SHIFT 0 /**< Shift value for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OUI48H */
+#define _DEVINFO_EUI48H_OUI48H_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_OUI48H_DEFAULT (_DEVINFO_EUI48H_OUI48H_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+#define _DEVINFO_EUI48H_RESERVED_SHIFT 16 /**< Shift value for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RESERVED */
+#define _DEVINFO_EUI48H_RESERVED_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_EUI48H */
+#define DEVINFO_EUI48H_RESERVED_DEFAULT (_DEVINFO_EUI48H_RESERVED_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_EUI48H */
+
+/* Bit fields for DEVINFO EUI64L */
+#define _DEVINFO_EUI64L_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64L */
+#define _DEVINFO_EUI64L_UNIQUEL_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_MASK 0xFFFFFFFFUL /**< Bit mask for DEVINFO_UNIQUEL */
+#define _DEVINFO_EUI64L_UNIQUEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64L */
+#define DEVINFO_EUI64L_UNIQUEL_DEFAULT (_DEVINFO_EUI64L_UNIQUEL_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64L */
+
+/* Bit fields for DEVINFO EUI64H */
+#define _DEVINFO_EUI64H_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_UNIQUEH_SHIFT 0 /**< Shift value for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_MASK 0xFFUL /**< Bit mask for DEVINFO_UNIQUEH */
+#define _DEVINFO_EUI64H_UNIQUEH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_UNIQUEH_DEFAULT (_DEVINFO_EUI64H_UNIQUEH_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+#define _DEVINFO_EUI64H_OUI64_SHIFT 8 /**< Shift value for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_MASK 0xFFFFFF00UL /**< Bit mask for DEVINFO_OUI64 */
+#define _DEVINFO_EUI64H_OUI64_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EUI64H */
+#define DEVINFO_EUI64H_OUI64_DEFAULT (_DEVINFO_EUI64H_OUI64_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_EUI64H */
+
+/* Bit fields for DEVINFO CALTEMP */
+#define _DEVINFO_CALTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_MASK 0x000000FFUL /**< Mask for DEVINFO_CALTEMP */
+#define _DEVINFO_CALTEMP_TEMP_SHIFT 0 /**< Shift value for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_MASK 0xFFUL /**< Bit mask for DEVINFO_TEMP */
+#define _DEVINFO_CALTEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_CALTEMP */
+#define DEVINFO_CALTEMP_TEMP_DEFAULT (_DEVINFO_CALTEMP_TEMP_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_CALTEMP */
+
+/* Bit fields for DEVINFO EMUTEMP */
+#define _DEVINFO_EMUTEMP_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_MASK 0x1FFF07FCUL /**< Mask for DEVINFO_EMUTEMP */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_SHIFT 2 /**< Shift value for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_MASK 0x7FCUL /**< Bit mask for DEVINFO_EMUTEMPROOM */
+#define _DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_EMUTEMP */
+#define DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT (_DEVINFO_EMUTEMP_EMUTEMPROOM_DEFAULT << 2) /**< Shifted mode DEFAULT for DEVINFO_EMUTEMP */
+
+/* Bit fields for DEVINFO HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_MASK 0xFFFFBF7FUL /**< Mask for DEVINFO_HFRCODPLLCAL */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_SHIFT 0 /**< Shift value for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_MASK 0x7FUL /**< Bit mask for DEVINFO_TUNING */
+#define _DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_SHIFT 8 /**< Shift value for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT (_DEVINFO_HFRCODPLLCAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define DEVINFO_HFRCODPLLCAL_LDOHP (0x1UL << 15) /**< */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_SHIFT 15 /**< Shift value for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_MASK 0x8000UL /**< Bit mask for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT (_DEVINFO_HFRCODPLLCAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_SHIFT 16 /**< Shift value for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT (_DEVINFO_HFRCODPLLCAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_SHIFT 21 /**< Shift value for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_SHIFT 24 /**< Shift value for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT (_DEVINFO_HFRCODPLLCAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_SHIFT 26 /**< Shift value for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT (_DEVINFO_HFRCODPLLCAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_SHIFT 28 /**< Shift value for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCODPLLCAL */
+#define DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT (_DEVINFO_HFRCODPLLCAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for DEVINFO_HFRCODPLLCAL*/
+
+/* Bit fields for DEVINFO HFRCOEM23CAL */
+#define _DEVINFO_HFRCOEM23CAL_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_HFRCOEM23CAL */
+#define _DEVINFO_HFRCOEM23CAL_MASK 0xFFFFBF7FUL /**< Mask for DEVINFO_HFRCOEM23CAL */
+#define _DEVINFO_HFRCOEM23CAL_TUNING_SHIFT 0 /**< Shift value for DEVINFO_TUNING */
+#define _DEVINFO_HFRCOEM23CAL_TUNING_MASK 0x7FUL /**< Bit mask for DEVINFO_TUNING */
+#define _DEVINFO_HFRCOEM23CAL_TUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_TUNING_DEFAULT (_DEVINFO_HFRCOEM23CAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_FINETUNING_SHIFT 8 /**< Shift value for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCOEM23CAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for DEVINFO_FINETUNING */
+#define _DEVINFO_HFRCOEM23CAL_FINETUNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_FINETUNING_DEFAULT (_DEVINFO_HFRCOEM23CAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define DEVINFO_HFRCOEM23CAL_LDOHP (0x1UL << 15) /**< */
+#define _DEVINFO_HFRCOEM23CAL_LDOHP_SHIFT 15 /**< Shift value for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCOEM23CAL_LDOHP_MASK 0x8000UL /**< Bit mask for DEVINFO_LDOHP */
+#define _DEVINFO_HFRCOEM23CAL_LDOHP_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_LDOHP_DEFAULT (_DEVINFO_HFRCOEM23CAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_FREQRANGE_SHIFT 16 /**< Shift value for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCOEM23CAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for DEVINFO_FREQRANGE */
+#define _DEVINFO_HFRCOEM23CAL_FREQRANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_FREQRANGE_DEFAULT (_DEVINFO_HFRCOEM23CAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_CMPBIAS_SHIFT 21 /**< Shift value for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCOEM23CAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for DEVINFO_CMPBIAS */
+#define _DEVINFO_HFRCOEM23CAL_CMPBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_CMPBIAS_DEFAULT (_DEVINFO_HFRCOEM23CAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_CLKDIV_SHIFT 24 /**< Shift value for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCOEM23CAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for DEVINFO_CLKDIV */
+#define _DEVINFO_HFRCOEM23CAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_CLKDIV_DEFAULT (_DEVINFO_HFRCOEM23CAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_CMPSEL_SHIFT 26 /**< Shift value for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCOEM23CAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for DEVINFO_CMPSEL */
+#define _DEVINFO_HFRCOEM23CAL_CMPSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_CMPSEL_DEFAULT (_DEVINFO_HFRCOEM23CAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+#define _DEVINFO_HFRCOEM23CAL_IREFTC_SHIFT 28 /**< Shift value for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCOEM23CAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for DEVINFO_IREFTC */
+#define _DEVINFO_HFRCOEM23CAL_IREFTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFRCOEM23CAL */
+#define DEVINFO_HFRCOEM23CAL_IREFTC_DEFAULT (_DEVINFO_HFRCOEM23CAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for DEVINFO_HFRCOEM23CAL*/
+
+/* Bit fields for DEVINFO MODULENAME0 */
+#define _DEVINFO_MODULENAME0_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME0 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR1 */
+#define _DEVINFO_MODULENAME0_MODCHAR1_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR1_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR2_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR2 */
+#define _DEVINFO_MODULENAME0_MODCHAR2_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR2_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR2_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR3_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR3 */
+#define _DEVINFO_MODULENAME0_MODCHAR3_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR3_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR3_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+#define _DEVINFO_MODULENAME0_MODCHAR4_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR4 */
+#define _DEVINFO_MODULENAME0_MODCHAR4_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME0 */
+#define DEVINFO_MODULENAME0_MODCHAR4_DEFAULT (_DEVINFO_MODULENAME0_MODCHAR4_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME0*/
+
+/* Bit fields for DEVINFO MODULENAME1 */
+#define _DEVINFO_MODULENAME1_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME1 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR5 */
+#define _DEVINFO_MODULENAME1_MODCHAR5_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR5_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR5_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR6_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR6 */
+#define _DEVINFO_MODULENAME1_MODCHAR6_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR6_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR6_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR7_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR7 */
+#define _DEVINFO_MODULENAME1_MODCHAR7_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR7_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR7_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+#define _DEVINFO_MODULENAME1_MODCHAR8_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR8 */
+#define _DEVINFO_MODULENAME1_MODCHAR8_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME1 */
+#define DEVINFO_MODULENAME1_MODCHAR8_DEFAULT (_DEVINFO_MODULENAME1_MODCHAR8_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME1*/
+
+/* Bit fields for DEVINFO MODULENAME2 */
+#define _DEVINFO_MODULENAME2_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME2 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR9 */
+#define _DEVINFO_MODULENAME2_MODCHAR9_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR9_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR9_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR10_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR10 */
+#define _DEVINFO_MODULENAME2_MODCHAR10_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR10_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR10_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR11_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR11 */
+#define _DEVINFO_MODULENAME2_MODCHAR11_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR11_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR11_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+#define _DEVINFO_MODULENAME2_MODCHAR12_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR12 */
+#define _DEVINFO_MODULENAME2_MODCHAR12_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME2 */
+#define DEVINFO_MODULENAME2_MODCHAR12_DEFAULT (_DEVINFO_MODULENAME2_MODCHAR12_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME2*/
+
+/* Bit fields for DEVINFO MODULENAME3 */
+#define _DEVINFO_MODULENAME3_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME3 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR13 */
+#define _DEVINFO_MODULENAME3_MODCHAR13_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR13_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR13_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR14_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR14 */
+#define _DEVINFO_MODULENAME3_MODCHAR14_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR14_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR14_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR15_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR15 */
+#define _DEVINFO_MODULENAME3_MODCHAR15_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR15_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR15_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+#define _DEVINFO_MODULENAME3_MODCHAR16_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR16 */
+#define _DEVINFO_MODULENAME3_MODCHAR16_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME3 */
+#define DEVINFO_MODULENAME3_MODCHAR16_DEFAULT (_DEVINFO_MODULENAME3_MODCHAR16_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME3*/
+
+/* Bit fields for DEVINFO MODULENAME4 */
+#define _DEVINFO_MODULENAME4_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME4 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR17 */
+#define _DEVINFO_MODULENAME4_MODCHAR17_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR17_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR17_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR18_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR18 */
+#define _DEVINFO_MODULENAME4_MODCHAR18_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR18_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR18_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR19_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR19 */
+#define _DEVINFO_MODULENAME4_MODCHAR19_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR19_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR19_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+#define _DEVINFO_MODULENAME4_MODCHAR20_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR20 */
+#define _DEVINFO_MODULENAME4_MODCHAR20_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME4 */
+#define DEVINFO_MODULENAME4_MODCHAR20_DEFAULT (_DEVINFO_MODULENAME4_MODCHAR20_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME4*/
+
+/* Bit fields for DEVINFO MODULENAME5 */
+#define _DEVINFO_MODULENAME5_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME5 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR21 */
+#define _DEVINFO_MODULENAME5_MODCHAR21_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR21_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR21_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR22_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR22 */
+#define _DEVINFO_MODULENAME5_MODCHAR22_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR22_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR22_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR23_SHIFT 16 /**< Shift value for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_MASK 0xFF0000UL /**< Bit mask for DEVINFO_MODCHAR23 */
+#define _DEVINFO_MODULENAME5_MODCHAR23_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR23_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR23_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+#define _DEVINFO_MODULENAME5_MODCHAR24_SHIFT 24 /**< Shift value for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_MASK 0xFF000000UL /**< Bit mask for DEVINFO_MODCHAR24 */
+#define _DEVINFO_MODULENAME5_MODCHAR24_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME5 */
+#define DEVINFO_MODULENAME5_MODCHAR24_DEFAULT (_DEVINFO_MODULENAME5_MODCHAR24_DEFAULT << 24) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME5*/
+
+/* Bit fields for DEVINFO MODULENAME6 */
+#define _DEVINFO_MODULENAME6_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULENAME6 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_SHIFT 0 /**< Shift value for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_MASK 0xFFUL /**< Bit mask for DEVINFO_MODCHAR25 */
+#define _DEVINFO_MODULENAME6_MODCHAR25_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR25_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR25_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_MODCHAR26_SHIFT 8 /**< Shift value for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_MASK 0xFF00UL /**< Bit mask for DEVINFO_MODCHAR26 */
+#define _DEVINFO_MODULENAME6_MODCHAR26_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_MODCHAR26_DEFAULT (_DEVINFO_MODULENAME6_MODCHAR26_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+#define _DEVINFO_MODULENAME6_RSV_SHIFT 16 /**< Shift value for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_RSV */
+#define _DEVINFO_MODULENAME6_RSV_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for DEVINFO_MODULENAME6 */
+#define DEVINFO_MODULENAME6_RSV_DEFAULT (_DEVINFO_MODULENAME6_RSV_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULENAME6*/
+
+/* Bit fields for DEVINFO MODULEINFO */
+#define _DEVINFO_MODULEINFO_RESETVALUE 0xFFFFFFFFUL /**< Default value for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HWREV_SHIFT 0 /**< Shift value for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_MASK 0x1FUL /**< Bit mask for DEVINFO_HWREV */
+#define _DEVINFO_MODULEINFO_HWREV_DEFAULT 0x0000001FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HWREV_DEFAULT (_DEVINFO_MODULEINFO_HWREV_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_SHIFT 5 /**< Shift value for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_MASK 0xE0UL /**< Bit mask for DEVINFO_ANTENNA */
+#define _DEVINFO_MODULEINFO_ANTENNA_DEFAULT 0x00000007UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_BUILTIN 0x00000000UL /**< Mode BUILTIN for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_CONNECTOR 0x00000001UL /**< Mode CONNECTOR for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_RFPAD 0x00000002UL /**< Mode RFPAD for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_ANTENNA_INVERTEDF 0x00000003UL /**< Mode INVERTEDF for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_DEFAULT (_DEVINFO_MODULEINFO_ANTENNA_DEFAULT << 5) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_BUILTIN (_DEVINFO_MODULEINFO_ANTENNA_BUILTIN << 5) /**< Shifted mode BUILTIN for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_CONNECTOR (_DEVINFO_MODULEINFO_ANTENNA_CONNECTOR << 5) /**< Shifted mode CONNECTOR for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_ANTENNA_RFPAD (_DEVINFO_MODULEINFO_ANTENNA_RFPAD << 5) /**< Shifted mode RFPAD for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_ANTENNA_INVERTEDF (_DEVINFO_MODULEINFO_ANTENNA_INVERTEDF << 5) /**< Shifted mode INVERTEDF for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBER_SHIFT 8 /**< Shift value for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_MASK 0x7F00UL /**< Bit mask for DEVINFO_MODNUMBER */
+#define _DEVINFO_MODULEINFO_MODNUMBER_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBER_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBER_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE (0x1UL << 15) /**< */
+#define _DEVINFO_MODULEINFO_TYPE_SHIFT 15 /**< Shift value for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_MASK 0x8000UL /**< Bit mask for DEVINFO_TYPE */
+#define _DEVINFO_MODULEINFO_TYPE_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_PCB 0x00000000UL /**< Mode PCB for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_TYPE_SIP 0x00000001UL /**< Mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_DEFAULT (_DEVINFO_MODULEINFO_TYPE_DEFAULT << 15) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_PCB (_DEVINFO_MODULEINFO_TYPE_PCB << 15) /**< Shifted mode PCB for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_TYPE_SIP (_DEVINFO_MODULEINFO_TYPE_SIP << 15) /**< Shifted mode SIP for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO (0x1UL << 16) /**< */
+#define _DEVINFO_MODULEINFO_LFXO_SHIFT 16 /**< Shift value for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_MASK 0x10000UL /**< Bit mask for DEVINFO_LFXO */
+#define _DEVINFO_MODULEINFO_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_NONE 0x00000000UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXO_PRESENT 0x00000001UL /**< Mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_DEFAULT (_DEVINFO_MODULEINFO_LFXO_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_NONE (_DEVINFO_MODULEINFO_LFXO_NONE << 16) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXO_PRESENT (_DEVINFO_MODULEINFO_LFXO_PRESENT << 16) /**< Shifted mode PRESENT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS (0x1UL << 17) /**< */
+#define _DEVINFO_MODULEINFO_EXPRESS_SHIFT 17 /**< Shift value for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_MASK 0x20000UL /**< Bit mask for DEVINFO_EXPRESS */
+#define _DEVINFO_MODULEINFO_EXPRESS_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_SUPPORTED 0x00000000UL /**< Mode SUPPORTED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXPRESS_NONE 0x00000001UL /**< Mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_DEFAULT (_DEVINFO_MODULEINFO_EXPRESS_DEFAULT << 17) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXPRESS_SUPPORTED (_DEVINFO_MODULEINFO_EXPRESS_SUPPORTED << 17) /**< Shifted mode SUPPORTED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXPRESS_NONE (_DEVINFO_MODULEINFO_EXPRESS_NONE << 17) /**< Shifted mode NONE for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL (0x1UL << 18) /**< */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_SHIFT 18 /**< Shift value for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_MASK 0x40000UL /**< Bit mask for DEVINFO_LFXOCALVAL */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_LFXOCALVAL_DEFAULT << 18) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_VALID (_DEVINFO_MODULEINFO_LFXOCALVAL_VALID << 18) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_LFXOCALVAL_NOTVALID << 18) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_HFXOCALVAL (0x1UL << 19) /**< */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_SHIFT 19 /**< Shift value for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_MASK 0x80000UL /**< Bit mask for DEVINFO_HFXOCALVAL */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_VALID 0x00000000UL /**< Mode VALID for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID 0x00000001UL /**< Mode NOTVALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT (_DEVINFO_MODULEINFO_HFXOCALVAL_DEFAULT << 19) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_VALID (_DEVINFO_MODULEINFO_HFXOCALVAL_VALID << 19) /**< Shifted mode VALID for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID (_DEVINFO_MODULEINFO_HFXOCALVAL_NOTVALID << 19) /**< Shifted mode NOTVALID for DEVINFO_MODULEINFO*/
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_SHIFT 20 /**< Shift value for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_MASK 0x1FF00000UL /**< Bit mask for DEVINFO_MODNUMBERMSB */
+#define _DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT 0x000001FFUL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT (_DEVINFO_MODULEINFO_MODNUMBERMSB_DEFAULT << 20) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC (0x1UL << 29) /**< */
+#define _DEVINFO_MODULEINFO_PADCDC_SHIFT 29 /**< Shift value for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_MASK 0x20000000UL /**< Bit mask for DEVINFO_PADCDC */
+#define _DEVINFO_MODULEINFO_PADCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_VDCDC 0x00000000UL /**< Mode VDCDC for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PADCDC_OTHER 0x00000001UL /**< Mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_DEFAULT (_DEVINFO_MODULEINFO_PADCDC_DEFAULT << 29) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_VDCDC (_DEVINFO_MODULEINFO_PADCDC_VDCDC << 29) /**< Shifted mode VDCDC for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PADCDC_OTHER (_DEVINFO_MODULEINFO_PADCDC_OTHER << 29) /**< Shifted mode OTHER for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED (0x1UL << 30) /**< */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_SHIFT 30 /**< Shift value for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_MASK 0x40000000UL /**< Bit mask for DEVINFO_PHYLIMITED */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_LIMITED 0x00000000UL /**< Mode LIMITED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED 0x00000001UL /**< Mode UNLIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT (_DEVINFO_MODULEINFO_PHYLIMITED_DEFAULT << 30) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_LIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_LIMITED << 30) /**< Shifted mode LIMITED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED (_DEVINFO_MODULEINFO_PHYLIMITED_UNLIMITED << 30) /**< Shifted mode UNLIMITED for DEVINFO_MODULEINFO*/
+#define DEVINFO_MODULEINFO_EXTVALID (0x1UL << 31) /**< */
+#define _DEVINFO_MODULEINFO_EXTVALID_SHIFT 31 /**< Shift value for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_MASK 0x80000000UL /**< Bit mask for DEVINFO_EXTVALID */
+#define _DEVINFO_MODULEINFO_EXTVALID_DEFAULT 0x00000001UL /**< Mode DEFAULT for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUSED 0x00000000UL /**< Mode EXTUSED for DEVINFO_MODULEINFO */
+#define _DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED 0x00000001UL /**< Mode EXTUNUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_DEFAULT (_DEVINFO_MODULEINFO_EXTVALID_DEFAULT << 31) /**< Shifted mode DEFAULT for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUSED << 31) /**< Shifted mode EXTUSED for DEVINFO_MODULEINFO */
+#define DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED (_DEVINFO_MODULEINFO_EXTVALID_EXTUNUSED << 31) /**< Shifted mode EXTUNUSED for DEVINFO_MODULEINFO*/
+
+/* Bit fields for DEVINFO MODXOCAL */
+#define _DEVINFO_MODXOCAL_RESETVALUE 0x007FFFFFUL /**< Default value for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_MASK 0x007FFFFFUL /**< Mask for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_SHIFT 0 /**< Shift value for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_MASK 0xFFUL /**< Bit mask for DEVINFO_HFXOCTUNEXIANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXIANA_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_SHIFT 8 /**< Shift value for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_MASK 0xFF00UL /**< Bit mask for DEVINFO_HFXOCTUNEXOANA */
+#define _DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT 0x000000FFUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT (_DEVINFO_MODXOCAL_HFXOCTUNEXOANA_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_SHIFT 16 /**< Shift value for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_MASK 0x7F0000UL /**< Bit mask for DEVINFO_LFXOCAPTUNE */
+#define _DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT 0x0000007FUL /**< Mode DEFAULT for DEVINFO_MODXOCAL */
+#define DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT (_DEVINFO_MODXOCAL_LFXOCAPTUNE_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_MODXOCAL */
+
+/* Bit fields for DEVINFO HFXOCAL */
+#define _DEVINFO_HFXOCAL_RESETVALUE 0xFFFFFF00UL /**< Default value for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_SHIFT 0 /**< Shift value for DEVINFO_SHUNTBIASANA */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_MASK 0xFUL /**< Bit mask for DEVINFO_SHUNTBIASANA */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I20UA 0x00000000UL /**< Mode I20UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I30UA 0x00000001UL /**< Mode I30UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I40UA 0x00000002UL /**< Mode I40UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I50UA 0x00000003UL /**< Mode I50UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I60UA 0x00000004UL /**< Mode I60UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I70UA 0x00000005UL /**< Mode I70UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I80UA 0x00000006UL /**< Mode I80UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I90UA 0x00000007UL /**< Mode I90UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I100UA 0x00000008UL /**< Mode I100UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I110UA 0x00000009UL /**< Mode I110UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I120UA 0x0000000AUL /**< Mode I120UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I130UA 0x0000000BUL /**< Mode I130UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I140UA 0x0000000CUL /**< Mode I140UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I150UA 0x0000000DUL /**< Mode I150UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I160UA 0x0000000EUL /**< Mode I160UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_SHUNTBIASANA_I170UA 0x0000000FUL /**< Mode I170UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_DEFAULT (_DEVINFO_HFXOCAL_SHUNTBIASANA_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I20UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I20UA << 0) /**< Shifted mode I20UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I30UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I30UA << 0) /**< Shifted mode I30UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I40UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I40UA << 0) /**< Shifted mode I40UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I50UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I50UA << 0) /**< Shifted mode I50UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I60UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I60UA << 0) /**< Shifted mode I60UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I70UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I70UA << 0) /**< Shifted mode I70UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I80UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I80UA << 0) /**< Shifted mode I80UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I90UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I90UA << 0) /**< Shifted mode I90UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I100UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I100UA << 0) /**< Shifted mode I100UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I110UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I110UA << 0) /**< Shifted mode I110UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I120UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I120UA << 0) /**< Shifted mode I120UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I130UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I130UA << 0) /**< Shifted mode I130UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I140UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I140UA << 0) /**< Shifted mode I140UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I150UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I150UA << 0) /**< Shifted mode I150UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I160UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I160UA << 0) /**< Shifted mode I160UA for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_SHUNTBIASANA_I170UA (_DEVINFO_HFXOCAL_SHUNTBIASANA_I170UA << 0) /**< Shifted mode I170UA for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_VTRTRIMANA_SHIFT 4 /**< Shift value for DEVINFO_VTRTRIMANA */
+#define _DEVINFO_HFXOCAL_VTRTRIMANA_MASK 0xF0UL /**< Bit mask for DEVINFO_VTRTRIMANA */
+#define _DEVINFO_HFXOCAL_VTRTRIMANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_VTRTRIMANA_DEFAULT (_DEVINFO_HFXOCAL_VTRTRIMANA_DEFAULT << 4) /**< Shifted mode DEFAULT for DEVINFO_HFXOCAL */
+#define _DEVINFO_HFXOCAL_RESERVED_SHIFT 8 /**< Shift value for DEVINFO_RESERVED */
+#define _DEVINFO_HFXOCAL_RESERVED_MASK 0xFFFFFF00UL /**< Bit mask for DEVINFO_RESERVED */
+#define _DEVINFO_HFXOCAL_RESERVED_DEFAULT 0x00FFFFFFUL /**< Mode DEFAULT for DEVINFO_HFXOCAL */
+#define DEVINFO_HFXOCAL_RESERVED_DEFAULT (_DEVINFO_HFXOCAL_RESERVED_DEFAULT << 8) /**< Shifted mode DEFAULT for DEVINFO_HFXOCAL */
+
+/* Bit fields for DEVINFO IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA1 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA1_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA2 */
+#define _DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN0 */
+#define DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT (_DEVINFO_IADC0GAIN0_GAINCANA2_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN0 */
+
+/* Bit fields for DEVINFO IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_SHIFT 0 /**< Shift value for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_MASK 0xFFFFUL /**< Bit mask for DEVINFO_GAINCANA3 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA3_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_SHIFT 16 /**< Shift value for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_GAINCANA4 */
+#define _DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0GAIN1 */
+#define DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT (_DEVINFO_IADC0GAIN1_GAINCANA4_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0GAIN1 */
+
+/* Bit fields for DEVINFO IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0OFFSETCAL0 */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANABASE */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANABASE_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA1HIACC */
+#define _DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0OFFSETCAL0 */
+#define DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT (_DEVINFO_IADC0OFFSETCAL0_OFFSETANA1HIACC_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0OFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL0 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA1NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+#define DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL0_OFFSETANA2NORM_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0NORMALOFFSETCAL1 */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3NORM */
+#define _DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+#define DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT (_DEVINFO_IADC0NORMALOFFSETCAL1_OFFSETANA3NORM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0NORMALOFFSETCAL1*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_MASK 0xFFFFFFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL0 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA1HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA1HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_SHIFT 16 /**< Shift value for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_MASK 0xFFFF0000UL /**< Bit mask for DEVINFO_OFFSETANA2HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+#define DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL0_OFFSETANA2HISPD_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL0*/
+
+/* Bit fields for DEVINFO IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_MASK 0x0000FFFFUL /**< Mask for DEVINFO_IADC0HISPDOFFSETCAL1 */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_SHIFT 0 /**< Shift value for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_MASK 0xFFFFUL /**< Bit mask for DEVINFO_OFFSETANA3HISPD */
+#define _DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+#define DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT (_DEVINFO_IADC0HISPDOFFSETCAL1_OFFSETANA3HISPD_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_IADC0HISPDOFFSETCAL1*/
+
+/* Bit fields for DEVINFO LEGACY */
+#define _DEVINFO_LEGACY_RESETVALUE 0x00800000UL /**< Default value for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_MASK 0x00FF0000UL /**< Mask for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SHIFT 16 /**< Shift value for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_MASK 0xFF0000UL /**< Bit mask for DEVINFO_DEVICEFAMILY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT 0x00000080UL /**< Mode DEFAULT for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P 0x00000010UL /**< Mode EFR32MG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B 0x00000011UL /**< Mode EFR32MG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V 0x00000012UL /**< Mode EFR32MG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P 0x00000013UL /**< Mode EFR32BG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B 0x00000014UL /**< Mode EFR32BG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V 0x00000015UL /**< Mode EFR32BG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P 0x00000019UL /**< Mode EFR32FG1P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B 0x0000001AUL /**< Mode EFR32FG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V 0x0000001BUL /**< Mode EFR32FG1V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P 0x0000001CUL /**< Mode EFR32MG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B 0x0000001DUL /**< Mode EFR32MG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V 0x0000001EUL /**< Mode EFR32MG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P 0x0000001FUL /**< Mode EFR32BG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B 0x00000020UL /**< Mode EFR32BG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V 0x00000021UL /**< Mode EFR32BG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P 0x00000025UL /**< Mode EFR32FG12P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B 0x00000026UL /**< Mode EFR32FG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V 0x00000027UL /**< Mode EFR32FG12V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P 0x00000028UL /**< Mode EFR32MG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B 0x00000029UL /**< Mode EFR32MG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V 0x0000002AUL /**< Mode EFR32MG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P 0x0000002BUL /**< Mode EFR32BG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B 0x0000002CUL /**< Mode EFR32BG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V 0x0000002DUL /**< Mode EFR32BG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P 0x00000031UL /**< Mode EFR32FG13P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B 0x00000032UL /**< Mode EFR32FG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V 0x00000033UL /**< Mode EFR32FG13V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P 0x00000034UL /**< Mode EFR32MG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B 0x00000035UL /**< Mode EFR32MG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V 0x00000036UL /**< Mode EFR32MG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P 0x00000037UL /**< Mode EFR32BG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B 0x00000038UL /**< Mode EFR32BG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V 0x00000039UL /**< Mode EFR32BG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P 0x0000003DUL /**< Mode EFR32FG14P for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B 0x0000003EUL /**< Mode EFR32FG14B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V 0x0000003FUL /**< Mode EFR32FG14V for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32G 0x00000047UL /**< Mode EFM32G for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG 0x00000048UL /**< Mode EFM32GG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG 0x00000049UL /**< Mode EFM32TG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG 0x0000004AUL /**< Mode EFM32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG 0x0000004BUL /**< Mode EFM32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG 0x0000004CUL /**< Mode EFM32ZG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG 0x0000004DUL /**< Mode EFM32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B 0x00000051UL /**< Mode EFM32PG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B 0x00000053UL /**< Mode EFM32JG1B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B 0x00000055UL /**< Mode EFM32PG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B 0x00000057UL /**< Mode EFM32JG12B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B 0x00000059UL /**< Mode EFM32PG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B 0x0000005BUL /**< Mode EFM32JG13B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B 0x00000064UL /**< Mode EFM32GG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B 0x00000067UL /**< Mode EFM32TG11B for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG 0x00000078UL /**< Mode EZR32LG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG 0x00000079UL /**< Mode EZR32WG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG 0x0000007AUL /**< Mode EZR32HG for DEVINFO_LEGACY */
+#define _DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 0x00000080UL /**< Mode SERIES2V0 for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT (_DEVINFO_LEGACY_DEVICEFAMILY_DEFAULT << 16) /**< Shifted mode DEFAULT for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1P << 16) /**< Shifted mode EFR32MG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1B << 16) /**< Shifted mode EFR32MG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG1V << 16) /**< Shifted mode EFR32MG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1P << 16) /**< Shifted mode EFR32BG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1B << 16) /**< Shifted mode EFR32BG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG1V << 16) /**< Shifted mode EFR32BG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1P << 16) /**< Shifted mode EFR32FG1P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1B << 16) /**< Shifted mode EFR32FG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG1V << 16) /**< Shifted mode EFR32FG1V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12P << 16) /**< Shifted mode EFR32MG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12B << 16) /**< Shifted mode EFR32MG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG12V << 16) /**< Shifted mode EFR32MG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12P << 16) /**< Shifted mode EFR32BG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12B << 16) /**< Shifted mode EFR32BG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG12V << 16) /**< Shifted mode EFR32BG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12P << 16) /**< Shifted mode EFR32FG12P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12B << 16) /**< Shifted mode EFR32FG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG12V << 16) /**< Shifted mode EFR32FG12V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13P << 16) /**< Shifted mode EFR32MG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13B << 16) /**< Shifted mode EFR32MG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG13V << 16) /**< Shifted mode EFR32MG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13P << 16) /**< Shifted mode EFR32BG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13B << 16) /**< Shifted mode EFR32BG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG13V << 16) /**< Shifted mode EFR32BG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13P << 16) /**< Shifted mode EFR32FG13P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13B << 16) /**< Shifted mode EFR32FG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG13V << 16) /**< Shifted mode EFR32FG13V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14P << 16) /**< Shifted mode EFR32MG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14B << 16) /**< Shifted mode EFR32MG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32MG14V << 16) /**< Shifted mode EFR32MG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14P << 16) /**< Shifted mode EFR32BG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14B << 16) /**< Shifted mode EFR32BG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32BG14V << 16) /**< Shifted mode EFR32BG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14P << 16) /**< Shifted mode EFR32FG14P for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14B << 16) /**< Shifted mode EFR32FG14B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V (_DEVINFO_LEGACY_DEVICEFAMILY_EFR32FG14V << 16) /**< Shifted mode EFR32FG14V for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32G (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32G << 16) /**< Shifted mode EFM32G for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG << 16) /**< Shifted mode EFM32GG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG << 16) /**< Shifted mode EFM32TG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32LG << 16) /**< Shifted mode EFM32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32WG << 16) /**< Shifted mode EFM32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32ZG << 16) /**< Shifted mode EFM32ZG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32HG << 16) /**< Shifted mode EFM32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG1B << 16) /**< Shifted mode EFM32PG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG1B << 16) /**< Shifted mode EFM32JG1B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG12B << 16) /**< Shifted mode EFM32PG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG12B << 16) /**< Shifted mode EFM32JG12B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32PG13B << 16) /**< Shifted mode EFM32PG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32JG13B << 16) /**< Shifted mode EFM32JG13B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32GG11B << 16) /**< Shifted mode EFM32GG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B (_DEVINFO_LEGACY_DEVICEFAMILY_EFM32TG11B << 16) /**< Shifted mode EFM32TG11B for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32LG << 16) /**< Shifted mode EZR32LG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32WG << 16) /**< Shifted mode EZR32WG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG (_DEVINFO_LEGACY_DEVICEFAMILY_EZR32HG << 16) /**< Shifted mode EZR32HG for DEVINFO_LEGACY */
+#define DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 (_DEVINFO_LEGACY_DEVICEFAMILY_SERIES2V0 << 16) /**< Shifted mode SERIES2V0 for DEVINFO_LEGACY */
+
+/* Bit fields for DEVINFO RTHERM */
+#define _DEVINFO_RTHERM_RESETVALUE 0x00000000UL /**< Default value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_MASK 0x0000FFFFUL /**< Mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_SHIFT 0 /**< Shift value for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_MASK 0xFFFFUL /**< Bit mask for DEVINFO_RTHERM */
+#define _DEVINFO_RTHERM_RTHERM_DEFAULT 0x00000000UL /**< Mode DEFAULT for DEVINFO_RTHERM */
+#define DEVINFO_RTHERM_RTHERM_DEFAULT (_DEVINFO_RTHERM_RTHERM_DEFAULT << 0) /**< Shifted mode DEFAULT for DEVINFO_RTHERM */
+
+/** @} End of group EFR32ZG23_DEVINFO_BitFields */
+/** @} End of group EFR32ZG23_DEVINFO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_DEVINFO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dma_descriptor.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dma_descriptor.h
new file mode 100644
index 000000000..2299a1b49
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dma_descriptor.h
@@ -0,0 +1,59 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 DMA descriptor bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_DMA_DESCRIPTOR_H
+#define EFR32ZG23_DMA_DESCRIPTOR_H
+
+#if defined(__ICCARM__)
+#pragma system_include /* Treat file as system include file. */
+#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
+#pragma clang system_header /* Treat file as system include file. */
+#endif
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup DMA_DESCRIPTOR DMA Descriptor
+ * @{
+ *****************************************************************************/
+/** DMA_DESCRIPTOR Register Declaration */
+typedef struct {
+ /* Note! Use of double __IOM (volatile) qualifier to ensure that both */
+ /* pointer and referenced memory are declared volatile. */
+ __IOM uint32_t CTRL; /**< DMA control register */
+ __IOM void * __IOM SRC; /**< DMA source address */
+ __IOM void * __IOM DST; /**< DMA destination address */
+ __IOM void * __IOM LINK; /**< DMA link address */
+} DMA_DESCRIPTOR_TypeDef; /**< @} */
+
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_DMA_DESCRIPTOR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dpll.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dpll.h
new file mode 100644
index 000000000..234a43d0f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_dpll.h
@@ -0,0 +1,232 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 DPLL register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_DPLL_H
+#define EFR32ZG23_DPLL_H
+#define DPLL_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_DPLL DPLL
+ * @{
+ * @brief EFR32ZG23 DPLL Register Declaration.
+ *****************************************************************************/
+
+/** DPLL Register Declaration. */
+typedef struct dpll_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CFG; /**< Config */
+ __IOM uint32_t CFG1; /**< Config1 */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IM uint32_t STATUS; /**< Status */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CFG_SET; /**< Config */
+ __IOM uint32_t CFG1_SET; /**< Config1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IM uint32_t STATUS_SET; /**< Status */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CFG_CLR; /**< Config */
+ __IOM uint32_t CFG1_CLR; /**< Config1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CFG_TGL; /**< Config */
+ __IOM uint32_t CFG1_TGL; /**< Config1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ uint32_t RESERVED6[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock */
+} DPLL_TypeDef;
+/** @} End of group EFR32ZG23_DPLL */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_DPLL
+ * @{
+ * @defgroup EFR32ZG23_DPLL_BitFields DPLL Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for DPLL IPVERSION */
+#define _DPLL_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for DPLL_IPVERSION */
+#define _DPLL_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for DPLL_IPVERSION */
+#define DPLL_IPVERSION_IPVERSION_DEFAULT (_DPLL_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IPVERSION */
+
+/* Bit fields for DPLL EN */
+#define _DPLL_EN_RESETVALUE 0x00000000UL /**< Default value for DPLL_EN */
+#define _DPLL_EN_MASK 0x00000003UL /**< Mask for DPLL_EN */
+#define DPLL_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _DPLL_EN_EN_SHIFT 0 /**< Shift value for DPLL_EN */
+#define _DPLL_EN_EN_MASK 0x1UL /**< Bit mask for DPLL_EN */
+#define _DPLL_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_EN_DEFAULT (_DPLL_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING (0x1UL << 1) /**< Disablement Busy Status */
+#define _DPLL_EN_DISABLING_SHIFT 1 /**< Shift value for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_MASK 0x2UL /**< Bit mask for DPLL_DISABLING */
+#define _DPLL_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_EN */
+#define DPLL_EN_DISABLING_DEFAULT (_DPLL_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_EN */
+
+/* Bit fields for DPLL CFG */
+#define _DPLL_CFG_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG */
+#define _DPLL_CFG_MASK 0x00000047UL /**< Mask for DPLL_CFG */
+#define DPLL_CFG_MODE (0x1UL << 0) /**< Operating Mode Control */
+#define _DPLL_CFG_MODE_SHIFT 0 /**< Shift value for DPLL_MODE */
+#define _DPLL_CFG_MODE_MASK 0x1UL /**< Bit mask for DPLL_MODE */
+#define _DPLL_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define _DPLL_CFG_MODE_FLL 0x00000000UL /**< Mode FLL for DPLL_CFG */
+#define _DPLL_CFG_MODE_PLL 0x00000001UL /**< Mode PLL for DPLL_CFG */
+#define DPLL_CFG_MODE_DEFAULT (_DPLL_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_MODE_FLL (_DPLL_CFG_MODE_FLL << 0) /**< Shifted mode FLL for DPLL_CFG */
+#define DPLL_CFG_MODE_PLL (_DPLL_CFG_MODE_PLL << 0) /**< Shifted mode PLL for DPLL_CFG */
+#define DPLL_CFG_EDGESEL (0x1UL << 1) /**< Reference Edge Select */
+#define _DPLL_CFG_EDGESEL_SHIFT 1 /**< Shift value for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_MASK 0x2UL /**< Bit mask for DPLL_EDGESEL */
+#define _DPLL_CFG_EDGESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_EDGESEL_DEFAULT (_DPLL_CFG_EDGESEL_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER (0x1UL << 2) /**< Automatic Recovery Control */
+#define _DPLL_CFG_AUTORECOVER_SHIFT 2 /**< Shift value for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_MASK 0x4UL /**< Bit mask for DPLL_AUTORECOVER */
+#define _DPLL_CFG_AUTORECOVER_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_AUTORECOVER_DEFAULT (_DPLL_CFG_AUTORECOVER_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN (0x1UL << 6) /**< Dither Enable Control */
+#define _DPLL_CFG_DITHEN_SHIFT 6 /**< Shift value for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_MASK 0x40UL /**< Bit mask for DPLL_DITHEN */
+#define _DPLL_CFG_DITHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG */
+#define DPLL_CFG_DITHEN_DEFAULT (_DPLL_CFG_DITHEN_DEFAULT << 6) /**< Shifted mode DEFAULT for DPLL_CFG */
+
+/* Bit fields for DPLL CFG1 */
+#define _DPLL_CFG1_RESETVALUE 0x00000000UL /**< Default value for DPLL_CFG1 */
+#define _DPLL_CFG1_MASK 0x0FFF0FFFUL /**< Mask for DPLL_CFG1 */
+#define _DPLL_CFG1_M_SHIFT 0 /**< Shift value for DPLL_M */
+#define _DPLL_CFG1_M_MASK 0xFFFUL /**< Bit mask for DPLL_M */
+#define _DPLL_CFG1_M_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_M_DEFAULT (_DPLL_CFG1_M_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+#define _DPLL_CFG1_N_SHIFT 16 /**< Shift value for DPLL_N */
+#define _DPLL_CFG1_N_MASK 0xFFF0000UL /**< Bit mask for DPLL_N */
+#define _DPLL_CFG1_N_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_CFG1 */
+#define DPLL_CFG1_N_DEFAULT (_DPLL_CFG1_N_DEFAULT << 16) /**< Shifted mode DEFAULT for DPLL_CFG1 */
+
+/* Bit fields for DPLL IF */
+#define _DPLL_IF_RESETVALUE 0x00000000UL /**< Default value for DPLL_IF */
+#define _DPLL_IF_MASK 0x00000007UL /**< Mask for DPLL_IF */
+#define DPLL_IF_LOCK (0x1UL << 0) /**< Lock Interrupt Flag */
+#define _DPLL_IF_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IF_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IF_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCK_DEFAULT (_DPLL_IF_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW (0x1UL << 1) /**< Lock Failure Low Interrupt Flag */
+#define _DPLL_IF_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IF_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILLOW_DEFAULT (_DPLL_IF_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH (0x1UL << 2) /**< Lock Failure High Interrupt Flag */
+#define _DPLL_IF_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IF_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IF */
+#define DPLL_IF_LOCKFAILHIGH_DEFAULT (_DPLL_IF_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IF */
+
+/* Bit fields for DPLL IEN */
+#define _DPLL_IEN_RESETVALUE 0x00000000UL /**< Default value for DPLL_IEN */
+#define _DPLL_IEN_MASK 0x00000007UL /**< Mask for DPLL_IEN */
+#define DPLL_IEN_LOCK (0x1UL << 0) /**< LOCK interrupt Enable */
+#define _DPLL_IEN_LOCK_SHIFT 0 /**< Shift value for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_MASK 0x1UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_IEN_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCK_DEFAULT (_DPLL_IEN_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW (0x1UL << 1) /**< LOCKFAILLOW Interrupe Enable */
+#define _DPLL_IEN_LOCKFAILLOW_SHIFT 1 /**< Shift value for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_MASK 0x2UL /**< Bit mask for DPLL_LOCKFAILLOW */
+#define _DPLL_IEN_LOCKFAILLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILLOW_DEFAULT (_DPLL_IEN_LOCKFAILLOW_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH (0x1UL << 2) /**< LOCKFAILHIGH Interrupt Enable */
+#define _DPLL_IEN_LOCKFAILHIGH_SHIFT 2 /**< Shift value for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_MASK 0x4UL /**< Bit mask for DPLL_LOCKFAILHIGH */
+#define _DPLL_IEN_LOCKFAILHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_IEN */
+#define DPLL_IEN_LOCKFAILHIGH_DEFAULT (_DPLL_IEN_LOCKFAILHIGH_DEFAULT << 2) /**< Shifted mode DEFAULT for DPLL_IEN */
+
+/* Bit fields for DPLL STATUS */
+#define _DPLL_STATUS_RESETVALUE 0x00000000UL /**< Default value for DPLL_STATUS */
+#define _DPLL_STATUS_MASK 0x80000003UL /**< Mask for DPLL_STATUS */
+#define DPLL_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _DPLL_STATUS_RDY_SHIFT 0 /**< Shift value for DPLL_RDY */
+#define _DPLL_STATUS_RDY_MASK 0x1UL /**< Bit mask for DPLL_RDY */
+#define _DPLL_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_RDY_DEFAULT (_DPLL_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS (0x1UL << 1) /**< Enable Status */
+#define _DPLL_STATUS_ENS_SHIFT 1 /**< Shift value for DPLL_ENS */
+#define _DPLL_STATUS_ENS_MASK 0x2UL /**< Bit mask for DPLL_ENS */
+#define _DPLL_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_ENS_DEFAULT (_DPLL_STATUS_ENS_DEFAULT << 1) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _DPLL_STATUS_LOCK_SHIFT 31 /**< Shift value for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for DPLL_LOCK */
+#define _DPLL_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for DPLL_STATUS */
+#define _DPLL_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_DEFAULT (_DPLL_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_UNLOCKED (_DPLL_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for DPLL_STATUS */
+#define DPLL_STATUS_LOCK_LOCKED (_DPLL_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for DPLL_STATUS */
+
+/* Bit fields for DPLL LOCK */
+#define _DPLL_LOCK_RESETVALUE 0x00007102UL /**< Default value for DPLL_LOCK */
+#define _DPLL_LOCK_MASK 0x0000FFFFUL /**< Mask for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for DPLL_LOCKKEY */
+#define _DPLL_LOCK_LOCKKEY_DEFAULT 0x00007102UL /**< Mode DEFAULT for DPLL_LOCK */
+#define _DPLL_LOCK_LOCKKEY_UNLOCK 0x00007102UL /**< Mode UNLOCK for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_DEFAULT (_DPLL_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for DPLL_LOCK */
+#define DPLL_LOCK_LOCKKEY_UNLOCK (_DPLL_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for DPLL_LOCK */
+
+/** @} End of group EFR32ZG23_DPLL_BitFields */
+/** @} End of group EFR32ZG23_DPLL */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_DPLL_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_emu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_emu.h
new file mode 100644
index 000000000..5ada862da
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_emu.h
@@ -0,0 +1,779 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 EMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_EMU_H
+#define EFR32ZG23_EMU_H
+#define EMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_EMU EMU
+ * @{
+ * @brief EFR32ZG23 EMU Register Declaration.
+ *****************************************************************************/
+
+/** EMU Register Declaration. */
+typedef struct emu_typedef{
+ uint32_t RESERVED0[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE; /**< BOD3SENSE Control register */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED3[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t LOCK; /**< EMU Configuration lock register */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL; /**< EM4 Control */
+ __IOM uint32_t CMD; /**< EMU Command register */
+ __IOM uint32_t CTRL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS; /**< EMU Temperature thresholds */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< EMU Status register */
+ __IM uint32_t TEMP; /**< Temperature */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE; /**< Tamper Reset cause */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN; /**< Interrupt Enables Debug */
+ uint32_t RESERVED7[6U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED10[14U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[18U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ uint32_t RESERVED14[924U]; /**< Reserved for future use */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_SET; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED16[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_SET; /**< BOD3SENSE Control register */
+ uint32_t RESERVED17[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_SET; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_SET; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED18[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t LOCK_SET; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_SET; /**< EM4 Control */
+ __IOM uint32_t CMD_SET; /**< EMU Command register */
+ __IOM uint32_t CTRL_SET; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_SET; /**< EMU Temperature thresholds */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< EMU Status register */
+ __IM uint32_t TEMP_SET; /**< Temperature */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_SET; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_SET; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_SET; /**< Tamper Reset cause */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_SET; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_SET; /**< Interrupt Enables Debug */
+ uint32_t RESERVED22[6U]; /**< Reserved for future use */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ uint32_t RESERVED24[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_SET; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_SET; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED25[14U]; /**< Reserved for future use */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ uint32_t RESERVED27[18U]; /**< Reserved for future use */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ uint32_t RESERVED29[924U]; /**< Reserved for future use */
+ uint32_t RESERVED30[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_CLR; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED31[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_CLR; /**< BOD3SENSE Control register */
+ uint32_t RESERVED32[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_CLR; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_CLR; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED33[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t LOCK_CLR; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_CLR; /**< EM4 Control */
+ __IOM uint32_t CMD_CLR; /**< EMU Command register */
+ __IOM uint32_t CTRL_CLR; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_CLR; /**< EMU Temperature thresholds */
+ uint32_t RESERVED34[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< EMU Status register */
+ __IM uint32_t TEMP_CLR; /**< Temperature */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_CLR; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_CLR; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_CLR; /**< Tamper Reset cause */
+ uint32_t RESERVED36[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_CLR; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_CLR; /**< Interrupt Enables Debug */
+ uint32_t RESERVED37[6U]; /**< Reserved for future use */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ uint32_t RESERVED39[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_CLR; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_CLR; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED40[14U]; /**< Reserved for future use */
+ uint32_t RESERVED41[1U]; /**< Reserved for future use */
+ uint32_t RESERVED42[18U]; /**< Reserved for future use */
+ uint32_t RESERVED43[1U]; /**< Reserved for future use */
+ uint32_t RESERVED44[924U]; /**< Reserved for future use */
+ uint32_t RESERVED45[4U]; /**< Reserved for future use */
+ __IOM uint32_t DECBOD_TGL; /**< DECOUPLE LVBOD Control register */
+ uint32_t RESERVED46[3U]; /**< Reserved for future use */
+ __IOM uint32_t BOD3SENSE_TGL; /**< BOD3SENSE Control register */
+ uint32_t RESERVED47[6U]; /**< Reserved for future use */
+ __IOM uint32_t VREGVDDCMPCTRL_TGL; /**< DC-DC VREGVDD Comparator Control Register */
+ __IOM uint32_t PD1PARETCTRL_TGL; /**< PD1 Partial Retention Control */
+ uint32_t RESERVED48[6U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t LOCK_TGL; /**< EMU Configuration lock register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enables */
+ __IOM uint32_t EM4CTRL_TGL; /**< EM4 Control */
+ __IOM uint32_t CMD_TGL; /**< EMU Command register */
+ __IOM uint32_t CTRL_TGL; /**< EMU Control register */
+ __IOM uint32_t TEMPLIMITS_TGL; /**< EMU Temperature thresholds */
+ uint32_t RESERVED49[2U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< EMU Status register */
+ __IM uint32_t TEMP_TGL; /**< Temperature */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+ __IOM uint32_t RSTCTRL_TGL; /**< Reset Management Control register */
+ __IM uint32_t RSTCAUSE_TGL; /**< Reset cause */
+ __IM uint32_t TAMPERRSTCAUSE_TGL; /**< Tamper Reset cause */
+ uint32_t RESERVED51[1U]; /**< Reserved for future use */
+ __IOM uint32_t DGIF_TGL; /**< Interrupt Flags Debug */
+ __IOM uint32_t DGIEN_TGL; /**< Interrupt Enables Debug */
+ uint32_t RESERVED52[6U]; /**< Reserved for future use */
+ uint32_t RESERVED53[1U]; /**< Reserved for future use */
+ uint32_t RESERVED54[15U]; /**< Reserved for future use */
+ __IOM uint32_t EFPIF_TGL; /**< EFP Interrupt Register */
+ __IOM uint32_t EFPIEN_TGL; /**< EFP Interrupt Enable Register */
+ uint32_t RESERVED55[14U]; /**< Reserved for future use */
+ uint32_t RESERVED56[1U]; /**< Reserved for future use */
+ uint32_t RESERVED57[18U]; /**< Reserved for future use */
+ uint32_t RESERVED58[1U]; /**< Reserved for future use */
+} EMU_TypeDef;
+/** @} End of group EFR32ZG23_EMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_EMU
+ * @{
+ * @defgroup EFR32ZG23_EMU_BitFields EMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EMU DECBOD */
+#define _EMU_DECBOD_RESETVALUE 0x00000022UL /**< Default value for EMU_DECBOD */
+#define _EMU_DECBOD_MASK 0x00000033UL /**< Mask for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN (0x1UL << 0) /**< DECBOD enable */
+#define _EMU_DECBOD_DECBODEN_SHIFT 0 /**< Shift value for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_MASK 0x1UL /**< Bit mask for EMU_DECBODEN */
+#define _EMU_DECBOD_DECBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODEN_DEFAULT (_EMU_DECBOD_DECBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK (0x1UL << 1) /**< DECBOD Mask */
+#define _EMU_DECBOD_DECBODMASK_SHIFT 1 /**< Shift value for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_MASK 0x2UL /**< Bit mask for EMU_DECBODMASK */
+#define _EMU_DECBOD_DECBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECBODMASK_DEFAULT (_EMU_DECBOD_DECBODMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN (0x1UL << 4) /**< Over Voltage Monitor enable */
+#define _EMU_DECBOD_DECOVMBODEN_SHIFT 4 /**< Shift value for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_MASK 0x10UL /**< Bit mask for EMU_DECOVMBODEN */
+#define _EMU_DECBOD_DECOVMBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODEN_DEFAULT (_EMU_DECBOD_DECOVMBODEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK (0x1UL << 5) /**< Over Voltage Monitor Mask */
+#define _EMU_DECBOD_DECOVMBODMASK_SHIFT 5 /**< Shift value for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_MASK 0x20UL /**< Bit mask for EMU_DECOVMBODMASK */
+#define _EMU_DECBOD_DECOVMBODMASK_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_DECBOD */
+#define EMU_DECBOD_DECOVMBODMASK_DEFAULT (_EMU_DECBOD_DECOVMBODMASK_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_DECBOD */
+
+/* Bit fields for EMU BOD3SENSE */
+#define _EMU_BOD3SENSE_RESETVALUE 0x00000000UL /**< Default value for EMU_BOD3SENSE */
+#define _EMU_BOD3SENSE_MASK 0x00000077UL /**< Mask for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN (0x1UL << 0) /**< AVDD BOD enable */
+#define _EMU_BOD3SENSE_AVDDBODEN_SHIFT 0 /**< Shift value for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_MASK 0x1UL /**< Bit mask for EMU_AVDDBODEN */
+#define _EMU_BOD3SENSE_AVDDBODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_AVDDBODEN_DEFAULT (_EMU_BOD3SENSE_AVDDBODEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN (0x1UL << 1) /**< VDDIO0 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_SHIFT 1 /**< Shift value for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_MASK 0x2UL /**< Bit mask for EMU_VDDIO0BODEN */
+#define _EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO0BODEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN (0x1UL << 2) /**< VDDIO1 BOD enable */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_SHIFT 2 /**< Shift value for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_MASK 0x4UL /**< Bit mask for EMU_VDDIO1BODEN */
+#define _EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_BOD3SENSE */
+#define EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT (_EMU_BOD3SENSE_VDDIO1BODEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_BOD3SENSE */
+
+/* Bit fields for EMU VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_RESETVALUE 0x00000006UL /**< Default value for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_MASK 0x00000007UL /**< Mask for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN (0x1UL << 0) /**< VREGVDD comparator enable */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_SHIFT 0 /**< Shift value for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_MASK 0x1UL /**< Bit mask for EMU_VREGINCMPEN */
+#define _EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT (_EMU_VREGVDDCMPCTRL_VREGINCMPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_SHIFT 1 /**< Shift value for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_MASK 0x6UL /**< Bit mask for EMU_THRESSEL */
+#define _EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for EMU_VREGVDDCMPCTRL */
+#define EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT (_EMU_VREGVDDCMPCTRL_THRESSEL_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_VREGVDDCMPCTRL */
+
+/* Bit fields for EMU PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_MASK 0x0000FFFFUL /**< Mask for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_SHIFT 0 /**< Shift value for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_MASK 0xFFFFUL /**< Bit mask for EMU_PD1PARETDIS */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN 0x00000001UL /**< Mode PERIPHNORETAIN for EMU_PD1PARETCTRL */
+#define _EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN 0x00000002UL /**< Mode RADIONORETAIN for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT (_EMU_PD1PARETCTRL_PD1PARETDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_PD1PARETCTRL */
+#define EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_PERIPHNORETAIN << 0) /**< Shifted mode PERIPHNORETAIN for EMU_PD1PARETCTRL*/
+#define EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN (_EMU_PD1PARETCTRL_PD1PARETDIS_RADIONORETAIN << 0) /**< Shifted mode RADIONORETAIN for EMU_PD1PARETCTRL*/
+
+/* Bit fields for EMU IPVERSION */
+#define _EMU_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for EMU_IPVERSION */
+#define _EMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_IPVERSION */
+#define _EMU_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_IPVERSION */
+#define EMU_IPVERSION_IPVERSION_DEFAULT (_EMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_IPVERSION */
+
+/* Bit fields for EMU LOCK */
+#define _EMU_LOCK_RESETVALUE 0x0000ADE8UL /**< Default value for EMU_LOCK */
+#define _EMU_LOCK_MASK 0x0000FFFFUL /**< Mask for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for EMU_LOCKKEY */
+#define _EMU_LOCK_LOCKKEY_DEFAULT 0x0000ADE8UL /**< Mode DEFAULT for EMU_LOCK */
+#define _EMU_LOCK_LOCKKEY_UNLOCK 0x0000ADE8UL /**< Mode UNLOCK for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_DEFAULT (_EMU_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_LOCK */
+#define EMU_LOCK_LOCKKEY_UNLOCK (_EMU_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for EMU_LOCK */
+
+/* Bit fields for EMU IF */
+#define _EMU_IF_RESETVALUE 0x00000000UL /**< Default value for EMU_IF */
+#define _EMU_IF_MASK 0xEB070000UL /**< Mask for EMU_IF */
+#define EMU_IF_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt flag */
+#define _EMU_IF_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IF_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_AVDDBOD_DEFAULT (_EMU_IF_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt flag */
+#define _EMU_IF_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IF_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_IOVDD0BOD_DEFAULT (_EMU_IF_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_IF_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IF_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_EM23WAKEUP_DEFAULT (_EMU_IF_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt flag */
+#define _EMU_IF_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IF_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_VSCALEDONE_DEFAULT (_EMU_IF_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG (0x1UL << 27) /**< Temperature Average Interrupt flag */
+#define _EMU_IF_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IF_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPAVG_DEFAULT (_EMU_IF_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_IF_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IF_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IF_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMP_DEFAULT (_EMU_IF_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_IF_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IF_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPLOW_DEFAULT (_EMU_IF_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_IF_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IF_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IF */
+#define EMU_IF_TEMPHIGH_DEFAULT (_EMU_IF_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IF */
+
+/* Bit fields for EMU IEN */
+#define _EMU_IEN_RESETVALUE 0x00000000UL /**< Default value for EMU_IEN */
+#define _EMU_IEN_MASK 0xEB070000UL /**< Mask for EMU_IEN */
+#define EMU_IEN_AVDDBOD (0x1UL << 16) /**< AVDD BOD Interrupt enable */
+#define _EMU_IEN_AVDDBOD_SHIFT 16 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_MASK 0x10000UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_IEN_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_AVDDBOD_DEFAULT (_EMU_IEN_AVDDBOD_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD (0x1UL << 17) /**< VDDIO0 BOD Interrupt enable */
+#define _EMU_IEN_IOVDD0BOD_SHIFT 17 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_MASK 0x20000UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_IEN_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_IOVDD0BOD_DEFAULT (_EMU_IEN_IOVDD0BOD_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_IEN_EM23WAKEUP_SHIFT 24 /**< Shift value for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUP */
+#define _EMU_IEN_EM23WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_EM23WAKEUP_DEFAULT (_EMU_IEN_EM23WAKEUP_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE (0x1UL << 25) /**< Vscale done Interrupt enable */
+#define _EMU_IEN_VSCALEDONE_SHIFT 25 /**< Shift value for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_MASK 0x2000000UL /**< Bit mask for EMU_VSCALEDONE */
+#define _EMU_IEN_VSCALEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_VSCALEDONE_DEFAULT (_EMU_IEN_VSCALEDONE_DEFAULT << 25) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG (0x1UL << 27) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMPAVG_SHIFT 27 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_MASK 0x8000000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_IEN_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPAVG_DEFAULT (_EMU_IEN_TEMPAVG_DEFAULT << 27) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_IEN_TEMP_SHIFT 29 /**< Shift value for EMU_TEMP */
+#define _EMU_IEN_TEMP_MASK 0x20000000UL /**< Bit mask for EMU_TEMP */
+#define _EMU_IEN_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMP_DEFAULT (_EMU_IEN_TEMP_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_IEN_TEMPLOW_SHIFT 30 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_IEN_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPLOW_DEFAULT (_EMU_IEN_TEMPLOW_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_IEN_TEMPHIGH_SHIFT 31 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_IEN_TEMPHIGH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_IEN */
+#define EMU_IEN_TEMPHIGH_DEFAULT (_EMU_IEN_TEMPHIGH_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_IEN */
+
+/* Bit fields for EMU EM4CTRL */
+#define _EMU_EM4CTRL_RESETVALUE 0x00000000UL /**< Default value for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_MASK 0x00000133UL /**< Mask for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4ENTRY_SHIFT 0 /**< Shift value for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_MASK 0x3UL /**< Bit mask for EMU_EM4ENTRY */
+#define _EMU_EM4CTRL_EM4ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4ENTRY_DEFAULT (_EMU_EM4CTRL_EM4ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SHIFT 4 /**< Shift value for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_MASK 0x30UL /**< Bit mask for EMU_EM4IORETMODE */
+#define _EMU_EM4CTRL_EM4IORETMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_DISABLE 0x00000000UL /**< Mode DISABLE for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_EM4EXIT 0x00000001UL /**< Mode EM4EXIT for EMU_EM4CTRL */
+#define _EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH 0x00000002UL /**< Mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DEFAULT (_EMU_EM4CTRL_EM4IORETMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_DISABLE (_EMU_EM4CTRL_EM4IORETMODE_DISABLE << 4) /**< Shifted mode DISABLE for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_EM4EXIT (_EMU_EM4CTRL_EM4IORETMODE_EM4EXIT << 4) /**< Shifted mode EM4EXIT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH (_EMU_EM4CTRL_EM4IORETMODE_SWUNLATCH << 4) /**< Shifted mode SWUNLATCH for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU (0x1UL << 8) /**< Set BOD3SENSE as EM4 wakeup */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_SHIFT 8 /**< Shift value for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_MASK 0x100UL /**< Bit mask for EMU_BOD3SENSEEM4WU */
+#define _EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EM4CTRL */
+#define EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT (_EMU_EM4CTRL_BOD3SENSEEM4WU_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_EM4CTRL */
+
+/* Bit fields for EMU CMD */
+#define _EMU_CMD_RESETVALUE 0x00000000UL /**< Default value for EMU_CMD */
+#define _EMU_CMD_MASK 0x00060E12UL /**< Mask for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH (0x1UL << 1) /**< EM4 unlatch */
+#define _EMU_CMD_EM4UNLATCH_SHIFT 1 /**< Shift value for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_MASK 0x2UL /**< Bit mask for EMU_EM4UNLATCH */
+#define _EMU_CMD_EM4UNLATCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM4UNLATCH_DEFAULT (_EMU_CMD_EM4UNLATCH_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ (0x1UL << 4) /**< Temperature Average Request */
+#define _EMU_CMD_TEMPAVGREQ_SHIFT 4 /**< Shift value for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_MASK 0x10UL /**< Bit mask for EMU_TEMPAVGREQ */
+#define _EMU_CMD_TEMPAVGREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TEMPAVGREQ_DEFAULT (_EMU_CMD_TEMPAVGREQ_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1 (0x1UL << 10) /**< Scale voltage to Vscale1 */
+#define _EMU_CMD_EM01VSCALE1_SHIFT 10 /**< Shift value for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_MASK 0x400UL /**< Bit mask for EMU_EM01VSCALE1 */
+#define _EMU_CMD_EM01VSCALE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE1_DEFAULT (_EMU_CMD_EM01VSCALE1_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2 (0x1UL << 11) /**< Scale voltage to Vscale2 */
+#define _EMU_CMD_EM01VSCALE2_SHIFT 11 /**< Shift value for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_MASK 0x800UL /**< Bit mask for EMU_EM01VSCALE2 */
+#define _EMU_CMD_EM01VSCALE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_EM01VSCALE2_DEFAULT (_EMU_CMD_EM01VSCALE2_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR (0x1UL << 17) /**< Reset Cause Clear */
+#define _EMU_CMD_RSTCAUSECLR_SHIFT 17 /**< Shift value for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_MASK 0x20000UL /**< Bit mask for EMU_RSTCAUSECLR */
+#define _EMU_CMD_RSTCAUSECLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_RSTCAUSECLR_DEFAULT (_EMU_CMD_RSTCAUSECLR_DEFAULT << 17) /**< Shifted mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR (0x1UL << 18) /**< Tamper Reset Cause Clear */
+#define _EMU_CMD_TAMPERRCCLR_SHIFT 18 /**< Shift value for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_MASK 0x40000UL /**< Bit mask for EMU_TAMPERRCCLR */
+#define _EMU_CMD_TAMPERRCCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CMD */
+#define EMU_CMD_TAMPERRCCLR_DEFAULT (_EMU_CMD_TAMPERRCCLR_DEFAULT << 18) /**< Shifted mode DEFAULT for EMU_CMD */
+
+/* Bit fields for EMU CTRL */
+#define _EMU_CTRL_RESETVALUE 0x00000200UL /**< Default value for EMU_CTRL */
+#define _EMU_CTRL_MASK 0xE0010309UL /**< Mask for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN (0x1UL << 0) /**< Enable debugging in EM2 */
+#define _EMU_CTRL_EM2DBGEN_SHIFT 0 /**< Shift value for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_MASK 0x1UL /**< Bit mask for EMU_EM2DBGEN */
+#define _EMU_CTRL_EM2DBGEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM2DBGEN_DEFAULT (_EMU_CTRL_EM2DBGEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM (0x1UL << 3) /**< Averaged Temperature samples num */
+#define _EMU_CTRL_TEMPAVGNUM_SHIFT 3 /**< Shift value for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGNUM */
+#define _EMU_CTRL_TEMPAVGNUM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N16 0x00000000UL /**< Mode N16 for EMU_CTRL */
+#define _EMU_CTRL_TEMPAVGNUM_N64 0x00000001UL /**< Mode N64 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_DEFAULT (_EMU_CTRL_TEMPAVGNUM_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N16 (_EMU_CTRL_TEMPAVGNUM_N16 << 3) /**< Shifted mode N16 for EMU_CTRL */
+#define EMU_CTRL_TEMPAVGNUM_N64 (_EMU_CTRL_TEMPAVGNUM_N64 << 3) /**< Shifted mode N64 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_SHIFT 8 /**< Shift value for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_MASK 0x300UL /**< Bit mask for EMU_EM23VSCALE */
+#define _EMU_CTRL_EM23VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_CTRL */
+#define _EMU_CTRL_EM23VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_DEFAULT (_EMU_CTRL_EM23VSCALE_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE0 (_EMU_CTRL_EM23VSCALE_VSCALE0 << 8) /**< Shifted mode VSCALE0 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE1 (_EMU_CTRL_EM23VSCALE_VSCALE1 << 8) /**< Shifted mode VSCALE1 for EMU_CTRL */
+#define EMU_CTRL_EM23VSCALE_VSCALE2 (_EMU_CTRL_EM23VSCALE_VSCALE2 << 8) /**< Shifted mode VSCALE2 for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND (0x1UL << 16) /**< Enable flash on demand wakeup */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_SHIFT 16 /**< Shift value for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_MASK 0x10000UL /**< Bit mask for EMU_FLASHPWRUPONDEMAND */
+#define _EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT (_EMU_CTRL_FLASHPWRUPONDEMAND_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN (0x1UL << 29) /**< EFP Direct Mode Enable */
+#define _EMU_CTRL_EFPDIRECTMODEEN_SHIFT 29 /**< Shift value for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_MASK 0x20000000UL /**< Bit mask for EMU_EFPDIRECTMODEEN */
+#define _EMU_CTRL_EFPDIRECTMODEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDIRECTMODEEN_DEFAULT (_EMU_CTRL_EFPDIRECTMODEEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE (0x1UL << 30) /**< EFP drives DECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_SHIFT 30 /**< Shift value for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_MASK 0x40000000UL /**< Bit mask for EMU_EFPDRVDECOUPLE */
+#define _EMU_CTRL_EFPDRVDECOUPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDECOUPLE_DEFAULT (_EMU_CTRL_EFPDRVDECOUPLE_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD (0x1UL << 31) /**< EFP drives DVDD */
+#define _EMU_CTRL_EFPDRVDVDD_SHIFT 31 /**< Shift value for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_MASK 0x80000000UL /**< Bit mask for EMU_EFPDRVDVDD */
+#define _EMU_CTRL_EFPDRVDVDD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_CTRL */
+#define EMU_CTRL_EFPDRVDVDD_DEFAULT (_EMU_CTRL_EFPDRVDVDD_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_CTRL */
+
+/* Bit fields for EMU TEMPLIMITS */
+#define _EMU_TEMPLIMITS_RESETVALUE 0x01FF0000UL /**< Default value for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_MASK 0x01FF01FFUL /**< Mask for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPLOW_SHIFT 0 /**< Shift value for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_MASK 0x1FFUL /**< Bit mask for EMU_TEMPLOW */
+#define _EMU_TEMPLIMITS_TEMPLOW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPLOW_DEFAULT (_EMU_TEMPLIMITS_TEMPLOW_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+#define _EMU_TEMPLIMITS_TEMPHIGH_SHIFT 16 /**< Shift value for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_MASK 0x1FF0000UL /**< Bit mask for EMU_TEMPHIGH */
+#define _EMU_TEMPLIMITS_TEMPHIGH_DEFAULT 0x000001FFUL /**< Mode DEFAULT for EMU_TEMPLIMITS */
+#define EMU_TEMPLIMITS_TEMPHIGH_DEFAULT (_EMU_TEMPLIMITS_TEMPHIGH_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMPLIMITS */
+
+/* Bit fields for EMU STATUS */
+#define _EMU_STATUS_RESETVALUE 0x00000080UL /**< Default value for EMU_STATUS */
+#define _EMU_STATUS_MASK 0xFFFFD4FFUL /**< Mask for EMU_STATUS */
+#define EMU_STATUS_LOCK (0x1UL << 0) /**< Lock status */
+#define _EMU_STATUS_LOCK_SHIFT 0 /**< Shift value for EMU_LOCK */
+#define _EMU_STATUS_LOCK_MASK 0x1UL /**< Bit mask for EMU_LOCK */
+#define _EMU_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for EMU_STATUS */
+#define _EMU_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_DEFAULT (_EMU_STATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_LOCK_UNLOCKED (_EMU_STATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for EMU_STATUS */
+#define EMU_STATUS_LOCK_LOCKED (_EMU_STATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE (0x1UL << 1) /**< First Temp done */
+#define _EMU_STATUS_FIRSTTEMPDONE_SHIFT 1 /**< Shift value for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_MASK 0x2UL /**< Bit mask for EMU_FIRSTTEMPDONE */
+#define _EMU_STATUS_FIRSTTEMPDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_FIRSTTEMPDONE_DEFAULT (_EMU_STATUS_FIRSTTEMPDONE_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE (0x1UL << 2) /**< Temp active */
+#define _EMU_STATUS_TEMPACTIVE_SHIFT 2 /**< Shift value for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_MASK 0x4UL /**< Bit mask for EMU_TEMPACTIVE */
+#define _EMU_STATUS_TEMPACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPACTIVE_DEFAULT (_EMU_STATUS_TEMPACTIVE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE (0x1UL << 3) /**< Temp Average active */
+#define _EMU_STATUS_TEMPAVGACTIVE_SHIFT 3 /**< Shift value for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_MASK 0x8UL /**< Bit mask for EMU_TEMPAVGACTIVE */
+#define _EMU_STATUS_TEMPAVGACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_TEMPAVGACTIVE_DEFAULT (_EMU_STATUS_TEMPAVGACTIVE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY (0x1UL << 4) /**< Vscale busy */
+#define _EMU_STATUS_VSCALEBUSY_SHIFT 4 /**< Shift value for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_MASK 0x10UL /**< Bit mask for EMU_VSCALEBUSY */
+#define _EMU_STATUS_VSCALEBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEBUSY_DEFAULT (_EMU_STATUS_VSCALEBUSY_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED (0x1UL << 5) /**< Vscale failed */
+#define _EMU_STATUS_VSCALEFAILED_SHIFT 5 /**< Shift value for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_MASK 0x20UL /**< Bit mask for EMU_VSCALEFAILED */
+#define _EMU_STATUS_VSCALEFAILED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALEFAILED_DEFAULT (_EMU_STATUS_VSCALEFAILED_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_SHIFT 6 /**< Shift value for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_MASK 0xC0UL /**< Bit mask for EMU_VSCALE */
+#define _EMU_STATUS_VSCALE_DEFAULT 0x00000002UL /**< Mode DEFAULT for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE0 0x00000000UL /**< Mode VSCALE0 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE1 0x00000001UL /**< Mode VSCALE1 for EMU_STATUS */
+#define _EMU_STATUS_VSCALE_VSCALE2 0x00000002UL /**< Mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_DEFAULT (_EMU_STATUS_VSCALE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE0 (_EMU_STATUS_VSCALE_VSCALE0 << 6) /**< Shifted mode VSCALE0 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE1 (_EMU_STATUS_VSCALE_VSCALE1 << 6) /**< Shifted mode VSCALE1 for EMU_STATUS */
+#define EMU_STATUS_VSCALE_VSCALE2 (_EMU_STATUS_VSCALE_VSCALE2 << 6) /**< Shifted mode VSCALE2 for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE (0x1UL << 10) /**< RAC active */
+#define _EMU_STATUS_RACACTIVE_SHIFT 10 /**< Shift value for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_MASK 0x400UL /**< Bit mask for EMU_RACACTIVE */
+#define _EMU_STATUS_RACACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_RACACTIVE_DEFAULT (_EMU_STATUS_RACACTIVE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET (0x1UL << 12) /**< EM4 IO retention status */
+#define _EMU_STATUS_EM4IORET_SHIFT 12 /**< Shift value for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_MASK 0x1000UL /**< Bit mask for EMU_EM4IORET */
+#define _EMU_STATUS_EM4IORET_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM4IORET_DEFAULT (_EMU_STATUS_EM4IORET_DEFAULT << 12) /**< Shifted mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED (0x1UL << 14) /**< EM2 entered */
+#define _EMU_STATUS_EM2ENTERED_SHIFT 14 /**< Shift value for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_MASK 0x4000UL /**< Bit mask for EMU_EM2ENTERED */
+#define _EMU_STATUS_EM2ENTERED_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_STATUS */
+#define EMU_STATUS_EM2ENTERED_DEFAULT (_EMU_STATUS_EM2ENTERED_DEFAULT << 14) /**< Shifted mode DEFAULT for EMU_STATUS */
+
+/* Bit fields for EMU TEMP */
+#define _EMU_TEMP_RESETVALUE 0x00000000UL /**< Default value for EMU_TEMP */
+#define _EMU_TEMP_MASK 0x07FF07FFUL /**< Mask for EMU_TEMP */
+#define _EMU_TEMP_TEMPLSB_SHIFT 0 /**< Shift value for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_MASK 0x3UL /**< Bit mask for EMU_TEMPLSB */
+#define _EMU_TEMP_TEMPLSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPLSB_DEFAULT (_EMU_TEMP_TEMPLSB_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMP_SHIFT 2 /**< Shift value for EMU_TEMP */
+#define _EMU_TEMP_TEMP_MASK 0x7FCUL /**< Bit mask for EMU_TEMP */
+#define _EMU_TEMP_TEMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMP_DEFAULT (_EMU_TEMP_TEMP_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_TEMP */
+#define _EMU_TEMP_TEMPAVG_SHIFT 16 /**< Shift value for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_MASK 0x7FF0000UL /**< Bit mask for EMU_TEMPAVG */
+#define _EMU_TEMP_TEMPAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TEMP */
+#define EMU_TEMP_TEMPAVG_DEFAULT (_EMU_TEMP_TEMPAVG_DEFAULT << 16) /**< Shifted mode DEFAULT for EMU_TEMP */
+
+/* Bit fields for EMU RSTCTRL */
+#define _EMU_RSTCTRL_RESETVALUE 0x00060407UL /**< Default value for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_MASK 0xC006C5CFUL /**< Mask for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE (0x1UL << 0) /**< Enable WDOG0 reset */
+#define _EMU_RSTCTRL_WDOG0RMODE_SHIFT 0 /**< Shift value for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_MASK 0x1UL /**< Bit mask for EMU_WDOG0RMODE */
+#define _EMU_RSTCTRL_WDOG0RMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_WDOG0RMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DEFAULT (_EMU_RSTCTRL_WDOG0RMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_DISABLED (_EMU_RSTCTRL_WDOG0RMODE_DISABLED << 0) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_WDOG0RMODE_ENABLED (_EMU_RSTCTRL_WDOG0RMODE_ENABLED << 0) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE (0x1UL << 2) /**< Enable M33 System reset */
+#define _EMU_RSTCTRL_SYSRMODE_SHIFT 2 /**< Shift value for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_MASK 0x4UL /**< Bit mask for EMU_SYSRMODE */
+#define _EMU_RSTCTRL_SYSRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_SYSRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DEFAULT (_EMU_RSTCTRL_SYSRMODE_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_DISABLED (_EMU_RSTCTRL_SYSRMODE_DISABLED << 2) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_SYSRMODE_ENABLED (_EMU_RSTCTRL_SYSRMODE_ENABLED << 2) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE (0x1UL << 3) /**< Enable M33 Lockup reset */
+#define _EMU_RSTCTRL_LOCKUPRMODE_SHIFT 3 /**< Shift value for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_MASK 0x8UL /**< Bit mask for EMU_LOCKUPRMODE */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_LOCKUPRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DEFAULT (_EMU_RSTCTRL_LOCKUPRMODE_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_DISABLED (_EMU_RSTCTRL_LOCKUPRMODE_DISABLED << 3) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_LOCKUPRMODE_ENABLED (_EMU_RSTCTRL_LOCKUPRMODE_ENABLED << 3) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE (0x1UL << 6) /**< Enable AVDD BOD reset */
+#define _EMU_RSTCTRL_AVDDBODRMODE_SHIFT 6 /**< Shift value for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_MASK 0x40UL /**< Bit mask for EMU_AVDDBODRMODE */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_AVDDBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DEFAULT (_EMU_RSTCTRL_AVDDBODRMODE_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_DISABLED (_EMU_RSTCTRL_AVDDBODRMODE_DISABLED << 6) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_AVDDBODRMODE_ENABLED (_EMU_RSTCTRL_AVDDBODRMODE_ENABLED << 6) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE (0x1UL << 7) /**< Enable VDDIO0 BOD reset */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_SHIFT 7 /**< Shift value for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_MASK 0x80UL /**< Bit mask for EMU_IOVDD0BODRMODE */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT (_EMU_RSTCTRL_IOVDD0BODRMODE_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_DISABLED << 7) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED (_EMU_RSTCTRL_IOVDD0BODRMODE_ENABLED << 7) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE (0x1UL << 10) /**< Enable DECBOD reset */
+#define _EMU_RSTCTRL_DECBODRMODE_SHIFT 10 /**< Shift value for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_MASK 0x400UL /**< Bit mask for EMU_DECBODRMODE */
+#define _EMU_RSTCTRL_DECBODRMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_DISABLED 0x00000000UL /**< Mode DISABLED for EMU_RSTCTRL */
+#define _EMU_RSTCTRL_DECBODRMODE_ENABLED 0x00000001UL /**< Mode ENABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DEFAULT (_EMU_RSTCTRL_DECBODRMODE_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_DISABLED (_EMU_RSTCTRL_DECBODRMODE_DISABLED << 10) /**< Shifted mode DISABLED for EMU_RSTCTRL */
+#define EMU_RSTCTRL_DECBODRMODE_ENABLED (_EMU_RSTCTRL_DECBODRMODE_ENABLED << 10) /**< Shifted mode ENABLED for EMU_RSTCTRL */
+
+/* Bit fields for EMU RSTCAUSE */
+#define _EMU_RSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_RSTCAUSE */
+#define _EMU_RSTCAUSE_MASK 0x8006FFFFUL /**< Mask for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR (0x1UL << 0) /**< Power On Reset */
+#define _EMU_RSTCAUSE_POR_SHIFT 0 /**< Shift value for EMU_POR */
+#define _EMU_RSTCAUSE_POR_MASK 0x1UL /**< Bit mask for EMU_POR */
+#define _EMU_RSTCAUSE_POR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_POR_DEFAULT (_EMU_RSTCAUSE_POR_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN (0x1UL << 1) /**< Pin Reset */
+#define _EMU_RSTCAUSE_PIN_SHIFT 1 /**< Shift value for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_MASK 0x2UL /**< Bit mask for EMU_PIN */
+#define _EMU_RSTCAUSE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_PIN_DEFAULT (_EMU_RSTCAUSE_PIN_DEFAULT << 1) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4 (0x1UL << 2) /**< EM4 Wakeup Reset */
+#define _EMU_RSTCAUSE_EM4_SHIFT 2 /**< Shift value for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_MASK 0x4UL /**< Bit mask for EMU_EM4 */
+#define _EMU_RSTCAUSE_EM4_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_EM4_DEFAULT (_EMU_RSTCAUSE_EM4_DEFAULT << 2) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0 (0x1UL << 3) /**< Watchdog 0 Reset */
+#define _EMU_RSTCAUSE_WDOG0_SHIFT 3 /**< Shift value for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_MASK 0x8UL /**< Bit mask for EMU_WDOG0 */
+#define _EMU_RSTCAUSE_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG0_DEFAULT (_EMU_RSTCAUSE_WDOG0_DEFAULT << 3) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG1 (0x1UL << 4) /**< Watchdog 1 Reset */
+#define _EMU_RSTCAUSE_WDOG1_SHIFT 4 /**< Shift value for EMU_WDOG1 */
+#define _EMU_RSTCAUSE_WDOG1_MASK 0x10UL /**< Bit mask for EMU_WDOG1 */
+#define _EMU_RSTCAUSE_WDOG1_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_WDOG1_DEFAULT (_EMU_RSTCAUSE_WDOG1_DEFAULT << 4) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP (0x1UL << 5) /**< M33 Core Lockup Reset */
+#define _EMU_RSTCAUSE_LOCKUP_SHIFT 5 /**< Shift value for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_MASK 0x20UL /**< Bit mask for EMU_LOCKUP */
+#define _EMU_RSTCAUSE_LOCKUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_LOCKUP_DEFAULT (_EMU_RSTCAUSE_LOCKUP_DEFAULT << 5) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ (0x1UL << 6) /**< M33 Core Sys Reset */
+#define _EMU_RSTCAUSE_SYSREQ_SHIFT 6 /**< Shift value for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_MASK 0x40UL /**< Bit mask for EMU_SYSREQ */
+#define _EMU_RSTCAUSE_SYSREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SYSREQ_DEFAULT (_EMU_RSTCAUSE_SYSREQ_DEFAULT << 6) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD (0x1UL << 7) /**< HVBOD Reset */
+#define _EMU_RSTCAUSE_DVDDBOD_SHIFT 7 /**< Shift value for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_MASK 0x80UL /**< Bit mask for EMU_DVDDBOD */
+#define _EMU_RSTCAUSE_DVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDBOD_DEFAULT (_EMU_RSTCAUSE_DVDDBOD_DEFAULT << 7) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD (0x1UL << 8) /**< LEBOD Reset */
+#define _EMU_RSTCAUSE_DVDDLEBOD_SHIFT 8 /**< Shift value for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_MASK 0x100UL /**< Bit mask for EMU_DVDDLEBOD */
+#define _EMU_RSTCAUSE_DVDDLEBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DVDDLEBOD_DEFAULT (_EMU_RSTCAUSE_DVDDLEBOD_DEFAULT << 8) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD (0x1UL << 9) /**< LVBOD Reset */
+#define _EMU_RSTCAUSE_DECBOD_SHIFT 9 /**< Shift value for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_MASK 0x200UL /**< Bit mask for EMU_DECBOD */
+#define _EMU_RSTCAUSE_DECBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_DECBOD_DEFAULT (_EMU_RSTCAUSE_DECBOD_DEFAULT << 9) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD (0x1UL << 10) /**< LEBOD1 Reset */
+#define _EMU_RSTCAUSE_AVDDBOD_SHIFT 10 /**< Shift value for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_MASK 0x400UL /**< Bit mask for EMU_AVDDBOD */
+#define _EMU_RSTCAUSE_AVDDBOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_AVDDBOD_DEFAULT (_EMU_RSTCAUSE_AVDDBOD_DEFAULT << 10) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD (0x1UL << 11) /**< LEBOD2 Reset */
+#define _EMU_RSTCAUSE_IOVDD0BOD_SHIFT 11 /**< Shift value for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_MASK 0x800UL /**< Bit mask for EMU_IOVDD0BOD */
+#define _EMU_RSTCAUSE_IOVDD0BOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_IOVDD0BOD_DEFAULT (_EMU_RSTCAUSE_IOVDD0BOD_DEFAULT << 11) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER (0x1UL << 13) /**< SE Tamper event Reset */
+#define _EMU_RSTCAUSE_SETAMPER_SHIFT 13 /**< Shift value for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_MASK 0x2000UL /**< Bit mask for EMU_SETAMPER */
+#define _EMU_RSTCAUSE_SETAMPER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_SETAMPER_DEFAULT (_EMU_RSTCAUSE_SETAMPER_DEFAULT << 13) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN (0x1UL << 31) /**< DCDC VREGIN comparator */
+#define _EMU_RSTCAUSE_VREGIN_SHIFT 31 /**< Shift value for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_MASK 0x80000000UL /**< Bit mask for EMU_VREGIN */
+#define _EMU_RSTCAUSE_VREGIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_RSTCAUSE */
+#define EMU_RSTCAUSE_VREGIN_DEFAULT (_EMU_RSTCAUSE_VREGIN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_RSTCAUSE */
+
+/* Bit fields for EMU TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_RESETVALUE 0x00000000UL /**< Default value for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_MASK 0xFFFFFFFFUL /**< Mask for EMU_TAMPERRSTCAUSE */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_SHIFT 0 /**< Shift value for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_MASK 0xFFFFFFFFUL /**< Bit mask for EMU_TAMPERRST */
+#define _EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_TAMPERRSTCAUSE */
+#define EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT (_EMU_TAMPERRSTCAUSE_TAMPERRST_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_TAMPERRSTCAUSE */
+
+/* Bit fields for EMU DGIF */
+#define _EMU_DGIF_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIF */
+#define _EMU_DGIF_MASK 0xE1000000UL /**< Mask for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF (0x1UL << 24) /**< EM23 Wake up Interrupt flag */
+#define _EMU_DGIF_EM23WAKEUPDGIF_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIF */
+#define _EMU_DGIF_EM23WAKEUPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_EM23WAKEUPDGIF_DEFAULT (_EMU_DGIF_EM23WAKEUPDGIF_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF (0x1UL << 29) /**< Temperature Interrupt flag */
+#define _EMU_DGIF_TEMPDGIF_SHIFT 29 /**< Shift value for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIF */
+#define _EMU_DGIF_TEMPDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPDGIF_DEFAULT (_EMU_DGIF_TEMPDGIF_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF (0x1UL << 30) /**< Temperature low Interrupt flag */
+#define _EMU_DGIF_TEMPLOWDGIF_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIF */
+#define _EMU_DGIF_TEMPLOWDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPLOWDGIF_DEFAULT (_EMU_DGIF_TEMPLOWDGIF_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF (0x1UL << 31) /**< Temperature high Interrupt flag */
+#define _EMU_DGIF_TEMPHIGHDGIF_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIF */
+#define _EMU_DGIF_TEMPHIGHDGIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIF */
+#define EMU_DGIF_TEMPHIGHDGIF_DEFAULT (_EMU_DGIF_TEMPHIGHDGIF_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIF */
+
+/* Bit fields for EMU DGIEN */
+#define _EMU_DGIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_DGIEN */
+#define _EMU_DGIEN_MASK 0xE1000000UL /**< Mask for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN (0x1UL << 24) /**< EM23 Wake up Interrupt enable */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_SHIFT 24 /**< Shift value for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_MASK 0x1000000UL /**< Bit mask for EMU_EM23WAKEUPDGIEN */
+#define _EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT (_EMU_DGIEN_EM23WAKEUPDGIEN_DEFAULT << 24) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN (0x1UL << 29) /**< Temperature Interrupt enable */
+#define _EMU_DGIEN_TEMPDGIEN_SHIFT 29 /**< Shift value for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_MASK 0x20000000UL /**< Bit mask for EMU_TEMPDGIEN */
+#define _EMU_DGIEN_TEMPDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPDGIEN_DEFAULT (_EMU_DGIEN_TEMPDGIEN_DEFAULT << 29) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN (0x1UL << 30) /**< Temperature low Interrupt enable */
+#define _EMU_DGIEN_TEMPLOWDGIEN_SHIFT 30 /**< Shift value for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_MASK 0x40000000UL /**< Bit mask for EMU_TEMPLOWDGIEN */
+#define _EMU_DGIEN_TEMPLOWDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPLOWDGIEN_DEFAULT (_EMU_DGIEN_TEMPLOWDGIEN_DEFAULT << 30) /**< Shifted mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN (0x1UL << 31) /**< Temperature high Interrupt enable */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_SHIFT 31 /**< Shift value for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_MASK 0x80000000UL /**< Bit mask for EMU_TEMPHIGHDGIEN */
+#define _EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_DGIEN */
+#define EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT (_EMU_DGIEN_TEMPHIGHDGIEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EMU_DGIEN */
+
+/* Bit fields for EMU EFPIF */
+#define _EMU_EFPIF_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIF */
+#define _EMU_EFPIF_MASK 0x00000001UL /**< Mask for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF (0x1UL << 0) /**< EFP Interrupt Flag */
+#define _EMU_EFPIF_EFPIF_SHIFT 0 /**< Shift value for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_MASK 0x1UL /**< Bit mask for EMU_EFPIF */
+#define _EMU_EFPIF_EFPIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIF */
+#define EMU_EFPIF_EFPIF_DEFAULT (_EMU_EFPIF_EFPIF_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIF */
+
+/* Bit fields for EMU EFPIEN */
+#define _EMU_EFPIEN_RESETVALUE 0x00000000UL /**< Default value for EMU_EFPIEN */
+#define _EMU_EFPIEN_MASK 0x00000001UL /**< Mask for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN (0x1UL << 0) /**< EFP Interrupt enable */
+#define _EMU_EFPIEN_EFPIEN_SHIFT 0 /**< Shift value for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_MASK 0x1UL /**< Bit mask for EMU_EFPIEN */
+#define _EMU_EFPIEN_EFPIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EMU_EFPIEN */
+#define EMU_EFPIEN_EFPIEN_DEFAULT (_EMU_EFPIEN_EFPIEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EMU_EFPIEN */
+
+/** @} End of group EFR32ZG23_EMU_BitFields */
+/** @} End of group EFR32ZG23_EMU */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_EMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_eusart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_eusart.h
new file mode 100644
index 000000000..956f9256a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_eusart.h
@@ -0,0 +1,1193 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 EUSART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_EUSART_H
+#define EFR32ZG23_EUSART_H
+#define EUSART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_EUSART EUSART
+ * @{
+ * @brief EFR32ZG23 EUSART Register Declaration.
+ *****************************************************************************/
+
+/** EUSART Register Declaration. */
+typedef struct eusart_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG0; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL; /**< Trigger Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t RXDATA; /**< RX Data Register */
+ __IM uint32_t RXDATAP; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA; /**< TX Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED0[42U]; /**< Reserved for future use */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ uint32_t RESERVED2[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG0_SET; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_SET; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_SET; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_SET; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_SET; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_SET; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_SET; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_SET; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_SET; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_SET; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< Trigger Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t RXDATA_SET; /**< RX Data Register */
+ __IM uint32_t RXDATAP_SET; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[42U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ uint32_t RESERVED5[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG0_CLR; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_CLR; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_CLR; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_CLR; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_CLR; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_CLR; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_CLR; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_CLR; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_CLR; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_CLR; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< Trigger Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[42U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[959U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG0_TGL; /**< Configuration 0 Register */
+ __IOM uint32_t CFG1_TGL; /**< Configuration 1 Register */
+ __IOM uint32_t CFG2_TGL; /**< Configuration 2 Register */
+ __IOM uint32_t FRAMECFG_TGL; /**< Frame Format Register */
+ __IOM uint32_t DTXDATCFG_TGL; /**< Default TX DATA Register */
+ __IOM uint32_t IRHFCFG_TGL; /**< HF IrDA Mod Config Register */
+ __IOM uint32_t IRLFCFG_TGL; /**< LF IrDA Pulse Config Register */
+ __IOM uint32_t TIMINGCFG_TGL; /**< Timing Register */
+ __IOM uint32_t STARTFRAMECFG_TGL; /**< Start Frame Register */
+ __IOM uint32_t SIGFRAMECFG_TGL; /**< Signal Frame Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Divider Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< Trigger Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< RX Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED9[42U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+} EUSART_TypeDef;
+/** @} End of group EFR32ZG23_EUSART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_EUSART
+ * @{
+ * @defgroup EFR32ZG23_EUSART_BitFields EUSART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for EUSART IPVERSION */
+#define _EUSART_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for EUSART_IPVERSION */
+#define _EUSART_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_IPVERSION */
+#define EUSART_IPVERSION_IPVERSION_DEFAULT (_EUSART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IPVERSION */
+
+/* Bit fields for EUSART EN */
+#define _EUSART_EN_RESETVALUE 0x00000000UL /**< Default value for EUSART_EN */
+#define _EUSART_EN_MASK 0x00000003UL /**< Mask for EUSART_EN */
+#define EUSART_EN_EN (0x1UL << 0) /**< Module enable */
+#define _EUSART_EN_EN_SHIFT 0 /**< Shift value for EUSART_EN */
+#define _EUSART_EN_EN_MASK 0x1UL /**< Bit mask for EUSART_EN */
+#define _EUSART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_EN_DEFAULT (_EUSART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _EUSART_EN_DISABLING_SHIFT 1 /**< Shift value for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_MASK 0x2UL /**< Bit mask for EUSART_DISABLING */
+#define _EUSART_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_EN */
+#define EUSART_EN_DISABLING_DEFAULT (_EUSART_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_EN */
+
+/* Bit fields for EUSART CFG0 */
+#define _EUSART_CFG0_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG0 */
+#define _EUSART_CFG0_MASK 0xC1D264FFUL /**< Mask for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC (0x1UL << 0) /**< Synchronous Mode */
+#define _EUSART_CFG0_SYNC_SHIFT 0 /**< Shift value for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_MASK 0x1UL /**< Bit mask for EUSART_SYNC */
+#define _EUSART_CFG0_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_ASYNC 0x00000000UL /**< Mode ASYNC for EUSART_CFG0 */
+#define _EUSART_CFG0_SYNC_SYNC 0x00000001UL /**< Mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_DEFAULT (_EUSART_CFG0_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_ASYNC (_EUSART_CFG0_SYNC_ASYNC << 0) /**< Shifted mode ASYNC for EUSART_CFG0 */
+#define EUSART_CFG0_SYNC_SYNC (_EUSART_CFG0_SYNC_SYNC << 0) /**< Shifted mode SYNC for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _EUSART_CFG0_LOOPBK_SHIFT 1 /**< Shift value for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_MASK 0x2UL /**< Bit mask for EUSART_LOOPBK */
+#define _EUSART_CFG0_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DEFAULT (_EUSART_CFG0_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_DISABLE (_EUSART_CFG0_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_LOOPBK_ENABLE (_EUSART_CFG0_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _EUSART_CFG0_CCEN_SHIFT 2 /**< Shift value for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_MASK 0x4UL /**< Bit mask for EUSART_CCEN */
+#define _EUSART_CFG0_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DEFAULT (_EUSART_CFG0_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_DISABLE (_EUSART_CFG0_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_CCEN_ENABLE (_EUSART_CFG0_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _EUSART_CFG0_MPM_SHIFT 3 /**< Shift value for EUSART_MPM */
+#define _EUSART_CFG0_MPM_MASK 0x8UL /**< Bit mask for EUSART_MPM */
+#define _EUSART_CFG0_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DEFAULT (_EUSART_CFG0_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_DISABLE (_EUSART_CFG0_MPM_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPM_ENABLE (_EUSART_CFG0_MPM_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _EUSART_CFG0_MPAB_SHIFT 4 /**< Shift value for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_MASK 0x10UL /**< Bit mask for EUSART_MPAB */
+#define _EUSART_CFG0_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MPAB_DEFAULT (_EUSART_CFG0_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_SHIFT 5 /**< Shift value for EUSART_OVS */
+#define _EUSART_CFG0_OVS_MASK 0xE0UL /**< Bit mask for EUSART_OVS */
+#define _EUSART_CFG0_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X16 0x00000000UL /**< Mode X16 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X8 0x00000001UL /**< Mode X8 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X6 0x00000002UL /**< Mode X6 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_X4 0x00000003UL /**< Mode X4 for EUSART_CFG0 */
+#define _EUSART_CFG0_OVS_DISABLE 0x00000004UL /**< Mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DEFAULT (_EUSART_CFG0_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X16 (_EUSART_CFG0_OVS_X16 << 5) /**< Shifted mode X16 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X8 (_EUSART_CFG0_OVS_X8 << 5) /**< Shifted mode X8 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X6 (_EUSART_CFG0_OVS_X6 << 5) /**< Shifted mode X6 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_X4 (_EUSART_CFG0_OVS_X4 << 5) /**< Shifted mode X4 for EUSART_CFG0 */
+#define EUSART_CFG0_OVS_DISABLE (_EUSART_CFG0_OVS_DISABLE << 5) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _EUSART_CFG0_MSBF_SHIFT 10 /**< Shift value for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_MASK 0x400UL /**< Bit mask for EUSART_MSBF */
+#define _EUSART_CFG0_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DEFAULT (_EUSART_CFG0_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_DISABLE (_EUSART_CFG0_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MSBF_ENABLE (_EUSART_CFG0_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _EUSART_CFG0_RXINV_SHIFT 13 /**< Shift value for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_MASK 0x2000UL /**< Bit mask for EUSART_RXINV */
+#define _EUSART_CFG0_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DEFAULT (_EUSART_CFG0_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_DISABLE (_EUSART_CFG0_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_RXINV_ENABLE (_EUSART_CFG0_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _EUSART_CFG0_TXINV_SHIFT 14 /**< Shift value for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_MASK 0x4000UL /**< Bit mask for EUSART_TXINV */
+#define _EUSART_CFG0_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DEFAULT (_EUSART_CFG0_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_DISABLE (_EUSART_CFG0_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_TXINV_ENABLE (_EUSART_CFG0_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _EUSART_CFG0_AUTOTRI_SHIFT 17 /**< Shift value for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_MASK 0x20000UL /**< Bit mask for EUSART_AUTOTRI */
+#define _EUSART_CFG0_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DEFAULT (_EUSART_CFG0_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_DISABLE (_EUSART_CFG0_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOTRI_ENABLE (_EUSART_CFG0_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _EUSART_CFG0_SKIPPERRF_SHIFT 20 /**< Shift value for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_MASK 0x100000UL /**< Bit mask for EUSART_SKIPPERRF */
+#define _EUSART_CFG0_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_SKIPPERRF_DEFAULT (_EUSART_CFG0_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA (0x1UL << 22) /**< Halt DMA Read On Error */
+#define _EUSART_CFG0_ERRSDMA_SHIFT 22 /**< Shift value for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_MASK 0x400000UL /**< Bit mask for EUSART_ERRSDMA */
+#define _EUSART_CFG0_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DEFAULT (_EUSART_CFG0_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_DISABLE (_EUSART_CFG0_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSDMA_ENABLE (_EUSART_CFG0_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _EUSART_CFG0_ERRSRX_SHIFT 23 /**< Shift value for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_MASK 0x800000UL /**< Bit mask for EUSART_ERRSRX */
+#define _EUSART_CFG0_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DEFAULT (_EUSART_CFG0_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_DISABLE (_EUSART_CFG0_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSRX_ENABLE (_EUSART_CFG0_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _EUSART_CFG0_ERRSTX_SHIFT 24 /**< Shift value for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_MASK 0x1000000UL /**< Bit mask for EUSART_ERRSTX */
+#define _EUSART_CFG0_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG0 */
+#define _EUSART_CFG0_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DEFAULT (_EUSART_CFG0_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_DISABLE (_EUSART_CFG0_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for EUSART_CFG0 */
+#define EUSART_CFG0_ERRSTX_ENABLE (_EUSART_CFG0_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _EUSART_CFG0_MVDIS_SHIFT 30 /**< Shift value for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_MASK 0x40000000UL /**< Bit mask for EUSART_MVDIS */
+#define _EUSART_CFG0_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_MVDIS_DEFAULT (_EUSART_CFG0_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _EUSART_CFG0_AUTOBAUDEN_SHIFT 31 /**< Shift value for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for EUSART_AUTOBAUDEN */
+#define _EUSART_CFG0_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG0 */
+#define EUSART_CFG0_AUTOBAUDEN_DEFAULT (_EUSART_CFG0_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for EUSART_CFG0 */
+
+/* Bit fields for EUSART CFG1 */
+#define _EUSART_CFG1_RESETVALUE 0x00000000UL /**< Default value for EUSART_CFG1 */
+#define _EUSART_CFG1_MASK 0x7BCF8E7FUL /**< Mask for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _EUSART_CFG1_DBGHALT_SHIFT 0 /**< Shift value for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_MASK 0x1UL /**< Bit mask for EUSART_DBGHALT */
+#define _EUSART_CFG1_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DEFAULT (_EUSART_CFG1_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_DISABLE (_EUSART_CFG1_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_DBGHALT_ENABLE (_EUSART_CFG1_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV (0x1UL << 1) /**< Clear-to-send Invert Enable */
+#define _EUSART_CFG1_CTSINV_SHIFT 1 /**< Shift value for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_MASK 0x2UL /**< Bit mask for EUSART_CTSINV */
+#define _EUSART_CFG1_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DEFAULT (_EUSART_CFG1_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_DISABLE (_EUSART_CFG1_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSINV_ENABLE (_EUSART_CFG1_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN (0x1UL << 2) /**< Clear-to-send Enable */
+#define _EUSART_CFG1_CTSEN_SHIFT 2 /**< Shift value for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_MASK 0x4UL /**< Bit mask for EUSART_CTSEN */
+#define _EUSART_CFG1_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DEFAULT (_EUSART_CFG1_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_DISABLE (_EUSART_CFG1_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_CTSEN_ENABLE (_EUSART_CFG1_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV (0x1UL << 3) /**< Request-to-send Invert Enable */
+#define _EUSART_CFG1_RTSINV_SHIFT 3 /**< Shift value for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_MASK 0x8UL /**< Bit mask for EUSART_RTSINV */
+#define _EUSART_CFG1_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DEFAULT (_EUSART_CFG1_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_DISABLE (_EUSART_CFG1_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_CFG1 */
+#define EUSART_CFG1_RTSINV_ENABLE (_EUSART_CFG1_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SHIFT 4 /**< Shift value for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_MASK 0x70UL /**< Bit mask for EUSART_RXTIMEOUT */
+#define _EUSART_CFG1_RXTIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_DISABLED 0x00000000UL /**< Mode DISABLED for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_ONEFRAME 0x00000001UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_TWOFRAMES 0x00000002UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_THREEFRAMES 0x00000003UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FOURFRAMES 0x00000004UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_FIVEFRAMES 0x00000005UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SIXFRAMES 0x00000006UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXTIMEOUT_SEVENFRAMES 0x00000007UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DEFAULT (_EUSART_CFG1_RXTIMEOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_DISABLED (_EUSART_CFG1_RXTIMEOUT_DISABLED << 4) /**< Shifted mode DISABLED for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_ONEFRAME (_EUSART_CFG1_RXTIMEOUT_ONEFRAME << 4) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_TWOFRAMES (_EUSART_CFG1_RXTIMEOUT_TWOFRAMES << 4) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_THREEFRAMES (_EUSART_CFG1_RXTIMEOUT_THREEFRAMES << 4) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FOURFRAMES (_EUSART_CFG1_RXTIMEOUT_FOURFRAMES << 4) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_FIVEFRAMES (_EUSART_CFG1_RXTIMEOUT_FIVEFRAMES << 4) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SIXFRAMES (_EUSART_CFG1_RXTIMEOUT_SIXFRAMES << 4) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXTIMEOUT_SEVENFRAMES (_EUSART_CFG1_RXTIMEOUT_SEVENFRAMES << 4) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU (0x1UL << 9) /**< Transmitter DMA Wakeup */
+#define _EUSART_CFG1_TXDMAWU_SHIFT 9 /**< Shift value for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_MASK 0x200UL /**< Bit mask for EUSART_TXDMAWU */
+#define _EUSART_CFG1_TXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXDMAWU_DEFAULT (_EUSART_CFG1_TXDMAWU_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU (0x1UL << 10) /**< Receiver DMA Wakeup */
+#define _EUSART_CFG1_RXDMAWU_SHIFT 10 /**< Shift value for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_MASK 0x400UL /**< Bit mask for EUSART_RXDMAWU */
+#define _EUSART_CFG1_RXDMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXDMAWU_DEFAULT (_EUSART_CFG1_RXDMAWU_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX (0x1UL << 11) /**< Start Frame Unblock Receiver */
+#define _EUSART_CFG1_SFUBRX_SHIFT 11 /**< Shift value for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_MASK 0x800UL /**< Bit mask for EUSART_SFUBRX */
+#define _EUSART_CFG1_SFUBRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_SFUBRX_DEFAULT (_EUSART_CFG1_SFUBRX_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN (0x1UL << 15) /**< PRS RX Enable */
+#define _EUSART_CFG1_RXPRSEN_SHIFT 15 /**< Shift value for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_MASK 0x8000UL /**< Bit mask for EUSART_RXPRSEN */
+#define _EUSART_CFG1_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXPRSEN_DEFAULT (_EUSART_CFG1_RXPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SHIFT 16 /**< Shift value for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_MASK 0xF0000UL /**< Bit mask for EUSART_TXFIW */
+#define _EUSART_CFG1_TXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_TXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_DEFAULT (_EUSART_CFG1_TXFIW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ONEFRAME (_EUSART_CFG1_TXFIW_ONEFRAME << 16) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWOFRAMES (_EUSART_CFG1_TXFIW_TWOFRAMES << 16) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THREEFRAMES (_EUSART_CFG1_TXFIW_THREEFRAMES << 16) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURFRAMES (_EUSART_CFG1_TXFIW_FOURFRAMES << 16) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIVEFRAMES (_EUSART_CFG1_TXFIW_FIVEFRAMES << 16) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXFRAMES (_EUSART_CFG1_TXFIW_SIXFRAMES << 16) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SEVENFRAMES (_EUSART_CFG1_TXFIW_SEVENFRAMES << 16) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_EIGHTFRAMES (_EUSART_CFG1_TXFIW_EIGHTFRAMES << 16) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_NINEFRAMES (_EUSART_CFG1_TXFIW_NINEFRAMES << 16) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TENFRAMES (_EUSART_CFG1_TXFIW_TENFRAMES << 16) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_ELEVENFRAMES (_EUSART_CFG1_TXFIW_ELEVENFRAMES << 16) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_TWELVEFRAMES (_EUSART_CFG1_TXFIW_TWELVEFRAMES << 16) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_THIRTEENFRAMES (_EUSART_CFG1_TXFIW_THIRTEENFRAMES << 16) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FOURTEENFRAMES (_EUSART_CFG1_TXFIW_FOURTEENFRAMES << 16) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_FIFTEENFRAMES (_EUSART_CFG1_TXFIW_FIFTEENFRAMES << 16) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_TXFIW_SIXTEENFRAMES (_EUSART_CFG1_TXFIW_SIXTEENFRAMES << 16) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SHIFT 22 /**< Shift value for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_MASK 0x3C00000UL /**< Bit mask for EUSART_RTSRXFW */
+#define _EUSART_CFG1_RTSRXFW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RTSRXFW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_DEFAULT (_EUSART_CFG1_RTSRXFW_DEFAULT << 22) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ONEFRAME (_EUSART_CFG1_RTSRXFW_ONEFRAME << 22) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWOFRAMES (_EUSART_CFG1_RTSRXFW_TWOFRAMES << 22) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THREEFRAMES (_EUSART_CFG1_RTSRXFW_THREEFRAMES << 22) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURFRAMES (_EUSART_CFG1_RTSRXFW_FOURFRAMES << 22) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIVEFRAMES (_EUSART_CFG1_RTSRXFW_FIVEFRAMES << 22) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXFRAMES (_EUSART_CFG1_RTSRXFW_SIXFRAMES << 22) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SEVENFRAMES (_EUSART_CFG1_RTSRXFW_SEVENFRAMES << 22) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_EIGHTFRAMES (_EUSART_CFG1_RTSRXFW_EIGHTFRAMES << 22) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_NINEFRAMES (_EUSART_CFG1_RTSRXFW_NINEFRAMES << 22) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TENFRAMES (_EUSART_CFG1_RTSRXFW_TENFRAMES << 22) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_ELEVENFRAMES (_EUSART_CFG1_RTSRXFW_ELEVENFRAMES << 22) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_TWELVEFRAMES (_EUSART_CFG1_RTSRXFW_TWELVEFRAMES << 22) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_THIRTEENFRAMES (_EUSART_CFG1_RTSRXFW_THIRTEENFRAMES << 22) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FOURTEENFRAMES (_EUSART_CFG1_RTSRXFW_FOURTEENFRAMES << 22) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_FIFTEENFRAMES (_EUSART_CFG1_RTSRXFW_FIFTEENFRAMES << 22) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RTSRXFW_SIXTEENFRAMES (_EUSART_CFG1_RTSRXFW_SIXTEENFRAMES << 22) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SHIFT 27 /**< Shift value for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_MASK 0x78000000UL /**< Bit mask for EUSART_RXFIW */
+#define _EUSART_CFG1_RXFIW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ONEFRAME 0x00000000UL /**< Mode ONEFRAME for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWOFRAMES 0x00000001UL /**< Mode TWOFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THREEFRAMES 0x00000002UL /**< Mode THREEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURFRAMES 0x00000003UL /**< Mode FOURFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIVEFRAMES 0x00000004UL /**< Mode FIVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXFRAMES 0x00000005UL /**< Mode SIXFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SEVENFRAMES 0x00000006UL /**< Mode SEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_EIGHTFRAMES 0x00000007UL /**< Mode EIGHTFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_NINEFRAMES 0x00000008UL /**< Mode NINEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TENFRAMES 0x00000009UL /**< Mode TENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_ELEVENFRAMES 0x0000000AUL /**< Mode ELEVENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_TWELVEFRAMES 0x0000000BUL /**< Mode TWELVEFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_THIRTEENFRAMES 0x0000000CUL /**< Mode THIRTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FOURTEENFRAMES 0x0000000DUL /**< Mode FOURTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_FIFTEENFRAMES 0x0000000EUL /**< Mode FIFTEENFRAMES for EUSART_CFG1 */
+#define _EUSART_CFG1_RXFIW_SIXTEENFRAMES 0x0000000FUL /**< Mode SIXTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_DEFAULT (_EUSART_CFG1_RXFIW_DEFAULT << 27) /**< Shifted mode DEFAULT for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ONEFRAME (_EUSART_CFG1_RXFIW_ONEFRAME << 27) /**< Shifted mode ONEFRAME for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWOFRAMES (_EUSART_CFG1_RXFIW_TWOFRAMES << 27) /**< Shifted mode TWOFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THREEFRAMES (_EUSART_CFG1_RXFIW_THREEFRAMES << 27) /**< Shifted mode THREEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURFRAMES (_EUSART_CFG1_RXFIW_FOURFRAMES << 27) /**< Shifted mode FOURFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIVEFRAMES (_EUSART_CFG1_RXFIW_FIVEFRAMES << 27) /**< Shifted mode FIVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXFRAMES (_EUSART_CFG1_RXFIW_SIXFRAMES << 27) /**< Shifted mode SIXFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SEVENFRAMES (_EUSART_CFG1_RXFIW_SEVENFRAMES << 27) /**< Shifted mode SEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_EIGHTFRAMES (_EUSART_CFG1_RXFIW_EIGHTFRAMES << 27) /**< Shifted mode EIGHTFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_NINEFRAMES (_EUSART_CFG1_RXFIW_NINEFRAMES << 27) /**< Shifted mode NINEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TENFRAMES (_EUSART_CFG1_RXFIW_TENFRAMES << 27) /**< Shifted mode TENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_ELEVENFRAMES (_EUSART_CFG1_RXFIW_ELEVENFRAMES << 27) /**< Shifted mode ELEVENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_TWELVEFRAMES (_EUSART_CFG1_RXFIW_TWELVEFRAMES << 27) /**< Shifted mode TWELVEFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_THIRTEENFRAMES (_EUSART_CFG1_RXFIW_THIRTEENFRAMES << 27) /**< Shifted mode THIRTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FOURTEENFRAMES (_EUSART_CFG1_RXFIW_FOURTEENFRAMES << 27) /**< Shifted mode FOURTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_FIFTEENFRAMES (_EUSART_CFG1_RXFIW_FIFTEENFRAMES << 27) /**< Shifted mode FIFTEENFRAMES for EUSART_CFG1 */
+#define EUSART_CFG1_RXFIW_SIXTEENFRAMES (_EUSART_CFG1_RXFIW_SIXTEENFRAMES << 27) /**< Shifted mode SIXTEENFRAMES for EUSART_CFG1 */
+
+/* Bit fields for EUSART CFG2 */
+#define _EUSART_CFG2_RESETVALUE 0x00000020UL /**< Default value for EUSART_CFG2 */
+#define _EUSART_CFG2_MASK 0xFF0000FFUL /**< Mask for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER (0x1UL << 0) /**< Main mode */
+#define _EUSART_CFG2_MASTER_SHIFT 0 /**< Shift value for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_MASK 0x1UL /**< Bit mask for EUSART_MASTER */
+#define _EUSART_CFG2_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_SLAVE 0x00000000UL /**< Mode SLAVE for EUSART_CFG2 */
+#define _EUSART_CFG2_MASTER_MASTER 0x00000001UL /**< Mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_DEFAULT (_EUSART_CFG2_MASTER_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_SLAVE (_EUSART_CFG2_MASTER_SLAVE << 0) /**< Shifted mode SLAVE for EUSART_CFG2 */
+#define EUSART_CFG2_MASTER_MASTER (_EUSART_CFG2_MASTER_MASTER << 0) /**< Shifted mode MASTER for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL (0x1UL << 1) /**< Clock Polarity */
+#define _EUSART_CFG2_CLKPOL_SHIFT 1 /**< Shift value for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_MASK 0x2UL /**< Bit mask for EUSART_CLKPOL */
+#define _EUSART_CFG2_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_DEFAULT (_EUSART_CFG2_CLKPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLELOW (_EUSART_CFG2_CLKPOL_IDLELOW << 1) /**< Shifted mode IDLELOW for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPOL_IDLEHIGH (_EUSART_CFG2_CLKPOL_IDLEHIGH << 1) /**< Shifted mode IDLEHIGH for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA (0x1UL << 2) /**< Clock Edge for Setup/Sample */
+#define _EUSART_CFG2_CLKPHA_SHIFT 2 /**< Shift value for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_MASK 0x4UL /**< Bit mask for EUSART_CLKPHA */
+#define _EUSART_CFG2_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for EUSART_CFG2 */
+#define _EUSART_CFG2_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_DEFAULT (_EUSART_CFG2_CLKPHA_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLELEADING (_EUSART_CFG2_CLKPHA_SAMPLELEADING << 2) /**< Shifted mode SAMPLELEADING for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPHA_SAMPLETRAILING (_EUSART_CFG2_CLKPHA_SAMPLETRAILING << 2) /**< Shifted mode SAMPLETRAILING for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV (0x1UL << 3) /**< Chip Select Invert */
+#define _EUSART_CFG2_CSINV_SHIFT 3 /**< Shift value for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_MASK 0x8UL /**< Bit mask for EUSART_CSINV */
+#define _EUSART_CFG2_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AL 0x00000000UL /**< Mode AL for EUSART_CFG2 */
+#define _EUSART_CFG2_CSINV_AH 0x00000001UL /**< Mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_DEFAULT (_EUSART_CFG2_CSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AL (_EUSART_CFG2_CSINV_AL << 3) /**< Shifted mode AL for EUSART_CFG2 */
+#define EUSART_CFG2_CSINV_AH (_EUSART_CFG2_CSINV_AH << 3) /**< Shifted mode AH for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX (0x1UL << 4) /**< Always Transmit When RXFIFO Not Full */
+#define _EUSART_CFG2_AUTOTX_SHIFT 4 /**< Shift value for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_MASK 0x10UL /**< Bit mask for EUSART_AUTOTX */
+#define _EUSART_CFG2_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOTX_DEFAULT (_EUSART_CFG2_AUTOTX_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS (0x1UL << 5) /**< Automatic Chip Select */
+#define _EUSART_CFG2_AUTOCS_SHIFT 5 /**< Shift value for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_MASK 0x20UL /**< Bit mask for EUSART_AUTOCS */
+#define _EUSART_CFG2_AUTOCS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_AUTOCS_DEFAULT (_EUSART_CFG2_AUTOCS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN (0x1UL << 6) /**< PRS CLK Enable */
+#define _EUSART_CFG2_CLKPRSEN_SHIFT 6 /**< Shift value for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_MASK 0x40UL /**< Bit mask for EUSART_CLKPRSEN */
+#define _EUSART_CFG2_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_CLKPRSEN_DEFAULT (_EUSART_CFG2_CLKPRSEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD (0x1UL << 7) /**< Force Load to Shift Register */
+#define _EUSART_CFG2_FORCELOAD_SHIFT 7 /**< Shift value for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_MASK 0x80UL /**< Bit mask for EUSART_FORCELOAD */
+#define _EUSART_CFG2_FORCELOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_FORCELOAD_DEFAULT (_EUSART_CFG2_FORCELOAD_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+#define _EUSART_CFG2_SDIV_SHIFT 24 /**< Shift value for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_MASK 0xFF000000UL /**< Bit mask for EUSART_SDIV */
+#define _EUSART_CFG2_SDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CFG2 */
+#define EUSART_CFG2_SDIV_DEFAULT (_EUSART_CFG2_SDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_CFG2 */
+
+/* Bit fields for EUSART FRAMECFG */
+#define _EUSART_FRAMECFG_RESETVALUE 0x00001002UL /**< Default value for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_MASK 0x0000330FUL /**< Mask for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SHIFT 0 /**< Shift value for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_MASK 0xFUL /**< Bit mask for EUSART_DATABITS */
+#define _EUSART_FRAMECFG_DATABITS_DEFAULT 0x00000002UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SEVEN 0x00000001UL /**< Mode SEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_EIGHT 0x00000002UL /**< Mode EIGHT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_NINE 0x00000003UL /**< Mode NINE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TEN 0x00000004UL /**< Mode TEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_ELEVEN 0x00000005UL /**< Mode ELEVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_TWELVE 0x00000006UL /**< Mode TWELVE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_THIRTEEN 0x00000007UL /**< Mode THIRTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FOURTEEN 0x00000008UL /**< Mode FOURTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_FIFTEEN 0x00000009UL /**< Mode FIFTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_DATABITS_SIXTEEN 0x0000000AUL /**< Mode SIXTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_DEFAULT (_EUSART_FRAMECFG_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SEVEN (_EUSART_FRAMECFG_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_EIGHT (_EUSART_FRAMECFG_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_NINE (_EUSART_FRAMECFG_DATABITS_NINE << 0) /**< Shifted mode NINE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TEN (_EUSART_FRAMECFG_DATABITS_TEN << 0) /**< Shifted mode TEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_ELEVEN (_EUSART_FRAMECFG_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_TWELVE (_EUSART_FRAMECFG_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_THIRTEEN (_EUSART_FRAMECFG_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FOURTEEN (_EUSART_FRAMECFG_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_FIFTEEN (_EUSART_FRAMECFG_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_DATABITS_SIXTEEN (_EUSART_FRAMECFG_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_SHIFT 8 /**< Shift value for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_MASK 0x300UL /**< Bit mask for EUSART_PARITY */
+#define _EUSART_FRAMECFG_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_NONE 0x00000000UL /**< Mode NONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_EVEN 0x00000002UL /**< Mode EVEN for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_PARITY_ODD 0x00000003UL /**< Mode ODD for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_DEFAULT (_EUSART_FRAMECFG_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_NONE (_EUSART_FRAMECFG_PARITY_NONE << 8) /**< Shifted mode NONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_EVEN (_EUSART_FRAMECFG_PARITY_EVEN << 8) /**< Shifted mode EVEN for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_PARITY_ODD (_EUSART_FRAMECFG_PARITY_ODD << 8) /**< Shifted mode ODD for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_SHIFT 12 /**< Shift value for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_MASK 0x3000UL /**< Bit mask for EUSART_STOPBITS */
+#define _EUSART_FRAMECFG_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_HALF 0x00000000UL /**< Mode HALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONE 0x00000001UL /**< Mode ONE for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for EUSART_FRAMECFG */
+#define _EUSART_FRAMECFG_STOPBITS_TWO 0x00000003UL /**< Mode TWO for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_DEFAULT (_EUSART_FRAMECFG_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_HALF (_EUSART_FRAMECFG_STOPBITS_HALF << 12) /**< Shifted mode HALF for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONE (_EUSART_FRAMECFG_STOPBITS_ONE << 12) /**< Shifted mode ONE for EUSART_FRAMECFG */
+#define EUSART_FRAMECFG_STOPBITS_ONEANDAHALF (_EUSART_FRAMECFG_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for EUSART_FRAMECFG*/
+#define EUSART_FRAMECFG_STOPBITS_TWO (_EUSART_FRAMECFG_STOPBITS_TWO << 12) /**< Shifted mode TWO for EUSART_FRAMECFG */
+
+/* Bit fields for EUSART DTXDATCFG */
+#define _EUSART_DTXDATCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_MASK 0x0000FFFFUL /**< Mask for EUSART_DTXDATCFG */
+#define _EUSART_DTXDATCFG_DTXDAT_SHIFT 0 /**< Shift value for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_MASK 0xFFFFUL /**< Bit mask for EUSART_DTXDAT */
+#define _EUSART_DTXDATCFG_DTXDAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_DTXDATCFG */
+#define EUSART_DTXDATCFG_DTXDAT_DEFAULT (_EUSART_DTXDATCFG_DTXDAT_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_DTXDATCFG */
+
+/* Bit fields for EUSART IRHFCFG */
+#define _EUSART_IRHFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_MASK 0x0000000FUL /**< Mask for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN (0x1UL << 0) /**< Enable IrDA Module */
+#define _EUSART_IRHFCFG_IRHFEN_SHIFT 0 /**< Shift value for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_MASK 0x1UL /**< Bit mask for EUSART_IRHFEN */
+#define _EUSART_IRHFCFG_IRHFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFEN_DEFAULT (_EUSART_IRHFCFG_IRHFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_SHIFT 1 /**< Shift value for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_MASK 0x6UL /**< Bit mask for EUSART_IRHFPW */
+#define _EUSART_IRHFCFG_IRHFPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_ONE 0x00000000UL /**< Mode ONE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_TWO 0x00000001UL /**< Mode TWO for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_THREE 0x00000002UL /**< Mode THREE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFPW_FOUR 0x00000003UL /**< Mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_DEFAULT (_EUSART_IRHFCFG_IRHFPW_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_ONE (_EUSART_IRHFCFG_IRHFPW_ONE << 1) /**< Shifted mode ONE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_TWO (_EUSART_IRHFCFG_IRHFPW_TWO << 1) /**< Shifted mode TWO for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_THREE (_EUSART_IRHFCFG_IRHFPW_THREE << 1) /**< Shifted mode THREE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFPW_FOUR (_EUSART_IRHFCFG_IRHFPW_FOUR << 1) /**< Shifted mode FOUR for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _EUSART_IRHFCFG_IRHFFILT_SHIFT 3 /**< Shift value for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_MASK 0x8UL /**< Bit mask for EUSART_IRHFFILT */
+#define _EUSART_IRHFCFG_IRHFFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_DISABLE 0x00000000UL /**< Mode DISABLE for EUSART_IRHFCFG */
+#define _EUSART_IRHFCFG_IRHFFILT_ENABLE 0x00000001UL /**< Mode ENABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DEFAULT (_EUSART_IRHFCFG_IRHFFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_DISABLE (_EUSART_IRHFCFG_IRHFFILT_DISABLE << 3) /**< Shifted mode DISABLE for EUSART_IRHFCFG */
+#define EUSART_IRHFCFG_IRHFFILT_ENABLE (_EUSART_IRHFCFG_IRHFFILT_ENABLE << 3) /**< Shifted mode ENABLE for EUSART_IRHFCFG */
+
+/* Bit fields for EUSART IRLFCFG */
+#define _EUSART_IRLFCFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_IRLFCFG */
+#define _EUSART_IRLFCFG_MASK 0x00000001UL /**< Mask for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN (0x1UL << 0) /**< Pulse Generator/Extender Enable */
+#define _EUSART_IRLFCFG_IRLFEN_SHIFT 0 /**< Shift value for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_MASK 0x1UL /**< Bit mask for EUSART_IRLFEN */
+#define _EUSART_IRLFCFG_IRLFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IRLFCFG */
+#define EUSART_IRLFCFG_IRLFEN_DEFAULT (_EUSART_IRLFCFG_IRLFEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IRLFCFG */
+
+/* Bit fields for EUSART TIMINGCFG */
+#define _EUSART_TIMINGCFG_RESETVALUE 0x00050000UL /**< Default value for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_MASK 0x000F7773UL /**< Mask for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SHIFT 0 /**< Shift value for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_MASK 0x3UL /**< Bit mask for EUSART_TXDELAY */
+#define _EUSART_TIMINGCFG_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_NONE 0x00000000UL /**< Mode NONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_SINGLE 0x00000001UL /**< Mode SINGLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_DOUBLE 0x00000002UL /**< Mode DOUBLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_TXDELAY_TRIPPLE 0x00000003UL /**< Mode TRIPPLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DEFAULT (_EUSART_TIMINGCFG_TXDELAY_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_NONE (_EUSART_TIMINGCFG_TXDELAY_NONE << 0) /**< Shifted mode NONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_SINGLE (_EUSART_TIMINGCFG_TXDELAY_SINGLE << 0) /**< Shifted mode SINGLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_DOUBLE (_EUSART_TIMINGCFG_TXDELAY_DOUBLE << 0) /**< Shifted mode DOUBLE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_TXDELAY_TRIPPLE (_EUSART_TIMINGCFG_TXDELAY_TRIPPLE << 0) /**< Shifted mode TRIPPLE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SHIFT 4 /**< Shift value for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_MASK 0x70UL /**< Bit mask for EUSART_CSSETUP */
+#define _EUSART_TIMINGCFG_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSSETUP_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_DEFAULT (_EUSART_TIMINGCFG_CSSETUP_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ZERO (_EUSART_TIMINGCFG_CSSETUP_ZERO << 4) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_ONE (_EUSART_TIMINGCFG_CSSETUP_ONE << 4) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_TWO (_EUSART_TIMINGCFG_CSSETUP_TWO << 4) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_THREE (_EUSART_TIMINGCFG_CSSETUP_THREE << 4) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FOUR (_EUSART_TIMINGCFG_CSSETUP_FOUR << 4) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_FIVE (_EUSART_TIMINGCFG_CSSETUP_FIVE << 4) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SIX (_EUSART_TIMINGCFG_CSSETUP_SIX << 4) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSSETUP_SEVEN (_EUSART_TIMINGCFG_CSSETUP_SEVEN << 4) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SHIFT 8 /**< Shift value for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_MASK 0x700UL /**< Bit mask for EUSART_CSHOLD */
+#define _EUSART_TIMINGCFG_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_CSHOLD_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_DEFAULT (_EUSART_TIMINGCFG_CSHOLD_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ZERO (_EUSART_TIMINGCFG_CSHOLD_ZERO << 8) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_ONE (_EUSART_TIMINGCFG_CSHOLD_ONE << 8) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_TWO (_EUSART_TIMINGCFG_CSHOLD_TWO << 8) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_THREE (_EUSART_TIMINGCFG_CSHOLD_THREE << 8) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FOUR (_EUSART_TIMINGCFG_CSHOLD_FOUR << 8) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_FIVE (_EUSART_TIMINGCFG_CSHOLD_FIVE << 8) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SIX (_EUSART_TIMINGCFG_CSHOLD_SIX << 8) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_CSHOLD_SEVEN (_EUSART_TIMINGCFG_CSHOLD_SEVEN << 8) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SHIFT 12 /**< Shift value for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_MASK 0x7000UL /**< Bit mask for EUSART_ICS */
+#define _EUSART_TIMINGCFG_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ZERO 0x00000000UL /**< Mode ZERO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_ONE 0x00000001UL /**< Mode ONE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_TWO 0x00000002UL /**< Mode TWO for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_THREE 0x00000003UL /**< Mode THREE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FOUR 0x00000004UL /**< Mode FOUR for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_FIVE 0x00000005UL /**< Mode FIVE for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SIX 0x00000006UL /**< Mode SIX for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_ICS_SEVEN 0x00000007UL /**< Mode SEVEN for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_DEFAULT (_EUSART_TIMINGCFG_ICS_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ZERO (_EUSART_TIMINGCFG_ICS_ZERO << 12) /**< Shifted mode ZERO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_ONE (_EUSART_TIMINGCFG_ICS_ONE << 12) /**< Shifted mode ONE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_TWO (_EUSART_TIMINGCFG_ICS_TWO << 12) /**< Shifted mode TWO for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_THREE (_EUSART_TIMINGCFG_ICS_THREE << 12) /**< Shifted mode THREE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FOUR (_EUSART_TIMINGCFG_ICS_FOUR << 12) /**< Shifted mode FOUR for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_FIVE (_EUSART_TIMINGCFG_ICS_FIVE << 12) /**< Shifted mode FIVE for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SIX (_EUSART_TIMINGCFG_ICS_SIX << 12) /**< Shifted mode SIX for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_ICS_SEVEN (_EUSART_TIMINGCFG_ICS_SEVEN << 12) /**< Shifted mode SEVEN for EUSART_TIMINGCFG */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_SHIFT 16 /**< Shift value for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_MASK 0xF0000UL /**< Bit mask for EUSART_SETUPWINDOW */
+#define _EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT 0x00000005UL /**< Mode DEFAULT for EUSART_TIMINGCFG */
+#define EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT (_EUSART_TIMINGCFG_SETUPWINDOW_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_TIMINGCFG */
+
+/* Bit fields for EUSART STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_MASK 0x000001FFUL /**< Mask for EUSART_STARTFRAMECFG */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_SHIFT 0 /**< Shift value for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_MASK 0x1FFUL /**< Bit mask for EUSART_STARTFRAME */
+#define _EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STARTFRAMECFG */
+#define EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT (_EUSART_STARTFRAMECFG_STARTFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STARTFRAMECFG*/
+
+/* Bit fields for EUSART SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_RESETVALUE 0x00000000UL /**< Default value for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_MASK 0x000001FFUL /**< Mask for EUSART_SIGFRAMECFG */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_SHIFT 0 /**< Shift value for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_MASK 0x1FFUL /**< Bit mask for EUSART_SIGFRAME */
+#define _EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SIGFRAMECFG */
+#define EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT (_EUSART_SIGFRAMECFG_SIGFRAME_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SIGFRAMECFG */
+
+/* Bit fields for EUSART CLKDIV */
+#define _EUSART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_MASK 0x007FFFF8UL /**< Mask for EUSART_CLKDIV */
+#define _EUSART_CLKDIV_DIV_SHIFT 3 /**< Shift value for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CLKDIV */
+#define EUSART_CLKDIV_DIV_DEFAULT (_EUSART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CLKDIV */
+
+/* Bit fields for EUSART TRIGCTRL */
+#define _EUSART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for EUSART_TRIGCTRL */
+#define _EUSART_TRIGCTRL_MASK 0x00000007UL /**< Mask for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN (0x1UL << 0) /**< Receive Trigger Enable */
+#define _EUSART_TRIGCTRL_RXTEN_SHIFT 0 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_MASK 0x1UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_RXTEN_DEFAULT (_EUSART_TRIGCTRL_RXTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN (0x1UL << 1) /**< Transmit Trigger Enable */
+#define _EUSART_TRIGCTRL_TXTEN_SHIFT 1 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_MASK 0x2UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_TXTEN_DEFAULT (_EUSART_TRIGCTRL_TXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN (0x1UL << 2) /**< AUTOTX Trigger Enable */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_SHIFT 2 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_MASK 0x4UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TRIGCTRL */
+#define EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT (_EUSART_TRIGCTRL_AUTOTXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_TRIGCTRL */
+
+/* Bit fields for EUSART CMD */
+#define _EUSART_CMD_RESETVALUE 0x00000000UL /**< Default value for EUSART_CMD */
+#define _EUSART_CMD_MASK 0x000001FFUL /**< Mask for EUSART_CMD */
+#define EUSART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _EUSART_CMD_RXEN_SHIFT 0 /**< Shift value for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_MASK 0x1UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXEN_DEFAULT (_EUSART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _EUSART_CMD_RXDIS_SHIFT 1 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXDIS_DEFAULT (_EUSART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _EUSART_CMD_TXEN_SHIFT 2 /**< Shift value for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_MASK 0x4UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXEN_DEFAULT (_EUSART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _EUSART_CMD_TXDIS_SHIFT 3 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXDIS_DEFAULT (_EUSART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN (0x1UL << 4) /**< Receiver Block Enable */
+#define _EUSART_CMD_RXBLOCKEN_SHIFT 4 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_MASK 0x10UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKEN_DEFAULT (_EUSART_CMD_RXBLOCKEN_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS (0x1UL << 5) /**< Receiver Block Disable */
+#define _EUSART_CMD_RXBLOCKDIS_SHIFT 5 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_MASK 0x20UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_RXBLOCKDIS_DEFAULT (_EUSART_CMD_RXBLOCKDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN (0x1UL << 6) /**< Transmitter Tristate Enable */
+#define _EUSART_CMD_TXTRIEN_SHIFT 6 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_MASK 0x40UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIEN_DEFAULT (_EUSART_CMD_TXTRIEN_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS (0x1UL << 7) /**< Transmitter Tristate Disable */
+#define _EUSART_CMD_TXTRIDIS_SHIFT 7 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_MASK 0x80UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_TXTRIDIS_DEFAULT (_EUSART_CMD_TXTRIDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX (0x1UL << 8) /**< Clear TX FIFO */
+#define _EUSART_CMD_CLEARTX_SHIFT 8 /**< Shift value for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_MASK 0x100UL /**< Bit mask for EUSART_CLEARTX */
+#define _EUSART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_CMD */
+#define EUSART_CMD_CLEARTX_DEFAULT (_EUSART_CMD_CLEARTX_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_CMD */
+
+/* Bit fields for EUSART RXDATA */
+#define _EUSART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATA */
+#define _EUSART_RXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATA */
+#define _EUSART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATA */
+#define EUSART_RXDATA_RXDATA_DEFAULT (_EUSART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATA */
+
+/* Bit fields for EUSART RXDATAP */
+#define _EUSART_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_MASK 0x0000FFFFUL /**< Mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_MASK 0xFFFFUL /**< Bit mask for EUSART_RXDATAP */
+#define _EUSART_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_RXDATAP */
+#define EUSART_RXDATAP_RXDATAP_DEFAULT (_EUSART_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_RXDATAP */
+
+/* Bit fields for EUSART TXDATA */
+#define _EUSART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for EUSART_TXDATA */
+#define _EUSART_TXDATA_MASK 0x0000FFFFUL /**< Mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_MASK 0xFFFFUL /**< Bit mask for EUSART_TXDATA */
+#define _EUSART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_TXDATA */
+#define EUSART_TXDATA_TXDATA_DEFAULT (_EUSART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_TXDATA */
+
+/* Bit fields for EUSART STATUS */
+#define _EUSART_STATUS_RESETVALUE 0x00003040UL /**< Default value for EUSART_STATUS */
+#define _EUSART_STATUS_MASK 0x031F31FBUL /**< Mask for EUSART_STATUS */
+#define EUSART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _EUSART_STATUS_RXENS_SHIFT 0 /**< Shift value for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for EUSART_RXENS */
+#define _EUSART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXENS_DEFAULT (_EUSART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _EUSART_STATUS_TXENS_SHIFT 1 /**< Shift value for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for EUSART_TXENS */
+#define _EUSART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXENS_DEFAULT (_EUSART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _EUSART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for EUSART_RXBLOCK */
+#define _EUSART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXBLOCK_DEFAULT (_EUSART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _EUSART_STATUS_TXTRI_SHIFT 4 /**< Shift value for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for EUSART_TXTRI */
+#define _EUSART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXTRI_DEFAULT (_EUSART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _EUSART_STATUS_TXC_SHIFT 5 /**< Shift value for EUSART_TXC */
+#define _EUSART_STATUS_TXC_MASK 0x20UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXC_DEFAULT (_EUSART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL (0x1UL << 6) /**< TX FIFO Level */
+#define _EUSART_STATUS_TXFL_SHIFT 6 /**< Shift value for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_MASK 0x40UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_STATUS_TXFL_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFL_DEFAULT (_EUSART_STATUS_TXFL_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL (0x1UL << 7) /**< RX FIFO Level */
+#define _EUSART_STATUS_RXFL_SHIFT 7 /**< Shift value for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_MASK 0x80UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_STATUS_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFL_DEFAULT (_EUSART_STATUS_RXFL_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _EUSART_STATUS_RXFULL_SHIFT 8 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXFULL_DEFAULT (_EUSART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE (0x1UL << 12) /**< RX Idle */
+#define _EUSART_STATUS_RXIDLE_SHIFT 12 /**< Shift value for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_MASK 0x1000UL /**< Bit mask for EUSART_RXIDLE */
+#define _EUSART_STATUS_RXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_RXIDLE_DEFAULT (_EUSART_STATUS_RXIDLE_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _EUSART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXIDLE_DEFAULT (_EUSART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define _EUSART_STATUS_TXFCNT_SHIFT 16 /**< Shift value for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_MASK 0x1F0000UL /**< Bit mask for EUSART_TXFCNT */
+#define _EUSART_STATUS_TXFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_TXFCNT_DEFAULT (_EUSART_STATUS_TXFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Rate Detection Completed */
+#define _EUSART_STATUS_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_STATUS_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_AUTOBAUDDONE_DEFAULT (_EUSART_STATUS_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY (0x1UL << 25) /**< TX FIFO Clear Busy */
+#define _EUSART_STATUS_CLEARTXBUSY_SHIFT 25 /**< Shift value for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_MASK 0x2000000UL /**< Bit mask for EUSART_CLEARTXBUSY */
+#define _EUSART_STATUS_CLEARTXBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_STATUS */
+#define EUSART_STATUS_CLEARTXBUSY_DEFAULT (_EUSART_STATUS_CLEARTXBUSY_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_STATUS */
+
+/* Bit fields for EUSART IF */
+#define _EUSART_IF_RESETVALUE 0x00000000UL /**< Default value for EUSART_IF */
+#define _EUSART_IF_MASK 0x030D3FFFUL /**< Mask for EUSART_IF */
+#define EUSART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _EUSART_IF_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IF_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXC_DEFAULT (_EUSART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL (0x1UL << 1) /**< TX FIFO Level Interrupt Flag */
+#define _EUSART_IF_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IF_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IF_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXFL_DEFAULT (_EUSART_IF_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL (0x1UL << 2) /**< RX FIFO Level Interrupt Flag */
+#define _EUSART_IF_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IF_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IF_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFL_DEFAULT (_EUSART_IF_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL (0x1UL << 3) /**< RX FIFO Full Interrupt Flag */
+#define _EUSART_IF_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXFULL_DEFAULT (_EUSART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF (0x1UL << 4) /**< RX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IF_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXOF_DEFAULT (_EUSART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF (0x1UL << 5) /**< RX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IF_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXUF_DEFAULT (_EUSART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF (0x1UL << 6) /**< TX FIFO Overflow Interrupt Flag */
+#define _EUSART_IF_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IF_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXOF_DEFAULT (_EUSART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF (0x1UL << 7) /**< TX FIFO Underflow Interrupt Flag */
+#define _EUSART_IF_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IF_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXUF_DEFAULT (_EUSART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _EUSART_IF_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IF_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_PERR_DEFAULT (_EUSART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _EUSART_IF_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IF_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_FERR_DEFAULT (_EUSART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _EUSART_IF_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IF_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_MPAF_DEFAULT (_EUSART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR (0x1UL << 11) /**< Load Error Interrupt Flag */
+#define _EUSART_IF_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IF_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_LOADERR_DEFAULT (_EUSART_IF_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _EUSART_IF_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IF_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CCF_DEFAULT (_EUSART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _EUSART_IF_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_TXIDLE_DEFAULT (_EUSART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU (0x1UL << 16) /**< CS Wake-up Interrupt Flag */
+#define _EUSART_IF_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IF_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IF_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_CSWU_DEFAULT (_EUSART_IF_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF (0x1UL << 18) /**< Start Frame Interrupt Flag */
+#define _EUSART_IF_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IF_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IF_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_STARTF_DEFAULT (_EUSART_IF_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF (0x1UL << 19) /**< Signal Frame Interrupt Flag */
+#define _EUSART_IF_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IF_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IF_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_SIGF_DEFAULT (_EUSART_IF_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete Interrupt Flag */
+#define _EUSART_IF_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IF_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_AUTOBAUDDONE_DEFAULT (_EUSART_IF_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO (0x1UL << 25) /**< RX Timeout Interrupt Flag */
+#define _EUSART_IF_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IF_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IF_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IF */
+#define EUSART_IF_RXTO_DEFAULT (_EUSART_IF_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IF */
+
+/* Bit fields for EUSART IEN */
+#define _EUSART_IEN_RESETVALUE 0x00000000UL /**< Default value for EUSART_IEN */
+#define _EUSART_IEN_MASK 0x030D3FFFUL /**< Mask for EUSART_IEN */
+#define EUSART_IEN_TXC (0x1UL << 0) /**< TX Complete Enable */
+#define _EUSART_IEN_TXC_SHIFT 0 /**< Shift value for EUSART_TXC */
+#define _EUSART_IEN_TXC_MASK 0x1UL /**< Bit mask for EUSART_TXC */
+#define _EUSART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXC_DEFAULT (_EUSART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL (0x1UL << 1) /**< TX FIFO Level Enable */
+#define _EUSART_IEN_TXFL_SHIFT 1 /**< Shift value for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_MASK 0x2UL /**< Bit mask for EUSART_TXFL */
+#define _EUSART_IEN_TXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXFL_DEFAULT (_EUSART_IEN_TXFL_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL (0x1UL << 2) /**< RX FIFO Level Enable */
+#define _EUSART_IEN_RXFL_SHIFT 2 /**< Shift value for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_MASK 0x4UL /**< Bit mask for EUSART_RXFL */
+#define _EUSART_IEN_RXFL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFL_DEFAULT (_EUSART_IEN_RXFL_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL (0x1UL << 3) /**< RX FIFO Full Enable */
+#define _EUSART_IEN_RXFULL_SHIFT 3 /**< Shift value for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for EUSART_RXFULL */
+#define _EUSART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXFULL_DEFAULT (_EUSART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF (0x1UL << 4) /**< RX FIFO Overflow Enable */
+#define _EUSART_IEN_RXOF_SHIFT 4 /**< Shift value for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_MASK 0x10UL /**< Bit mask for EUSART_RXOF */
+#define _EUSART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXOF_DEFAULT (_EUSART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF (0x1UL << 5) /**< RX FIFO Underflow Enable */
+#define _EUSART_IEN_RXUF_SHIFT 5 /**< Shift value for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_MASK 0x20UL /**< Bit mask for EUSART_RXUF */
+#define _EUSART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXUF_DEFAULT (_EUSART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF (0x1UL << 6) /**< TX FIFO Overflow Enable */
+#define _EUSART_IEN_TXOF_SHIFT 6 /**< Shift value for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_MASK 0x40UL /**< Bit mask for EUSART_TXOF */
+#define _EUSART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXOF_DEFAULT (_EUSART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF (0x1UL << 7) /**< TX FIFO Underflow Enable */
+#define _EUSART_IEN_TXUF_SHIFT 7 /**< Shift value for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_MASK 0x80UL /**< Bit mask for EUSART_TXUF */
+#define _EUSART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXUF_DEFAULT (_EUSART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR (0x1UL << 8) /**< Parity Error Enable */
+#define _EUSART_IEN_PERR_SHIFT 8 /**< Shift value for EUSART_PERR */
+#define _EUSART_IEN_PERR_MASK 0x100UL /**< Bit mask for EUSART_PERR */
+#define _EUSART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_PERR_DEFAULT (_EUSART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR (0x1UL << 9) /**< Framing Error Enable */
+#define _EUSART_IEN_FERR_SHIFT 9 /**< Shift value for EUSART_FERR */
+#define _EUSART_IEN_FERR_MASK 0x200UL /**< Bit mask for EUSART_FERR */
+#define _EUSART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_FERR_DEFAULT (_EUSART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Addr Frame Enable */
+#define _EUSART_IEN_MPAF_SHIFT 10 /**< Shift value for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_MASK 0x400UL /**< Bit mask for EUSART_MPAF */
+#define _EUSART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_MPAF_DEFAULT (_EUSART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR (0x1UL << 11) /**< Load Error Enable */
+#define _EUSART_IEN_LOADERR_SHIFT 11 /**< Shift value for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_MASK 0x800UL /**< Bit mask for EUSART_LOADERR */
+#define _EUSART_IEN_LOADERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_LOADERR_DEFAULT (_EUSART_IEN_LOADERR_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail Enable */
+#define _EUSART_IEN_CCF_SHIFT 12 /**< Shift value for EUSART_CCF */
+#define _EUSART_IEN_CCF_MASK 0x1000UL /**< Bit mask for EUSART_CCF */
+#define _EUSART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CCF_DEFAULT (_EUSART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE (0x1UL << 13) /**< TX IDLE Enable */
+#define _EUSART_IEN_TXIDLE_SHIFT 13 /**< Shift value for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for EUSART_TXIDLE */
+#define _EUSART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_TXIDLE_DEFAULT (_EUSART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU (0x1UL << 16) /**< CS Wake-up Enable */
+#define _EUSART_IEN_CSWU_SHIFT 16 /**< Shift value for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_MASK 0x10000UL /**< Bit mask for EUSART_CSWU */
+#define _EUSART_IEN_CSWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_CSWU_DEFAULT (_EUSART_IEN_CSWU_DEFAULT << 16) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF (0x1UL << 18) /**< Start Frame Enable */
+#define _EUSART_IEN_STARTF_SHIFT 18 /**< Shift value for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_MASK 0x40000UL /**< Bit mask for EUSART_STARTF */
+#define _EUSART_IEN_STARTF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_STARTF_DEFAULT (_EUSART_IEN_STARTF_DEFAULT << 18) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF (0x1UL << 19) /**< Signal Frame Enable */
+#define _EUSART_IEN_SIGF_SHIFT 19 /**< Shift value for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_MASK 0x80000UL /**< Bit mask for EUSART_SIGF */
+#define _EUSART_IEN_SIGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_SIGF_DEFAULT (_EUSART_IEN_SIGF_DEFAULT << 19) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE (0x1UL << 24) /**< Auto Baud Complete Enable */
+#define _EUSART_IEN_AUTOBAUDDONE_SHIFT 24 /**< Shift value for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_MASK 0x1000000UL /**< Bit mask for EUSART_AUTOBAUDDONE */
+#define _EUSART_IEN_AUTOBAUDDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_AUTOBAUDDONE_DEFAULT (_EUSART_IEN_AUTOBAUDDONE_DEFAULT << 24) /**< Shifted mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO (0x1UL << 25) /**< RX Timeout Enable */
+#define _EUSART_IEN_RXTO_SHIFT 25 /**< Shift value for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_MASK 0x2000000UL /**< Bit mask for EUSART_RXTO */
+#define _EUSART_IEN_RXTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_IEN */
+#define EUSART_IEN_RXTO_DEFAULT (_EUSART_IEN_RXTO_DEFAULT << 25) /**< Shifted mode DEFAULT for EUSART_IEN */
+
+/* Bit fields for EUSART SYNCBUSY */
+#define _EUSART_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for EUSART_SYNCBUSY */
+#define _EUSART_SYNCBUSY_MASK 0x00000FFFUL /**< Mask for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV (0x1UL << 0) /**< SYNCBUSY for DIV in CLKDIV */
+#define _EUSART_SYNCBUSY_DIV_SHIFT 0 /**< Shift value for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_MASK 0x1UL /**< Bit mask for EUSART_DIV */
+#define _EUSART_SYNCBUSY_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_DIV_DEFAULT (_EUSART_SYNCBUSY_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN (0x1UL << 1) /**< SYNCBUSY for RXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_RXTEN_SHIFT 1 /**< Shift value for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_MASK 0x2UL /**< Bit mask for EUSART_RXTEN */
+#define _EUSART_SYNCBUSY_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXTEN_DEFAULT (_EUSART_SYNCBUSY_RXTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN (0x1UL << 2) /**< SYNCBUSY for TXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_TXTEN_SHIFT 2 /**< Shift value for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_MASK 0x4UL /**< Bit mask for EUSART_TXTEN */
+#define _EUSART_SYNCBUSY_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTEN_DEFAULT (_EUSART_SYNCBUSY_TXTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN (0x1UL << 3) /**< SYNCBUSY for RXEN in CMD */
+#define _EUSART_SYNCBUSY_RXEN_SHIFT 3 /**< Shift value for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_MASK 0x8UL /**< Bit mask for EUSART_RXEN */
+#define _EUSART_SYNCBUSY_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXEN_DEFAULT (_EUSART_SYNCBUSY_RXEN_DEFAULT << 3) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS (0x1UL << 4) /**< SYNCBUSY for RXDIS in CMD */
+#define _EUSART_SYNCBUSY_RXDIS_SHIFT 4 /**< Shift value for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_MASK 0x10UL /**< Bit mask for EUSART_RXDIS */
+#define _EUSART_SYNCBUSY_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXDIS_DEFAULT (_EUSART_SYNCBUSY_RXDIS_DEFAULT << 4) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN (0x1UL << 5) /**< SYNCBUSY for TXEN in CMD */
+#define _EUSART_SYNCBUSY_TXEN_SHIFT 5 /**< Shift value for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_MASK 0x20UL /**< Bit mask for EUSART_TXEN */
+#define _EUSART_SYNCBUSY_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXEN_DEFAULT (_EUSART_SYNCBUSY_TXEN_DEFAULT << 5) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS (0x1UL << 6) /**< SYNCBUSY for TXDIS in CMD */
+#define _EUSART_SYNCBUSY_TXDIS_SHIFT 6 /**< Shift value for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_MASK 0x40UL /**< Bit mask for EUSART_TXDIS */
+#define _EUSART_SYNCBUSY_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXDIS_DEFAULT (_EUSART_SYNCBUSY_TXDIS_DEFAULT << 6) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN (0x1UL << 7) /**< SYNCBUSY for RXBLOCKEN in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_SHIFT 7 /**< Shift value for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_MASK 0x80UL /**< Bit mask for EUSART_RXBLOCKEN */
+#define _EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKEN_DEFAULT << 7) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS (0x1UL << 8) /**< SYNCBUSY for RXBLOCKDIS in CMD */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_SHIFT 8 /**< Shift value for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_MASK 0x100UL /**< Bit mask for EUSART_RXBLOCKDIS */
+#define _EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT (_EUSART_SYNCBUSY_RXBLOCKDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN (0x1UL << 9) /**< SYNCBUSY for TXTRIEN in CMD */
+#define _EUSART_SYNCBUSY_TXTRIEN_SHIFT 9 /**< Shift value for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_MASK 0x200UL /**< Bit mask for EUSART_TXTRIEN */
+#define _EUSART_SYNCBUSY_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIEN_DEFAULT (_EUSART_SYNCBUSY_TXTRIEN_DEFAULT << 9) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS (0x1UL << 10) /**< SYNCBUSY in TXTRIDIS in CMD */
+#define _EUSART_SYNCBUSY_TXTRIDIS_SHIFT 10 /**< Shift value for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_MASK 0x400UL /**< Bit mask for EUSART_TXTRIDIS */
+#define _EUSART_SYNCBUSY_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_TXTRIDIS_DEFAULT (_EUSART_SYNCBUSY_TXTRIDIS_DEFAULT << 10) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN (0x1UL << 11) /**< SYNCBUSY for AUTOTXTEN in TRIGCTRL */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_SHIFT 11 /**< Shift value for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_MASK 0x800UL /**< Bit mask for EUSART_AUTOTXTEN */
+#define _EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for EUSART_SYNCBUSY */
+#define EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT (_EUSART_SYNCBUSY_AUTOTXTEN_DEFAULT << 11) /**< Shifted mode DEFAULT for EUSART_SYNCBUSY */
+
+/** @} End of group EFR32ZG23_EUSART_BitFields */
+/** @} End of group EFR32ZG23_EUSART */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_EUSART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_fsrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_fsrco.h
new file mode 100644
index 000000000..149865580
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_fsrco.h
@@ -0,0 +1,75 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 FSRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_FSRCO_H
+#define EFR32ZG23_FSRCO_H
+#define FSRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_FSRCO FSRCO
+ * @{
+ * @brief EFR32ZG23 FSRCO Register Declaration.
+ *****************************************************************************/
+
+/** FSRCO Register Declaration. */
+typedef struct fsrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ uint32_t RESERVED0[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ uint32_t RESERVED1[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ uint32_t RESERVED2[1023U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+} FSRCO_TypeDef;
+/** @} End of group EFR32ZG23_FSRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_FSRCO
+ * @{
+ * @defgroup EFR32ZG23_FSRCO_BitFields FSRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for FSRCO IPVERSION */
+#define _FSRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for FSRCO_IPVERSION */
+#define _FSRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for FSRCO_IPVERSION */
+#define FSRCO_IPVERSION_IPVERSION_DEFAULT (_FSRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for FSRCO_IPVERSION */
+
+/** @} End of group EFR32ZG23_FSRCO_BitFields */
+/** @} End of group EFR32ZG23_FSRCO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_FSRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpcrc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpcrc.h
new file mode 100644
index 000000000..d9fed2abf
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpcrc.h
@@ -0,0 +1,246 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 GPCRC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_GPCRC_H
+#define EFR32ZG23_GPCRC_H
+#define GPCRC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_GPCRC GPCRC
+ * @{
+ * @brief EFR32ZG23 GPCRC Register Declaration.
+ *****************************************************************************/
+
+/** GPCRC Register Declaration. */
+typedef struct gpcrc_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t EN; /**< CRC Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t INIT; /**< CRC Init Value */
+ __IOM uint32_t POLY; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA; /**< CRC Data Register */
+ __IM uint32_t DATAREV; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED0[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t EN_SET; /**< CRC Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t INIT_SET; /**< CRC Init Value */
+ __IOM uint32_t POLY_SET; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_SET; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_SET; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_SET; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_SET; /**< CRC Data Register */
+ __IM uint32_t DATAREV_SET; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_SET; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED1[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t EN_CLR; /**< CRC Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t INIT_CLR; /**< CRC Init Value */
+ __IOM uint32_t POLY_CLR; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_CLR; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_CLR; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_CLR; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_CLR; /**< CRC Data Register */
+ __IM uint32_t DATAREV_CLR; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_CLR; /**< CRC Data Byte Reverse Register */
+ uint32_t RESERVED2[1012U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t EN_TGL; /**< CRC Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t INIT_TGL; /**< CRC Init Value */
+ __IOM uint32_t POLY_TGL; /**< CRC Polynomial Value */
+ __IOM uint32_t INPUTDATA_TGL; /**< Input 32-bit Data Register */
+ __IOM uint32_t INPUTDATAHWORD_TGL; /**< Input 16-bit Data Register */
+ __IOM uint32_t INPUTDATABYTE_TGL; /**< Input 8-bit Data Register */
+ __IM uint32_t DATA_TGL; /**< CRC Data Register */
+ __IM uint32_t DATAREV_TGL; /**< CRC Data Reverse Register */
+ __IM uint32_t DATABYTEREV_TGL; /**< CRC Data Byte Reverse Register */
+} GPCRC_TypeDef;
+/** @} End of group EFR32ZG23_GPCRC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_GPCRC
+ * @{
+ * @defgroup EFR32ZG23_GPCRC_BitFields GPCRC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for GPCRC IPVERSION */
+#define _GPCRC_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_IPVERSION */
+#define _GPCRC_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_IPVERSION */
+#define GPCRC_IPVERSION_IPVERSION_DEFAULT (_GPCRC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_IPVERSION */
+
+/* Bit fields for GPCRC EN */
+#define _GPCRC_EN_RESETVALUE 0x00000000UL /**< Default value for GPCRC_EN */
+#define _GPCRC_EN_MASK 0x00000001UL /**< Mask for GPCRC_EN */
+#define GPCRC_EN_EN (0x1UL << 0) /**< CRC Enable */
+#define _GPCRC_EN_EN_SHIFT 0 /**< Shift value for GPCRC_EN */
+#define _GPCRC_EN_EN_MASK 0x1UL /**< Bit mask for GPCRC_EN */
+#define _GPCRC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_EN */
+#define _GPCRC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for GPCRC_EN */
+#define _GPCRC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for GPCRC_EN */
+#define GPCRC_EN_EN_DEFAULT (_GPCRC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_EN */
+#define GPCRC_EN_EN_DISABLE (_GPCRC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for GPCRC_EN */
+#define GPCRC_EN_EN_ENABLE (_GPCRC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for GPCRC_EN */
+
+/* Bit fields for GPCRC CTRL */
+#define _GPCRC_CTRL_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CTRL */
+#define _GPCRC_CTRL_MASK 0x00002710UL /**< Mask for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL (0x1UL << 4) /**< Polynomial Select */
+#define _GPCRC_CTRL_POLYSEL_SHIFT 4 /**< Shift value for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_MASK 0x10UL /**< Bit mask for GPCRC_POLYSEL */
+#define _GPCRC_CTRL_POLYSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC32 0x00000000UL /**< Mode CRC32 for GPCRC_CTRL */
+#define _GPCRC_CTRL_POLYSEL_CRC16 0x00000001UL /**< Mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_DEFAULT (_GPCRC_CTRL_POLYSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC32 (_GPCRC_CTRL_POLYSEL_CRC32 << 4) /**< Shifted mode CRC32 for GPCRC_CTRL */
+#define GPCRC_CTRL_POLYSEL_CRC16 (_GPCRC_CTRL_POLYSEL_CRC16 << 4) /**< Shifted mode CRC16 for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE (0x1UL << 8) /**< Byte Mode Enable */
+#define _GPCRC_CTRL_BYTEMODE_SHIFT 8 /**< Shift value for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_MASK 0x100UL /**< Bit mask for GPCRC_BYTEMODE */
+#define _GPCRC_CTRL_BYTEMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEMODE_DEFAULT (_GPCRC_CTRL_BYTEMODE_DEFAULT << 8) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE (0x1UL << 9) /**< Byte-level Bit Reverse Enable */
+#define _GPCRC_CTRL_BITREVERSE_SHIFT 9 /**< Shift value for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_MASK 0x200UL /**< Bit mask for GPCRC_BITREVERSE */
+#define _GPCRC_CTRL_BITREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BITREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_DEFAULT (_GPCRC_CTRL_BITREVERSE_DEFAULT << 9) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_NORMAL (_GPCRC_CTRL_BITREVERSE_NORMAL << 9) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BITREVERSE_REVERSED (_GPCRC_CTRL_BITREVERSE_REVERSED << 9) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE (0x1UL << 10) /**< Byte Reverse Mode */
+#define _GPCRC_CTRL_BYTEREVERSE_SHIFT 10 /**< Shift value for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_MASK 0x400UL /**< Bit mask for GPCRC_BYTEREVERSE */
+#define _GPCRC_CTRL_BYTEREVERSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_NORMAL 0x00000000UL /**< Mode NORMAL for GPCRC_CTRL */
+#define _GPCRC_CTRL_BYTEREVERSE_REVERSED 0x00000001UL /**< Mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_DEFAULT (_GPCRC_CTRL_BYTEREVERSE_DEFAULT << 10) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_NORMAL (_GPCRC_CTRL_BYTEREVERSE_NORMAL << 10) /**< Shifted mode NORMAL for GPCRC_CTRL */
+#define GPCRC_CTRL_BYTEREVERSE_REVERSED (_GPCRC_CTRL_BYTEREVERSE_REVERSED << 10) /**< Shifted mode REVERSED for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT (0x1UL << 13) /**< Auto Init Enable */
+#define _GPCRC_CTRL_AUTOINIT_SHIFT 13 /**< Shift value for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_MASK 0x2000UL /**< Bit mask for GPCRC_AUTOINIT */
+#define _GPCRC_CTRL_AUTOINIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CTRL */
+#define GPCRC_CTRL_AUTOINIT_DEFAULT (_GPCRC_CTRL_AUTOINIT_DEFAULT << 13) /**< Shifted mode DEFAULT for GPCRC_CTRL */
+
+/* Bit fields for GPCRC CMD */
+#define _GPCRC_CMD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_CMD */
+#define _GPCRC_CMD_MASK 0x80000001UL /**< Mask for GPCRC_CMD */
+#define GPCRC_CMD_INIT (0x1UL << 0) /**< Initialization Enable */
+#define _GPCRC_CMD_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_MASK 0x1UL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_CMD_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_CMD */
+#define GPCRC_CMD_INIT_DEFAULT (_GPCRC_CMD_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_CMD */
+
+/* Bit fields for GPCRC INIT */
+#define _GPCRC_INIT_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INIT */
+#define _GPCRC_INIT_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_SHIFT 0 /**< Shift value for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INIT */
+#define _GPCRC_INIT_INIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INIT */
+#define GPCRC_INIT_INIT_DEFAULT (_GPCRC_INIT_INIT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INIT */
+
+/* Bit fields for GPCRC POLY */
+#define _GPCRC_POLY_RESETVALUE 0x00000000UL /**< Default value for GPCRC_POLY */
+#define _GPCRC_POLY_MASK 0x0000FFFFUL /**< Mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_SHIFT 0 /**< Shift value for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_MASK 0xFFFFUL /**< Bit mask for GPCRC_POLY */
+#define _GPCRC_POLY_POLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_POLY */
+#define GPCRC_POLY_POLY_DEFAULT (_GPCRC_POLY_POLY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_POLY */
+
+/* Bit fields for GPCRC INPUTDATA */
+#define _GPCRC_INPUTDATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_SHIFT 0 /**< Shift value for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_INPUTDATA */
+#define _GPCRC_INPUTDATA_INPUTDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATA */
+#define GPCRC_INPUTDATA_INPUTDATA_DEFAULT (_GPCRC_INPUTDATA_INPUTDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATA */
+
+/* Bit fields for GPCRC INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_MASK 0x0000FFFFUL /**< Mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_SHIFT 0 /**< Shift value for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_MASK 0xFFFFUL /**< Bit mask for GPCRC_INPUTDATAHWORD */
+#define _GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATAHWORD */
+#define GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT (_GPCRC_INPUTDATAHWORD_INPUTDATAHWORD_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATAHWORD*/
+
+/* Bit fields for GPCRC INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_RESETVALUE 0x00000000UL /**< Default value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_MASK 0x000000FFUL /**< Mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_SHIFT 0 /**< Shift value for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_MASK 0xFFUL /**< Bit mask for GPCRC_INPUTDATABYTE */
+#define _GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_INPUTDATABYTE */
+#define GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT (_GPCRC_INPUTDATABYTE_INPUTDATABYTE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_INPUTDATABYTE*/
+
+/* Bit fields for GPCRC DATA */
+#define _GPCRC_DATA_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATA */
+#define _GPCRC_DATA_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_SHIFT 0 /**< Shift value for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATA */
+#define _GPCRC_DATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATA */
+#define GPCRC_DATA_DATA_DEFAULT (_GPCRC_DATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATA */
+
+/* Bit fields for GPCRC DATAREV */
+#define _GPCRC_DATAREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_SHIFT 0 /**< Shift value for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATAREV */
+#define _GPCRC_DATAREV_DATAREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATAREV */
+#define GPCRC_DATAREV_DATAREV_DEFAULT (_GPCRC_DATAREV_DATAREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATAREV */
+
+/* Bit fields for GPCRC DATABYTEREV */
+#define _GPCRC_DATABYTEREV_RESETVALUE 0x00000000UL /**< Default value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_SHIFT 0 /**< Shift value for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_MASK 0xFFFFFFFFUL /**< Bit mask for GPCRC_DATABYTEREV */
+#define _GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPCRC_DATABYTEREV */
+#define GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT (_GPCRC_DATABYTEREV_DATABYTEREV_DEFAULT << 0) /**< Shifted mode DEFAULT for GPCRC_DATABYTEREV */
+
+/** @} End of group EFR32ZG23_GPCRC_BitFields */
+/** @} End of group EFR32ZG23_GPCRC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_GPCRC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio.h
new file mode 100644
index 000000000..aac7b214e
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio.h
@@ -0,0 +1,2824 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 GPIO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_GPIO_H
+#define EFR32ZG23_GPIO_H
+#define GPIO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+
+#include "efr32zg23_gpio_port.h"
+
+typedef struct gpio_acmproute_typedef{
+ __IOM uint32_t ROUTEEN; /**< ACMP0 pin enable */
+ __IOM uint32_t ACMPOUTROUTE; /**< ACMPOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_ACMPROUTE_TypeDef;
+
+typedef struct gpio_cmuroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< CMU pin enable */
+ __IOM uint32_t CLKIN0ROUTE; /**< CLKIN0 port/pin select */
+ __IOM uint32_t CLKOUT0ROUTE; /**< CLKOUT0 port/pin select */
+ __IOM uint32_t CLKOUT1ROUTE; /**< CLKOUT1 port/pin select */
+ __IOM uint32_t CLKOUT2ROUTE; /**< CLKOUT2 port/pin select */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+} GPIO_CMUROUTE_TypeDef;
+
+typedef struct gpio_eusartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< EUSART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t SCLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_EUSARTROUTE_TypeDef;
+
+typedef struct gpio_frcroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< FRC pin enable */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DFRAMEROUTE; /**< DFRAME port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_FRCROUTE_TypeDef;
+
+typedef struct gpio_i2croute_typedef{
+ __IOM uint32_t ROUTEEN; /**< I2C0 pin enable */
+ __IOM uint32_t SCLROUTE; /**< SCL port/pin select */
+ __IOM uint32_t SDAROUTE; /**< SDA port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_I2CROUTE_TypeDef;
+
+typedef struct gpio_keyscanroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< KEYSCAN pin enable */
+ __IOM uint32_t COLOUT0ROUTE; /**< COLOUT0 port/pin select */
+ __IOM uint32_t COLOUT1ROUTE; /**< COLOUT1 port/pin select */
+ __IOM uint32_t COLOUT2ROUTE; /**< COLOUT2 port/pin select */
+ __IOM uint32_t COLOUT3ROUTE; /**< COLOUT3 port/pin select */
+ __IOM uint32_t COLOUT4ROUTE; /**< COLOUT4 port/pin select */
+ __IOM uint32_t COLOUT5ROUTE; /**< COLOUT5 port/pin select */
+ __IOM uint32_t COLOUT6ROUTE; /**< COLOUT6 port/pin select */
+ __IOM uint32_t COLOUT7ROUTE; /**< COLOUT7 port/pin select */
+ __IOM uint32_t ROWSENSE0ROUTE; /**< ROWSENSE0 port/pin select */
+ __IOM uint32_t ROWSENSE1ROUTE; /**< ROWSENSE1 port/pin select */
+ __IOM uint32_t ROWSENSE2ROUTE; /**< ROWSENSE2 port/pin select */
+ __IOM uint32_t ROWSENSE3ROUTE; /**< ROWSENSE3 port/pin select */
+ __IOM uint32_t ROWSENSE4ROUTE; /**< ROWSENSE4 port/pin select */
+ __IOM uint32_t ROWSENSE5ROUTE; /**< ROWSENSE5 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_KEYSCANROUTE_TypeDef;
+
+typedef struct gpio_lesenseroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< LESENSE pin enable */
+ __IOM uint32_t CH0OUTROUTE; /**< CH0OUT port/pin select */
+ __IOM uint32_t CH1OUTROUTE; /**< CH1OUT port/pin select */
+ __IOM uint32_t CH2OUTROUTE; /**< CH2OUT port/pin select */
+ __IOM uint32_t CH3OUTROUTE; /**< CH3OUT port/pin select */
+ __IOM uint32_t CH4OUTROUTE; /**< CH4OUT port/pin select */
+ __IOM uint32_t CH5OUTROUTE; /**< CH5OUT port/pin select */
+ __IOM uint32_t CH6OUTROUTE; /**< CH6OUT port/pin select */
+ __IOM uint32_t CH7OUTROUTE; /**< CH7OUT port/pin select */
+ __IOM uint32_t CH8OUTROUTE; /**< CH8OUT port/pin select */
+ __IOM uint32_t CH9OUTROUTE; /**< CH9OUT port/pin select */
+ __IOM uint32_t CH10OUTROUTE; /**< CH10OUT port/pin select */
+ __IOM uint32_t CH11OUTROUTE; /**< CH11OUT port/pin select */
+ __IOM uint32_t CH12OUTROUTE; /**< CH12OUT port/pin select */
+ __IOM uint32_t CH13OUTROUTE; /**< CH13OUT port/pin select */
+ __IOM uint32_t CH14OUTROUTE; /**< CH14OUT port/pin select */
+ __IOM uint32_t CH15OUTROUTE; /**< CH15OUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_LESENSEROUTE_TypeDef;
+
+typedef struct gpio_letimerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< LETIMER pin enable */
+ __IOM uint32_t OUT0ROUTE; /**< OUT0 port/pin select */
+ __IOM uint32_t OUT1ROUTE; /**< OUT1 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_LETIMERROUTE_TypeDef;
+
+typedef struct gpio_modemroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< MODEM pin enable */
+ __IOM uint32_t ANT0ROUTE; /**< ANT0 port/pin select */
+ __IOM uint32_t ANT1ROUTE; /**< ANT1 port/pin select */
+ __IOM uint32_t ANTROLLOVERROUTE; /**< ANTROLLOVER port/pin select */
+ __IOM uint32_t ANTRR0ROUTE; /**< ANTRR0 port/pin select */
+ __IOM uint32_t ANTRR1ROUTE; /**< ANTRR1 port/pin select */
+ __IOM uint32_t ANTRR2ROUTE; /**< ANTRR2 port/pin select */
+ __IOM uint32_t ANTRR3ROUTE; /**< ANTRR3 port/pin select */
+ __IOM uint32_t ANTRR4ROUTE; /**< ANTRR4 port/pin select */
+ __IOM uint32_t ANTRR5ROUTE; /**< ANTRR5 port/pin select */
+ __IOM uint32_t ANTSWENROUTE; /**< ANTSWEN port/pin select */
+ __IOM uint32_t ANTSWUSROUTE; /**< ANTSWUS port/pin select */
+ __IOM uint32_t ANTTRIGROUTE; /**< ANTTRIG port/pin select */
+ __IOM uint32_t ANTTRIGSTOPROUTE; /**< ANTTRIGSTOP port/pin select */
+ __IOM uint32_t DCLKROUTE; /**< DCLK port/pin select */
+ __IOM uint32_t DINROUTE; /**< DIN port/pin select */
+ __IOM uint32_t DOUTROUTE; /**< DOUT port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_MODEMROUTE_TypeDef;
+
+typedef struct gpio_pcntroute_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t S0INROUTE; /**< S0IN port/pin select */
+ __IOM uint32_t S1INROUTE; /**< S1IN port/pin select */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+} GPIO_PCNTROUTE_TypeDef;
+
+typedef struct gpio_prsroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< PRS0 pin enable */
+ __IOM uint32_t ASYNCH0ROUTE; /**< ASYNCH0 port/pin select */
+ __IOM uint32_t ASYNCH1ROUTE; /**< ASYNCH1 port/pin select */
+ __IOM uint32_t ASYNCH2ROUTE; /**< ASYNCH2 port/pin select */
+ __IOM uint32_t ASYNCH3ROUTE; /**< ASYNCH3 port/pin select */
+ __IOM uint32_t ASYNCH4ROUTE; /**< ASYNCH4 port/pin select */
+ __IOM uint32_t ASYNCH5ROUTE; /**< ASYNCH5 port/pin select */
+ __IOM uint32_t ASYNCH6ROUTE; /**< ASYNCH6 port/pin select */
+ __IOM uint32_t ASYNCH7ROUTE; /**< ASYNCH7 port/pin select */
+ __IOM uint32_t ASYNCH8ROUTE; /**< ASYNCH8 port/pin select */
+ __IOM uint32_t ASYNCH9ROUTE; /**< ASYNCH9 port/pin select */
+ __IOM uint32_t ASYNCH10ROUTE; /**< ASYNCH10 port/pin select */
+ __IOM uint32_t ASYNCH11ROUTE; /**< ASYNCH11 port/pin select */
+ __IOM uint32_t SYNCH0ROUTE; /**< SYNCH0 port/pin select */
+ __IOM uint32_t SYNCH1ROUTE; /**< SYNCH1 port/pin select */
+ __IOM uint32_t SYNCH2ROUTE; /**< SYNCH2 port/pin select */
+ __IOM uint32_t SYNCH3ROUTE; /**< SYNCH3 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_PRSROUTE_TypeDef;
+
+typedef struct gpio_syxoroute_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t BUFOUTREQINASYNCROUTE; /**< BUFOUTREQINASYNC port/pin select */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+} GPIO_SYXOROUTE_TypeDef;
+
+typedef struct gpio_timerroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< TIMER0 pin enable */
+ __IOM uint32_t CC0ROUTE; /**< CC0 port/pin select */
+ __IOM uint32_t CC1ROUTE; /**< CC1 port/pin select */
+ __IOM uint32_t CC2ROUTE; /**< CC2 port/pin select */
+ __IOM uint32_t CDTI0ROUTE; /**< CDTI0 port/pin select */
+ __IOM uint32_t CDTI1ROUTE; /**< CDTI1 port/pin select */
+ __IOM uint32_t CDTI2ROUTE; /**< CDTI2 port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_TIMERROUTE_TypeDef;
+
+typedef struct gpio_usartroute_typedef{
+ __IOM uint32_t ROUTEEN; /**< USART0 pin enable */
+ __IOM uint32_t CSROUTE; /**< CS port/pin select */
+ __IOM uint32_t CTSROUTE; /**< CTS port/pin select */
+ __IOM uint32_t RTSROUTE; /**< RTS port/pin select */
+ __IOM uint32_t RXROUTE; /**< RX port/pin select */
+ __IOM uint32_t CLKROUTE; /**< SCLK port/pin select */
+ __IOM uint32_t TXROUTE; /**< TX port/pin select */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+} GPIO_USARTROUTE_TypeDef;
+
+typedef struct gpio_typedef{
+ __IM uint32_t IPVERSION; /**< main */
+ uint32_t RESERVED0[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P[4U]; /**< */
+ uint32_t RESERVED1[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS; /**< Lock Status */
+ uint32_t RESERVED3[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC; /**< CD Bus allocation */
+ uint32_t RESERVED4[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED5[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED7[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN; /**< Trace Route Pin Enable */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ uint32_t RESERVED9[4U]; /**< Reserved for future use */
+ __IOM uint32_t LCDSEG; /**< LCD Segment Enable */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCOM; /**< LCD Common Enable */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE[2U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE; /**< cmu DBUS config registers */
+ uint32_t RESERVED12[4U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE[3U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE[2U]; /**< i2c0 DBUS config registers */
+ GPIO_KEYSCANROUTE_TypeDef KEYSCANROUTE; /**< keyscan DBUS config registers */
+ GPIO_LESENSEROUTE_TypeDef LESENSEROUTE; /**< lesense DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE; /**< modem DBUS config registers */
+ GPIO_PCNTROUTE_TypeDef PCNTROUTE[1U]; /**< pcnt0 DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE[1U]; /**< prs0 DBUS config registers */
+ uint32_t RESERVED13[23U]; /**< Reserved for future use */
+ GPIO_SYXOROUTE_TypeDef SYXOROUTE[1U]; /**< syxo0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE[1U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED14[530U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< main */
+ uint32_t RESERVED15[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_SET[4U]; /**< */
+ uint32_t RESERVED16[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED17[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_SET; /**< Lock Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_SET; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_SET; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_SET; /**< CD Bus allocation */
+ uint32_t RESERVED19[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_SET; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_SET; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_SET; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_SET; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_SET; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_SET; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_SET; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_SET; /**< EM4 wakeup polarity */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_SET; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_SET; /**< Trace Route Pin Enable */
+ uint32_t RESERVED23[2U]; /**< Reserved for future use */
+ uint32_t RESERVED24[4U]; /**< Reserved for future use */
+ __IOM uint32_t LCDSEG_SET; /**< LCD Segment Enable */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCOM_SET; /**< LCD Common Enable */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_SET[2U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_SET; /**< cmu DBUS config registers */
+ uint32_t RESERVED27[4U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_SET[3U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_SET; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_SET[2U]; /**< i2c0 DBUS config registers */
+ GPIO_KEYSCANROUTE_TypeDef KEYSCANROUTE_SET; /**< keyscan DBUS config registers */
+ GPIO_LESENSEROUTE_TypeDef LESENSEROUTE_SET; /**< lesense DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_SET; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_SET; /**< modem DBUS config registers */
+ GPIO_PCNTROUTE_TypeDef PCNTROUTE_SET[1U]; /**< pcnt0 DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_SET[1U]; /**< prs0 DBUS config registers */
+ uint32_t RESERVED28[23U]; /**< Reserved for future use */
+ GPIO_SYXOROUTE_TypeDef SYXOROUTE_SET[1U]; /**< syxo0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_SET[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_SET[1U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED29[530U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< main */
+ uint32_t RESERVED30[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_CLR[4U]; /**< */
+ uint32_t RESERVED31[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED32[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_CLR; /**< Lock Status */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_CLR; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_CLR; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_CLR; /**< CD Bus allocation */
+ uint32_t RESERVED34[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_CLR; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_CLR; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_CLR; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_CLR; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_CLR; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_CLR; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED35[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED36[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_CLR; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_CLR; /**< EM4 wakeup polarity */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_CLR; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_CLR; /**< Trace Route Pin Enable */
+ uint32_t RESERVED38[2U]; /**< Reserved for future use */
+ uint32_t RESERVED39[4U]; /**< Reserved for future use */
+ __IOM uint32_t LCDSEG_CLR; /**< LCD Segment Enable */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCOM_CLR; /**< LCD Common Enable */
+ uint32_t RESERVED41[3U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_CLR[2U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_CLR; /**< cmu DBUS config registers */
+ uint32_t RESERVED42[4U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_CLR[3U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_CLR; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_CLR[2U]; /**< i2c0 DBUS config registers */
+ GPIO_KEYSCANROUTE_TypeDef KEYSCANROUTE_CLR; /**< keyscan DBUS config registers */
+ GPIO_LESENSEROUTE_TypeDef LESENSEROUTE_CLR; /**< lesense DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_CLR; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_CLR; /**< modem DBUS config registers */
+ GPIO_PCNTROUTE_TypeDef PCNTROUTE_CLR[1U]; /**< pcnt0 DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_CLR[1U]; /**< prs0 DBUS config registers */
+ uint32_t RESERVED43[23U]; /**< Reserved for future use */
+ GPIO_SYXOROUTE_TypeDef SYXOROUTE_CLR[1U]; /**< syxo0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_CLR[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_CLR[1U]; /**< usart0 DBUS config registers */
+ uint32_t RESERVED44[530U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< main */
+ uint32_t RESERVED45[11U]; /**< Reserved for future use */
+ GPIO_PORT_TypeDef P_TGL[4U]; /**< */
+ uint32_t RESERVED46[132U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ uint32_t RESERVED47[3U]; /**< Reserved for future use */
+ __IM uint32_t GPIOLOCKSTATUS_TGL; /**< Lock Status */
+ uint32_t RESERVED48[3U]; /**< Reserved for future use */
+ __IOM uint32_t ABUSALLOC_TGL; /**< A Bus allocation */
+ __IOM uint32_t BBUSALLOC_TGL; /**< B Bus allocation */
+ __IOM uint32_t CDBUSALLOC_TGL; /**< CD Bus allocation */
+ uint32_t RESERVED49[53U]; /**< Reserved for future use */
+ __IOM uint32_t EXTIPSELL_TGL; /**< External Interrupt Port Select Low */
+ __IOM uint32_t EXTIPSELH_TGL; /**< External interrupt Port Select High */
+ __IOM uint32_t EXTIPINSELL_TGL; /**< External Interrupt Pin Select Low */
+ __IOM uint32_t EXTIPINSELH_TGL; /**< External Interrupt Pin Select High */
+ __IOM uint32_t EXTIRISE_TGL; /**< External Interrupt Rising Edge Trigger */
+ __IOM uint32_t EXTIFALL_TGL; /**< External Interrupt Falling Edge Trigger */
+ uint32_t RESERVED50[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED51[1U]; /**< Reserved for future use */
+ __IOM uint32_t EM4WUEN_TGL; /**< EM4 wakeup enable */
+ __IOM uint32_t EM4WUPOL_TGL; /**< EM4 wakeup polarity */
+ uint32_t RESERVED52[3U]; /**< Reserved for future use */
+ __IOM uint32_t DBGROUTEPEN_TGL; /**< Debugger Route Pin enable */
+ __IOM uint32_t TRACEROUTEPEN_TGL; /**< Trace Route Pin Enable */
+ uint32_t RESERVED53[2U]; /**< Reserved for future use */
+ uint32_t RESERVED54[4U]; /**< Reserved for future use */
+ __IOM uint32_t LCDSEG_TGL; /**< LCD Segment Enable */
+ uint32_t RESERVED55[3U]; /**< Reserved for future use */
+ __IOM uint32_t LCDCOM_TGL; /**< LCD Common Enable */
+ uint32_t RESERVED56[3U]; /**< Reserved for future use */
+ GPIO_ACMPROUTE_TypeDef ACMPROUTE_TGL[2U]; /**< acmp0 DBUS config registers */
+ GPIO_CMUROUTE_TypeDef CMUROUTE_TGL; /**< cmu DBUS config registers */
+ uint32_t RESERVED57[4U]; /**< Reserved for future use */
+ GPIO_EUSARTROUTE_TypeDef EUSARTROUTE_TGL[3U]; /**< eusart0 DBUS config registers */
+ GPIO_FRCROUTE_TypeDef FRCROUTE_TGL; /**< frc DBUS config registers */
+ GPIO_I2CROUTE_TypeDef I2CROUTE_TGL[2U]; /**< i2c0 DBUS config registers */
+ GPIO_KEYSCANROUTE_TypeDef KEYSCANROUTE_TGL; /**< keyscan DBUS config registers */
+ GPIO_LESENSEROUTE_TypeDef LESENSEROUTE_TGL; /**< lesense DBUS config registers */
+ GPIO_LETIMERROUTE_TypeDef LETIMERROUTE_TGL; /**< letimer DBUS config registers */
+ GPIO_MODEMROUTE_TypeDef MODEMROUTE_TGL; /**< modem DBUS config registers */
+ GPIO_PCNTROUTE_TypeDef PCNTROUTE_TGL[1U]; /**< pcnt0 DBUS config registers */
+ GPIO_PRSROUTE_TypeDef PRSROUTE_TGL[1U]; /**< prs0 DBUS config registers */
+ uint32_t RESERVED58[23U]; /**< Reserved for future use */
+ GPIO_SYXOROUTE_TypeDef SYXOROUTE_TGL[1U]; /**< syxo0 DBUS config registers */
+ GPIO_TIMERROUTE_TypeDef TIMERROUTE_TGL[5U]; /**< timer0 DBUS config registers */
+ GPIO_USARTROUTE_TypeDef USARTROUTE_TGL[1U]; /**< usart0 DBUS config registers */
+} GPIO_TypeDef;
+
+/* Bit fields for GPIO IPVERSION */
+#define _GPIO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for GPIO_IPVERSION */
+#define _GPIO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_IPVERSION_IPVERSION_DEFAULT (_GPIO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IPVERSION */
+#define GPIO_PORTA 0x00000000UL /**< PORTA index */
+#define GPIO_PORTB 0x00000001UL /**< PORTB index */
+#define GPIO_PORTC 0x00000002UL /**< PORTC index */
+#define GPIO_PORTD 0x00000003UL /**< PORTD index */
+
+/* Bit fields for GPIO LOCK */
+#define _GPIO_LOCK_RESETVALUE 0x0000A534UL /**< Default value for GPIO_LOCK */
+#define _GPIO_LOCK_MASK 0x0000FFFFUL /**< Mask for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for GPIO_LOCKKEY */
+#define _GPIO_LOCK_LOCKKEY_DEFAULT 0x0000A534UL /**< Mode DEFAULT for GPIO_LOCK */
+#define _GPIO_LOCK_LOCKKEY_UNLOCK 0x0000A534UL /**< Mode UNLOCK for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_DEFAULT (_GPIO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LOCK */
+#define GPIO_LOCK_LOCKKEY_UNLOCK (_GPIO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for GPIO_LOCK */
+
+/* Bit fields for GPIO GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_RESETVALUE 0x00000000UL /**< Default value for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_MASK 0x00000001UL /**< Mask for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK (0x1UL << 0) /**< GPIO LOCK status */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_SHIFT 0 /**< Shift value for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_MASK 0x1UL /**< Bit mask for GPIO_LOCK */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for GPIO_GPIOLOCKSTATUS */
+#define _GPIO_GPIOLOCKSTATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for GPIO_GPIOLOCKSTATUS */
+#define GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT (_GPIO_GPIOLOCKSTATUS_LOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for GPIO_GPIOLOCKSTATUS*/
+#define GPIO_GPIOLOCKSTATUS_LOCK_LOCKED (_GPIO_GPIOLOCKSTATUS_LOCK_LOCKED << 0) /**< Shifted mode LOCKED for GPIO_GPIOLOCKSTATUS */
+
+/* Bit fields for GPIO ABUSALLOC */
+#define _GPIO_ABUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_SHIFT 0 /**< Shift value for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_MASK 0xFUL /**< Bit mask for GPIO_AEVEN0 */
+#define _GPIO_ABUSALLOC_AEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_DEFAULT (_GPIO_ABUSALLOC_AEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_TRISTATE (_GPIO_ABUSALLOC_AEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ADC0 (_GPIO_ABUSALLOC_AEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ACMP0 (_GPIO_ABUSALLOC_AEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_ACMP1 (_GPIO_ABUSALLOC_AEVEN0_ACMP1 << 0) /**< Shifted mode ACMP1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN0_VDAC0CH0 (_GPIO_ABUSALLOC_AEVEN0_VDAC0CH0 << 0) /**< Shifted mode VDAC0CH0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_SHIFT 8 /**< Shift value for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_AEVEN1 */
+#define _GPIO_ABUSALLOC_AEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AEVEN1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_DEFAULT (_GPIO_ABUSALLOC_AEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_TRISTATE (_GPIO_ABUSALLOC_AEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ADC0 (_GPIO_ABUSALLOC_AEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ACMP0 (_GPIO_ABUSALLOC_AEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_ACMP1 (_GPIO_ABUSALLOC_AEVEN1_ACMP1 << 8) /**< Shifted mode ACMP1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AEVEN1_VDAC0CH1 (_GPIO_ABUSALLOC_AEVEN1_VDAC0CH1 << 8) /**< Shifted mode VDAC0CH1 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_SHIFT 16 /**< Shift value for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_MASK 0xF0000UL /**< Bit mask for GPIO_AODD0 */
+#define _GPIO_ABUSALLOC_AODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_DEFAULT (_GPIO_ABUSALLOC_AODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_TRISTATE (_GPIO_ABUSALLOC_AODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ADC0 (_GPIO_ABUSALLOC_AODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ACMP0 (_GPIO_ABUSALLOC_AODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_ACMP1 (_GPIO_ABUSALLOC_AODD0_ACMP1 << 16) /**< Shifted mode ACMP1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD0_VDAC0CH0 (_GPIO_ABUSALLOC_AODD0_VDAC0CH0 << 16) /**< Shifted mode VDAC0CH0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_SHIFT 24 /**< Shift value for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_MASK 0xF000000UL /**< Bit mask for GPIO_AODD1 */
+#define _GPIO_ABUSALLOC_AODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_ABUSALLOC */
+#define _GPIO_ABUSALLOC_AODD1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_DEFAULT (_GPIO_ABUSALLOC_AODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_TRISTATE (_GPIO_ABUSALLOC_AODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ADC0 (_GPIO_ABUSALLOC_AODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ACMP0 (_GPIO_ABUSALLOC_AODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_ACMP1 (_GPIO_ABUSALLOC_AODD1_ACMP1 << 24) /**< Shifted mode ACMP1 for GPIO_ABUSALLOC */
+#define GPIO_ABUSALLOC_AODD1_VDAC0CH1 (_GPIO_ABUSALLOC_AODD1_VDAC0CH1 << 24) /**< Shifted mode VDAC0CH1 for GPIO_ABUSALLOC */
+
+/* Bit fields for GPIO BBUSALLOC */
+#define _GPIO_BBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_SHIFT 0 /**< Shift value for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_MASK 0xFUL /**< Bit mask for GPIO_BEVEN0 */
+#define _GPIO_BBUSALLOC_BEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_DEFAULT (_GPIO_BBUSALLOC_BEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_TRISTATE (_GPIO_BBUSALLOC_BEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ADC0 (_GPIO_BBUSALLOC_BEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ACMP0 (_GPIO_BBUSALLOC_BEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_ACMP1 (_GPIO_BBUSALLOC_BEVEN0_ACMP1 << 0) /**< Shifted mode ACMP1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN0_VDAC0CH0 (_GPIO_BBUSALLOC_BEVEN0_VDAC0CH0 << 0) /**< Shifted mode VDAC0CH0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_SHIFT 8 /**< Shift value for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_BEVEN1 */
+#define _GPIO_BBUSALLOC_BEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BEVEN1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_DEFAULT (_GPIO_BBUSALLOC_BEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_TRISTATE (_GPIO_BBUSALLOC_BEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ADC0 (_GPIO_BBUSALLOC_BEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ACMP0 (_GPIO_BBUSALLOC_BEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_ACMP1 (_GPIO_BBUSALLOC_BEVEN1_ACMP1 << 8) /**< Shifted mode ACMP1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BEVEN1_VDAC0CH1 (_GPIO_BBUSALLOC_BEVEN1_VDAC0CH1 << 8) /**< Shifted mode VDAC0CH1 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_SHIFT 16 /**< Shift value for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_MASK 0xF0000UL /**< Bit mask for GPIO_BODD0 */
+#define _GPIO_BBUSALLOC_BODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_DEFAULT (_GPIO_BBUSALLOC_BODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_TRISTATE (_GPIO_BBUSALLOC_BODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ADC0 (_GPIO_BBUSALLOC_BODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ACMP0 (_GPIO_BBUSALLOC_BODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_ACMP1 (_GPIO_BBUSALLOC_BODD0_ACMP1 << 16) /**< Shifted mode ACMP1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD0_VDAC0CH0 (_GPIO_BBUSALLOC_BODD0_VDAC0CH0 << 16) /**< Shifted mode VDAC0CH0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_SHIFT 24 /**< Shift value for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_MASK 0xF000000UL /**< Bit mask for GPIO_BODD1 */
+#define _GPIO_BBUSALLOC_BODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_BBUSALLOC */
+#define _GPIO_BBUSALLOC_BODD1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_DEFAULT (_GPIO_BBUSALLOC_BODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_TRISTATE (_GPIO_BBUSALLOC_BODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ADC0 (_GPIO_BBUSALLOC_BODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ACMP0 (_GPIO_BBUSALLOC_BODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_ACMP1 (_GPIO_BBUSALLOC_BODD1_ACMP1 << 24) /**< Shifted mode ACMP1 for GPIO_BBUSALLOC */
+#define GPIO_BBUSALLOC_BODD1_VDAC0CH1 (_GPIO_BBUSALLOC_BODD1_VDAC0CH1 << 24) /**< Shifted mode VDAC0CH1 for GPIO_BBUSALLOC */
+
+/* Bit fields for GPIO CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_RESETVALUE 0x00000000UL /**< Default value for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_MASK 0x0F0F0F0FUL /**< Mask for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_SHIFT 0 /**< Shift value for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_MASK 0xFUL /**< Bit mask for GPIO_CDEVEN0 */
+#define _GPIO_CDBUSALLOC_CDEVEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN0_TRISTATE << 0) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ADC0 (_GPIO_CDBUSALLOC_CDEVEN0_ADC0 << 0) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN0_ACMP0 << 0) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_ACMP1 (_GPIO_CDBUSALLOC_CDEVEN0_ACMP1 << 0) /**< Shifted mode ACMP1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN0_VDAC0CH0 (_GPIO_CDBUSALLOC_CDEVEN0_VDAC0CH0 << 0) /**< Shifted mode VDAC0CH0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_SHIFT 8 /**< Shift value for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_MASK 0xF00UL /**< Bit mask for GPIO_CDEVEN1 */
+#define _GPIO_CDBUSALLOC_CDEVEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDEVEN1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_DEFAULT (_GPIO_CDBUSALLOC_CDEVEN1_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_TRISTATE (_GPIO_CDBUSALLOC_CDEVEN1_TRISTATE << 8) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ADC0 (_GPIO_CDBUSALLOC_CDEVEN1_ADC0 << 8) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ACMP0 (_GPIO_CDBUSALLOC_CDEVEN1_ACMP0 << 8) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_ACMP1 (_GPIO_CDBUSALLOC_CDEVEN1_ACMP1 << 8) /**< Shifted mode ACMP1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDEVEN1_VDAC0CH1 (_GPIO_CDBUSALLOC_CDEVEN1_VDAC0CH1 << 8) /**< Shifted mode VDAC0CH1 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_SHIFT 16 /**< Shift value for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_MASK 0xF0000UL /**< Bit mask for GPIO_CDODD0 */
+#define _GPIO_CDBUSALLOC_CDODD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD0_VDAC0CH0 0x00000004UL /**< Mode VDAC0CH0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_DEFAULT (_GPIO_CDBUSALLOC_CDODD0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_TRISTATE (_GPIO_CDBUSALLOC_CDODD0_TRISTATE << 16) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ADC0 (_GPIO_CDBUSALLOC_CDODD0_ADC0 << 16) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ACMP0 (_GPIO_CDBUSALLOC_CDODD0_ACMP0 << 16) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_ACMP1 (_GPIO_CDBUSALLOC_CDODD0_ACMP1 << 16) /**< Shifted mode ACMP1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD0_VDAC0CH0 (_GPIO_CDBUSALLOC_CDODD0_VDAC0CH0 << 16) /**< Shifted mode VDAC0CH0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_SHIFT 24 /**< Shift value for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_MASK 0xF000000UL /**< Bit mask for GPIO_CDODD1 */
+#define _GPIO_CDBUSALLOC_CDODD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_TRISTATE 0x00000000UL /**< Mode TRISTATE for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ADC0 0x00000001UL /**< Mode ADC0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ACMP0 0x00000002UL /**< Mode ACMP0 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_ACMP1 0x00000003UL /**< Mode ACMP1 for GPIO_CDBUSALLOC */
+#define _GPIO_CDBUSALLOC_CDODD1_VDAC0CH1 0x00000004UL /**< Mode VDAC0CH1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_DEFAULT (_GPIO_CDBUSALLOC_CDODD1_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_TRISTATE (_GPIO_CDBUSALLOC_CDODD1_TRISTATE << 24) /**< Shifted mode TRISTATE for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ADC0 (_GPIO_CDBUSALLOC_CDODD1_ADC0 << 24) /**< Shifted mode ADC0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ACMP0 (_GPIO_CDBUSALLOC_CDODD1_ACMP0 << 24) /**< Shifted mode ACMP0 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_ACMP1 (_GPIO_CDBUSALLOC_CDODD1_ACMP1 << 24) /**< Shifted mode ACMP1 for GPIO_CDBUSALLOC */
+#define GPIO_CDBUSALLOC_CDODD1_VDAC0CH1 (_GPIO_CDBUSALLOC_CDODD1_VDAC0CH1 << 24) /**< Shifted mode VDAC0CH1 for GPIO_CDBUSALLOC */
+
+/* Bit fields for GPIO EXTIPSELL */
+#define _GPIO_EXTIPSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTA (_GPIO_EXTIPSELL_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTB (_GPIO_EXTIPSELL_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTC (_GPIO_EXTIPSELL_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL0_PORTD (_GPIO_EXTIPSELL_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTA (_GPIO_EXTIPSELL_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTB (_GPIO_EXTIPSELL_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTC (_GPIO_EXTIPSELL_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL1_PORTD (_GPIO_EXTIPSELL_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTA (_GPIO_EXTIPSELL_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTB (_GPIO_EXTIPSELL_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTC (_GPIO_EXTIPSELL_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL2_PORTD (_GPIO_EXTIPSELL_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTA (_GPIO_EXTIPSELL_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTB (_GPIO_EXTIPSELL_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTC (_GPIO_EXTIPSELL_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL3_PORTD (_GPIO_EXTIPSELL_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPSEL4 */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL4_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTA (_GPIO_EXTIPSELL_EXTIPSEL4_PORTA << 16) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTB (_GPIO_EXTIPSELL_EXTIPSEL4_PORTB << 16) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTC (_GPIO_EXTIPSELL_EXTIPSEL4_PORTC << 16) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL4_PORTD (_GPIO_EXTIPSELL_EXTIPSEL4_PORTD << 16) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPSEL5 */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL5_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTA (_GPIO_EXTIPSELL_EXTIPSEL5_PORTA << 20) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTB (_GPIO_EXTIPSELL_EXTIPSEL5_PORTB << 20) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTC (_GPIO_EXTIPSELL_EXTIPSEL5_PORTC << 20) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL5_PORTD (_GPIO_EXTIPSELL_EXTIPSEL5_PORTD << 20) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPSEL6 */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL6_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTA (_GPIO_EXTIPSELL_EXTIPSEL6_PORTA << 24) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTB (_GPIO_EXTIPSELL_EXTIPSEL6_PORTB << 24) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTC (_GPIO_EXTIPSELL_EXTIPSEL6_PORTC << 24) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL6_PORTD (_GPIO_EXTIPSELL_EXTIPSEL6_PORTD << 24) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPSEL7 */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELL */
+#define _GPIO_EXTIPSELL_EXTIPSEL7_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT (_GPIO_EXTIPSELL_EXTIPSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTA (_GPIO_EXTIPSELL_EXTIPSEL7_PORTA << 28) /**< Shifted mode PORTA for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTB (_GPIO_EXTIPSELL_EXTIPSEL7_PORTB << 28) /**< Shifted mode PORTB for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTC (_GPIO_EXTIPSELL_EXTIPSEL7_PORTC << 28) /**< Shifted mode PORTC for GPIO_EXTIPSELL */
+#define GPIO_EXTIPSELL_EXTIPSEL7_PORTD (_GPIO_EXTIPSELL_EXTIPSEL7_PORTD << 28) /**< Shifted mode PORTD for GPIO_EXTIPSELL */
+
+/* Bit fields for GPIO EXTIPSELH */
+#define _GPIO_EXTIPSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPSEL0 */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL0_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTA (_GPIO_EXTIPSELH_EXTIPSEL0_PORTA << 0) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTB (_GPIO_EXTIPSELH_EXTIPSEL0_PORTB << 0) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTC (_GPIO_EXTIPSELH_EXTIPSEL0_PORTC << 0) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL0_PORTD (_GPIO_EXTIPSELH_EXTIPSEL0_PORTD << 0) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPSEL1 */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL1_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTA (_GPIO_EXTIPSELH_EXTIPSEL1_PORTA << 4) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTB (_GPIO_EXTIPSELH_EXTIPSEL1_PORTB << 4) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTC (_GPIO_EXTIPSELH_EXTIPSEL1_PORTC << 4) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL1_PORTD (_GPIO_EXTIPSELH_EXTIPSEL1_PORTD << 4) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPSEL2 */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL2_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTA (_GPIO_EXTIPSELH_EXTIPSEL2_PORTA << 8) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTB (_GPIO_EXTIPSELH_EXTIPSEL2_PORTB << 8) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTC (_GPIO_EXTIPSELH_EXTIPSEL2_PORTC << 8) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL2_PORTD (_GPIO_EXTIPSELH_EXTIPSEL2_PORTD << 8) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPSEL3 */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTA 0x00000000UL /**< Mode PORTA for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTB 0x00000001UL /**< Mode PORTB for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTC 0x00000002UL /**< Mode PORTC for GPIO_EXTIPSELH */
+#define _GPIO_EXTIPSELH_EXTIPSEL3_PORTD 0x00000003UL /**< Mode PORTD for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT (_GPIO_EXTIPSELH_EXTIPSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTA (_GPIO_EXTIPSELH_EXTIPSEL3_PORTA << 12) /**< Shifted mode PORTA for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTB (_GPIO_EXTIPSELH_EXTIPSEL3_PORTB << 12) /**< Shifted mode PORTB for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTC (_GPIO_EXTIPSELH_EXTIPSEL3_PORTC << 12) /**< Shifted mode PORTC for GPIO_EXTIPSELH */
+#define GPIO_EXTIPSELH_EXTIPSEL3_PORTD (_GPIO_EXTIPSELH_EXTIPSEL3_PORTD << 12) /**< Shifted mode PORTD for GPIO_EXTIPSELH */
+
+/* Bit fields for GPIO EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_MASK 0x33333333UL /**< Mask for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN0 << 0) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN1 << 0) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN2 << 0) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL0_PIN3 << 0) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN0 << 4) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN1 << 4) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN2 << 4) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL1_PIN3 << 4) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN0 << 8) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN1 << 8) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN2 << 8) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL2_PIN3 << 8) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN0 << 12) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN1 << 12) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN2 << 12) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL3_PIN3 << 12) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_SHIFT 16 /**< Shift value for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_MASK 0x30000UL /**< Bit mask for GPIO_EXTIPINSEL4 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN0 << 16) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN1 << 16) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN2 << 16) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL4_PIN3 << 16) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_SHIFT 20 /**< Shift value for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_MASK 0x300000UL /**< Bit mask for GPIO_EXTIPINSEL5 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN0 << 20) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN1 << 20) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN2 << 20) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL5_PIN3 << 20) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_SHIFT 24 /**< Shift value for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_MASK 0x3000000UL /**< Bit mask for GPIO_EXTIPINSEL6 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN0 << 24) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN1 << 24) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN2 << 24) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL6_PIN3 << 24) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_SHIFT 28 /**< Shift value for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_MASK 0x30000000UL /**< Bit mask for GPIO_EXTIPINSEL7 */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 0x00000000UL /**< Mode PIN0 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 0x00000001UL /**< Mode PIN1 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 0x00000002UL /**< Mode PIN2 for GPIO_EXTIPINSELL */
+#define _GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 0x00000003UL /**< Mode PIN3 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT (_GPIO_EXTIPINSELL_EXTIPINSEL7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN0 << 28) /**< Shifted mode PIN0 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN1 << 28) /**< Shifted mode PIN1 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN2 << 28) /**< Shifted mode PIN2 for GPIO_EXTIPINSELL */
+#define GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 (_GPIO_EXTIPINSELL_EXTIPINSEL7_PIN3 << 28) /**< Shifted mode PIN3 for GPIO_EXTIPINSELL */
+
+/* Bit fields for GPIO EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_MASK 0x00003333UL /**< Mask for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_SHIFT 0 /**< Shift value for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_MASK 0x3UL /**< Bit mask for GPIO_EXTIPINSEL0 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN8 << 0) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN9 << 0) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN10 << 0) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL0_PIN11 << 0) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_SHIFT 4 /**< Shift value for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_MASK 0x30UL /**< Bit mask for GPIO_EXTIPINSEL1 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN8 << 4) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN9 << 4) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN10 << 4) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL1_PIN11 << 4) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_SHIFT 8 /**< Shift value for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_MASK 0x300UL /**< Bit mask for GPIO_EXTIPINSEL2 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN8 << 8) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN9 << 8) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN10 << 8) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL2_PIN11 << 8) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_SHIFT 12 /**< Shift value for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_MASK 0x3000UL /**< Bit mask for GPIO_EXTIPINSEL3 */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 0x00000000UL /**< Mode PIN8 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 0x00000001UL /**< Mode PIN9 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 0x00000002UL /**< Mode PIN10 for GPIO_EXTIPINSELH */
+#define _GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 0x00000003UL /**< Mode PIN11 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT (_GPIO_EXTIPINSELH_EXTIPINSEL3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN8 << 12) /**< Shifted mode PIN8 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN9 << 12) /**< Shifted mode PIN9 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN10 << 12) /**< Shifted mode PIN10 for GPIO_EXTIPINSELH */
+#define GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 (_GPIO_EXTIPINSELH_EXTIPINSEL3_PIN11 << 12) /**< Shifted mode PIN11 for GPIO_EXTIPINSELH */
+
+/* Bit fields for GPIO EXTIRISE */
+#define _GPIO_EXTIRISE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_SHIFT 0 /**< Shift value for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIRISE */
+#define _GPIO_EXTIRISE_EXTIRISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIRISE */
+#define GPIO_EXTIRISE_EXTIRISE_DEFAULT (_GPIO_EXTIRISE_EXTIRISE_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIRISE */
+
+/* Bit fields for GPIO EXTIFALL */
+#define _GPIO_EXTIFALL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_MASK 0x00000FFFUL /**< Mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_SHIFT 0 /**< Shift value for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_MASK 0xFFFUL /**< Bit mask for GPIO_EXTIFALL */
+#define _GPIO_EXTIFALL_EXTIFALL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EXTIFALL */
+#define GPIO_EXTIFALL_EXTIFALL_DEFAULT (_GPIO_EXTIFALL_EXTIFALL_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EXTIFALL */
+
+/* Bit fields for GPIO IF */
+#define _GPIO_IF_RESETVALUE 0x00000000UL /**< Default value for GPIO_IF */
+#define _GPIO_IF_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IF */
+#define GPIO_IF_EXTIF0 (0x1UL << 0) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF0_SHIFT 0 /**< Shift value for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_MASK 0x1UL /**< Bit mask for GPIO_EXTIF0 */
+#define _GPIO_IF_EXTIF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF0_DEFAULT (_GPIO_IF_EXTIF0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1 (0x1UL << 1) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF1_SHIFT 1 /**< Shift value for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_MASK 0x2UL /**< Bit mask for GPIO_EXTIF1 */
+#define _GPIO_IF_EXTIF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF1_DEFAULT (_GPIO_IF_EXTIF1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2 (0x1UL << 2) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF2_SHIFT 2 /**< Shift value for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_MASK 0x4UL /**< Bit mask for GPIO_EXTIF2 */
+#define _GPIO_IF_EXTIF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF2_DEFAULT (_GPIO_IF_EXTIF2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3 (0x1UL << 3) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF3_SHIFT 3 /**< Shift value for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_MASK 0x8UL /**< Bit mask for GPIO_EXTIF3 */
+#define _GPIO_IF_EXTIF3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF3_DEFAULT (_GPIO_IF_EXTIF3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4 (0x1UL << 4) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF4_SHIFT 4 /**< Shift value for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_MASK 0x10UL /**< Bit mask for GPIO_EXTIF4 */
+#define _GPIO_IF_EXTIF4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF4_DEFAULT (_GPIO_IF_EXTIF4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5 (0x1UL << 5) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF5_SHIFT 5 /**< Shift value for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_MASK 0x20UL /**< Bit mask for GPIO_EXTIF5 */
+#define _GPIO_IF_EXTIF5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF5_DEFAULT (_GPIO_IF_EXTIF5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6 (0x1UL << 6) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF6_SHIFT 6 /**< Shift value for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_MASK 0x40UL /**< Bit mask for GPIO_EXTIF6 */
+#define _GPIO_IF_EXTIF6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF6_DEFAULT (_GPIO_IF_EXTIF6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7 (0x1UL << 7) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF7_SHIFT 7 /**< Shift value for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_MASK 0x80UL /**< Bit mask for GPIO_EXTIF7 */
+#define _GPIO_IF_EXTIF7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF7_DEFAULT (_GPIO_IF_EXTIF7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8 (0x1UL << 8) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF8_SHIFT 8 /**< Shift value for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_MASK 0x100UL /**< Bit mask for GPIO_EXTIF8 */
+#define _GPIO_IF_EXTIF8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF8_DEFAULT (_GPIO_IF_EXTIF8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9 (0x1UL << 9) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF9_SHIFT 9 /**< Shift value for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_MASK 0x200UL /**< Bit mask for GPIO_EXTIF9 */
+#define _GPIO_IF_EXTIF9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF9_DEFAULT (_GPIO_IF_EXTIF9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10 (0x1UL << 10) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF10_SHIFT 10 /**< Shift value for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_MASK 0x400UL /**< Bit mask for GPIO_EXTIF10 */
+#define _GPIO_IF_EXTIF10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF10_DEFAULT (_GPIO_IF_EXTIF10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11 (0x1UL << 11) /**< External Pin Flag */
+#define _GPIO_IF_EXTIF11_SHIFT 11 /**< Shift value for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_MASK 0x800UL /**< Bit mask for GPIO_EXTIF11 */
+#define _GPIO_IF_EXTIF11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EXTIF11_DEFAULT (_GPIO_IF_EXTIF11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IF */
+#define _GPIO_IF_EM4WU_SHIFT 16 /**< Shift value for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WU */
+#define _GPIO_IF_EM4WU_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IF */
+#define GPIO_IF_EM4WU_DEFAULT (_GPIO_IF_EM4WU_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IF */
+
+/* Bit fields for GPIO IEN */
+#define _GPIO_IEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_IEN */
+#define _GPIO_IEN_MASK 0x0FFF0FFFUL /**< Mask for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0 (0x1UL << 0) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN0_SHIFT 0 /**< Shift value for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_MASK 0x1UL /**< Bit mask for GPIO_EXTIEN0 */
+#define _GPIO_IEN_EXTIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN0_DEFAULT (_GPIO_IEN_EXTIEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1 (0x1UL << 1) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN1_SHIFT 1 /**< Shift value for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_MASK 0x2UL /**< Bit mask for GPIO_EXTIEN1 */
+#define _GPIO_IEN_EXTIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN1_DEFAULT (_GPIO_IEN_EXTIEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2 (0x1UL << 2) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN2_SHIFT 2 /**< Shift value for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_MASK 0x4UL /**< Bit mask for GPIO_EXTIEN2 */
+#define _GPIO_IEN_EXTIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN2_DEFAULT (_GPIO_IEN_EXTIEN2_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3 (0x1UL << 3) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN3_SHIFT 3 /**< Shift value for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_MASK 0x8UL /**< Bit mask for GPIO_EXTIEN3 */
+#define _GPIO_IEN_EXTIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN3_DEFAULT (_GPIO_IEN_EXTIEN3_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4 (0x1UL << 4) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN4_SHIFT 4 /**< Shift value for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_MASK 0x10UL /**< Bit mask for GPIO_EXTIEN4 */
+#define _GPIO_IEN_EXTIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN4_DEFAULT (_GPIO_IEN_EXTIEN4_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5 (0x1UL << 5) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN5_SHIFT 5 /**< Shift value for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_MASK 0x20UL /**< Bit mask for GPIO_EXTIEN5 */
+#define _GPIO_IEN_EXTIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN5_DEFAULT (_GPIO_IEN_EXTIEN5_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6 (0x1UL << 6) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN6_SHIFT 6 /**< Shift value for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_MASK 0x40UL /**< Bit mask for GPIO_EXTIEN6 */
+#define _GPIO_IEN_EXTIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN6_DEFAULT (_GPIO_IEN_EXTIEN6_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7 (0x1UL << 7) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN7_SHIFT 7 /**< Shift value for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_MASK 0x80UL /**< Bit mask for GPIO_EXTIEN7 */
+#define _GPIO_IEN_EXTIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN7_DEFAULT (_GPIO_IEN_EXTIEN7_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8 (0x1UL << 8) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN8_SHIFT 8 /**< Shift value for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_MASK 0x100UL /**< Bit mask for GPIO_EXTIEN8 */
+#define _GPIO_IEN_EXTIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN8_DEFAULT (_GPIO_IEN_EXTIEN8_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9 (0x1UL << 9) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN9_SHIFT 9 /**< Shift value for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_MASK 0x200UL /**< Bit mask for GPIO_EXTIEN9 */
+#define _GPIO_IEN_EXTIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN9_DEFAULT (_GPIO_IEN_EXTIEN9_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10 (0x1UL << 10) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN10_SHIFT 10 /**< Shift value for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_MASK 0x400UL /**< Bit mask for GPIO_EXTIEN10 */
+#define _GPIO_IEN_EXTIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN10_DEFAULT (_GPIO_IEN_EXTIEN10_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11 (0x1UL << 11) /**< External Pin Enable */
+#define _GPIO_IEN_EXTIEN11_SHIFT 11 /**< Shift value for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_MASK 0x800UL /**< Bit mask for GPIO_EXTIEN11 */
+#define _GPIO_IEN_EXTIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EXTIEN11_DEFAULT (_GPIO_IEN_EXTIEN11_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0 (0x1UL << 16) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN0_SHIFT 16 /**< Shift value for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_MASK 0x10000UL /**< Bit mask for GPIO_EM4WUIEN0 */
+#define _GPIO_IEN_EM4WUIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN0_DEFAULT (_GPIO_IEN_EM4WUIEN0_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1 (0x1UL << 17) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN1_SHIFT 17 /**< Shift value for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_MASK 0x20000UL /**< Bit mask for GPIO_EM4WUIEN1 */
+#define _GPIO_IEN_EM4WUIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN1_DEFAULT (_GPIO_IEN_EM4WUIEN1_DEFAULT << 17) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2 (0x1UL << 18) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN2_SHIFT 18 /**< Shift value for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_MASK 0x40000UL /**< Bit mask for GPIO_EM4WUIEN2 */
+#define _GPIO_IEN_EM4WUIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN2_DEFAULT (_GPIO_IEN_EM4WUIEN2_DEFAULT << 18) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3 (0x1UL << 19) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN3_SHIFT 19 /**< Shift value for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_MASK 0x80000UL /**< Bit mask for GPIO_EM4WUIEN3 */
+#define _GPIO_IEN_EM4WUIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN3_DEFAULT (_GPIO_IEN_EM4WUIEN3_DEFAULT << 19) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4 (0x1UL << 20) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN4_SHIFT 20 /**< Shift value for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_MASK 0x100000UL /**< Bit mask for GPIO_EM4WUIEN4 */
+#define _GPIO_IEN_EM4WUIEN4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN4_DEFAULT (_GPIO_IEN_EM4WUIEN4_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5 (0x1UL << 21) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN5_SHIFT 21 /**< Shift value for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_MASK 0x200000UL /**< Bit mask for GPIO_EM4WUIEN5 */
+#define _GPIO_IEN_EM4WUIEN5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN5_DEFAULT (_GPIO_IEN_EM4WUIEN5_DEFAULT << 21) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6 (0x1UL << 22) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN6_SHIFT 22 /**< Shift value for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_MASK 0x400000UL /**< Bit mask for GPIO_EM4WUIEN6 */
+#define _GPIO_IEN_EM4WUIEN6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN6_DEFAULT (_GPIO_IEN_EM4WUIEN6_DEFAULT << 22) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7 (0x1UL << 23) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN7_SHIFT 23 /**< Shift value for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_MASK 0x800000UL /**< Bit mask for GPIO_EM4WUIEN7 */
+#define _GPIO_IEN_EM4WUIEN7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN7_DEFAULT (_GPIO_IEN_EM4WUIEN7_DEFAULT << 23) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8 (0x1UL << 24) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN8_SHIFT 24 /**< Shift value for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_MASK 0x1000000UL /**< Bit mask for GPIO_EM4WUIEN8 */
+#define _GPIO_IEN_EM4WUIEN8_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN8_DEFAULT (_GPIO_IEN_EM4WUIEN8_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9 (0x1UL << 25) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN9_SHIFT 25 /**< Shift value for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_MASK 0x2000000UL /**< Bit mask for GPIO_EM4WUIEN9 */
+#define _GPIO_IEN_EM4WUIEN9_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN9_DEFAULT (_GPIO_IEN_EM4WUIEN9_DEFAULT << 25) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10 (0x1UL << 26) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN10_SHIFT 26 /**< Shift value for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_MASK 0x4000000UL /**< Bit mask for GPIO_EM4WUIEN10 */
+#define _GPIO_IEN_EM4WUIEN10_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN10_DEFAULT (_GPIO_IEN_EM4WUIEN10_DEFAULT << 26) /**< Shifted mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11 (0x1UL << 27) /**< EM4 Wake Up Interrupt En */
+#define _GPIO_IEN_EM4WUIEN11_SHIFT 27 /**< Shift value for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_MASK 0x8000000UL /**< Bit mask for GPIO_EM4WUIEN11 */
+#define _GPIO_IEN_EM4WUIEN11_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_IEN */
+#define GPIO_IEN_EM4WUIEN11_DEFAULT (_GPIO_IEN_EM4WUIEN11_DEFAULT << 27) /**< Shifted mode DEFAULT for GPIO_IEN */
+
+/* Bit fields for GPIO EM4WUEN */
+#define _GPIO_EM4WUEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_SHIFT 16 /**< Shift value for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUEN */
+#define _GPIO_EM4WUEN_EM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUEN */
+#define GPIO_EM4WUEN_EM4WUEN_DEFAULT (_GPIO_EM4WUEN_EM4WUEN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUEN */
+
+/* Bit fields for GPIO EM4WUPOL */
+#define _GPIO_EM4WUPOL_RESETVALUE 0x00000000UL /**< Default value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_MASK 0x0FFF0000UL /**< Mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_SHIFT 16 /**< Shift value for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_MASK 0xFFF0000UL /**< Bit mask for GPIO_EM4WUPOL */
+#define _GPIO_EM4WUPOL_EM4WUPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EM4WUPOL */
+#define GPIO_EM4WUPOL_EM4WUPOL_DEFAULT (_GPIO_EM4WUPOL_EM4WUPOL_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EM4WUPOL */
+
+/* Bit fields for GPIO DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_RESETVALUE 0x0000000FUL /**< Default value for GPIO_DBGROUTEPEN */
+#define _GPIO_DBGROUTEPEN_MASK 0x0000000FUL /**< Mask for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN (0x1UL << 0) /**< Route Pin Enable */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_SHIFT 0 /**< Shift value for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_MASK 0x1UL /**< Bit mask for GPIO_SWCLKTCKPEN */
+#define _GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWCLKTCKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN (0x1UL << 1) /**< Route Location 0 */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_SHIFT 1 /**< Shift value for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_MASK 0x2UL /**< Bit mask for GPIO_SWDIOTMSPEN */
+#define _GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT (_GPIO_DBGROUTEPEN_SWDIOTMSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN (0x1UL << 2) /**< JTAG Test Debug Output Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDOPEN_SHIFT 2 /**< Shift value for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_MASK 0x4UL /**< Bit mask for GPIO_TDOPEN */
+#define _GPIO_DBGROUTEPEN_TDOPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDOPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDOPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN (0x1UL << 3) /**< JTAG Test Debug Input Pin Enable */
+#define _GPIO_DBGROUTEPEN_TDIPEN_SHIFT 3 /**< Shift value for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_MASK 0x8UL /**< Bit mask for GPIO_TDIPEN */
+#define _GPIO_DBGROUTEPEN_TDIPEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for GPIO_DBGROUTEPEN */
+#define GPIO_DBGROUTEPEN_TDIPEN_DEFAULT (_GPIO_DBGROUTEPEN_TDIPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_DBGROUTEPEN */
+
+/* Bit fields for GPIO TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TRACEROUTEPEN */
+#define _GPIO_TRACEROUTEPEN_MASK 0x0000003FUL /**< Mask for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN (0x1UL << 0) /**< Serial Wire Viewer Output Pin Enable */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_SHIFT 0 /**< Shift value for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_MASK 0x1UL /**< Bit mask for GPIO_SWVPEN */
+#define _GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT (_GPIO_TRACEROUTEPEN_SWVPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN (0x1UL << 1) /**< Trace Clk Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_SHIFT 1 /**< Shift value for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_MASK 0x2UL /**< Bit mask for GPIO_TRACECLKPEN */
+#define _GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACECLKPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN (0x1UL << 2) /**< Trace Data0 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_SHIFT 2 /**< Shift value for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_MASK 0x4UL /**< Bit mask for GPIO_TRACEDATA0PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA0PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN (0x1UL << 3) /**< Trace Data1 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_SHIFT 3 /**< Shift value for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_MASK 0x8UL /**< Bit mask for GPIO_TRACEDATA1PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA1PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN (0x1UL << 4) /**< Trace Data2 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_SHIFT 4 /**< Shift value for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_MASK 0x10UL /**< Bit mask for GPIO_TRACEDATA2PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA2PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN (0x1UL << 5) /**< Trace Data3 Pin Enable */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_SHIFT 5 /**< Shift value for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_MASK 0x20UL /**< Bit mask for GPIO_TRACEDATA3PEN */
+#define _GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TRACEROUTEPEN */
+#define GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT (_GPIO_TRACEROUTEPEN_TRACEDATA3PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TRACEROUTEPEN */
+
+/* Bit fields for GPIO LCDSEG */
+#define _GPIO_LCDSEG_RESETVALUE 0x00000000UL /**< Default value for GPIO_LCDSEG */
+#define _GPIO_LCDSEG_MASK 0x000FFFFFUL /**< Mask for GPIO_LCDSEG */
+#define _GPIO_LCDSEG_LCDSEGALLOC_SHIFT 0 /**< Shift value for GPIO_LCDSEGALLOC */
+#define _GPIO_LCDSEG_LCDSEGALLOC_MASK 0xFFFFFUL /**< Bit mask for GPIO_LCDSEGALLOC */
+#define _GPIO_LCDSEG_LCDSEGALLOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LCDSEG */
+#define GPIO_LCDSEG_LCDSEGALLOC_DEFAULT (_GPIO_LCDSEG_LCDSEGALLOC_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LCDSEG */
+
+/* Bit fields for GPIO LCDCOM */
+#define _GPIO_LCDCOM_RESETVALUE 0x00000000UL /**< Default value for GPIO_LCDCOM */
+#define _GPIO_LCDCOM_MASK 0x0000000FUL /**< Mask for GPIO_LCDCOM */
+#define _GPIO_LCDCOM_LCDCOMALLOC_SHIFT 0 /**< Shift value for GPIO_LCDCOMALLOC */
+#define _GPIO_LCDCOM_LCDCOMALLOC_MASK 0xFUL /**< Bit mask for GPIO_LCDCOMALLOC */
+#define _GPIO_LCDCOM_LCDCOMALLOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LCDCOM */
+#define GPIO_LCDCOM_LCDCOMALLOC_DEFAULT (_GPIO_LCDCOM_LCDCOMALLOC_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LCDCOM */
+
+/* Bit fields for GPIO_ACMP ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ROUTEEN */
+#define _GPIO_ACMP_ROUTEEN_MASK 0x00000001UL /**< Mask for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN (0x1UL << 0) /**< ACMPOUT pin enable control bit */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_SHIFT 0 /**< Shift value for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_MASK 0x1UL /**< Bit mask for GPIO_ACMPOUTPEN */
+#define _GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ROUTEEN */
+#define GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT (_GPIO_ACMP_ROUTEEN_ACMPOUTPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ROUTEEN */
+
+/* Bit fields for GPIO_ACMP ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_ACMP_ACMPOUTROUTE */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE */
+#define GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT (_GPIO_ACMP_ACMPOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_ACMP_ACMPOUTROUTE*/
+
+/* Bit fields for GPIO_CMU ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_ROUTEEN */
+#define _GPIO_CMU_ROUTEEN_MASK 0x0000000FUL /**< Mask for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN (0x1UL << 0) /**< CLKOUT0 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_SHIFT 0 /**< Shift value for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_CLKOUT0PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN (0x1UL << 1) /**< CLKOUT1 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_SHIFT 1 /**< Shift value for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_CLKOUT1PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN (0x1UL << 2) /**< CLKOUT2 pin enable control bit */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_SHIFT 2 /**< Shift value for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_MASK 0x4UL /**< Bit mask for GPIO_CLKOUT2PEN */
+#define _GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_ROUTEEN */
+#define GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT (_GPIO_CMU_ROUTEEN_CLKOUT2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_CMU_ROUTEEN */
+
+/* Bit fields for GPIO_CMU CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKIN0ROUTE */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKIN0ROUTE */
+#define GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKIN0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKIN0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT0ROUTE */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE */
+#define GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT0ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT1ROUTE */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE */
+#define GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT1ROUTE*/
+
+/* Bit fields for GPIO_CMU CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_CMU_CLKOUT2ROUTE */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE */
+#define GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT (_GPIO_CMU_CLKOUT2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_CMU_CLKOUT2ROUTE*/
+
+/* Bit fields for GPIO_EUSART ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_ROUTEEN */
+#define _GPIO_EUSART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_SCLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_SHIFT 3 /**< Shift value for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_MASK 0x8UL /**< Bit mask for GPIO_SCLKPEN */
+#define _GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_SCLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+#define GPIO_EUSART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_ROUTEEN */
+#define GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT (_GPIO_EUSART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_EUSART_ROUTEEN*/
+
+/* Bit fields for GPIO_EUSART CSROUTE */
+#define _GPIO_EUSART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CSROUTE */
+#define _GPIO_EUSART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PORT_DEFAULT (_GPIO_EUSART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+#define _GPIO_EUSART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CSROUTE */
+#define GPIO_EUSART_CSROUTE_PIN_DEFAULT (_GPIO_EUSART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CSROUTE*/
+
+/* Bit fields for GPIO_EUSART CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_CTSROUTE */
+#define _GPIO_EUSART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PORT_DEFAULT (_GPIO_EUSART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+#define _GPIO_EUSART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_CTSROUTE */
+#define GPIO_EUSART_CTSROUTE_PIN_DEFAULT (_GPIO_EUSART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_CTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RTSROUTE */
+#define _GPIO_EUSART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PORT_DEFAULT (_GPIO_EUSART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+#define _GPIO_EUSART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RTSROUTE */
+#define GPIO_EUSART_RTSROUTE_PIN_DEFAULT (_GPIO_EUSART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RTSROUTE*/
+
+/* Bit fields for GPIO_EUSART RXROUTE */
+#define _GPIO_EUSART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_RXROUTE */
+#define _GPIO_EUSART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PORT_DEFAULT (_GPIO_EUSART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+#define _GPIO_EUSART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_RXROUTE */
+#define GPIO_EUSART_RXROUTE_PIN_DEFAULT (_GPIO_EUSART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_RXROUTE*/
+
+/* Bit fields for GPIO_EUSART SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_SCLKROUTE */
+#define _GPIO_EUSART_SCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_SCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PORT_DEFAULT (_GPIO_EUSART_SCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+#define _GPIO_EUSART_SCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_SCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_SCLKROUTE */
+#define GPIO_EUSART_SCLKROUTE_PIN_DEFAULT (_GPIO_EUSART_SCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_SCLKROUTE*/
+
+/* Bit fields for GPIO_EUSART TXROUTE */
+#define _GPIO_EUSART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_EUSART_TXROUTE */
+#define _GPIO_EUSART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_EUSART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PORT_DEFAULT (_GPIO_EUSART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+#define _GPIO_EUSART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_EUSART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_EUSART_TXROUTE */
+#define GPIO_EUSART_TXROUTE_PIN_DEFAULT (_GPIO_EUSART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_EUSART_TXROUTE*/
+
+/* Bit fields for GPIO_FRC ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_ROUTEEN */
+#define _GPIO_FRC_ROUTEEN_MASK 0x00000007UL /**< Mask for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN (0x1UL << 0) /**< DCLK pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_SHIFT 0 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_MASK 0x1UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DCLKPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN (0x1UL << 1) /**< DFRAME pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_SHIFT 1 /**< Shift value for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_MASK 0x2UL /**< Bit mask for GPIO_DFRAMEPEN */
+#define _GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DFRAMEPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN (0x1UL << 2) /**< DOUT pin enable control bit */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_SHIFT 2 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_MASK 0x4UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_ROUTEEN */
+#define GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_FRC_ROUTEEN_DOUTPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_FRC_ROUTEEN */
+
+/* Bit fields for GPIO_FRC DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PORT_DEFAULT (_GPIO_FRC_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define _GPIO_FRC_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DCLKROUTE */
+#define GPIO_FRC_DCLKROUTE_PIN_DEFAULT (_GPIO_FRC_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DCLKROUTE */
+
+/* Bit fields for GPIO_FRC DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DFRAMEROUTE */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+#define _GPIO_FRC_DFRAMEROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DFRAMEROUTE */
+#define GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT (_GPIO_FRC_DFRAMEROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DFRAMEROUTE*/
+
+/* Bit fields for GPIO_FRC DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_FRC_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PORT_DEFAULT (_GPIO_FRC_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define _GPIO_FRC_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_FRC_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_FRC_DOUTROUTE */
+#define GPIO_FRC_DOUTROUTE_PIN_DEFAULT (_GPIO_FRC_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_FRC_DOUTROUTE */
+
+/* Bit fields for GPIO_I2C ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_ROUTEEN */
+#define _GPIO_I2C_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN (0x1UL << 0) /**< SCL pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_SHIFT 0 /**< Shift value for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_MASK 0x1UL /**< Bit mask for GPIO_SCLPEN */
+#define _GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SCLPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN (0x1UL << 1) /**< SDA pin enable control bit */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_SHIFT 1 /**< Shift value for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_MASK 0x2UL /**< Bit mask for GPIO_SDAPEN */
+#define _GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_ROUTEEN */
+#define GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT (_GPIO_I2C_ROUTEEN_SDAPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_I2C_ROUTEEN */
+
+/* Bit fields for GPIO_I2C SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SCLROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PORT_DEFAULT (_GPIO_I2C_SCLROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define _GPIO_I2C_SCLROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SCLROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SCLROUTE */
+#define GPIO_I2C_SCLROUTE_PIN_DEFAULT (_GPIO_I2C_SCLROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SCLROUTE */
+
+/* Bit fields for GPIO_I2C SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_MASK 0x000F0003UL /**< Mask for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_I2C_SDAROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PORT_DEFAULT (_GPIO_I2C_SDAROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define _GPIO_I2C_SDAROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_I2C_SDAROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_I2C_SDAROUTE */
+#define GPIO_I2C_SDAROUTE_PIN_DEFAULT (_GPIO_I2C_SDAROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_I2C_SDAROUTE */
+
+/* Bit fields for GPIO_KEYSCAN ROUTEEN */
+#define _GPIO_KEYSCAN_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROUTEEN */
+#define _GPIO_KEYSCAN_ROUTEEN_MASK 0x000000FFUL /**< Mask for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN (0x1UL << 0) /**< COLOUT0 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN_SHIFT 0 /**< Shift value for GPIO_COLOUT0PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_COLOUT0PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN (0x1UL << 1) /**< COLOUT1 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN_SHIFT 1 /**< Shift value for GPIO_COLOUT1PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_COLOUT1PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN (0x1UL << 2) /**< COLOUT2 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN_SHIFT 2 /**< Shift value for GPIO_COLOUT2PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN_MASK 0x4UL /**< Bit mask for GPIO_COLOUT2PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN (0x1UL << 3) /**< COLOUT3 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN_SHIFT 3 /**< Shift value for GPIO_COLOUT3PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN_MASK 0x8UL /**< Bit mask for GPIO_COLOUT3PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT3PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN (0x1UL << 4) /**< COLOUT4 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN_SHIFT 4 /**< Shift value for GPIO_COLOUT4PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN_MASK 0x10UL /**< Bit mask for GPIO_COLOUT4PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT4PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN (0x1UL << 5) /**< COLOUT5 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN_SHIFT 5 /**< Shift value for GPIO_COLOUT5PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN_MASK 0x20UL /**< Bit mask for GPIO_COLOUT5PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT5PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN (0x1UL << 6) /**< COLOUT6 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN_SHIFT 6 /**< Shift value for GPIO_COLOUT6PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN_MASK 0x40UL /**< Bit mask for GPIO_COLOUT6PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT6PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN (0x1UL << 7) /**< COLOUT7 pin enable control bit */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN_SHIFT 7 /**< Shift value for GPIO_COLOUT7PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN_MASK 0x80UL /**< Bit mask for GPIO_COLOUT7PEN */
+#define _GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROUTEEN */
+#define GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN_DEFAULT (_GPIO_KEYSCAN_ROUTEEN_COLOUT7PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROUTEEN*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT0ROUTE */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT0ROUTE */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT0ROUTE */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT0ROUTE */
+#define GPIO_KEYSCAN_COLOUT0ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT0ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT0ROUTE */
+#define GPIO_KEYSCAN_COLOUT0ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT0ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT1ROUTE */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT1ROUTE */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT1ROUTE */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT1ROUTE */
+#define GPIO_KEYSCAN_COLOUT1ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT1ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT1ROUTE */
+#define GPIO_KEYSCAN_COLOUT1ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT1ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT2ROUTE */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT2ROUTE */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT2ROUTE */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT2ROUTE */
+#define GPIO_KEYSCAN_COLOUT2ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT2ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT2ROUTE */
+#define GPIO_KEYSCAN_COLOUT2ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT2ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT3ROUTE */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT3ROUTE */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT3ROUTE */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT3ROUTE */
+#define GPIO_KEYSCAN_COLOUT3ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT3ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT3ROUTE */
+#define GPIO_KEYSCAN_COLOUT3ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT3ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT4ROUTE */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT4ROUTE */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT4ROUTE */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT4ROUTE */
+#define GPIO_KEYSCAN_COLOUT4ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT4ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT4ROUTE */
+#define GPIO_KEYSCAN_COLOUT4ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT4ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT5ROUTE */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT5ROUTE */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT5ROUTE */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT5ROUTE */
+#define GPIO_KEYSCAN_COLOUT5ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT5ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT5ROUTE */
+#define GPIO_KEYSCAN_COLOUT5ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT5ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT6ROUTE */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT6ROUTE */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT6ROUTE */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT6ROUTE */
+#define GPIO_KEYSCAN_COLOUT6ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT6ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT6ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT6ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT6ROUTE */
+#define GPIO_KEYSCAN_COLOUT6ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT6ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT6ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN COLOUT7ROUTE */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_COLOUT7ROUTE */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_COLOUT7ROUTE */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT7ROUTE */
+#define GPIO_KEYSCAN_COLOUT7ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_COLOUT7ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT7ROUTE*/
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_COLOUT7ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_COLOUT7ROUTE */
+#define GPIO_KEYSCAN_COLOUT7ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_COLOUT7ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_COLOUT7ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE0ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE0ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE0ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE0ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE0ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE0ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE0ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE0ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE0ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE1ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE1ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE1ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE1ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE1ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE1ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE1ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE1ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE1ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE2ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE2ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE2ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE2ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE2ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE2ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE2ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE2ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE2ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE3ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE3ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE3ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE3ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE3ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE3ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE3ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE3ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE3ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE4ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE4ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE4ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE4ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE4ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE4ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE4ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE4ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE4ROUTE*/
+
+/* Bit fields for GPIO_KEYSCAN ROWSENSE5ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_KEYSCAN_ROWSENSE5ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_KEYSCAN_ROWSENSE5ROUTE */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE5ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE5ROUTE_PORT_DEFAULT (_GPIO_KEYSCAN_ROWSENSE5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE5ROUTE*/
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_KEYSCAN_ROWSENSE5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_KEYSCAN_ROWSENSE5ROUTE*/
+#define GPIO_KEYSCAN_ROWSENSE5ROUTE_PIN_DEFAULT (_GPIO_KEYSCAN_ROWSENSE5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_KEYSCAN_ROWSENSE5ROUTE*/
+
+/* Bit fields for GPIO_LESENSE ROUTEEN */
+#define _GPIO_LESENSE_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_ROUTEEN */
+#define _GPIO_LESENSE_ROUTEEN_MASK 0x0000FFFFUL /**< Mask for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH0OUTPEN (0x1UL << 0) /**< CH0OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH0OUTPEN_SHIFT 0 /**< Shift value for GPIO_CH0OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH0OUTPEN_MASK 0x1UL /**< Bit mask for GPIO_CH0OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH0OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH0OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH0OUTPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH1OUTPEN (0x1UL << 1) /**< CH1OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH1OUTPEN_SHIFT 1 /**< Shift value for GPIO_CH1OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH1OUTPEN_MASK 0x2UL /**< Bit mask for GPIO_CH1OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH1OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH1OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH1OUTPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH2OUTPEN (0x1UL << 2) /**< CH2OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH2OUTPEN_SHIFT 2 /**< Shift value for GPIO_CH2OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH2OUTPEN_MASK 0x4UL /**< Bit mask for GPIO_CH2OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH2OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH2OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH2OUTPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH3OUTPEN (0x1UL << 3) /**< CH3OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH3OUTPEN_SHIFT 3 /**< Shift value for GPIO_CH3OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH3OUTPEN_MASK 0x8UL /**< Bit mask for GPIO_CH3OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH3OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH3OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH3OUTPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH4OUTPEN (0x1UL << 4) /**< CH4OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH4OUTPEN_SHIFT 4 /**< Shift value for GPIO_CH4OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH4OUTPEN_MASK 0x10UL /**< Bit mask for GPIO_CH4OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH4OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH4OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH4OUTPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH5OUTPEN (0x1UL << 5) /**< CH5OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH5OUTPEN_SHIFT 5 /**< Shift value for GPIO_CH5OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH5OUTPEN_MASK 0x20UL /**< Bit mask for GPIO_CH5OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH5OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH5OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH5OUTPEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH6OUTPEN (0x1UL << 6) /**< CH6OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH6OUTPEN_SHIFT 6 /**< Shift value for GPIO_CH6OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH6OUTPEN_MASK 0x40UL /**< Bit mask for GPIO_CH6OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH6OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH6OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH6OUTPEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH7OUTPEN (0x1UL << 7) /**< CH7OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH7OUTPEN_SHIFT 7 /**< Shift value for GPIO_CH7OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH7OUTPEN_MASK 0x80UL /**< Bit mask for GPIO_CH7OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH7OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH7OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH7OUTPEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH8OUTPEN (0x1UL << 8) /**< CH8OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH8OUTPEN_SHIFT 8 /**< Shift value for GPIO_CH8OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH8OUTPEN_MASK 0x100UL /**< Bit mask for GPIO_CH8OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH8OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH8OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH8OUTPEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH9OUTPEN (0x1UL << 9) /**< CH9OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH9OUTPEN_SHIFT 9 /**< Shift value for GPIO_CH9OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH9OUTPEN_MASK 0x200UL /**< Bit mask for GPIO_CH9OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH9OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH9OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH9OUTPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH10OUTPEN (0x1UL << 10) /**< CH10OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH10OUTPEN_SHIFT 10 /**< Shift value for GPIO_CH10OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH10OUTPEN_MASK 0x400UL /**< Bit mask for GPIO_CH10OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH10OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH10OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH10OUTPEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH11OUTPEN (0x1UL << 11) /**< CH11OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH11OUTPEN_SHIFT 11 /**< Shift value for GPIO_CH11OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH11OUTPEN_MASK 0x800UL /**< Bit mask for GPIO_CH11OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH11OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH11OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH11OUTPEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH12OUTPEN (0x1UL << 12) /**< CH12OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH12OUTPEN_SHIFT 12 /**< Shift value for GPIO_CH12OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH12OUTPEN_MASK 0x1000UL /**< Bit mask for GPIO_CH12OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH12OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH12OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH12OUTPEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH13OUTPEN (0x1UL << 13) /**< CH13OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH13OUTPEN_SHIFT 13 /**< Shift value for GPIO_CH13OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH13OUTPEN_MASK 0x2000UL /**< Bit mask for GPIO_CH13OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH13OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH13OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH13OUTPEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH14OUTPEN (0x1UL << 14) /**< CH14OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH14OUTPEN_SHIFT 14 /**< Shift value for GPIO_CH14OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH14OUTPEN_MASK 0x4000UL /**< Bit mask for GPIO_CH14OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH14OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH14OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH14OUTPEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+#define GPIO_LESENSE_ROUTEEN_CH15OUTPEN (0x1UL << 15) /**< CH15OUT pin enable control bit */
+#define _GPIO_LESENSE_ROUTEEN_CH15OUTPEN_SHIFT 15 /**< Shift value for GPIO_CH15OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH15OUTPEN_MASK 0x8000UL /**< Bit mask for GPIO_CH15OUTPEN */
+#define _GPIO_LESENSE_ROUTEEN_CH15OUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_ROUTEEN */
+#define GPIO_LESENSE_ROUTEEN_CH15OUTPEN_DEFAULT (_GPIO_LESENSE_ROUTEEN_CH15OUTPEN_DEFAULT << 15) /**< Shifted mode DEFAULT for GPIO_LESENSE_ROUTEEN*/
+
+/* Bit fields for GPIO_LESENSE CH0OUTROUTE */
+#define _GPIO_LESENSE_CH0OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH0OUTROUTE */
+#define _GPIO_LESENSE_CH0OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH0OUTROUTE */
+#define _GPIO_LESENSE_CH0OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH0OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH0OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH0OUTROUTE */
+#define GPIO_LESENSE_CH0OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH0OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH0OUTROUTE*/
+#define _GPIO_LESENSE_CH0OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH0OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH0OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH0OUTROUTE */
+#define GPIO_LESENSE_CH0OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH0OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH0OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH1OUTROUTE */
+#define _GPIO_LESENSE_CH1OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH1OUTROUTE */
+#define _GPIO_LESENSE_CH1OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH1OUTROUTE */
+#define _GPIO_LESENSE_CH1OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH1OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH1OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH1OUTROUTE */
+#define GPIO_LESENSE_CH1OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH1OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH1OUTROUTE*/
+#define _GPIO_LESENSE_CH1OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH1OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH1OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH1OUTROUTE */
+#define GPIO_LESENSE_CH1OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH1OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH1OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH2OUTROUTE */
+#define _GPIO_LESENSE_CH2OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH2OUTROUTE */
+#define _GPIO_LESENSE_CH2OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH2OUTROUTE */
+#define _GPIO_LESENSE_CH2OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH2OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH2OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH2OUTROUTE */
+#define GPIO_LESENSE_CH2OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH2OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH2OUTROUTE*/
+#define _GPIO_LESENSE_CH2OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH2OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH2OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH2OUTROUTE */
+#define GPIO_LESENSE_CH2OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH2OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH2OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH3OUTROUTE */
+#define _GPIO_LESENSE_CH3OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH3OUTROUTE */
+#define _GPIO_LESENSE_CH3OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH3OUTROUTE */
+#define _GPIO_LESENSE_CH3OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH3OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH3OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH3OUTROUTE */
+#define GPIO_LESENSE_CH3OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH3OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH3OUTROUTE*/
+#define _GPIO_LESENSE_CH3OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH3OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH3OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH3OUTROUTE */
+#define GPIO_LESENSE_CH3OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH3OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH3OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH4OUTROUTE */
+#define _GPIO_LESENSE_CH4OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH4OUTROUTE */
+#define _GPIO_LESENSE_CH4OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH4OUTROUTE */
+#define _GPIO_LESENSE_CH4OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH4OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH4OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH4OUTROUTE */
+#define GPIO_LESENSE_CH4OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH4OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH4OUTROUTE*/
+#define _GPIO_LESENSE_CH4OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH4OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH4OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH4OUTROUTE */
+#define GPIO_LESENSE_CH4OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH4OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH4OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH5OUTROUTE */
+#define _GPIO_LESENSE_CH5OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH5OUTROUTE */
+#define _GPIO_LESENSE_CH5OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH5OUTROUTE */
+#define _GPIO_LESENSE_CH5OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH5OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH5OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH5OUTROUTE */
+#define GPIO_LESENSE_CH5OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH5OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH5OUTROUTE*/
+#define _GPIO_LESENSE_CH5OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH5OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH5OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH5OUTROUTE */
+#define GPIO_LESENSE_CH5OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH5OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH5OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH6OUTROUTE */
+#define _GPIO_LESENSE_CH6OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH6OUTROUTE */
+#define _GPIO_LESENSE_CH6OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH6OUTROUTE */
+#define _GPIO_LESENSE_CH6OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH6OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH6OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH6OUTROUTE */
+#define GPIO_LESENSE_CH6OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH6OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH6OUTROUTE*/
+#define _GPIO_LESENSE_CH6OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH6OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH6OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH6OUTROUTE */
+#define GPIO_LESENSE_CH6OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH6OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH6OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH7OUTROUTE */
+#define _GPIO_LESENSE_CH7OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH7OUTROUTE */
+#define _GPIO_LESENSE_CH7OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH7OUTROUTE */
+#define _GPIO_LESENSE_CH7OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH7OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH7OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH7OUTROUTE */
+#define GPIO_LESENSE_CH7OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH7OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH7OUTROUTE*/
+#define _GPIO_LESENSE_CH7OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH7OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH7OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH7OUTROUTE */
+#define GPIO_LESENSE_CH7OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH7OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH7OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH8OUTROUTE */
+#define _GPIO_LESENSE_CH8OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH8OUTROUTE */
+#define _GPIO_LESENSE_CH8OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH8OUTROUTE */
+#define _GPIO_LESENSE_CH8OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH8OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH8OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH8OUTROUTE */
+#define GPIO_LESENSE_CH8OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH8OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH8OUTROUTE*/
+#define _GPIO_LESENSE_CH8OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH8OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH8OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH8OUTROUTE */
+#define GPIO_LESENSE_CH8OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH8OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH8OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH9OUTROUTE */
+#define _GPIO_LESENSE_CH9OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH9OUTROUTE */
+#define _GPIO_LESENSE_CH9OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH9OUTROUTE */
+#define _GPIO_LESENSE_CH9OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH9OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH9OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH9OUTROUTE */
+#define GPIO_LESENSE_CH9OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH9OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH9OUTROUTE*/
+#define _GPIO_LESENSE_CH9OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH9OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH9OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH9OUTROUTE */
+#define GPIO_LESENSE_CH9OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH9OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH9OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH10OUTROUTE */
+#define _GPIO_LESENSE_CH10OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH10OUTROUTE */
+#define _GPIO_LESENSE_CH10OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH10OUTROUTE */
+#define _GPIO_LESENSE_CH10OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH10OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH10OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH10OUTROUTE */
+#define GPIO_LESENSE_CH10OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH10OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH10OUTROUTE*/
+#define _GPIO_LESENSE_CH10OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH10OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH10OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH10OUTROUTE */
+#define GPIO_LESENSE_CH10OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH10OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH10OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH11OUTROUTE */
+#define _GPIO_LESENSE_CH11OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH11OUTROUTE */
+#define _GPIO_LESENSE_CH11OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH11OUTROUTE */
+#define _GPIO_LESENSE_CH11OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH11OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH11OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH11OUTROUTE */
+#define GPIO_LESENSE_CH11OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH11OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH11OUTROUTE*/
+#define _GPIO_LESENSE_CH11OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH11OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH11OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH11OUTROUTE */
+#define GPIO_LESENSE_CH11OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH11OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH11OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH12OUTROUTE */
+#define _GPIO_LESENSE_CH12OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH12OUTROUTE */
+#define _GPIO_LESENSE_CH12OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH12OUTROUTE */
+#define _GPIO_LESENSE_CH12OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH12OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH12OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH12OUTROUTE */
+#define GPIO_LESENSE_CH12OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH12OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH12OUTROUTE*/
+#define _GPIO_LESENSE_CH12OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH12OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH12OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH12OUTROUTE */
+#define GPIO_LESENSE_CH12OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH12OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH12OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH13OUTROUTE */
+#define _GPIO_LESENSE_CH13OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH13OUTROUTE */
+#define _GPIO_LESENSE_CH13OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH13OUTROUTE */
+#define _GPIO_LESENSE_CH13OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH13OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH13OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH13OUTROUTE */
+#define GPIO_LESENSE_CH13OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH13OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH13OUTROUTE*/
+#define _GPIO_LESENSE_CH13OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH13OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH13OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH13OUTROUTE */
+#define GPIO_LESENSE_CH13OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH13OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH13OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH14OUTROUTE */
+#define _GPIO_LESENSE_CH14OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH14OUTROUTE */
+#define _GPIO_LESENSE_CH14OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH14OUTROUTE */
+#define _GPIO_LESENSE_CH14OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH14OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH14OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH14OUTROUTE */
+#define GPIO_LESENSE_CH14OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH14OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH14OUTROUTE*/
+#define _GPIO_LESENSE_CH14OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH14OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH14OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH14OUTROUTE */
+#define GPIO_LESENSE_CH14OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH14OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH14OUTROUTE*/
+
+/* Bit fields for GPIO_LESENSE CH15OUTROUTE */
+#define _GPIO_LESENSE_CH15OUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LESENSE_CH15OUTROUTE */
+#define _GPIO_LESENSE_CH15OUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LESENSE_CH15OUTROUTE */
+#define _GPIO_LESENSE_CH15OUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LESENSE_CH15OUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LESENSE_CH15OUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH15OUTROUTE */
+#define GPIO_LESENSE_CH15OUTROUTE_PORT_DEFAULT (_GPIO_LESENSE_CH15OUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH15OUTROUTE*/
+#define _GPIO_LESENSE_CH15OUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LESENSE_CH15OUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LESENSE_CH15OUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LESENSE_CH15OUTROUTE */
+#define GPIO_LESENSE_CH15OUTROUTE_PIN_DEFAULT (_GPIO_LESENSE_CH15OUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LESENSE_CH15OUTROUTE*/
+
+/* Bit fields for GPIO_LETIMER ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_ROUTEEN */
+#define _GPIO_LETIMER_ROUTEEN_MASK 0x00000003UL /**< Mask for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN (0x1UL << 0) /**< OUT0 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_SHIFT 0 /**< Shift value for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_MASK 0x1UL /**< Bit mask for GPIO_OUT0PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN (0x1UL << 1) /**< OUT1 pin enable control bit */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_SHIFT 1 /**< Shift value for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_MASK 0x2UL /**< Bit mask for GPIO_OUT1PEN */
+#define _GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_ROUTEEN */
+#define GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT (_GPIO_LETIMER_ROUTEEN_OUT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_LETIMER_ROUTEEN*/
+
+/* Bit fields for GPIO_LETIMER OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT0ROUTE */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT0ROUTE */
+#define GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT0ROUTE*/
+
+/* Bit fields for GPIO_LETIMER OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_LETIMER_OUT1ROUTE */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_LETIMER_OUT1ROUTE */
+#define GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT (_GPIO_LETIMER_OUT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_LETIMER_OUT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ROUTEEN */
+#define _GPIO_MODEM_ROUTEEN_MASK 0x00007FFFUL /**< Mask for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN (0x1UL << 0) /**< ANT0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_SHIFT 0 /**< Shift value for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_MASK 0x1UL /**< Bit mask for GPIO_ANT0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN (0x1UL << 1) /**< ANT1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_SHIFT 1 /**< Shift value for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_MASK 0x2UL /**< Bit mask for GPIO_ANT1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANT1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN (0x1UL << 2) /**< ANTROLLOVER pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_SHIFT 2 /**< Shift value for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_MASK 0x4UL /**< Bit mask for GPIO_ANTROLLOVERPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTROLLOVERPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN (0x1UL << 3) /**< ANTRR0 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_SHIFT 3 /**< Shift value for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_MASK 0x8UL /**< Bit mask for GPIO_ANTRR0PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN (0x1UL << 4) /**< ANTRR1 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_SHIFT 4 /**< Shift value for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_MASK 0x10UL /**< Bit mask for GPIO_ANTRR1PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN (0x1UL << 5) /**< ANTRR2 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_SHIFT 5 /**< Shift value for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_MASK 0x20UL /**< Bit mask for GPIO_ANTRR2PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN (0x1UL << 6) /**< ANTRR3 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_SHIFT 6 /**< Shift value for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_MASK 0x40UL /**< Bit mask for GPIO_ANTRR3PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR3PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN (0x1UL << 7) /**< ANTRR4 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_SHIFT 7 /**< Shift value for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_MASK 0x80UL /**< Bit mask for GPIO_ANTRR4PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR4PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN (0x1UL << 8) /**< ANTRR5 pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_SHIFT 8 /**< Shift value for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_MASK 0x100UL /**< Bit mask for GPIO_ANTRR5PEN */
+#define _GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTRR5PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN (0x1UL << 9) /**< ANTSWEN pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_SHIFT 9 /**< Shift value for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_MASK 0x200UL /**< Bit mask for GPIO_ANTSWENPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWENPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN (0x1UL << 10) /**< ANTSWUS pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_SHIFT 10 /**< Shift value for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_MASK 0x400UL /**< Bit mask for GPIO_ANTSWUSPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTSWUSPEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN (0x1UL << 11) /**< ANTTRIG pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_SHIFT 11 /**< Shift value for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_MASK 0x800UL /**< Bit mask for GPIO_ANTTRIGPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGPEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN (0x1UL << 12) /**< ANTTRIGSTOP pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_SHIFT 12 /**< Shift value for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_MASK 0x1000UL /**< Bit mask for GPIO_ANTTRIGSTOPPEN */
+#define _GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_ANTTRIGSTOPPEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN (0x1UL << 13) /**< DCLK pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_SHIFT 13 /**< Shift value for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_MASK 0x2000UL /**< Bit mask for GPIO_DCLKPEN */
+#define _GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DCLKPEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN (0x1UL << 14) /**< DOUT pin enable control bit */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_SHIFT 14 /**< Shift value for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_MASK 0x4000UL /**< Bit mask for GPIO_DOUTPEN */
+#define _GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ROUTEEN */
+#define GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT (_GPIO_MODEM_ROUTEEN_DOUTPEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_MODEM_ROUTEEN */
+
+/* Bit fields for GPIO_MODEM ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT0ROUTE */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+#define _GPIO_MODEM_ANT0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT0ROUTE */
+#define GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANT1ROUTE */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+#define _GPIO_MODEM_ANT1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANT1ROUTE */
+#define GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANT1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANT1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTROLLOVERROUTE */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+#define GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTROLLOVERROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTROLLOVERROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR0ROUTE */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE */
+#define GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR0ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR1ROUTE */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE */
+#define GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR1ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR2ROUTE */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE */
+#define GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR2ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR3ROUTE */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE */
+#define GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR3ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR4ROUTE */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE */
+#define GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR4ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTRR5ROUTE */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE */
+#define GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTRR5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTRR5ROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWENROUTE */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWENROUTE */
+#define GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWENROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWENROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTSWUSROUTE */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE */
+#define GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTSWUSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTSWUSROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGROUTE */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE */
+#define GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGROUTE*/
+
+/* Bit fields for GPIO_MODEM ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_ANTTRIGSTOPROUTE */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+#define GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT (_GPIO_MODEM_ANTTRIGSTOPROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_ANTTRIGSTOPROUTE*/
+
+/* Bit fields for GPIO_MODEM DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DCLKROUTE */
+#define _GPIO_MODEM_DCLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DCLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PORT_DEFAULT (_GPIO_MODEM_DCLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+#define _GPIO_MODEM_DCLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DCLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DCLKROUTE */
+#define GPIO_MODEM_DCLKROUTE_PIN_DEFAULT (_GPIO_MODEM_DCLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DCLKROUTE*/
+
+/* Bit fields for GPIO_MODEM DINROUTE */
+#define _GPIO_MODEM_DINROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DINROUTE */
+#define _GPIO_MODEM_DINROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DINROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PORT_DEFAULT (_GPIO_MODEM_DINROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+#define _GPIO_MODEM_DINROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DINROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DINROUTE */
+#define GPIO_MODEM_DINROUTE_PIN_DEFAULT (_GPIO_MODEM_DINROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DINROUTE*/
+
+/* Bit fields for GPIO_MODEM DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_MASK 0x000F0003UL /**< Mask for GPIO_MODEM_DOUTROUTE */
+#define _GPIO_MODEM_DOUTROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_MODEM_DOUTROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PORT_DEFAULT (_GPIO_MODEM_DOUTROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+#define _GPIO_MODEM_DOUTROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_MODEM_DOUTROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_MODEM_DOUTROUTE */
+#define GPIO_MODEM_DOUTROUTE_PIN_DEFAULT (_GPIO_MODEM_DOUTROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_MODEM_DOUTROUTE*/
+
+/* Bit fields for GPIO_PCNT S0INROUTE */
+#define _GPIO_PCNT_S0INROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PCNT_S0INROUTE */
+#define _GPIO_PCNT_S0INROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PCNT_S0INROUTE */
+#define _GPIO_PCNT_S0INROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PCNT_S0INROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PCNT_S0INROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PCNT_S0INROUTE */
+#define GPIO_PCNT_S0INROUTE_PORT_DEFAULT (_GPIO_PCNT_S0INROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PCNT_S0INROUTE*/
+#define _GPIO_PCNT_S0INROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PCNT_S0INROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PCNT_S0INROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PCNT_S0INROUTE */
+#define GPIO_PCNT_S0INROUTE_PIN_DEFAULT (_GPIO_PCNT_S0INROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PCNT_S0INROUTE*/
+
+/* Bit fields for GPIO_PCNT S1INROUTE */
+#define _GPIO_PCNT_S1INROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PCNT_S1INROUTE */
+#define _GPIO_PCNT_S1INROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PCNT_S1INROUTE */
+#define _GPIO_PCNT_S1INROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PCNT_S1INROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PCNT_S1INROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PCNT_S1INROUTE */
+#define GPIO_PCNT_S1INROUTE_PORT_DEFAULT (_GPIO_PCNT_S1INROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PCNT_S1INROUTE*/
+#define _GPIO_PCNT_S1INROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PCNT_S1INROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PCNT_S1INROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PCNT_S1INROUTE */
+#define GPIO_PCNT_S1INROUTE_PIN_DEFAULT (_GPIO_PCNT_S1INROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PCNT_S1INROUTE*/
+
+/* Bit fields for GPIO_PRS ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ROUTEEN */
+#define _GPIO_PRS_ROUTEEN_MASK 0x0000FFFFUL /**< Mask for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN (0x1UL << 0) /**< ASYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_SHIFT 0 /**< Shift value for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_MASK 0x1UL /**< Bit mask for GPIO_ASYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN (0x1UL << 1) /**< ASYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_SHIFT 1 /**< Shift value for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_MASK 0x2UL /**< Bit mask for GPIO_ASYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN (0x1UL << 2) /**< ASYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_SHIFT 2 /**< Shift value for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_MASK 0x4UL /**< Bit mask for GPIO_ASYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN (0x1UL << 3) /**< ASYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_SHIFT 3 /**< Shift value for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_MASK 0x8UL /**< Bit mask for GPIO_ASYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH3PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN (0x1UL << 4) /**< ASYNCH4 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_SHIFT 4 /**< Shift value for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_MASK 0x10UL /**< Bit mask for GPIO_ASYNCH4PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH4PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN (0x1UL << 5) /**< ASYNCH5 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_SHIFT 5 /**< Shift value for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_MASK 0x20UL /**< Bit mask for GPIO_ASYNCH5PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH5PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN (0x1UL << 6) /**< ASYNCH6 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_SHIFT 6 /**< Shift value for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_MASK 0x40UL /**< Bit mask for GPIO_ASYNCH6PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH6PEN_DEFAULT << 6) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN (0x1UL << 7) /**< ASYNCH7 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_SHIFT 7 /**< Shift value for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_MASK 0x80UL /**< Bit mask for GPIO_ASYNCH7PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH7PEN_DEFAULT << 7) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN (0x1UL << 8) /**< ASYNCH8 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_SHIFT 8 /**< Shift value for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_MASK 0x100UL /**< Bit mask for GPIO_ASYNCH8PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH8PEN_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN (0x1UL << 9) /**< ASYNCH9 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_SHIFT 9 /**< Shift value for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_MASK 0x200UL /**< Bit mask for GPIO_ASYNCH9PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH9PEN_DEFAULT << 9) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN (0x1UL << 10) /**< ASYNCH10 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_SHIFT 10 /**< Shift value for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_MASK 0x400UL /**< Bit mask for GPIO_ASYNCH10PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH10PEN_DEFAULT << 10) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN (0x1UL << 11) /**< ASYNCH11 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_SHIFT 11 /**< Shift value for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_MASK 0x800UL /**< Bit mask for GPIO_ASYNCH11PEN */
+#define _GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT (_GPIO_PRS_ROUTEEN_ASYNCH11PEN_DEFAULT << 11) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN (0x1UL << 12) /**< SYNCH0 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_SHIFT 12 /**< Shift value for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_MASK 0x1000UL /**< Bit mask for GPIO_SYNCH0PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH0PEN_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN (0x1UL << 13) /**< SYNCH1 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_SHIFT 13 /**< Shift value for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_MASK 0x2000UL /**< Bit mask for GPIO_SYNCH1PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH1PEN_DEFAULT << 13) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN (0x1UL << 14) /**< SYNCH2 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_SHIFT 14 /**< Shift value for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_MASK 0x4000UL /**< Bit mask for GPIO_SYNCH2PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH2PEN_DEFAULT << 14) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN (0x1UL << 15) /**< SYNCH3 pin enable control bit */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_SHIFT 15 /**< Shift value for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_MASK 0x8000UL /**< Bit mask for GPIO_SYNCH3PEN */
+#define _GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ROUTEEN */
+#define GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT (_GPIO_PRS_ROUTEEN_SYNCH3PEN_DEFAULT << 15) /**< Shifted mode DEFAULT for GPIO_PRS_ROUTEEN */
+
+/* Bit fields for GPIO_PRS ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH0ROUTE */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE */
+#define GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH1ROUTE */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE */
+#define GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH2ROUTE */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE */
+#define GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH3ROUTE */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE */
+#define GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH3ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH4ROUTE */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE */
+#define GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH4ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH4ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH5ROUTE */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE */
+#define GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH5ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH5ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH6ROUTE */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE */
+#define GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH6ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH6ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH7ROUTE */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE */
+#define GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH7ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH7ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH8ROUTE */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE */
+#define GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH8ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH8ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH9ROUTE */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE */
+#define GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH9ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH9ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH10ROUTE */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE */
+#define GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH10ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH10ROUTE*/
+
+/* Bit fields for GPIO_PRS ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_ASYNCH11ROUTE */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE */
+#define GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT (_GPIO_PRS_ASYNCH11ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_ASYNCH11ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH0ROUTE */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH0ROUTE */
+#define GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH0ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH1ROUTE */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH1ROUTE */
+#define GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH1ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH2ROUTE */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH2ROUTE */
+#define GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH2ROUTE*/
+
+/* Bit fields for GPIO_PRS SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_PRS_SYNCH3ROUTE */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_PRS_SYNCH3ROUTE */
+#define GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT (_GPIO_PRS_SYNCH3ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_PRS_SYNCH3ROUTE*/
+
+/* Bit fields for GPIO_SYXO BUFOUTREQINASYNCROUTE */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_SYXO_BUFOUTREQINASYNCROUTE*/
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_MASK 0x000F0003UL /**< Mask for GPIO_SYXO_BUFOUTREQINASYNCROUTE */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_SYXO_BUFOUTREQINASYNCROUTE*/
+#define GPIO_SYXO_BUFOUTREQINASYNCROUTE_PORT_DEFAULT (_GPIO_SYXO_BUFOUTREQINASYNCROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_SYXO_BUFOUTREQINASYNCROUTE*/
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_SYXO_BUFOUTREQINASYNCROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_SYXO_BUFOUTREQINASYNCROUTE*/
+#define GPIO_SYXO_BUFOUTREQINASYNCROUTE_PIN_DEFAULT (_GPIO_SYXO_BUFOUTREQINASYNCROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_SYXO_BUFOUTREQINASYNCROUTE*/
+
+/* Bit fields for GPIO_TIMER ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_ROUTEEN */
+#define _GPIO_TIMER_ROUTEEN_MASK 0x0000003FUL /**< Mask for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN (0x1UL << 0) /**< CC0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_SHIFT 0 /**< Shift value for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_MASK 0x1UL /**< Bit mask for GPIO_CC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC0PEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN (0x1UL << 1) /**< CC1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_SHIFT 1 /**< Shift value for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_MASK 0x2UL /**< Bit mask for GPIO_CC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC1PEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN (0x1UL << 2) /**< CC2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_SHIFT 2 /**< Shift value for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_MASK 0x4UL /**< Bit mask for GPIO_CC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CC2PEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN (0x1UL << 3) /**< CDTI0 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_SHIFT 3 /**< Shift value for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_MASK 0x8UL /**< Bit mask for GPIO_CCC0PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC0PEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN (0x1UL << 4) /**< CDTI1 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_SHIFT 4 /**< Shift value for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_MASK 0x10UL /**< Bit mask for GPIO_CCC1PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC1PEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN (0x1UL << 5) /**< CDTI2 pin enable control bit */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_SHIFT 5 /**< Shift value for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_MASK 0x20UL /**< Bit mask for GPIO_CCC2PEN */
+#define _GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_ROUTEEN */
+#define GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT (_GPIO_TIMER_ROUTEEN_CCC2PEN_DEFAULT << 5) /**< Shifted mode DEFAULT for GPIO_TIMER_ROUTEEN */
+
+/* Bit fields for GPIO_TIMER CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC0ROUTE */
+#define _GPIO_TIMER_CC0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+#define _GPIO_TIMER_CC0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC0ROUTE */
+#define GPIO_TIMER_CC0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC1ROUTE */
+#define _GPIO_TIMER_CC1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+#define _GPIO_TIMER_CC1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC1ROUTE */
+#define GPIO_TIMER_CC1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CC2ROUTE */
+#define _GPIO_TIMER_CC2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CC2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CC2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+#define _GPIO_TIMER_CC2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CC2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CC2ROUTE */
+#define GPIO_TIMER_CC2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CC2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CC2ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI0ROUTE */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI0ROUTE */
+#define GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI0ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI0ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI1ROUTE */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI1ROUTE */
+#define GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI1ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI1ROUTE*/
+
+/* Bit fields for GPIO_TIMER CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_MASK 0x000F0003UL /**< Mask for GPIO_TIMER_CDTI2ROUTE */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_TIMER_CDTI2ROUTE */
+#define GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT (_GPIO_TIMER_CDTI2ROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_TIMER_CDTI2ROUTE*/
+
+/* Bit fields for GPIO_USART ROUTEEN */
+#define _GPIO_USART_ROUTEEN_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_ROUTEEN */
+#define _GPIO_USART_ROUTEEN_MASK 0x0000001FUL /**< Mask for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN (0x1UL << 0) /**< CS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CSPEN_SHIFT 0 /**< Shift value for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_MASK 0x1UL /**< Bit mask for GPIO_CSPEN */
+#define _GPIO_USART_ROUTEEN_CSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CSPEN_DEFAULT (_GPIO_USART_ROUTEEN_CSPEN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN (0x1UL << 1) /**< RTS pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RTSPEN_SHIFT 1 /**< Shift value for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_MASK 0x2UL /**< Bit mask for GPIO_RTSPEN */
+#define _GPIO_USART_ROUTEEN_RTSPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RTSPEN_DEFAULT (_GPIO_USART_ROUTEEN_RTSPEN_DEFAULT << 1) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN (0x1UL << 2) /**< RX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_RXPEN_SHIFT 2 /**< Shift value for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_MASK 0x4UL /**< Bit mask for GPIO_RXPEN */
+#define _GPIO_USART_ROUTEEN_RXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_RXPEN_DEFAULT (_GPIO_USART_ROUTEEN_RXPEN_DEFAULT << 2) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN (0x1UL << 3) /**< SCLK pin enable control bit */
+#define _GPIO_USART_ROUTEEN_CLKPEN_SHIFT 3 /**< Shift value for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_MASK 0x8UL /**< Bit mask for GPIO_CLKPEN */
+#define _GPIO_USART_ROUTEEN_CLKPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_CLKPEN_DEFAULT (_GPIO_USART_ROUTEEN_CLKPEN_DEFAULT << 3) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN (0x1UL << 4) /**< TX pin enable control bit */
+#define _GPIO_USART_ROUTEEN_TXPEN_SHIFT 4 /**< Shift value for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_MASK 0x10UL /**< Bit mask for GPIO_TXPEN */
+#define _GPIO_USART_ROUTEEN_TXPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_ROUTEEN */
+#define GPIO_USART_ROUTEEN_TXPEN_DEFAULT (_GPIO_USART_ROUTEEN_TXPEN_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_USART_ROUTEEN */
+
+/* Bit fields for GPIO_USART CSROUTE */
+#define _GPIO_USART_CSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PORT_DEFAULT (_GPIO_USART_CSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+#define _GPIO_USART_CSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CSROUTE */
+#define GPIO_USART_CSROUTE_PIN_DEFAULT (_GPIO_USART_CSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CSROUTE */
+
+/* Bit fields for GPIO_USART CTSROUTE */
+#define _GPIO_USART_CTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CTSROUTE */
+#define _GPIO_USART_CTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PORT_DEFAULT (_GPIO_USART_CTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+#define _GPIO_USART_CTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CTSROUTE */
+#define GPIO_USART_CTSROUTE_PIN_DEFAULT (_GPIO_USART_CTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CTSROUTE*/
+
+/* Bit fields for GPIO_USART RTSROUTE */
+#define _GPIO_USART_RTSROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RTSROUTE */
+#define _GPIO_USART_RTSROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RTSROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PORT_DEFAULT (_GPIO_USART_RTSROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+#define _GPIO_USART_RTSROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RTSROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RTSROUTE */
+#define GPIO_USART_RTSROUTE_PIN_DEFAULT (_GPIO_USART_RTSROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RTSROUTE*/
+
+/* Bit fields for GPIO_USART RXROUTE */
+#define _GPIO_USART_RXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_RXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PORT_DEFAULT (_GPIO_USART_RXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+#define _GPIO_USART_RXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_RXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_RXROUTE */
+#define GPIO_USART_RXROUTE_PIN_DEFAULT (_GPIO_USART_RXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_RXROUTE */
+
+/* Bit fields for GPIO_USART CLKROUTE */
+#define _GPIO_USART_CLKROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_CLKROUTE */
+#define _GPIO_USART_CLKROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_CLKROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PORT_DEFAULT (_GPIO_USART_CLKROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+#define _GPIO_USART_CLKROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_CLKROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_CLKROUTE */
+#define GPIO_USART_CLKROUTE_PIN_DEFAULT (_GPIO_USART_CLKROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_CLKROUTE*/
+
+/* Bit fields for GPIO_USART TXROUTE */
+#define _GPIO_USART_TXROUTE_RESETVALUE 0x00000000UL /**< Default value for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_MASK 0x000F0003UL /**< Mask for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PORT_SHIFT 0 /**< Shift value for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_MASK 0x3UL /**< Bit mask for GPIO_PORT */
+#define _GPIO_USART_TXROUTE_PORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PORT_DEFAULT (_GPIO_USART_TXROUTE_PORT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+#define _GPIO_USART_TXROUTE_PIN_SHIFT 16 /**< Shift value for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_MASK 0xF0000UL /**< Bit mask for GPIO_PIN */
+#define _GPIO_USART_TXROUTE_PIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_USART_TXROUTE */
+#define GPIO_USART_TXROUTE_PIN_DEFAULT (_GPIO_USART_TXROUTE_PIN_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_USART_TXROUTE */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_GPIO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio_port.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio_port.h
new file mode 100644
index 000000000..4fac32a75
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_gpio_port.h
@@ -0,0 +1,493 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 GPIO Port register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef GPIO_PORT_H
+#define GPIO_PORT_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @brief EFR32ZG23 GPIO PORT
+ *****************************************************************************/
+typedef struct gpio_port_typedef{
+ __IOM uint32_t CTRL; /**< Port control */
+ __IOM uint32_t MODEL; /**< mode low */
+ uint32_t RESERVED0[1]; /**< Reserved for future use */
+ __IOM uint32_t MODEH; /**< mode high */
+ __IOM uint32_t DOUT; /**< data out */
+ __IM uint32_t DIN; /**< data in */
+ uint32_t RESERVED1[6]; /**< Reserved for future use */
+} GPIO_PORT_TypeDef;
+
+/* Bit fields for GPIO_P CTRL */
+#define _GPIO_P_CTRL_RESETVALUE 0x00400040UL /**< Default value for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_MASK 0x10701070UL /**< Mask for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATE_SHIFT 4 /**< Shift value for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_MASK 0x70UL /**< Bit mask for GPIO_SLEWRATE */
+#define _GPIO_P_CTRL_SLEWRATE_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATE_DEFAULT (_GPIO_P_CTRL_SLEWRATE_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS (0x1UL << 12) /**< Data In Disable */
+#define _GPIO_P_CTRL_DINDIS_SHIFT 12 /**< Shift value for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_MASK 0x1000UL /**< Bit mask for GPIO_DINDIS */
+#define _GPIO_P_CTRL_DINDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDIS_DEFAULT (_GPIO_P_CTRL_DINDIS_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define _GPIO_P_CTRL_SLEWRATEALT_SHIFT 20 /**< Shift value for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_MASK 0x700000UL /**< Bit mask for GPIO_SLEWRATEALT */
+#define _GPIO_P_CTRL_SLEWRATEALT_DEFAULT 0x00000004UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_SLEWRATEALT_DEFAULT (_GPIO_P_CTRL_SLEWRATEALT_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT (0x1UL << 28) /**< Data In Disable Alt */
+#define _GPIO_P_CTRL_DINDISALT_SHIFT 28 /**< Shift value for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_MASK 0x10000000UL /**< Bit mask for GPIO_DINDISALT */
+#define _GPIO_P_CTRL_DINDISALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_CTRL */
+#define GPIO_P_CTRL_DINDISALT_DEFAULT (_GPIO_P_CTRL_DINDISALT_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_CTRL */
+
+/* Bit fields for GPIO_P MODEL */
+#define _GPIO_P_MODEL_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MASK 0xFFFFFFFFUL /**< Mask for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEL_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_DEFAULT (_GPIO_P_MODEL_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_DISABLED (_GPIO_P_MODEL_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUT (_GPIO_P_MODEL_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULL (_GPIO_P_MODEL_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_INPUTPULLFILTER (_GPIO_P_MODEL_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_PUSHPULL (_GPIO_P_MODEL_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_PUSHPULLALT (_GPIO_P_MODEL_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDOR (_GPIO_P_MODEL_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDAND (_GPIO_P_MODEL_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDFILTER (_GPIO_P_MODEL_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALT (_GPIO_P_MODEL_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE1_SHIFT 4 /**< Shift value for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_MASK 0xF0UL /**< Bit mask for GPIO_MODE1 */
+#define _GPIO_P_MODEL_MODE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_DEFAULT (_GPIO_P_MODEL_MODE1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_DISABLED (_GPIO_P_MODEL_MODE1_DISABLED << 4) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUT (_GPIO_P_MODEL_MODE1_INPUT << 4) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULL (_GPIO_P_MODEL_MODE1_INPUTPULL << 4) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_INPUTPULLFILTER (_GPIO_P_MODEL_MODE1_INPUTPULLFILTER << 4) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_PUSHPULL (_GPIO_P_MODEL_MODE1_PUSHPULL << 4) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_PUSHPULLALT (_GPIO_P_MODEL_MODE1_PUSHPULLALT << 4) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDOR (_GPIO_P_MODEL_MODE1_WIREDOR << 4) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE1_WIREDORPULLDOWN << 4) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDAND (_GPIO_P_MODEL_MODE1_WIREDAND << 4) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDFILTER (_GPIO_P_MODEL_MODE1_WIREDANDFILTER << 4) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDPULLUP << 4) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDPULLUPFILTER << 4) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALT (_GPIO_P_MODEL_MODE1_WIREDANDALT << 4) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE1_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTFILTER << 4) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUP << 4) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE1_WIREDANDALTPULLUPFILTER << 4) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE2_SHIFT 8 /**< Shift value for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_MASK 0xF00UL /**< Bit mask for GPIO_MODE2 */
+#define _GPIO_P_MODEL_MODE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_DEFAULT (_GPIO_P_MODEL_MODE2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_DISABLED (_GPIO_P_MODEL_MODE2_DISABLED << 8) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUT (_GPIO_P_MODEL_MODE2_INPUT << 8) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULL (_GPIO_P_MODEL_MODE2_INPUTPULL << 8) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_INPUTPULLFILTER (_GPIO_P_MODEL_MODE2_INPUTPULLFILTER << 8) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_PUSHPULL (_GPIO_P_MODEL_MODE2_PUSHPULL << 8) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_PUSHPULLALT (_GPIO_P_MODEL_MODE2_PUSHPULLALT << 8) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDOR (_GPIO_P_MODEL_MODE2_WIREDOR << 8) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE2_WIREDORPULLDOWN << 8) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDAND (_GPIO_P_MODEL_MODE2_WIREDAND << 8) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDFILTER (_GPIO_P_MODEL_MODE2_WIREDANDFILTER << 8) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDPULLUP << 8) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDPULLUPFILTER << 8) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALT (_GPIO_P_MODEL_MODE2_WIREDANDALT << 8) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE2_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTFILTER << 8) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUP << 8) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE2_WIREDANDALTPULLUPFILTER << 8) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE3_SHIFT 12 /**< Shift value for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_MASK 0xF000UL /**< Bit mask for GPIO_MODE3 */
+#define _GPIO_P_MODEL_MODE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_DEFAULT (_GPIO_P_MODEL_MODE3_DEFAULT << 12) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_DISABLED (_GPIO_P_MODEL_MODE3_DISABLED << 12) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUT (_GPIO_P_MODEL_MODE3_INPUT << 12) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULL (_GPIO_P_MODEL_MODE3_INPUTPULL << 12) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_INPUTPULLFILTER (_GPIO_P_MODEL_MODE3_INPUTPULLFILTER << 12) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_PUSHPULL (_GPIO_P_MODEL_MODE3_PUSHPULL << 12) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_PUSHPULLALT (_GPIO_P_MODEL_MODE3_PUSHPULLALT << 12) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDOR (_GPIO_P_MODEL_MODE3_WIREDOR << 12) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE3_WIREDORPULLDOWN << 12) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDAND (_GPIO_P_MODEL_MODE3_WIREDAND << 12) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDFILTER (_GPIO_P_MODEL_MODE3_WIREDANDFILTER << 12) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDPULLUP << 12) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDPULLUPFILTER << 12) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALT (_GPIO_P_MODEL_MODE3_WIREDANDALT << 12) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE3_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTFILTER << 12) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUP << 12) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE3_WIREDANDALTPULLUPFILTER << 12) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE4_SHIFT 16 /**< Shift value for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_MASK 0xF0000UL /**< Bit mask for GPIO_MODE4 */
+#define _GPIO_P_MODEL_MODE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_DEFAULT (_GPIO_P_MODEL_MODE4_DEFAULT << 16) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_DISABLED (_GPIO_P_MODEL_MODE4_DISABLED << 16) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUT (_GPIO_P_MODEL_MODE4_INPUT << 16) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULL (_GPIO_P_MODEL_MODE4_INPUTPULL << 16) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_INPUTPULLFILTER (_GPIO_P_MODEL_MODE4_INPUTPULLFILTER << 16) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_PUSHPULL (_GPIO_P_MODEL_MODE4_PUSHPULL << 16) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_PUSHPULLALT (_GPIO_P_MODEL_MODE4_PUSHPULLALT << 16) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDOR (_GPIO_P_MODEL_MODE4_WIREDOR << 16) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE4_WIREDORPULLDOWN << 16) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDAND (_GPIO_P_MODEL_MODE4_WIREDAND << 16) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDFILTER (_GPIO_P_MODEL_MODE4_WIREDANDFILTER << 16) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDPULLUP << 16) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDPULLUPFILTER << 16) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALT (_GPIO_P_MODEL_MODE4_WIREDANDALT << 16) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE4_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTFILTER << 16) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUP << 16) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE4_WIREDANDALTPULLUPFILTER << 16) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE5_SHIFT 20 /**< Shift value for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_MASK 0xF00000UL /**< Bit mask for GPIO_MODE5 */
+#define _GPIO_P_MODEL_MODE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_DEFAULT (_GPIO_P_MODEL_MODE5_DEFAULT << 20) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_DISABLED (_GPIO_P_MODEL_MODE5_DISABLED << 20) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUT (_GPIO_P_MODEL_MODE5_INPUT << 20) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULL (_GPIO_P_MODEL_MODE5_INPUTPULL << 20) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_INPUTPULLFILTER (_GPIO_P_MODEL_MODE5_INPUTPULLFILTER << 20) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_PUSHPULL (_GPIO_P_MODEL_MODE5_PUSHPULL << 20) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_PUSHPULLALT (_GPIO_P_MODEL_MODE5_PUSHPULLALT << 20) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDOR (_GPIO_P_MODEL_MODE5_WIREDOR << 20) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE5_WIREDORPULLDOWN << 20) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDAND (_GPIO_P_MODEL_MODE5_WIREDAND << 20) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDFILTER (_GPIO_P_MODEL_MODE5_WIREDANDFILTER << 20) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDPULLUP << 20) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDPULLUPFILTER << 20) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALT (_GPIO_P_MODEL_MODE5_WIREDANDALT << 20) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE5_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTFILTER << 20) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUP << 20) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE5_WIREDANDALTPULLUPFILTER << 20) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE6_SHIFT 24 /**< Shift value for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_MASK 0xF000000UL /**< Bit mask for GPIO_MODE6 */
+#define _GPIO_P_MODEL_MODE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_DEFAULT (_GPIO_P_MODEL_MODE6_DEFAULT << 24) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_DISABLED (_GPIO_P_MODEL_MODE6_DISABLED << 24) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUT (_GPIO_P_MODEL_MODE6_INPUT << 24) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULL (_GPIO_P_MODEL_MODE6_INPUTPULL << 24) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_INPUTPULLFILTER (_GPIO_P_MODEL_MODE6_INPUTPULLFILTER << 24) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_PUSHPULL (_GPIO_P_MODEL_MODE6_PUSHPULL << 24) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_PUSHPULLALT (_GPIO_P_MODEL_MODE6_PUSHPULLALT << 24) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDOR (_GPIO_P_MODEL_MODE6_WIREDOR << 24) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE6_WIREDORPULLDOWN << 24) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDAND (_GPIO_P_MODEL_MODE6_WIREDAND << 24) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDFILTER (_GPIO_P_MODEL_MODE6_WIREDANDFILTER << 24) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDPULLUP << 24) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDPULLUPFILTER << 24) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALT (_GPIO_P_MODEL_MODE6_WIREDANDALT << 24) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE6_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTFILTER << 24) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUP << 24) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE6_WIREDANDALTPULLUPFILTER << 24) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define _GPIO_P_MODEL_MODE7_SHIFT 28 /**< Shift value for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_MASK 0xF0000000UL /**< Bit mask for GPIO_MODE7 */
+#define _GPIO_P_MODEL_MODE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEL */
+#define _GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_DEFAULT (_GPIO_P_MODEL_MODE7_DEFAULT << 28) /**< Shifted mode DEFAULT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_DISABLED (_GPIO_P_MODEL_MODE7_DISABLED << 28) /**< Shifted mode DISABLED for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUT (_GPIO_P_MODEL_MODE7_INPUT << 28) /**< Shifted mode INPUT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULL (_GPIO_P_MODEL_MODE7_INPUTPULL << 28) /**< Shifted mode INPUTPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_INPUTPULLFILTER (_GPIO_P_MODEL_MODE7_INPUTPULLFILTER << 28) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_PUSHPULL (_GPIO_P_MODEL_MODE7_PUSHPULL << 28) /**< Shifted mode PUSHPULL for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_PUSHPULLALT (_GPIO_P_MODEL_MODE7_PUSHPULLALT << 28) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDOR (_GPIO_P_MODEL_MODE7_WIREDOR << 28) /**< Shifted mode WIREDOR for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDORPULLDOWN (_GPIO_P_MODEL_MODE7_WIREDORPULLDOWN << 28) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDAND (_GPIO_P_MODEL_MODE7_WIREDAND << 28) /**< Shifted mode WIREDAND for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDFILTER (_GPIO_P_MODEL_MODE7_WIREDANDFILTER << 28) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDPULLUP << 28) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDPULLUPFILTER << 28) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALT (_GPIO_P_MODEL_MODE7_WIREDANDALT << 28) /**< Shifted mode WIREDANDALT for GPIO_P_MODEL */
+#define GPIO_P_MODEL_MODE7_WIREDANDALTFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTFILTER << 28) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUP << 28) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEL*/
+#define GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEL_MODE7_WIREDANDALTPULLUPFILTER << 28) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEL*/
+
+/* Bit fields for GPIO_P MODEH */
+#define _GPIO_P_MODEH_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MASK 0x00000FFFUL /**< Mask for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_SHIFT 0 /**< Shift value for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_MASK 0xFUL /**< Bit mask for GPIO_MODE0 */
+#define _GPIO_P_MODEH_MODE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_DEFAULT (_GPIO_P_MODEH_MODE0_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_DISABLED (_GPIO_P_MODEH_MODE0_DISABLED << 0) /**< Shifted mode DISABLED for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUT (_GPIO_P_MODEH_MODE0_INPUT << 0) /**< Shifted mode INPUT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULL (_GPIO_P_MODEH_MODE0_INPUTPULL << 0) /**< Shifted mode INPUTPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_INPUTPULLFILTER (_GPIO_P_MODEH_MODE0_INPUTPULLFILTER << 0) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_PUSHPULL (_GPIO_P_MODEH_MODE0_PUSHPULL << 0) /**< Shifted mode PUSHPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_PUSHPULLALT (_GPIO_P_MODEH_MODE0_PUSHPULLALT << 0) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDOR (_GPIO_P_MODEH_MODE0_WIREDOR << 0) /**< Shifted mode WIREDOR for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDORPULLDOWN (_GPIO_P_MODEH_MODE0_WIREDORPULLDOWN << 0) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDAND (_GPIO_P_MODEH_MODE0_WIREDAND << 0) /**< Shifted mode WIREDAND for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDFILTER (_GPIO_P_MODEH_MODE0_WIREDANDFILTER << 0) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDPULLUP << 0) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDPULLUPFILTER << 0) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALT (_GPIO_P_MODEH_MODE0_WIREDANDALT << 0) /**< Shifted mode WIREDANDALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE0_WIREDANDALTFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTFILTER << 0) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUP << 0) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEH_MODE0_WIREDANDALTPULLUPFILTER << 0) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define _GPIO_P_MODEH_MODE1_SHIFT 4 /**< Shift value for GPIO_MODE1 */
+#define _GPIO_P_MODEH_MODE1_MASK 0xF0UL /**< Bit mask for GPIO_MODE1 */
+#define _GPIO_P_MODEH_MODE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE1_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_DEFAULT (_GPIO_P_MODEH_MODE1_DEFAULT << 4) /**< Shifted mode DEFAULT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_DISABLED (_GPIO_P_MODEH_MODE1_DISABLED << 4) /**< Shifted mode DISABLED for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_INPUT (_GPIO_P_MODEH_MODE1_INPUT << 4) /**< Shifted mode INPUT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_INPUTPULL (_GPIO_P_MODEH_MODE1_INPUTPULL << 4) /**< Shifted mode INPUTPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_INPUTPULLFILTER (_GPIO_P_MODEH_MODE1_INPUTPULLFILTER << 4) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_PUSHPULL (_GPIO_P_MODEH_MODE1_PUSHPULL << 4) /**< Shifted mode PUSHPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_PUSHPULLALT (_GPIO_P_MODEH_MODE1_PUSHPULLALT << 4) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_WIREDOR (_GPIO_P_MODEH_MODE1_WIREDOR << 4) /**< Shifted mode WIREDOR for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_WIREDORPULLDOWN (_GPIO_P_MODEH_MODE1_WIREDORPULLDOWN << 4) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDAND (_GPIO_P_MODEH_MODE1_WIREDAND << 4) /**< Shifted mode WIREDAND for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_WIREDANDFILTER (_GPIO_P_MODEH_MODE1_WIREDANDFILTER << 4) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDANDPULLUP (_GPIO_P_MODEH_MODE1_WIREDANDPULLUP << 4) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDANDPULLUPFILTER (_GPIO_P_MODEH_MODE1_WIREDANDPULLUPFILTER << 4) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDANDALT (_GPIO_P_MODEH_MODE1_WIREDANDALT << 4) /**< Shifted mode WIREDANDALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE1_WIREDANDALTFILTER (_GPIO_P_MODEH_MODE1_WIREDANDALTFILTER << 4) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDANDALTPULLUP (_GPIO_P_MODEH_MODE1_WIREDANDALTPULLUP << 4) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE1_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEH_MODE1_WIREDANDALTPULLUPFILTER << 4) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define _GPIO_P_MODEH_MODE2_SHIFT 8 /**< Shift value for GPIO_MODE2 */
+#define _GPIO_P_MODEH_MODE2_MASK 0xF00UL /**< Bit mask for GPIO_MODE2 */
+#define _GPIO_P_MODEH_MODE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_DISABLED 0x00000000UL /**< Mode DISABLED for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_INPUT 0x00000001UL /**< Mode INPUT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_INPUTPULL 0x00000002UL /**< Mode INPUTPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_INPUTPULLFILTER 0x00000003UL /**< Mode INPUTPULLFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_PUSHPULL 0x00000004UL /**< Mode PUSHPULL for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_PUSHPULLALT 0x00000005UL /**< Mode PUSHPULLALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDOR 0x00000006UL /**< Mode WIREDOR for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDORPULLDOWN 0x00000007UL /**< Mode WIREDORPULLDOWN for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDAND 0x00000008UL /**< Mode WIREDAND for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDFILTER 0x00000009UL /**< Mode WIREDANDFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDPULLUP 0x0000000AUL /**< Mode WIREDANDPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDPULLUPFILTER 0x0000000BUL /**< Mode WIREDANDPULLUPFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDALT 0x0000000CUL /**< Mode WIREDANDALT for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDALTFILTER 0x0000000DUL /**< Mode WIREDANDALTFILTER for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDALTPULLUP 0x0000000EUL /**< Mode WIREDANDALTPULLUP for GPIO_P_MODEH */
+#define _GPIO_P_MODEH_MODE2_WIREDANDALTPULLUPFILTER 0x0000000FUL /**< Mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_DEFAULT (_GPIO_P_MODEH_MODE2_DEFAULT << 8) /**< Shifted mode DEFAULT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_DISABLED (_GPIO_P_MODEH_MODE2_DISABLED << 8) /**< Shifted mode DISABLED for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_INPUT (_GPIO_P_MODEH_MODE2_INPUT << 8) /**< Shifted mode INPUT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_INPUTPULL (_GPIO_P_MODEH_MODE2_INPUTPULL << 8) /**< Shifted mode INPUTPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_INPUTPULLFILTER (_GPIO_P_MODEH_MODE2_INPUTPULLFILTER << 8) /**< Shifted mode INPUTPULLFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_PUSHPULL (_GPIO_P_MODEH_MODE2_PUSHPULL << 8) /**< Shifted mode PUSHPULL for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_PUSHPULLALT (_GPIO_P_MODEH_MODE2_PUSHPULLALT << 8) /**< Shifted mode PUSHPULLALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_WIREDOR (_GPIO_P_MODEH_MODE2_WIREDOR << 8) /**< Shifted mode WIREDOR for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_WIREDORPULLDOWN (_GPIO_P_MODEH_MODE2_WIREDORPULLDOWN << 8) /**< Shifted mode WIREDORPULLDOWN for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDAND (_GPIO_P_MODEH_MODE2_WIREDAND << 8) /**< Shifted mode WIREDAND for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_WIREDANDFILTER (_GPIO_P_MODEH_MODE2_WIREDANDFILTER << 8) /**< Shifted mode WIREDANDFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDANDPULLUP (_GPIO_P_MODEH_MODE2_WIREDANDPULLUP << 8) /**< Shifted mode WIREDANDPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDANDPULLUPFILTER (_GPIO_P_MODEH_MODE2_WIREDANDPULLUPFILTER << 8) /**< Shifted mode WIREDANDPULLUPFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDANDALT (_GPIO_P_MODEH_MODE2_WIREDANDALT << 8) /**< Shifted mode WIREDANDALT for GPIO_P_MODEH */
+#define GPIO_P_MODEH_MODE2_WIREDANDALTFILTER (_GPIO_P_MODEH_MODE2_WIREDANDALTFILTER << 8) /**< Shifted mode WIREDANDALTFILTER for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDANDALTPULLUP (_GPIO_P_MODEH_MODE2_WIREDANDALTPULLUP << 8) /**< Shifted mode WIREDANDALTPULLUP for GPIO_P_MODEH*/
+#define GPIO_P_MODEH_MODE2_WIREDANDALTPULLUPFILTER (_GPIO_P_MODEH_MODE2_WIREDANDALTPULLUPFILTER << 8) /**< Shifted mode WIREDANDALTPULLUPFILTER for GPIO_P_MODEH*/
+
+/* Bit fields for GPIO_P DOUT */
+#define _GPIO_P_DOUT_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_MASK 0x000007FFUL /**< Mask for GPIO_P_DOUT */
+#define _GPIO_P_DOUT_DOUT_SHIFT 0 /**< Shift value for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_MASK 0x7FFUL /**< Bit mask for GPIO_DOUT */
+#define _GPIO_P_DOUT_DOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DOUT */
+#define GPIO_P_DOUT_DOUT_DEFAULT (_GPIO_P_DOUT_DOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DOUT */
+
+/* Bit fields for GPIO_P DIN */
+#define _GPIO_P_DIN_RESETVALUE 0x00000000UL /**< Default value for GPIO_P_DIN */
+#define _GPIO_P_DIN_MASK 0x000007FFUL /**< Mask for GPIO_P_DIN */
+#define _GPIO_P_DIN_DIN_SHIFT 0 /**< Shift value for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_MASK 0x7FFUL /**< Bit mask for GPIO_DIN */
+#define _GPIO_P_DIN_DIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for GPIO_P_DIN */
+#define GPIO_P_DIN_DIN_DEFAULT (_GPIO_P_DIN_DIN_DEFAULT << 0) /**< Shifted mode DEFAULT for GPIO_P_DIN */
+/** @} End of group Parts */
+
+#endif // GPIO_PORT_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfrco.h
new file mode 100644
index 000000000..777b53a0e
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfrco.h
@@ -0,0 +1,226 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 HFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_HFRCO_H
+#define EFR32ZG23_HFRCO_H
+#define HFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_HFRCO HFRCO
+ * @{
+ * @brief EFR32ZG23 HFRCO Register Declaration.
+ *****************************************************************************/
+
+/** HFRCO Register Declaration. */
+typedef struct hfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version ID */
+ __IOM uint32_t CTRL; /**< Ctrl Register */
+ __IOM uint32_t CAL; /**< Calibration Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ uint32_t RESERVED1[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version ID */
+ __IOM uint32_t CTRL_SET; /**< Ctrl Register */
+ __IOM uint32_t CAL_SET; /**< Calibration Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ uint32_t RESERVED3[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version ID */
+ __IOM uint32_t CTRL_CLR; /**< Ctrl Register */
+ __IOM uint32_t CAL_CLR; /**< Calibration Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ uint32_t RESERVED5[1016U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version ID */
+ __IOM uint32_t CTRL_TGL; /**< Ctrl Register */
+ __IOM uint32_t CAL_TGL; /**< Calibration Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+} HFRCO_TypeDef;
+/** @} End of group EFR32ZG23_HFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_HFRCO
+ * @{
+ * @defgroup EFR32ZG23_HFRCO_BitFields HFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFRCO IPVERSION */
+#define _HFRCO_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFRCO_IPVERSION */
+#define _HFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_IPVERSION */
+#define HFRCO_IPVERSION_IPVERSION_DEFAULT (_HFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IPVERSION */
+
+/* Bit fields for HFRCO CTRL */
+#define _HFRCO_CTRL_RESETVALUE 0x00000000UL /**< Default value for HFRCO_CTRL */
+#define _HFRCO_CTRL_MASK 0x00000007UL /**< Mask for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN (0x1UL << 0) /**< Force Enable */
+#define _HFRCO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for HFRCO_FORCEEN */
+#define _HFRCO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_FORCEEN_DEFAULT (_HFRCO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND (0x1UL << 1) /**< Disable On-demand */
+#define _HFRCO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for HFRCO_DISONDEMAND */
+#define _HFRCO_CTRL_DISONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_DISONDEMAND_DEFAULT (_HFRCO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND (0x1UL << 2) /**< EM23 On-demand */
+#define _HFRCO_CTRL_EM23ONDEMAND_SHIFT 2 /**< Shift value for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_MASK 0x4UL /**< Bit mask for HFRCO_EM23ONDEMAND */
+#define _HFRCO_CTRL_EM23ONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CTRL */
+#define HFRCO_CTRL_EM23ONDEMAND_DEFAULT (_HFRCO_CTRL_EM23ONDEMAND_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_CTRL */
+
+/* Bit fields for HFRCO CAL */
+#define _HFRCO_CAL_RESETVALUE 0xA8689F7FUL /**< Default value for HFRCO_CAL */
+#define _HFRCO_CAL_MASK 0xFFFFBF7FUL /**< Mask for HFRCO_CAL */
+#define _HFRCO_CAL_TUNING_SHIFT 0 /**< Shift value for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_MASK 0x7FUL /**< Bit mask for HFRCO_TUNING */
+#define _HFRCO_CAL_TUNING_DEFAULT 0x0000007FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_TUNING_DEFAULT (_HFRCO_CAL_TUNING_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FINETUNING_SHIFT 8 /**< Shift value for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_MASK 0x3F00UL /**< Bit mask for HFRCO_FINETUNING */
+#define _HFRCO_CAL_FINETUNING_DEFAULT 0x0000001FUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FINETUNING_DEFAULT (_HFRCO_CAL_FINETUNING_DEFAULT << 8) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP (0x1UL << 15) /**< LDO High Power Mode */
+#define _HFRCO_CAL_LDOHP_SHIFT 15 /**< Shift value for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_MASK 0x8000UL /**< Bit mask for HFRCO_LDOHP */
+#define _HFRCO_CAL_LDOHP_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_LDOHP_DEFAULT (_HFRCO_CAL_LDOHP_DEFAULT << 15) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_FREQRANGE_SHIFT 16 /**< Shift value for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_MASK 0x1F0000UL /**< Bit mask for HFRCO_FREQRANGE */
+#define _HFRCO_CAL_FREQRANGE_DEFAULT 0x00000008UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_FREQRANGE_DEFAULT (_HFRCO_CAL_FREQRANGE_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CMPBIAS_SHIFT 21 /**< Shift value for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_MASK 0xE00000UL /**< Bit mask for HFRCO_CMPBIAS */
+#define _HFRCO_CAL_CMPBIAS_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPBIAS_DEFAULT (_HFRCO_CAL_CMPBIAS_DEFAULT << 21) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_SHIFT 24 /**< Shift value for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_MASK 0x3000000UL /**< Bit mask for HFRCO_CLKDIV */
+#define _HFRCO_CAL_CLKDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV1 0x00000000UL /**< Mode DIV1 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV2 0x00000001UL /**< Mode DIV2 for HFRCO_CAL */
+#define _HFRCO_CAL_CLKDIV_DIV4 0x00000002UL /**< Mode DIV4 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DEFAULT (_HFRCO_CAL_CLKDIV_DEFAULT << 24) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV1 (_HFRCO_CAL_CLKDIV_DIV1 << 24) /**< Shifted mode DIV1 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV2 (_HFRCO_CAL_CLKDIV_DIV2 << 24) /**< Shifted mode DIV2 for HFRCO_CAL */
+#define HFRCO_CAL_CLKDIV_DIV4 (_HFRCO_CAL_CLKDIV_DIV4 << 24) /**< Shifted mode DIV4 for HFRCO_CAL */
+#define _HFRCO_CAL_CMPSEL_SHIFT 26 /**< Shift value for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_MASK 0xC000000UL /**< Bit mask for HFRCO_CMPSEL */
+#define _HFRCO_CAL_CMPSEL_DEFAULT 0x00000002UL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_CMPSEL_DEFAULT (_HFRCO_CAL_CMPSEL_DEFAULT << 26) /**< Shifted mode DEFAULT for HFRCO_CAL */
+#define _HFRCO_CAL_IREFTC_SHIFT 28 /**< Shift value for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_MASK 0xF0000000UL /**< Bit mask for HFRCO_IREFTC */
+#define _HFRCO_CAL_IREFTC_DEFAULT 0x0000000AUL /**< Mode DEFAULT for HFRCO_CAL */
+#define HFRCO_CAL_IREFTC_DEFAULT (_HFRCO_CAL_IREFTC_DEFAULT << 28) /**< Shifted mode DEFAULT for HFRCO_CAL */
+
+/* Bit fields for HFRCO STATUS */
+#define _HFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFRCO_STATUS */
+#define _HFRCO_STATUS_MASK 0x80010007UL /**< Mask for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY (0x1UL << 0) /**< Ready */
+#define _HFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_RDY_DEFAULT (_HFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY (0x1UL << 1) /**< Frequency Updating Busy */
+#define _HFRCO_STATUS_FREQBSY_SHIFT 1 /**< Shift value for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_MASK 0x2UL /**< Bit mask for HFRCO_FREQBSY */
+#define _HFRCO_STATUS_FREQBSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_FREQBSY_DEFAULT (_HFRCO_STATUS_FREQBSY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY (0x1UL << 2) /**< Synchronization Busy */
+#define _HFRCO_STATUS_SYNCBUSY_SHIFT 2 /**< Shift value for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_MASK 0x4UL /**< Bit mask for HFRCO_SYNCBUSY */
+#define _HFRCO_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_SYNCBUSY_DEFAULT (_HFRCO_STATUS_SYNCBUSY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _HFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFRCO_ENS */
+#define _HFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_ENS_DEFAULT (_HFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _HFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFRCO_LOCK */
+#define _HFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFRCO_STATUS */
+#define _HFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_DEFAULT (_HFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_UNLOCKED (_HFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFRCO_STATUS */
+#define HFRCO_STATUS_LOCK_LOCKED (_HFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFRCO_STATUS */
+
+/* Bit fields for HFRCO IF */
+#define _HFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IF */
+#define _HFRCO_IF_MASK 0x00000001UL /**< Mask for HFRCO_IF */
+#define HFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _HFRCO_IF_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IF */
+#define HFRCO_IF_RDY_DEFAULT (_HFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IF */
+
+/* Bit fields for HFRCO IEN */
+#define _HFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFRCO_IEN */
+#define _HFRCO_IEN_MASK 0x00000001UL /**< Mask for HFRCO_IEN */
+#define HFRCO_IEN_RDY (0x1UL << 0) /**< RDY Interrupt Enable */
+#define _HFRCO_IEN_RDY_SHIFT 0 /**< Shift value for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFRCO_RDY */
+#define _HFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFRCO_IEN */
+#define HFRCO_IEN_RDY_DEFAULT (_HFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_IEN */
+
+/* Bit fields for HFRCO LOCK */
+#define _HFRCO_LOCK_RESETVALUE 0x00008195UL /**< Default value for HFRCO_LOCK */
+#define _HFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFRCO_LOCKKEY */
+#define _HFRCO_LOCK_LOCKKEY_DEFAULT 0x00008195UL /**< Mode DEFAULT for HFRCO_LOCK */
+#define _HFRCO_LOCK_LOCKKEY_UNLOCK 0x00008195UL /**< Mode UNLOCK for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_DEFAULT (_HFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFRCO_LOCK */
+#define HFRCO_LOCK_LOCKKEY_UNLOCK (_HFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFRCO_LOCK */
+
+/** @} End of group EFR32ZG23_HFRCO_BitFields */
+/** @} End of group EFR32ZG23_HFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_HFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfxo.h
new file mode 100644
index 000000000..0630ad9f3
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_hfxo.h
@@ -0,0 +1,801 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 HFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_HFXO_H
+#define EFR32ZG23_HFXO_H
+#define HFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_HFXO HFXO
+ * @{
+ * @brief EFR32ZG23 HFXO Register Declaration.
+ *****************************************************************************/
+
+/** HFXO Register Declaration. */
+typedef struct hfxo_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG; /**< Crystal Configuration Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL; /**< Crystal Control Register */
+ __IOM uint32_t XTALCTRL1; /**< BUFOUT Crystal Control Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control Register */
+ uint32_t RESERVED3[5U]; /**< Reserved for future use */
+ __IOM uint32_t BUFOUTTRIM; /**< BUFOUT Trim Configuration Register */
+ __IOM uint32_t BUFOUTCTRL; /**< BUFOUT Control Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED6[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED8[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ uint32_t RESERVED9[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_SET; /**< Crystal Configuration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_SET; /**< Crystal Control Register */
+ __IOM uint32_t XTALCTRL1_SET; /**< BUFOUT Crystal Control Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ uint32_t RESERVED12[5U]; /**< Reserved for future use */
+ __IOM uint32_t BUFOUTTRIM_SET; /**< BUFOUT Trim Configuration Register */
+ __IOM uint32_t BUFOUTCTRL_SET; /**< BUFOUT Control Register */
+ uint32_t RESERVED13[2U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED15[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED17[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_CLR; /**< Crystal Configuration Register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_CLR; /**< Crystal Control Register */
+ __IOM uint32_t XTALCTRL1_CLR; /**< BUFOUT Crystal Control Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ uint32_t RESERVED21[5U]; /**< Reserved for future use */
+ __IOM uint32_t BUFOUTTRIM_CLR; /**< BUFOUT Trim Configuration Register */
+ __IOM uint32_t BUFOUTCTRL_CLR; /**< BUFOUT Control Register */
+ uint32_t RESERVED22[2U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED24[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED25[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED26[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCFG_TGL; /**< Crystal Configuration Register */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IOM uint32_t XTALCTRL_TGL; /**< Crystal Control Register */
+ __IOM uint32_t XTALCTRL1_TGL; /**< BUFOUT Crystal Control Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ uint32_t RESERVED30[5U]; /**< Reserved for future use */
+ __IOM uint32_t BUFOUTTRIM_TGL; /**< BUFOUT Trim Configuration Register */
+ __IOM uint32_t BUFOUTCTRL_TGL; /**< BUFOUT Control Register */
+ uint32_t RESERVED31[2U]; /**< Reserved for future use */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED33[5U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED34[2U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} HFXO_TypeDef;
+/** @} End of group EFR32ZG23_HFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_HFXO
+ * @{
+ * @defgroup EFR32ZG23_HFXO_BitFields HFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for HFXO IPVERSION */
+#define _HFXO_IPVERSION_RESETVALUE 0x00000003UL /**< Default value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for HFXO_IPVERSION */
+#define _HFXO_IPVERSION_IPVERSION_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_IPVERSION */
+#define HFXO_IPVERSION_IPVERSION_DEFAULT (_HFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IPVERSION */
+
+/* Bit fields for HFXO XTALCFG */
+#define _HFXO_XTALCFG_RESETVALUE 0x0BB00820UL /**< Default value for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_MASK 0x0FFFFFFFUL /**< Mask for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_SHIFT 0 /**< Shift value for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_MASK 0x3FUL /**< Bit mask for HFXO_COREBIASSTARTUPI */
+#define _HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT 0x00000020UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUPI_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_SHIFT 6 /**< Shift value for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_MASK 0xFC0UL /**< Bit mask for HFXO_COREBIASSTARTUP */
+#define _HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT 0x00000020UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT (_HFXO_XTALCFG_COREBIASSTARTUP_DEFAULT << 6) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_SHIFT 12 /**< Shift value for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_MASK 0xF000UL /**< Bit mask for HFXO_CTUNEXISTARTUP */
+#define _HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXISTARTUP_DEFAULT << 12) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_SHIFT 16 /**< Shift value for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_MASK 0xF0000UL /**< Bit mask for HFXO_CTUNEXOSTARTUP */
+#define _HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT (_HFXO_XTALCFG_CTUNEXOSTARTUP_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_SHIFT 20 /**< Shift value for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_MASK 0xF00000UL /**< Bit mask for HFXO_TIMEOUTSTEADY */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT 0x0000000BUL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T4US 0x00000000UL /**< Mode T4US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T16US 0x00000001UL /**< Mode T16US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T41US 0x00000002UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T83US 0x00000003UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T125US 0x00000004UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T166US 0x00000005UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T208US 0x00000006UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T250US 0x00000007UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T333US 0x00000008UL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T416US 0x00000009UL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T500US 0x0000000AUL /**< Mode T500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T666US 0x0000000BUL /**< Mode T666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T833US 0x0000000CUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T1666US 0x0000000DUL /**< Mode T1666US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T2500US 0x0000000EUL /**< Mode T2500US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTSTEADY_T4166US 0x0000000FUL /**< Mode T4166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT (_HFXO_XTALCFG_TIMEOUTSTEADY_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T4US (_HFXO_XTALCFG_TIMEOUTSTEADY_T4US << 20) /**< Shifted mode T4US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T16US (_HFXO_XTALCFG_TIMEOUTSTEADY_T16US << 20) /**< Shifted mode T16US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T41US (_HFXO_XTALCFG_TIMEOUTSTEADY_T41US << 20) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T83US (_HFXO_XTALCFG_TIMEOUTSTEADY_T83US << 20) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T125US (_HFXO_XTALCFG_TIMEOUTSTEADY_T125US << 20) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T166US << 20) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T208US (_HFXO_XTALCFG_TIMEOUTSTEADY_T208US << 20) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T250US (_HFXO_XTALCFG_TIMEOUTSTEADY_T250US << 20) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T333US (_HFXO_XTALCFG_TIMEOUTSTEADY_T333US << 20) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T416US (_HFXO_XTALCFG_TIMEOUTSTEADY_T416US << 20) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T500US << 20) /**< Shifted mode T500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T666US << 20) /**< Shifted mode T666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T833US (_HFXO_XTALCFG_TIMEOUTSTEADY_T833US << 20) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T1666US (_HFXO_XTALCFG_TIMEOUTSTEADY_T1666US << 20) /**< Shifted mode T1666US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T2500US (_HFXO_XTALCFG_TIMEOUTSTEADY_T2500US << 20) /**< Shifted mode T2500US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTSTEADY_T4166US (_HFXO_XTALCFG_TIMEOUTSTEADY_T4166US << 20) /**< Shifted mode T4166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_SHIFT 24 /**< Shift value for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_MASK 0xF000000UL /**< Bit mask for HFXO_TIMEOUTCBLSB */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT 0x0000000BUL /**< Mode DEFAULT for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T8US 0x00000000UL /**< Mode T8US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T20US 0x00000001UL /**< Mode T20US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T41US 0x00000002UL /**< Mode T41US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T62US 0x00000003UL /**< Mode T62US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T83US 0x00000004UL /**< Mode T83US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T104US 0x00000005UL /**< Mode T104US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T125US 0x00000006UL /**< Mode T125US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T166US 0x00000007UL /**< Mode T166US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T208US 0x00000008UL /**< Mode T208US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T250US 0x00000009UL /**< Mode T250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T333US 0x0000000AUL /**< Mode T333US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T416US 0x0000000BUL /**< Mode T416US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T833US 0x0000000CUL /**< Mode T833US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T1250US 0x0000000DUL /**< Mode T1250US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T2083US 0x0000000EUL /**< Mode T2083US for HFXO_XTALCFG */
+#define _HFXO_XTALCFG_TIMEOUTCBLSB_T3750US 0x0000000FUL /**< Mode T3750US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT (_HFXO_XTALCFG_TIMEOUTCBLSB_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T8US (_HFXO_XTALCFG_TIMEOUTCBLSB_T8US << 24) /**< Shifted mode T8US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T20US (_HFXO_XTALCFG_TIMEOUTCBLSB_T20US << 24) /**< Shifted mode T20US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T41US (_HFXO_XTALCFG_TIMEOUTCBLSB_T41US << 24) /**< Shifted mode T41US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T62US (_HFXO_XTALCFG_TIMEOUTCBLSB_T62US << 24) /**< Shifted mode T62US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T83US (_HFXO_XTALCFG_TIMEOUTCBLSB_T83US << 24) /**< Shifted mode T83US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T104US (_HFXO_XTALCFG_TIMEOUTCBLSB_T104US << 24) /**< Shifted mode T104US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T125US (_HFXO_XTALCFG_TIMEOUTCBLSB_T125US << 24) /**< Shifted mode T125US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T166US (_HFXO_XTALCFG_TIMEOUTCBLSB_T166US << 24) /**< Shifted mode T166US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T208US (_HFXO_XTALCFG_TIMEOUTCBLSB_T208US << 24) /**< Shifted mode T208US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T250US << 24) /**< Shifted mode T250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T333US (_HFXO_XTALCFG_TIMEOUTCBLSB_T333US << 24) /**< Shifted mode T333US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T416US (_HFXO_XTALCFG_TIMEOUTCBLSB_T416US << 24) /**< Shifted mode T416US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T833US (_HFXO_XTALCFG_TIMEOUTCBLSB_T833US << 24) /**< Shifted mode T833US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T1250US (_HFXO_XTALCFG_TIMEOUTCBLSB_T1250US << 24) /**< Shifted mode T1250US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T2083US (_HFXO_XTALCFG_TIMEOUTCBLSB_T2083US << 24) /**< Shifted mode T2083US for HFXO_XTALCFG */
+#define HFXO_XTALCFG_TIMEOUTCBLSB_T3750US (_HFXO_XTALCFG_TIMEOUTCBLSB_T3750US << 24) /**< Shifted mode T3750US for HFXO_XTALCFG */
+
+/* Bit fields for HFXO XTALCTRL */
+#define _HFXO_XTALCTRL_RESETVALUE 0x033C3C3CUL /**< Default value for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_MASK 0x8FFFFFFFUL /**< Mask for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREBIASANA_SHIFT 0 /**< Shift value for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_MASK 0xFFUL /**< Bit mask for HFXO_COREBIASANA */
+#define _HFXO_XTALCTRL_COREBIASANA_DEFAULT 0x0000003CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREBIASANA_DEFAULT (_HFXO_XTALCTRL_COREBIASANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXIANA_SHIFT 8 /**< Shift value for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_MASK 0xFF00UL /**< Bit mask for HFXO_CTUNEXIANA */
+#define _HFXO_XTALCTRL_CTUNEXIANA_DEFAULT 0x0000003CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXIANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXIANA_DEFAULT << 8) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEXOANA_SHIFT 16 /**< Shift value for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_MASK 0xFF0000UL /**< Bit mask for HFXO_CTUNEXOANA */
+#define _HFXO_XTALCTRL_CTUNEXOANA_DEFAULT 0x0000003CUL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEXOANA_DEFAULT (_HFXO_XTALCTRL_CTUNEXOANA_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_SHIFT 24 /**< Shift value for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_MASK 0x3000000UL /**< Bit mask for HFXO_CTUNEFIXANA */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XI 0x00000001UL /**< Mode XI for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_XO 0x00000002UL /**< Mode XO for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_CTUNEFIXANA_BOTH 0x00000003UL /**< Mode BOTH for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT (_HFXO_XTALCTRL_CTUNEFIXANA_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_NONE (_HFXO_XTALCTRL_CTUNEFIXANA_NONE << 24) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XI (_HFXO_XTALCTRL_CTUNEFIXANA_XI << 24) /**< Shifted mode XI for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_XO (_HFXO_XTALCTRL_CTUNEFIXANA_XO << 24) /**< Shifted mode XO for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_CTUNEFIXANA_BOTH (_HFXO_XTALCTRL_CTUNEFIXANA_BOTH << 24) /**< Shifted mode BOTH for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_SHIFT 26 /**< Shift value for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_MASK 0xC000000UL /**< Bit mask for HFXO_COREDGENANA */
+#define _HFXO_XTALCTRL_COREDGENANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_NONE 0x00000000UL /**< Mode NONE for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN33 0x00000001UL /**< Mode DGEN33 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN50 0x00000002UL /**< Mode DGEN50 for HFXO_XTALCTRL */
+#define _HFXO_XTALCTRL_COREDGENANA_DGEN100 0x00000003UL /**< Mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DEFAULT (_HFXO_XTALCTRL_COREDGENANA_DEFAULT << 26) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_NONE (_HFXO_XTALCTRL_COREDGENANA_NONE << 26) /**< Shifted mode NONE for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN33 (_HFXO_XTALCTRL_COREDGENANA_DGEN33 << 26) /**< Shifted mode DGEN33 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN50 (_HFXO_XTALCTRL_COREDGENANA_DGEN50 << 26) /**< Shifted mode DGEN50 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_COREDGENANA_DGEN100 (_HFXO_XTALCTRL_COREDGENANA_DGEN100 << 26) /**< Shifted mode DGEN100 for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT (0x1UL << 31) /**< Skip Core Bias Optimization */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_SHIFT 31 /**< Shift value for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_MASK 0x80000000UL /**< Bit mask for HFXO_SKIPCOREBIASOPT */
+#define _HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_XTALCTRL */
+#define HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT (_HFXO_XTALCTRL_SKIPCOREBIASOPT_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_XTALCTRL */
+
+/* Bit fields for HFXO XTALCTRL1 */
+#define _HFXO_XTALCTRL1_RESETVALUE 0x0000003CUL /**< Default value for HFXO_XTALCTRL1 */
+#define _HFXO_XTALCTRL1_MASK 0x000000FFUL /**< Mask for HFXO_XTALCTRL1 */
+#define _HFXO_XTALCTRL1_CTUNEXIBUFOUTANA_SHIFT 0 /**< Shift value for HFXO_CTUNEXIBUFOUTANA */
+#define _HFXO_XTALCTRL1_CTUNEXIBUFOUTANA_MASK 0xFFUL /**< Bit mask for HFXO_CTUNEXIBUFOUTANA */
+#define _HFXO_XTALCTRL1_CTUNEXIBUFOUTANA_DEFAULT 0x0000003CUL /**< Mode DEFAULT for HFXO_XTALCTRL1 */
+#define HFXO_XTALCTRL1_CTUNEXIBUFOUTANA_DEFAULT (_HFXO_XTALCTRL1_CTUNEXIBUFOUTANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_XTALCTRL1 */
+
+/* Bit fields for HFXO CFG */
+#define _HFXO_CFG_RESETVALUE 0x10000000UL /**< Default value for HFXO_CFG */
+#define _HFXO_CFG_MASK 0xB000000FUL /**< Mask for HFXO_CFG */
+#define _HFXO_CFG_MODE_SHIFT 0 /**< Shift value for HFXO_MODE */
+#define _HFXO_CFG_MODE_MASK 0x3UL /**< Bit mask for HFXO_MODE */
+#define _HFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for HFXO_CFG */
+#define _HFXO_CFG_MODE_EXTCLK 0x00000001UL /**< Mode EXTCLK for HFXO_CFG */
+#define _HFXO_CFG_MODE_EXTCLKPKDET 0x00000002UL /**< Mode EXTCLKPKDET for HFXO_CFG */
+#define HFXO_CFG_MODE_DEFAULT (_HFXO_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_MODE_XTAL (_HFXO_CFG_MODE_XTAL << 0) /**< Shifted mode XTAL for HFXO_CFG */
+#define HFXO_CFG_MODE_EXTCLK (_HFXO_CFG_MODE_EXTCLK << 0) /**< Shifted mode EXTCLK for HFXO_CFG */
+#define HFXO_CFG_MODE_EXTCLKPKDET (_HFXO_CFG_MODE_EXTCLKPKDET << 0) /**< Shifted mode EXTCLKPKDET for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA (0x1UL << 2) /**< Enable XI Internal DC Bias */
+#define _HFXO_CFG_ENXIDCBIASANA_SHIFT 2 /**< Shift value for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_MASK 0x4UL /**< Bit mask for HFXO_ENXIDCBIASANA */
+#define _HFXO_CFG_ENXIDCBIASANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_ENXIDCBIASANA_DEFAULT (_HFXO_CFG_ENXIDCBIASANA_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA (0x1UL << 3) /**< Squaring Buffer Schmitt Trigger */
+#define _HFXO_CFG_SQBUFSCHTRGANA_SHIFT 3 /**< Shift value for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_MASK 0x8UL /**< Bit mask for HFXO_SQBUFSCHTRGANA */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CFG */
+#define _HFXO_CFG_SQBUFSCHTRGANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DEFAULT (_HFXO_CFG_SQBUFSCHTRGANA_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_DISABLE (_HFXO_CFG_SQBUFSCHTRGANA_DISABLE << 3) /**< Shifted mode DISABLE for HFXO_CFG */
+#define HFXO_CFG_SQBUFSCHTRGANA_ENABLE (_HFXO_CFG_SQBUFSCHTRGANA_ENABLE << 3) /**< Shifted mode ENABLE for HFXO_CFG */
+#define HFXO_CFG_FORCELFTIMEOUT (0x1UL << 28) /**< Force Low Frequency Timeout */
+#define _HFXO_CFG_FORCELFTIMEOUT_SHIFT 28 /**< Shift value for HFXO_FORCELFTIMEOUT */
+#define _HFXO_CFG_FORCELFTIMEOUT_MASK 0x10000000UL /**< Bit mask for HFXO_FORCELFTIMEOUT */
+#define _HFXO_CFG_FORCELFTIMEOUT_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CFG */
+#define HFXO_CFG_FORCELFTIMEOUT_DEFAULT (_HFXO_CFG_FORCELFTIMEOUT_DEFAULT << 28) /**< Shifted mode DEFAULT for HFXO_CFG */
+
+/* Bit fields for HFXO CTRL */
+#define _HFXO_CTRL_RESETVALUE 0x07000040UL /**< Default value for HFXO_CTRL */
+#define _HFXO_CTRL_MASK 0x8707FF7DUL /**< Mask for HFXO_CTRL */
+#define HFXO_CTRL_BUFOUTFREEZE (0x1UL << 0) /**< Freeze BUFOUT Controls */
+#define _HFXO_CTRL_BUFOUTFREEZE_SHIFT 0 /**< Shift value for HFXO_BUFOUTFREEZE */
+#define _HFXO_CTRL_BUFOUTFREEZE_MASK 0x1UL /**< Bit mask for HFXO_BUFOUTFREEZE */
+#define _HFXO_CTRL_BUFOUTFREEZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_BUFOUTFREEZE_DEFAULT (_HFXO_CTRL_BUFOUTFREEZE_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM (0x1UL << 2) /**< Keep Warm */
+#define _HFXO_CTRL_KEEPWARM_SHIFT 2 /**< Shift value for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_MASK 0x4UL /**< Bit mask for HFXO_KEEPWARM */
+#define _HFXO_CTRL_KEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_KEEPWARM_DEFAULT (_HFXO_CTRL_KEEPWARM_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_EM23ONDEMAND (0x1UL << 3) /**< On-demand During EM23 */
+#define _HFXO_CTRL_EM23ONDEMAND_SHIFT 3 /**< Shift value for HFXO_EM23ONDEMAND */
+#define _HFXO_CTRL_EM23ONDEMAND_MASK 0x8UL /**< Bit mask for HFXO_EM23ONDEMAND */
+#define _HFXO_CTRL_EM23ONDEMAND_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_EM23ONDEMAND_DEFAULT (_HFXO_CTRL_EM23ONDEMAND_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA (0x1UL << 4) /**< Force XI Pin to Ground */
+#define _HFXO_CTRL_FORCEXI2GNDANA_SHIFT 4 /**< Shift value for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_MASK 0x10UL /**< Bit mask for HFXO_FORCEXI2GNDANA */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXI2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXI2GNDANA_DEFAULT << 4) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_DISABLE (_HFXO_CTRL_FORCEXI2GNDANA_DISABLE << 4) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXI2GNDANA_ENABLE (_HFXO_CTRL_FORCEXI2GNDANA_ENABLE << 4) /**< Shifted mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA (0x1UL << 5) /**< Force XO Pin to Ground */
+#define _HFXO_CTRL_FORCEXO2GNDANA_SHIFT 5 /**< Shift value for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_MASK 0x20UL /**< Bit mask for HFXO_FORCEXO2GNDANA */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_DISABLE 0x00000000UL /**< Mode DISABLE for HFXO_CTRL */
+#define _HFXO_CTRL_FORCEXO2GNDANA_ENABLE 0x00000001UL /**< Mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DEFAULT (_HFXO_CTRL_FORCEXO2GNDANA_DEFAULT << 5) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_DISABLE (_HFXO_CTRL_FORCEXO2GNDANA_DISABLE << 5) /**< Shifted mode DISABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCEXO2GNDANA_ENABLE (_HFXO_CTRL_FORCEXO2GNDANA_ENABLE << 5) /**< Shifted mode ENABLE for HFXO_CTRL */
+#define HFXO_CTRL_FORCECTUNEMAX (0x1UL << 6) /**< Force Tuning Cap to Max Value */
+#define _HFXO_CTRL_FORCECTUNEMAX_SHIFT 6 /**< Shift value for HFXO_FORCECTUNEMAX */
+#define _HFXO_CTRL_FORCECTUNEMAX_MASK 0x40UL /**< Bit mask for HFXO_FORCECTUNEMAX */
+#define _HFXO_CTRL_FORCECTUNEMAX_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCECTUNEMAX_DEFAULT (_HFXO_CTRL_FORCECTUNEMAX_DEFAULT << 6) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_SHIFT 8 /**< Shift value for HFXO_PRSSTATUSSEL0 */
+#define _HFXO_CTRL_PRSSTATUSSEL0_MASK 0xF00UL /**< Bit mask for HFXO_PRSSTATUSSEL0 */
+#define _HFXO_CTRL_PRSSTATUSSEL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_DISABLED 0x00000000UL /**< Mode DISABLED for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_ENS 0x00000001UL /**< Mode ENS for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_COREBIASOPTRDY 0x00000002UL /**< Mode COREBIASOPTRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_RDY 0x00000003UL /**< Mode RDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_PRSRDY 0x00000004UL /**< Mode PRSRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_BUFOUTRDY 0x00000005UL /**< Mode BUFOUTRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_HWREQ 0x00000008UL /**< Mode HWREQ for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_PRSHWREQ 0x00000009UL /**< Mode PRSHWREQ for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL0_BUFOUTHWREQ 0x0000000AUL /**< Mode BUFOUTHWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_DEFAULT (_HFXO_CTRL_PRSSTATUSSEL0_DEFAULT << 8) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_DISABLED (_HFXO_CTRL_PRSSTATUSSEL0_DISABLED << 8) /**< Shifted mode DISABLED for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_ENS (_HFXO_CTRL_PRSSTATUSSEL0_ENS << 8) /**< Shifted mode ENS for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_COREBIASOPTRDY (_HFXO_CTRL_PRSSTATUSSEL0_COREBIASOPTRDY << 8) /**< Shifted mode COREBIASOPTRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_RDY (_HFXO_CTRL_PRSSTATUSSEL0_RDY << 8) /**< Shifted mode RDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_PRSRDY (_HFXO_CTRL_PRSSTATUSSEL0_PRSRDY << 8) /**< Shifted mode PRSRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_BUFOUTRDY (_HFXO_CTRL_PRSSTATUSSEL0_BUFOUTRDY << 8) /**< Shifted mode BUFOUTRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_HWREQ (_HFXO_CTRL_PRSSTATUSSEL0_HWREQ << 8) /**< Shifted mode HWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_PRSHWREQ (_HFXO_CTRL_PRSSTATUSSEL0_PRSHWREQ << 8) /**< Shifted mode PRSHWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL0_BUFOUTHWREQ (_HFXO_CTRL_PRSSTATUSSEL0_BUFOUTHWREQ << 8) /**< Shifted mode BUFOUTHWREQ for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_SHIFT 12 /**< Shift value for HFXO_PRSSTATUSSEL1 */
+#define _HFXO_CTRL_PRSSTATUSSEL1_MASK 0xF000UL /**< Bit mask for HFXO_PRSSTATUSSEL1 */
+#define _HFXO_CTRL_PRSSTATUSSEL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_DISABLED 0x00000000UL /**< Mode DISABLED for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_ENS 0x00000001UL /**< Mode ENS for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_COREBIASOPTRDY 0x00000002UL /**< Mode COREBIASOPTRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_RDY 0x00000003UL /**< Mode RDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_PRSRDY 0x00000004UL /**< Mode PRSRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_BUFOUTRDY 0x00000005UL /**< Mode BUFOUTRDY for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_HWREQ 0x00000008UL /**< Mode HWREQ for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_PRSHWREQ 0x00000009UL /**< Mode PRSHWREQ for HFXO_CTRL */
+#define _HFXO_CTRL_PRSSTATUSSEL1_BUFOUTHWREQ 0x0000000AUL /**< Mode BUFOUTHWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_DEFAULT (_HFXO_CTRL_PRSSTATUSSEL1_DEFAULT << 12) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_DISABLED (_HFXO_CTRL_PRSSTATUSSEL1_DISABLED << 12) /**< Shifted mode DISABLED for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_ENS (_HFXO_CTRL_PRSSTATUSSEL1_ENS << 12) /**< Shifted mode ENS for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_COREBIASOPTRDY (_HFXO_CTRL_PRSSTATUSSEL1_COREBIASOPTRDY << 12) /**< Shifted mode COREBIASOPTRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_RDY (_HFXO_CTRL_PRSSTATUSSEL1_RDY << 12) /**< Shifted mode RDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_PRSRDY (_HFXO_CTRL_PRSSTATUSSEL1_PRSRDY << 12) /**< Shifted mode PRSRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_BUFOUTRDY (_HFXO_CTRL_PRSSTATUSSEL1_BUFOUTRDY << 12) /**< Shifted mode BUFOUTRDY for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_HWREQ (_HFXO_CTRL_PRSSTATUSSEL1_HWREQ << 12) /**< Shifted mode HWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_PRSHWREQ (_HFXO_CTRL_PRSSTATUSSEL1_PRSHWREQ << 12) /**< Shifted mode PRSHWREQ for HFXO_CTRL */
+#define HFXO_CTRL_PRSSTATUSSEL1_BUFOUTHWREQ (_HFXO_CTRL_PRSSTATUSSEL1_BUFOUTHWREQ << 12) /**< Shifted mode BUFOUTHWREQ for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN (0x1UL << 16) /**< Force Digital Clock Request */
+#define _HFXO_CTRL_FORCEEN_SHIFT 16 /**< Shift value for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_MASK 0x10000UL /**< Bit mask for HFXO_FORCEEN */
+#define _HFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEEN_DEFAULT (_HFXO_CTRL_FORCEEN_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEENPRS (0x1UL << 17) /**< Force PRS Oscillator Request */
+#define _HFXO_CTRL_FORCEENPRS_SHIFT 17 /**< Shift value for HFXO_FORCEENPRS */
+#define _HFXO_CTRL_FORCEENPRS_MASK 0x20000UL /**< Bit mask for HFXO_FORCEENPRS */
+#define _HFXO_CTRL_FORCEENPRS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEENPRS_DEFAULT (_HFXO_CTRL_FORCEENPRS_DEFAULT << 17) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEENBUFOUT (0x1UL << 18) /**< Force BUFOUT Request */
+#define _HFXO_CTRL_FORCEENBUFOUT_SHIFT 18 /**< Shift value for HFXO_FORCEENBUFOUT */
+#define _HFXO_CTRL_FORCEENBUFOUT_MASK 0x40000UL /**< Bit mask for HFXO_FORCEENBUFOUT */
+#define _HFXO_CTRL_FORCEENBUFOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_FORCEENBUFOUT_DEFAULT (_HFXO_CTRL_FORCEENBUFOUT_DEFAULT << 18) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND (0x1UL << 24) /**< Disable On-demand For Digital Clock */
+#define _HFXO_CTRL_DISONDEMAND_SHIFT 24 /**< Shift value for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_MASK 0x1000000UL /**< Bit mask for HFXO_DISONDEMAND */
+#define _HFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMAND_DEFAULT (_HFXO_CTRL_DISONDEMAND_DEFAULT << 24) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMANDPRS (0x1UL << 25) /**< Disable On-demand For PRS */
+#define _HFXO_CTRL_DISONDEMANDPRS_SHIFT 25 /**< Shift value for HFXO_DISONDEMANDPRS */
+#define _HFXO_CTRL_DISONDEMANDPRS_MASK 0x2000000UL /**< Bit mask for HFXO_DISONDEMANDPRS */
+#define _HFXO_CTRL_DISONDEMANDPRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMANDPRS_DEFAULT (_HFXO_CTRL_DISONDEMANDPRS_DEFAULT << 25) /**< Shifted mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMANDBUFOUT (0x1UL << 26) /**< Disable On-demand For BUFOUT */
+#define _HFXO_CTRL_DISONDEMANDBUFOUT_SHIFT 26 /**< Shift value for HFXO_DISONDEMANDBUFOUT */
+#define _HFXO_CTRL_DISONDEMANDBUFOUT_MASK 0x4000000UL /**< Bit mask for HFXO_DISONDEMANDBUFOUT */
+#define _HFXO_CTRL_DISONDEMANDBUFOUT_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_CTRL */
+#define HFXO_CTRL_DISONDEMANDBUFOUT_DEFAULT (_HFXO_CTRL_DISONDEMANDBUFOUT_DEFAULT << 26) /**< Shifted mode DEFAULT for HFXO_CTRL */
+
+/* Bit fields for HFXO BUFOUTTRIM */
+#define _HFXO_BUFOUTTRIM_RESETVALUE 0x00000008UL /**< Default value for HFXO_BUFOUTTRIM */
+#define _HFXO_BUFOUTTRIM_MASK 0x0000000FUL /**< Mask for HFXO_BUFOUTTRIM */
+#define _HFXO_BUFOUTTRIM_VTRTRIMANA_SHIFT 0 /**< Shift value for HFXO_VTRTRIMANA */
+#define _HFXO_BUFOUTTRIM_VTRTRIMANA_MASK 0xFUL /**< Bit mask for HFXO_VTRTRIMANA */
+#define _HFXO_BUFOUTTRIM_VTRTRIMANA_DEFAULT 0x00000008UL /**< Mode DEFAULT for HFXO_BUFOUTTRIM */
+#define HFXO_BUFOUTTRIM_VTRTRIMANA_DEFAULT (_HFXO_BUFOUTTRIM_VTRTRIMANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_BUFOUTTRIM */
+
+/* Bit fields for HFXO BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_RESETVALUE 0x00643C15UL /**< Default value for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_MASK 0xC0FFFFFFUL /**< Mask for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_XOUTBIASANA_SHIFT 0 /**< Shift value for HFXO_XOUTBIASANA */
+#define _HFXO_BUFOUTCTRL_XOUTBIASANA_MASK 0xFUL /**< Bit mask for HFXO_XOUTBIASANA */
+#define _HFXO_BUFOUTCTRL_XOUTBIASANA_DEFAULT 0x00000005UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_XOUTBIASANA_DEFAULT (_HFXO_BUFOUTCTRL_XOUTBIASANA_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_XOUTCFANA_SHIFT 4 /**< Shift value for HFXO_XOUTCFANA */
+#define _HFXO_BUFOUTCTRL_XOUTCFANA_MASK 0xF0UL /**< Bit mask for HFXO_XOUTCFANA */
+#define _HFXO_BUFOUTCTRL_XOUTCFANA_DEFAULT 0x00000001UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_XOUTCFANA_DEFAULT (_HFXO_BUFOUTCTRL_XOUTCFANA_DEFAULT << 4) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_XOUTGMANA_SHIFT 8 /**< Shift value for HFXO_XOUTGMANA */
+#define _HFXO_BUFOUTCTRL_XOUTGMANA_MASK 0xF00UL /**< Bit mask for HFXO_XOUTGMANA */
+#define _HFXO_BUFOUTCTRL_XOUTGMANA_DEFAULT 0x0000000CUL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_XOUTGMANA_DEFAULT (_HFXO_BUFOUTCTRL_XOUTGMANA_DEFAULT << 8) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_SHIFT 12 /**< Shift value for HFXO_PEAKDETTHRESANA */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_MASK 0xF000UL /**< Bit mask for HFXO_PEAKDETTHRESANA */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_DEFAULT 0x00000003UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V105MV 0x00000000UL /**< Mode V105MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V132MV 0x00000001UL /**< Mode V132MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V157MV 0x00000002UL /**< Mode V157MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V184MV 0x00000003UL /**< Mode V184MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V210MV 0x00000004UL /**< Mode V210MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V236MV 0x00000005UL /**< Mode V236MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V262MV 0x00000006UL /**< Mode V262MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V289MV 0x00000007UL /**< Mode V289MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V315MV 0x00000008UL /**< Mode V315MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V341MV 0x00000009UL /**< Mode V341MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V367MV 0x0000000AUL /**< Mode V367MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V394MV 0x0000000BUL /**< Mode V394MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V420MV 0x0000000CUL /**< Mode V420MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V446MV 0x0000000DUL /**< Mode V446MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V472MV 0x0000000EUL /**< Mode V472MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V499MV 0x0000000FUL /**< Mode V499MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_DEFAULT (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_DEFAULT << 12) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V105MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V105MV << 12) /**< Shifted mode V105MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V132MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V132MV << 12) /**< Shifted mode V132MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V157MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V157MV << 12) /**< Shifted mode V157MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V184MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V184MV << 12) /**< Shifted mode V184MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V210MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V210MV << 12) /**< Shifted mode V210MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V236MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V236MV << 12) /**< Shifted mode V236MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V262MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V262MV << 12) /**< Shifted mode V262MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V289MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V289MV << 12) /**< Shifted mode V289MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V315MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V315MV << 12) /**< Shifted mode V315MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V341MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V341MV << 12) /**< Shifted mode V341MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V367MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V367MV << 12) /**< Shifted mode V367MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V394MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V394MV << 12) /**< Shifted mode V394MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V420MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V420MV << 12) /**< Shifted mode V420MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V446MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V446MV << 12) /**< Shifted mode V446MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V472MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V472MV << 12) /**< Shifted mode V472MV for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V499MV (_HFXO_BUFOUTCTRL_PEAKDETTHRESANA_V499MV << 12) /**< Shifted mode V499MV for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_SHIFT 16 /**< Shift value for HFXO_TIMEOUTCTUNE */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_MASK 0xF0000UL /**< Bit mask for HFXO_TIMEOUTCTUNE */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_DEFAULT 0x00000004UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T2US 0x00000000UL /**< Mode T2US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T5US 0x00000001UL /**< Mode T5US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T10US 0x00000002UL /**< Mode T10US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T16US 0x00000003UL /**< Mode T16US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T21US 0x00000004UL /**< Mode T21US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T26US 0x00000005UL /**< Mode T26US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T31US 0x00000006UL /**< Mode T31US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T42US 0x00000007UL /**< Mode T42US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T52US 0x00000008UL /**< Mode T52US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T63US 0x00000009UL /**< Mode T63US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T83US 0x0000000AUL /**< Mode T83US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T104US 0x0000000BUL /**< Mode T104US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T208US 0x0000000CUL /**< Mode T208US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T313US 0x0000000DUL /**< Mode T313US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T521US 0x0000000EUL /**< Mode T521US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T938US 0x0000000FUL /**< Mode T938US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_DEFAULT (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T2US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T2US << 16) /**< Shifted mode T2US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T5US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T5US << 16) /**< Shifted mode T5US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T10US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T10US << 16) /**< Shifted mode T10US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T16US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T16US << 16) /**< Shifted mode T16US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T21US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T21US << 16) /**< Shifted mode T21US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T26US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T26US << 16) /**< Shifted mode T26US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T31US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T31US << 16) /**< Shifted mode T31US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T42US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T42US << 16) /**< Shifted mode T42US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T52US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T52US << 16) /**< Shifted mode T52US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T63US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T63US << 16) /**< Shifted mode T63US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T83US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T83US << 16) /**< Shifted mode T83US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T104US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T104US << 16) /**< Shifted mode T104US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T208US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T208US << 16) /**< Shifted mode T208US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T313US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T313US << 16) /**< Shifted mode T313US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T521US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T521US << 16) /**< Shifted mode T521US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T938US (_HFXO_BUFOUTCTRL_TIMEOUTCTUNE_T938US << 16) /**< Shifted mode T938US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_SHIFT 20 /**< Shift value for HFXO_TIMEOUTSTARTUP */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_MASK 0xF00000UL /**< Bit mask for HFXO_TIMEOUTSTARTUP */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_DEFAULT 0x00000006UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T42US 0x00000000UL /**< Mode T42US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T83US 0x00000001UL /**< Mode T83US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T108US 0x00000002UL /**< Mode T108US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T133US 0x00000003UL /**< Mode T133US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T158US 0x00000004UL /**< Mode T158US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T183US 0x00000005UL /**< Mode T183US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US 0x00000006UL /**< Mode T208US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T233US 0x00000007UL /**< Mode T233US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T258US 0x00000008UL /**< Mode T258US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T283US 0x00000009UL /**< Mode T283US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T333US 0x0000000AUL /**< Mode T333US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T375US 0x0000000BUL /**< Mode T375US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T417US 0x0000000CUL /**< Mode T417US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T458US 0x0000000DUL /**< Mode T458US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T500US 0x0000000EUL /**< Mode T500US for HFXO_BUFOUTCTRL */
+#define _HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T667US 0x0000000FUL /**< Mode T667US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_DEFAULT (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T42US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T42US << 20) /**< Shifted mode T42US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T83US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T83US << 20) /**< Shifted mode T83US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T108US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T108US << 20) /**< Shifted mode T108US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T133US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T133US << 20) /**< Shifted mode T133US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T158US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T158US << 20) /**< Shifted mode T158US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T183US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T183US << 20) /**< Shifted mode T183US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US << 20) /**< Shifted mode T208US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T233US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T233US << 20) /**< Shifted mode T233US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T258US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T258US << 20) /**< Shifted mode T258US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T283US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T283US << 20) /**< Shifted mode T283US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T333US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T333US << 20) /**< Shifted mode T333US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T375US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T375US << 20) /**< Shifted mode T375US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T417US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T417US << 20) /**< Shifted mode T417US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T458US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T458US << 20) /**< Shifted mode T458US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T500US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T500US << 20) /**< Shifted mode T500US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T667US (_HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T667US << 20) /**< Shifted mode T667US for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY (0x1UL << 31) /**< Minimum Startup Delay */
+#define _HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY_SHIFT 31 /**< Shift value for HFXO_MINIMUMSTARTUPDELAY */
+#define _HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY_MASK 0x80000000UL /**< Bit mask for HFXO_MINIMUMSTARTUPDELAY */
+#define _HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_BUFOUTCTRL */
+#define HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY_DEFAULT (_HFXO_BUFOUTCTRL_MINIMUMSTARTUPDELAY_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_BUFOUTCTRL */
+
+/* Bit fields for HFXO CMD */
+#define _HFXO_CMD_RESETVALUE 0x00000000UL /**< Default value for HFXO_CMD */
+#define _HFXO_CMD_MASK 0x00000001UL /**< Mask for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT (0x1UL << 0) /**< Core Bias Optimizaton */
+#define _HFXO_CMD_COREBIASOPT_SHIFT 0 /**< Shift value for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_MASK 0x1UL /**< Bit mask for HFXO_COREBIASOPT */
+#define _HFXO_CMD_COREBIASOPT_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_CMD */
+#define HFXO_CMD_COREBIASOPT_DEFAULT (_HFXO_CMD_COREBIASOPT_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_CMD */
+
+/* Bit fields for HFXO STATUS */
+#define _HFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for HFXO_STATUS */
+#define _HFXO_STATUS_MASK 0xC03F800FUL /**< Mask for HFXO_STATUS */
+#define HFXO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _HFXO_STATUS_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_RDY_DEFAULT (_HFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready */
+#define _HFXO_STATUS_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_STATUS_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_COREBIASOPTRDY_DEFAULT (_HFXO_STATUS_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_PRSRDY (0x1UL << 2) /**< PRS Ready Status */
+#define _HFXO_STATUS_PRSRDY_SHIFT 2 /**< Shift value for HFXO_PRSRDY */
+#define _HFXO_STATUS_PRSRDY_MASK 0x4UL /**< Bit mask for HFXO_PRSRDY */
+#define _HFXO_STATUS_PRSRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_PRSRDY_DEFAULT (_HFXO_STATUS_PRSRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTRDY (0x1UL << 3) /**< BUFOUT Ready Status */
+#define _HFXO_STATUS_BUFOUTRDY_SHIFT 3 /**< Shift value for HFXO_BUFOUTRDY */
+#define _HFXO_STATUS_BUFOUTRDY_MASK 0x8UL /**< Bit mask for HFXO_BUFOUTRDY */
+#define _HFXO_STATUS_BUFOUTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTRDY_DEFAULT (_HFXO_STATUS_BUFOUTRDY_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTFROZEN (0x1UL << 15) /**< BUFOUT Frozen */
+#define _HFXO_STATUS_BUFOUTFROZEN_SHIFT 15 /**< Shift value for HFXO_BUFOUTFROZEN */
+#define _HFXO_STATUS_BUFOUTFROZEN_MASK 0x8000UL /**< Bit mask for HFXO_BUFOUTFROZEN */
+#define _HFXO_STATUS_BUFOUTFROZEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTFROZEN_DEFAULT (_HFXO_STATUS_BUFOUTFROZEN_DEFAULT << 15) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _HFXO_STATUS_ENS_SHIFT 16 /**< Shift value for HFXO_ENS */
+#define _HFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for HFXO_ENS */
+#define _HFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ENS_DEFAULT (_HFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ (0x1UL << 17) /**< Oscillator Requested by Digital Clock */
+#define _HFXO_STATUS_HWREQ_SHIFT 17 /**< Shift value for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_MASK 0x20000UL /**< Bit mask for HFXO_HWREQ */
+#define _HFXO_STATUS_HWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_HWREQ_DEFAULT (_HFXO_STATUS_HWREQ_DEFAULT << 17) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM (0x1UL << 19) /**< Oscillator Is Kept Warm */
+#define _HFXO_STATUS_ISWARM_SHIFT 19 /**< Shift value for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_MASK 0x80000UL /**< Bit mask for HFXO_ISWARM */
+#define _HFXO_STATUS_ISWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_ISWARM_DEFAULT (_HFXO_STATUS_ISWARM_DEFAULT << 19) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_PRSHWREQ (0x1UL << 20) /**< Oscillator Requested by PRS Request */
+#define _HFXO_STATUS_PRSHWREQ_SHIFT 20 /**< Shift value for HFXO_PRSHWREQ */
+#define _HFXO_STATUS_PRSHWREQ_MASK 0x100000UL /**< Bit mask for HFXO_PRSHWREQ */
+#define _HFXO_STATUS_PRSHWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_PRSHWREQ_DEFAULT (_HFXO_STATUS_PRSHWREQ_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTHWREQ (0x1UL << 21) /**< Oscillator Requested by BUFOUT Request */
+#define _HFXO_STATUS_BUFOUTHWREQ_SHIFT 21 /**< Shift value for HFXO_BUFOUTHWREQ */
+#define _HFXO_STATUS_BUFOUTHWREQ_MASK 0x200000UL /**< Bit mask for HFXO_BUFOUTHWREQ */
+#define _HFXO_STATUS_BUFOUTHWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_BUFOUTHWREQ_DEFAULT (_HFXO_STATUS_BUFOUTHWREQ_DEFAULT << 21) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_SYNCBUSY (0x1UL << 30) /**< Sync Busy */
+#define _HFXO_STATUS_SYNCBUSY_SHIFT 30 /**< Shift value for HFXO_SYNCBUSY */
+#define _HFXO_STATUS_SYNCBUSY_MASK 0x40000000UL /**< Bit mask for HFXO_SYNCBUSY */
+#define _HFXO_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_SYNCBUSY_DEFAULT (_HFXO_STATUS_SYNCBUSY_DEFAULT << 30) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_LOCK (0x1UL << 31) /**< Configuration Lock Status */
+#define _HFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for HFXO_LOCK */
+#define _HFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for HFXO_STATUS */
+#define _HFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_DEFAULT (_HFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_UNLOCKED (_HFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for HFXO_STATUS */
+#define HFXO_STATUS_LOCK_LOCKED (_HFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for HFXO_STATUS */
+
+/* Bit fields for HFXO IF */
+#define _HFXO_IF_RESETVALUE 0x00000000UL /**< Default value for HFXO_IF */
+#define _HFXO_IF_MASK 0xF830800FUL /**< Mask for HFXO_IF */
+#define HFXO_IF_RDY (0x1UL << 0) /**< Digital Clock Ready Interrupt */
+#define _HFXO_IF_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IF_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_RDY_DEFAULT (_HFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IF_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IF_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTRDY_DEFAULT (_HFXO_IF_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_PRSRDY (0x1UL << 2) /**< PRS Ready Interrupt */
+#define _HFXO_IF_PRSRDY_SHIFT 2 /**< Shift value for HFXO_PRSRDY */
+#define _HFXO_IF_PRSRDY_MASK 0x4UL /**< Bit mask for HFXO_PRSRDY */
+#define _HFXO_IF_PRSRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_PRSRDY_DEFAULT (_HFXO_IF_PRSRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTRDY (0x1UL << 3) /**< BUFOUT Ready Interrupt */
+#define _HFXO_IF_BUFOUTRDY_SHIFT 3 /**< Shift value for HFXO_BUFOUTRDY */
+#define _HFXO_IF_BUFOUTRDY_MASK 0x8UL /**< Bit mask for HFXO_BUFOUTRDY */
+#define _HFXO_IF_BUFOUTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTRDY_DEFAULT (_HFXO_IF_BUFOUTRDY_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTFROZEN (0x1UL << 15) /**< BUFOUT FROZEN Interrupt */
+#define _HFXO_IF_BUFOUTFROZEN_SHIFT 15 /**< Shift value for HFXO_BUFOUTFROZEN */
+#define _HFXO_IF_BUFOUTFROZEN_MASK 0x8000UL /**< Bit mask for HFXO_BUFOUTFROZEN */
+#define _HFXO_IF_BUFOUTFROZEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTFROZEN_DEFAULT (_HFXO_IF_BUFOUTFROZEN_DEFAULT << 15) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_PRSERR (0x1UL << 20) /**< PRS Requset Error Interrupt */
+#define _HFXO_IF_PRSERR_SHIFT 20 /**< Shift value for HFXO_PRSERR */
+#define _HFXO_IF_PRSERR_MASK 0x100000UL /**< Bit mask for HFXO_PRSERR */
+#define _HFXO_IF_PRSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_PRSERR_DEFAULT (_HFXO_IF_PRSERR_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTERR (0x1UL << 21) /**< BUFOUT Request Error Interrupt */
+#define _HFXO_IF_BUFOUTERR_SHIFT 21 /**< Shift value for HFXO_BUFOUTERR */
+#define _HFXO_IF_BUFOUTERR_MASK 0x200000UL /**< Bit mask for HFXO_BUFOUTERR */
+#define _HFXO_IF_BUFOUTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTERR_DEFAULT (_HFXO_IF_BUFOUTERR_DEFAULT << 21) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTFREEZEERR (0x1UL << 27) /**< BUFOUT Freeze Error Interrupt */
+#define _HFXO_IF_BUFOUTFREEZEERR_SHIFT 27 /**< Shift value for HFXO_BUFOUTFREEZEERR */
+#define _HFXO_IF_BUFOUTFREEZEERR_MASK 0x8000000UL /**< Bit mask for HFXO_BUFOUTFREEZEERR */
+#define _HFXO_IF_BUFOUTFREEZEERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTFREEZEERR_DEFAULT (_HFXO_IF_BUFOUTFREEZEERR_DEFAULT << 27) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTDNSERR (0x1UL << 28) /**< BUFOUT Did Not Start Error Interrupt */
+#define _HFXO_IF_BUFOUTDNSERR_SHIFT 28 /**< Shift value for HFXO_BUFOUTDNSERR */
+#define _HFXO_IF_BUFOUTDNSERR_MASK 0x10000000UL /**< Bit mask for HFXO_BUFOUTDNSERR */
+#define _HFXO_IF_BUFOUTDNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_BUFOUTDNSERR_DEFAULT (_HFXO_IF_BUFOUTDNSERR_DEFAULT << 28) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IF_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IF_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_DNSERR_DEFAULT (_HFXO_IF_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_LFTIMEOUTERR (0x1UL << 30) /**< Low Frequency Timeout Error Interrupt */
+#define _HFXO_IF_LFTIMEOUTERR_SHIFT 30 /**< Shift value for HFXO_LFTIMEOUTERR */
+#define _HFXO_IF_LFTIMEOUTERR_MASK 0x40000000UL /**< Bit mask for HFXO_LFTIMEOUTERR */
+#define _HFXO_IF_LFTIMEOUTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_LFTIMEOUTERR_DEFAULT (_HFXO_IF_LFTIMEOUTERR_DEFAULT << 30) /**< Shifted mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IF_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IF_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IF */
+#define HFXO_IF_COREBIASOPTERR_DEFAULT (_HFXO_IF_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IF */
+
+/* Bit fields for HFXO IEN */
+#define _HFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for HFXO_IEN */
+#define _HFXO_IEN_MASK 0xF830800FUL /**< Mask for HFXO_IEN */
+#define HFXO_IEN_RDY (0x1UL << 0) /**< Digital Clock Ready Interrupt */
+#define _HFXO_IEN_RDY_SHIFT 0 /**< Shift value for HFXO_RDY */
+#define _HFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for HFXO_RDY */
+#define _HFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_RDY_DEFAULT (_HFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY (0x1UL << 1) /**< Core Bias Optimization Ready Interrupt */
+#define _HFXO_IEN_COREBIASOPTRDY_SHIFT 1 /**< Shift value for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_MASK 0x2UL /**< Bit mask for HFXO_COREBIASOPTRDY */
+#define _HFXO_IEN_COREBIASOPTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTRDY_DEFAULT (_HFXO_IEN_COREBIASOPTRDY_DEFAULT << 1) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_PRSRDY (0x1UL << 2) /**< PRS Ready Interrupt */
+#define _HFXO_IEN_PRSRDY_SHIFT 2 /**< Shift value for HFXO_PRSRDY */
+#define _HFXO_IEN_PRSRDY_MASK 0x4UL /**< Bit mask for HFXO_PRSRDY */
+#define _HFXO_IEN_PRSRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_PRSRDY_DEFAULT (_HFXO_IEN_PRSRDY_DEFAULT << 2) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTRDY (0x1UL << 3) /**< BUFOUT Ready Interrupt */
+#define _HFXO_IEN_BUFOUTRDY_SHIFT 3 /**< Shift value for HFXO_BUFOUTRDY */
+#define _HFXO_IEN_BUFOUTRDY_MASK 0x8UL /**< Bit mask for HFXO_BUFOUTRDY */
+#define _HFXO_IEN_BUFOUTRDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTRDY_DEFAULT (_HFXO_IEN_BUFOUTRDY_DEFAULT << 3) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTFROZEN (0x1UL << 15) /**< BUFOUT FROZEN Interrupt */
+#define _HFXO_IEN_BUFOUTFROZEN_SHIFT 15 /**< Shift value for HFXO_BUFOUTFROZEN */
+#define _HFXO_IEN_BUFOUTFROZEN_MASK 0x8000UL /**< Bit mask for HFXO_BUFOUTFROZEN */
+#define _HFXO_IEN_BUFOUTFROZEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTFROZEN_DEFAULT (_HFXO_IEN_BUFOUTFROZEN_DEFAULT << 15) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_PRSERR (0x1UL << 20) /**< PRS Requset Error Interrupt */
+#define _HFXO_IEN_PRSERR_SHIFT 20 /**< Shift value for HFXO_PRSERR */
+#define _HFXO_IEN_PRSERR_MASK 0x100000UL /**< Bit mask for HFXO_PRSERR */
+#define _HFXO_IEN_PRSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_PRSERR_DEFAULT (_HFXO_IEN_PRSERR_DEFAULT << 20) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTERR (0x1UL << 21) /**< BUFOUT Request Error Interrupt */
+#define _HFXO_IEN_BUFOUTERR_SHIFT 21 /**< Shift value for HFXO_BUFOUTERR */
+#define _HFXO_IEN_BUFOUTERR_MASK 0x200000UL /**< Bit mask for HFXO_BUFOUTERR */
+#define _HFXO_IEN_BUFOUTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTERR_DEFAULT (_HFXO_IEN_BUFOUTERR_DEFAULT << 21) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTFREEZEERR (0x1UL << 27) /**< BUFOUT Freeze Error Interrupt */
+#define _HFXO_IEN_BUFOUTFREEZEERR_SHIFT 27 /**< Shift value for HFXO_BUFOUTFREEZEERR */
+#define _HFXO_IEN_BUFOUTFREEZEERR_MASK 0x8000000UL /**< Bit mask for HFXO_BUFOUTFREEZEERR */
+#define _HFXO_IEN_BUFOUTFREEZEERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTFREEZEERR_DEFAULT (_HFXO_IEN_BUFOUTFREEZEERR_DEFAULT << 27) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTDNSERR (0x1UL << 28) /**< BUFOUT Did Not Start Error Interrupt */
+#define _HFXO_IEN_BUFOUTDNSERR_SHIFT 28 /**< Shift value for HFXO_BUFOUTDNSERR */
+#define _HFXO_IEN_BUFOUTDNSERR_MASK 0x10000000UL /**< Bit mask for HFXO_BUFOUTDNSERR */
+#define _HFXO_IEN_BUFOUTDNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_BUFOUTDNSERR_DEFAULT (_HFXO_IEN_BUFOUTDNSERR_DEFAULT << 28) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR (0x1UL << 29) /**< Did Not Start Error Interrupt */
+#define _HFXO_IEN_DNSERR_SHIFT 29 /**< Shift value for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_MASK 0x20000000UL /**< Bit mask for HFXO_DNSERR */
+#define _HFXO_IEN_DNSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_DNSERR_DEFAULT (_HFXO_IEN_DNSERR_DEFAULT << 29) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_LFTIMEOUTERR (0x1UL << 30) /**< Low Frequency Timeout Error Interrupt */
+#define _HFXO_IEN_LFTIMEOUTERR_SHIFT 30 /**< Shift value for HFXO_LFTIMEOUTERR */
+#define _HFXO_IEN_LFTIMEOUTERR_MASK 0x40000000UL /**< Bit mask for HFXO_LFTIMEOUTERR */
+#define _HFXO_IEN_LFTIMEOUTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_LFTIMEOUTERR_DEFAULT (_HFXO_IEN_LFTIMEOUTERR_DEFAULT << 30) /**< Shifted mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR (0x1UL << 31) /**< Core Bias Optimization Error Interrupt */
+#define _HFXO_IEN_COREBIASOPTERR_SHIFT 31 /**< Shift value for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_MASK 0x80000000UL /**< Bit mask for HFXO_COREBIASOPTERR */
+#define _HFXO_IEN_COREBIASOPTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for HFXO_IEN */
+#define HFXO_IEN_COREBIASOPTERR_DEFAULT (_HFXO_IEN_COREBIASOPTERR_DEFAULT << 31) /**< Shifted mode DEFAULT for HFXO_IEN */
+
+/* Bit fields for HFXO LOCK */
+#define _HFXO_LOCK_RESETVALUE 0x0000580EUL /**< Default value for HFXO_LOCK */
+#define _HFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for HFXO_LOCKKEY */
+#define _HFXO_LOCK_LOCKKEY_DEFAULT 0x0000580EUL /**< Mode DEFAULT for HFXO_LOCK */
+#define _HFXO_LOCK_LOCKKEY_UNLOCK 0x0000580EUL /**< Mode UNLOCK for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_DEFAULT (_HFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for HFXO_LOCK */
+#define HFXO_LOCK_LOCKKEY_UNLOCK (_HFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for HFXO_LOCK */
+
+/** @} End of group EFR32ZG23_HFXO_BitFields */
+/** @} End of group EFR32ZG23_HFXO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_HFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_i2c.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_i2c.h
new file mode 100644
index 000000000..064b8bf7b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_i2c.h
@@ -0,0 +1,744 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 I2C register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_I2C_H
+#define EFR32ZG23_I2C_H
+#define I2C_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_I2C I2C
+ * @{
+ * @brief EFR32ZG23 I2C Register Declaration.
+ *****************************************************************************/
+
+/** I2C Register Declaration. */
+typedef struct i2c_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATE; /**< State Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Division Register */
+ __IOM uint32_t SADDR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATE_SET; /**< State Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Division Register */
+ __IOM uint32_t SADDR_SET; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_SET; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_SET; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_SET; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_SET; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_SET; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_SET; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATE_CLR; /**< State Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Division Register */
+ __IOM uint32_t SADDR_CLR; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_CLR; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_CLR; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_CLR; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_CLR; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_CLR; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1007U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATE_TGL; /**< State Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Division Register */
+ __IOM uint32_t SADDR_TGL; /**< Follower Address Register */
+ __IOM uint32_t SADDRMASK_TGL; /**< Follower Address Mask Register */
+ __IM uint32_t RXDATA_TGL; /**< Receive Buffer Data Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< Receive Buffer Double Data Register */
+ __IM uint32_t RXDATAP_TGL; /**< Receive Buffer Data Peek Register */
+ __IM uint32_t RXDOUBLEP_TGL; /**< Receive Buffer Double Data Peek Register */
+ __IOM uint32_t TXDATA_TGL; /**< Transmit Buffer Data Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< Transmit Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} I2C_TypeDef;
+/** @} End of group EFR32ZG23_I2C */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_I2C
+ * @{
+ * @defgroup EFR32ZG23_I2C_BitFields I2C Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for I2C IPVERSION */
+#define _I2C_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for I2C_IPVERSION */
+#define _I2C_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for I2C_IPVERSION */
+#define _I2C_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IPVERSION */
+#define I2C_IPVERSION_IPVERSION_DEFAULT (_I2C_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IPVERSION */
+
+/* Bit fields for I2C EN */
+#define _I2C_EN_RESETVALUE 0x00000000UL /**< Default value for I2C_EN */
+#define _I2C_EN_MASK 0x00000001UL /**< Mask for I2C_EN */
+#define I2C_EN_EN (0x1UL << 0) /**< module enable */
+#define _I2C_EN_EN_SHIFT 0 /**< Shift value for I2C_EN */
+#define _I2C_EN_EN_MASK 0x1UL /**< Bit mask for I2C_EN */
+#define _I2C_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_EN */
+#define _I2C_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_EN */
+#define _I2C_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_EN */
+#define I2C_EN_EN_DEFAULT (_I2C_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_EN */
+#define I2C_EN_EN_DISABLE (_I2C_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for I2C_EN */
+#define I2C_EN_EN_ENABLE (_I2C_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for I2C_EN */
+
+/* Bit fields for I2C CTRL */
+#define _I2C_CTRL_RESETVALUE 0x00000000UL /**< Default value for I2C_CTRL */
+#define _I2C_CTRL_MASK 0x0037B3FFUL /**< Mask for I2C_CTRL */
+#define I2C_CTRL_CORERST (0x1UL << 0) /**< Soft Reset the internal state registers */
+#define _I2C_CTRL_CORERST_SHIFT 0 /**< Shift value for I2C_CORERST */
+#define _I2C_CTRL_CORERST_MASK 0x1UL /**< Bit mask for I2C_CORERST */
+#define _I2C_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CORERST_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_CORERST_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_DEFAULT (_I2C_CTRL_CORERST_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CORERST_DISABLE (_I2C_CTRL_CORERST_DISABLE << 0) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_CORERST_ENABLE (_I2C_CTRL_CORERST_ENABLE << 0) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE (0x1UL << 1) /**< Addressable as Follower */
+#define _I2C_CTRL_SLAVE_SHIFT 1 /**< Shift value for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_MASK 0x2UL /**< Bit mask for I2C_SLAVE */
+#define _I2C_CTRL_SLAVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SLAVE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DEFAULT (_I2C_CTRL_SLAVE_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SLAVE_DISABLE (_I2C_CTRL_SLAVE_DISABLE << 1) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SLAVE_ENABLE (_I2C_CTRL_SLAVE_ENABLE << 1) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK (0x1UL << 2) /**< Automatic Acknowledge */
+#define _I2C_CTRL_AUTOACK_SHIFT 2 /**< Shift value for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_MASK 0x4UL /**< Bit mask for I2C_AUTOACK */
+#define _I2C_CTRL_AUTOACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOACK_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DEFAULT (_I2C_CTRL_AUTOACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_DISABLE (_I2C_CTRL_AUTOACK_DISABLE << 2) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOACK_ENABLE (_I2C_CTRL_AUTOACK_ENABLE << 2) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE (0x1UL << 3) /**< Automatic STOP when Empty */
+#define _I2C_CTRL_AUTOSE_SHIFT 3 /**< Shift value for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_MASK 0x8UL /**< Bit mask for I2C_AUTOSE */
+#define _I2C_CTRL_AUTOSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSE_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DEFAULT (_I2C_CTRL_AUTOSE_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_DISABLE (_I2C_CTRL_AUTOSE_DISABLE << 3) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSE_ENABLE (_I2C_CTRL_AUTOSE_ENABLE << 3) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN (0x1UL << 4) /**< Automatic STOP on NACK */
+#define _I2C_CTRL_AUTOSN_SHIFT 4 /**< Shift value for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_MASK 0x10UL /**< Bit mask for I2C_AUTOSN */
+#define _I2C_CTRL_AUTOSN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_AUTOSN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DEFAULT (_I2C_CTRL_AUTOSN_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_DISABLE (_I2C_CTRL_AUTOSN_DISABLE << 4) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_AUTOSN_ENABLE (_I2C_CTRL_AUTOSN_ENABLE << 4) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS (0x1UL << 5) /**< Arbitration Disable */
+#define _I2C_CTRL_ARBDIS_SHIFT 5 /**< Shift value for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_MASK 0x20UL /**< Bit mask for I2C_ARBDIS */
+#define _I2C_CTRL_ARBDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_ARBDIS_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DEFAULT (_I2C_CTRL_ARBDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_DISABLE (_I2C_CTRL_ARBDIS_DISABLE << 5) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_ARBDIS_ENABLE (_I2C_CTRL_ARBDIS_ENABLE << 5) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN (0x1UL << 6) /**< General Call Address Match Enable */
+#define _I2C_CTRL_GCAMEN_SHIFT 6 /**< Shift value for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_MASK 0x40UL /**< Bit mask for I2C_GCAMEN */
+#define _I2C_CTRL_GCAMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GCAMEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DEFAULT (_I2C_CTRL_GCAMEN_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_DISABLE (_I2C_CTRL_GCAMEN_DISABLE << 6) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GCAMEN_ENABLE (_I2C_CTRL_GCAMEN_ENABLE << 6) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_TXBIL (0x1UL << 7) /**< TX Buffer Interrupt Level */
+#define _I2C_CTRL_TXBIL_SHIFT 7 /**< Shift value for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_MASK 0x80UL /**< Bit mask for I2C_TXBIL */
+#define _I2C_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for I2C_CTRL */
+#define _I2C_CTRL_TXBIL_HALF_FULL 0x00000001UL /**< Mode HALF_FULL for I2C_CTRL */
+#define I2C_CTRL_TXBIL_DEFAULT (_I2C_CTRL_TXBIL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_TXBIL_EMPTY (_I2C_CTRL_TXBIL_EMPTY << 7) /**< Shifted mode EMPTY for I2C_CTRL */
+#define I2C_CTRL_TXBIL_HALF_FULL (_I2C_CTRL_TXBIL_HALF_FULL << 7) /**< Shifted mode HALF_FULL for I2C_CTRL */
+#define _I2C_CTRL_CLHR_SHIFT 8 /**< Shift value for I2C_CLHR */
+#define _I2C_CTRL_CLHR_MASK 0x300UL /**< Bit mask for I2C_CLHR */
+#define _I2C_CTRL_CLHR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLHR_STANDARD 0x00000000UL /**< Mode STANDARD for I2C_CTRL */
+#define _I2C_CTRL_CLHR_ASYMMETRIC 0x00000001UL /**< Mode ASYMMETRIC for I2C_CTRL */
+#define _I2C_CTRL_CLHR_FAST 0x00000002UL /**< Mode FAST for I2C_CTRL */
+#define I2C_CTRL_CLHR_DEFAULT (_I2C_CTRL_CLHR_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLHR_STANDARD (_I2C_CTRL_CLHR_STANDARD << 8) /**< Shifted mode STANDARD for I2C_CTRL */
+#define I2C_CTRL_CLHR_ASYMMETRIC (_I2C_CTRL_CLHR_ASYMMETRIC << 8) /**< Shifted mode ASYMMETRIC for I2C_CTRL */
+#define I2C_CTRL_CLHR_FAST (_I2C_CTRL_CLHR_FAST << 8) /**< Shifted mode FAST for I2C_CTRL */
+#define _I2C_CTRL_BITO_SHIFT 12 /**< Shift value for I2C_BITO */
+#define _I2C_CTRL_BITO_MASK 0x3000UL /**< Bit mask for I2C_BITO */
+#define _I2C_CTRL_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_BITO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_BITO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_DEFAULT (_I2C_CTRL_BITO_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_BITO_OFF (_I2C_CTRL_BITO_OFF << 12) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C40PCC (_I2C_CTRL_BITO_I2C40PCC << 12) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C80PCC (_I2C_CTRL_BITO_I2C80PCC << 12) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_BITO_I2C160PCC (_I2C_CTRL_BITO_I2C160PCC << 12) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_GIBITO (0x1UL << 15) /**< Go Idle on Bus Idle Timeout */
+#define _I2C_CTRL_GIBITO_SHIFT 15 /**< Shift value for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_MASK 0x8000UL /**< Bit mask for I2C_GIBITO */
+#define _I2C_CTRL_GIBITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_GIBITO_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DEFAULT (_I2C_CTRL_GIBITO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_GIBITO_DISABLE (_I2C_CTRL_GIBITO_DISABLE << 15) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_GIBITO_ENABLE (_I2C_CTRL_GIBITO_ENABLE << 15) /**< Shifted mode ENABLE for I2C_CTRL */
+#define _I2C_CTRL_CLTO_SHIFT 16 /**< Shift value for I2C_CLTO */
+#define _I2C_CTRL_CLTO_MASK 0x70000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_CTRL_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_CLTO_OFF 0x00000000UL /**< Mode OFF for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C40PCC 0x00000001UL /**< Mode I2C40PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C80PCC 0x00000002UL /**< Mode I2C80PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C160PCC 0x00000003UL /**< Mode I2C160PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C320PCC 0x00000004UL /**< Mode I2C320PCC for I2C_CTRL */
+#define _I2C_CTRL_CLTO_I2C1024PCC 0x00000005UL /**< Mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_DEFAULT (_I2C_CTRL_CLTO_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_CLTO_OFF (_I2C_CTRL_CLTO_OFF << 16) /**< Shifted mode OFF for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C40PCC (_I2C_CTRL_CLTO_I2C40PCC << 16) /**< Shifted mode I2C40PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C80PCC (_I2C_CTRL_CLTO_I2C80PCC << 16) /**< Shifted mode I2C80PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C160PCC (_I2C_CTRL_CLTO_I2C160PCC << 16) /**< Shifted mode I2C160PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C320PCC (_I2C_CTRL_CLTO_I2C320PCC << 16) /**< Shifted mode I2C320PCC for I2C_CTRL */
+#define I2C_CTRL_CLTO_I2C1024PCC (_I2C_CTRL_CLTO_I2C1024PCC << 16) /**< Shifted mode I2C1024PCC for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN (0x1UL << 20) /**< SCL Monitor Enable */
+#define _I2C_CTRL_SCLMONEN_SHIFT 20 /**< Shift value for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_MASK 0x100000UL /**< Bit mask for I2C_SCLMONEN */
+#define _I2C_CTRL_SCLMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SCLMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DEFAULT (_I2C_CTRL_SCLMONEN_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_DISABLE (_I2C_CTRL_SCLMONEN_DISABLE << 20) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SCLMONEN_ENABLE (_I2C_CTRL_SCLMONEN_ENABLE << 20) /**< Shifted mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN (0x1UL << 21) /**< SDA Monitor Enable */
+#define _I2C_CTRL_SDAMONEN_SHIFT 21 /**< Shift value for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_MASK 0x200000UL /**< Bit mask for I2C_SDAMONEN */
+#define _I2C_CTRL_SDAMONEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_DISABLE 0x00000000UL /**< Mode DISABLE for I2C_CTRL */
+#define _I2C_CTRL_SDAMONEN_ENABLE 0x00000001UL /**< Mode ENABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DEFAULT (_I2C_CTRL_SDAMONEN_DEFAULT << 21) /**< Shifted mode DEFAULT for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_DISABLE (_I2C_CTRL_SDAMONEN_DISABLE << 21) /**< Shifted mode DISABLE for I2C_CTRL */
+#define I2C_CTRL_SDAMONEN_ENABLE (_I2C_CTRL_SDAMONEN_ENABLE << 21) /**< Shifted mode ENABLE for I2C_CTRL */
+
+/* Bit fields for I2C CMD */
+#define _I2C_CMD_RESETVALUE 0x00000000UL /**< Default value for I2C_CMD */
+#define _I2C_CMD_MASK 0x000000FFUL /**< Mask for I2C_CMD */
+#define I2C_CMD_START (0x1UL << 0) /**< Send start condition */
+#define _I2C_CMD_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_CMD_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_START_DEFAULT (_I2C_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP (0x1UL << 1) /**< Send stop condition */
+#define _I2C_CMD_STOP_SHIFT 1 /**< Shift value for I2C_STOP */
+#define _I2C_CMD_STOP_MASK 0x2UL /**< Bit mask for I2C_STOP */
+#define _I2C_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_STOP_DEFAULT (_I2C_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK (0x1UL << 2) /**< Send ACK */
+#define _I2C_CMD_ACK_SHIFT 2 /**< Shift value for I2C_ACK */
+#define _I2C_CMD_ACK_MASK 0x4UL /**< Bit mask for I2C_ACK */
+#define _I2C_CMD_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ACK_DEFAULT (_I2C_CMD_ACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK (0x1UL << 3) /**< Send NACK */
+#define _I2C_CMD_NACK_SHIFT 3 /**< Shift value for I2C_NACK */
+#define _I2C_CMD_NACK_MASK 0x8UL /**< Bit mask for I2C_NACK */
+#define _I2C_CMD_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_NACK_DEFAULT (_I2C_CMD_NACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT (0x1UL << 4) /**< Continue transmission */
+#define _I2C_CMD_CONT_SHIFT 4 /**< Shift value for I2C_CONT */
+#define _I2C_CMD_CONT_MASK 0x10UL /**< Bit mask for I2C_CONT */
+#define _I2C_CMD_CONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CONT_DEFAULT (_I2C_CMD_CONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT (0x1UL << 5) /**< Abort transmission */
+#define _I2C_CMD_ABORT_SHIFT 5 /**< Shift value for I2C_ABORT */
+#define _I2C_CMD_ABORT_MASK 0x20UL /**< Bit mask for I2C_ABORT */
+#define _I2C_CMD_ABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_ABORT_DEFAULT (_I2C_CMD_ABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX (0x1UL << 6) /**< Clear TX */
+#define _I2C_CMD_CLEARTX_SHIFT 6 /**< Shift value for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_MASK 0x40UL /**< Bit mask for I2C_CLEARTX */
+#define _I2C_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARTX_DEFAULT (_I2C_CMD_CLEARTX_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC (0x1UL << 7) /**< Clear Pending Commands */
+#define _I2C_CMD_CLEARPC_SHIFT 7 /**< Shift value for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_MASK 0x80UL /**< Bit mask for I2C_CLEARPC */
+#define _I2C_CMD_CLEARPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CMD */
+#define I2C_CMD_CLEARPC_DEFAULT (_I2C_CMD_CLEARPC_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_CMD */
+
+/* Bit fields for I2C STATE */
+#define _I2C_STATE_RESETVALUE 0x00000001UL /**< Default value for I2C_STATE */
+#define _I2C_STATE_MASK 0x000000FFUL /**< Mask for I2C_STATE */
+#define I2C_STATE_BUSY (0x1UL << 0) /**< Bus Busy */
+#define _I2C_STATE_BUSY_SHIFT 0 /**< Shift value for I2C_BUSY */
+#define _I2C_STATE_BUSY_MASK 0x1UL /**< Bit mask for I2C_BUSY */
+#define _I2C_STATE_BUSY_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSY_DEFAULT (_I2C_STATE_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER (0x1UL << 1) /**< Leader */
+#define _I2C_STATE_MASTER_SHIFT 1 /**< Shift value for I2C_MASTER */
+#define _I2C_STATE_MASTER_MASK 0x2UL /**< Bit mask for I2C_MASTER */
+#define _I2C_STATE_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_MASTER_DEFAULT (_I2C_STATE_MASTER_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER (0x1UL << 2) /**< Transmitter */
+#define _I2C_STATE_TRANSMITTER_SHIFT 2 /**< Shift value for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_MASK 0x4UL /**< Bit mask for I2C_TRANSMITTER */
+#define _I2C_STATE_TRANSMITTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_TRANSMITTER_DEFAULT (_I2C_STATE_TRANSMITTER_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED (0x1UL << 3) /**< Nack Received */
+#define _I2C_STATE_NACKED_SHIFT 3 /**< Shift value for I2C_NACKED */
+#define _I2C_STATE_NACKED_MASK 0x8UL /**< Bit mask for I2C_NACKED */
+#define _I2C_STATE_NACKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_NACKED_DEFAULT (_I2C_STATE_NACKED_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD (0x1UL << 4) /**< Bus Held */
+#define _I2C_STATE_BUSHOLD_SHIFT 4 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_MASK 0x10UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_STATE_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define I2C_STATE_BUSHOLD_DEFAULT (_I2C_STATE_BUSHOLD_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_SHIFT 5 /**< Shift value for I2C_STATE */
+#define _I2C_STATE_STATE_MASK 0xE0UL /**< Bit mask for I2C_STATE */
+#define _I2C_STATE_STATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATE */
+#define _I2C_STATE_STATE_IDLE 0x00000000UL /**< Mode IDLE for I2C_STATE */
+#define _I2C_STATE_STATE_WAIT 0x00000001UL /**< Mode WAIT for I2C_STATE */
+#define _I2C_STATE_STATE_START 0x00000002UL /**< Mode START for I2C_STATE */
+#define _I2C_STATE_STATE_ADDR 0x00000003UL /**< Mode ADDR for I2C_STATE */
+#define _I2C_STATE_STATE_ADDRACK 0x00000004UL /**< Mode ADDRACK for I2C_STATE */
+#define _I2C_STATE_STATE_DATA 0x00000005UL /**< Mode DATA for I2C_STATE */
+#define _I2C_STATE_STATE_DATAACK 0x00000006UL /**< Mode DATAACK for I2C_STATE */
+#define I2C_STATE_STATE_DEFAULT (_I2C_STATE_STATE_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATE */
+#define I2C_STATE_STATE_IDLE (_I2C_STATE_STATE_IDLE << 5) /**< Shifted mode IDLE for I2C_STATE */
+#define I2C_STATE_STATE_WAIT (_I2C_STATE_STATE_WAIT << 5) /**< Shifted mode WAIT for I2C_STATE */
+#define I2C_STATE_STATE_START (_I2C_STATE_STATE_START << 5) /**< Shifted mode START for I2C_STATE */
+#define I2C_STATE_STATE_ADDR (_I2C_STATE_STATE_ADDR << 5) /**< Shifted mode ADDR for I2C_STATE */
+#define I2C_STATE_STATE_ADDRACK (_I2C_STATE_STATE_ADDRACK << 5) /**< Shifted mode ADDRACK for I2C_STATE */
+#define I2C_STATE_STATE_DATA (_I2C_STATE_STATE_DATA << 5) /**< Shifted mode DATA for I2C_STATE */
+#define I2C_STATE_STATE_DATAACK (_I2C_STATE_STATE_DATAACK << 5) /**< Shifted mode DATAACK for I2C_STATE */
+
+/* Bit fields for I2C STATUS */
+#define _I2C_STATUS_RESETVALUE 0x00000080UL /**< Default value for I2C_STATUS */
+#define _I2C_STATUS_MASK 0x00000FFFUL /**< Mask for I2C_STATUS */
+#define I2C_STATUS_PSTART (0x1UL << 0) /**< Pending START */
+#define _I2C_STATUS_PSTART_SHIFT 0 /**< Shift value for I2C_PSTART */
+#define _I2C_STATUS_PSTART_MASK 0x1UL /**< Bit mask for I2C_PSTART */
+#define _I2C_STATUS_PSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTART_DEFAULT (_I2C_STATUS_PSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP (0x1UL << 1) /**< Pending STOP */
+#define _I2C_STATUS_PSTOP_SHIFT 1 /**< Shift value for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_MASK 0x2UL /**< Bit mask for I2C_PSTOP */
+#define _I2C_STATUS_PSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PSTOP_DEFAULT (_I2C_STATUS_PSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK (0x1UL << 2) /**< Pending ACK */
+#define _I2C_STATUS_PACK_SHIFT 2 /**< Shift value for I2C_PACK */
+#define _I2C_STATUS_PACK_MASK 0x4UL /**< Bit mask for I2C_PACK */
+#define _I2C_STATUS_PACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PACK_DEFAULT (_I2C_STATUS_PACK_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK (0x1UL << 3) /**< Pending NACK */
+#define _I2C_STATUS_PNACK_SHIFT 3 /**< Shift value for I2C_PNACK */
+#define _I2C_STATUS_PNACK_MASK 0x8UL /**< Bit mask for I2C_PNACK */
+#define _I2C_STATUS_PNACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PNACK_DEFAULT (_I2C_STATUS_PNACK_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT (0x1UL << 4) /**< Pending continue */
+#define _I2C_STATUS_PCONT_SHIFT 4 /**< Shift value for I2C_PCONT */
+#define _I2C_STATUS_PCONT_MASK 0x10UL /**< Bit mask for I2C_PCONT */
+#define _I2C_STATUS_PCONT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PCONT_DEFAULT (_I2C_STATUS_PCONT_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT (0x1UL << 5) /**< Pending abort */
+#define _I2C_STATUS_PABORT_SHIFT 5 /**< Shift value for I2C_PABORT */
+#define _I2C_STATUS_PABORT_MASK 0x20UL /**< Bit mask for I2C_PABORT */
+#define _I2C_STATUS_PABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_PABORT_DEFAULT (_I2C_STATUS_PABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC (0x1UL << 6) /**< TX Complete */
+#define _I2C_STATUS_TXC_SHIFT 6 /**< Shift value for I2C_TXC */
+#define _I2C_STATUS_TXC_MASK 0x40UL /**< Bit mask for I2C_TXC */
+#define _I2C_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXC_DEFAULT (_I2C_STATUS_TXC_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL (0x1UL << 7) /**< TX Buffer Level */
+#define _I2C_STATUS_TXBL_SHIFT 7 /**< Shift value for I2C_TXBL */
+#define _I2C_STATUS_TXBL_MASK 0x80UL /**< Bit mask for I2C_TXBL */
+#define _I2C_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBL_DEFAULT (_I2C_STATUS_TXBL_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV (0x1UL << 8) /**< RX Data Valid */
+#define _I2C_STATUS_RXDATAV_SHIFT 8 /**< Shift value for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_MASK 0x100UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXDATAV_DEFAULT (_I2C_STATUS_RXDATAV_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL (0x1UL << 9) /**< RX FIFO Full */
+#define _I2C_STATUS_RXFULL_SHIFT 9 /**< Shift value for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_MASK 0x200UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_RXFULL_DEFAULT (_I2C_STATUS_RXFULL_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_STATUS */
+#define _I2C_STATUS_TXBUFCNT_SHIFT 10 /**< Shift value for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_MASK 0xC00UL /**< Bit mask for I2C_TXBUFCNT */
+#define _I2C_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_STATUS */
+#define I2C_STATUS_TXBUFCNT_DEFAULT (_I2C_STATUS_TXBUFCNT_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_STATUS */
+
+/* Bit fields for I2C CLKDIV */
+#define _I2C_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for I2C_CLKDIV */
+#define _I2C_CLKDIV_MASK 0x000001FFUL /**< Mask for I2C_CLKDIV */
+#define _I2C_CLKDIV_DIV_SHIFT 0 /**< Shift value for I2C_DIV */
+#define _I2C_CLKDIV_DIV_MASK 0x1FFUL /**< Bit mask for I2C_DIV */
+#define _I2C_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_CLKDIV */
+#define I2C_CLKDIV_DIV_DEFAULT (_I2C_CLKDIV_DIV_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_CLKDIV */
+
+/* Bit fields for I2C SADDR */
+#define _I2C_SADDR_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDR */
+#define _I2C_SADDR_MASK 0x000000FEUL /**< Mask for I2C_SADDR */
+#define _I2C_SADDR_ADDR_SHIFT 1 /**< Shift value for I2C_ADDR */
+#define _I2C_SADDR_ADDR_MASK 0xFEUL /**< Bit mask for I2C_ADDR */
+#define _I2C_SADDR_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDR */
+#define I2C_SADDR_ADDR_DEFAULT (_I2C_SADDR_ADDR_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDR */
+
+/* Bit fields for I2C SADDRMASK */
+#define _I2C_SADDRMASK_RESETVALUE 0x00000000UL /**< Default value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_MASK 0x000000FEUL /**< Mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_SHIFT 1 /**< Shift value for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_MASK 0xFEUL /**< Bit mask for I2C_SADDRMASK */
+#define _I2C_SADDRMASK_SADDRMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_SADDRMASK */
+#define I2C_SADDRMASK_SADDRMASK_DEFAULT (_I2C_SADDRMASK_SADDRMASK_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_SADDRMASK */
+
+/* Bit fields for I2C RXDATA */
+#define _I2C_RXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATA */
+#define _I2C_RXDATA_MASK 0x000000FFUL /**< Mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_SHIFT 0 /**< Shift value for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for I2C_RXDATA */
+#define _I2C_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATA */
+#define I2C_RXDATA_RXDATA_DEFAULT (_I2C_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATA */
+
+/* Bit fields for I2C RXDOUBLE */
+#define _I2C_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for I2C_RXDATA0 */
+#define _I2C_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA0_DEFAULT (_I2C_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+#define _I2C_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATA1 */
+#define _I2C_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLE */
+#define I2C_RXDOUBLE_RXDATA1_DEFAULT (_I2C_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLE */
+
+/* Bit fields for I2C RXDATAP */
+#define _I2C_RXDATAP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDATAP */
+#define _I2C_RXDATAP_MASK 0x000000FFUL /**< Mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_SHIFT 0 /**< Shift value for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP */
+#define _I2C_RXDATAP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDATAP */
+#define I2C_RXDATAP_RXDATAP_DEFAULT (_I2C_RXDATAP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDATAP */
+
+/* Bit fields for I2C RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RESETVALUE 0x00000000UL /**< Default value for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_MASK 0x0000FFFFUL /**< Mask for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP0_SHIFT 0 /**< Shift value for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_MASK 0xFFUL /**< Bit mask for I2C_RXDATAP0 */
+#define _I2C_RXDOUBLEP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP0_DEFAULT (_I2C_RXDOUBLEP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+#define _I2C_RXDOUBLEP_RXDATAP1_SHIFT 8 /**< Shift value for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_MASK 0xFF00UL /**< Bit mask for I2C_RXDATAP1 */
+#define _I2C_RXDOUBLEP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_RXDOUBLEP */
+#define I2C_RXDOUBLEP_RXDATAP1_DEFAULT (_I2C_RXDOUBLEP_RXDATAP1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_RXDOUBLEP */
+
+/* Bit fields for I2C TXDATA */
+#define _I2C_TXDATA_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDATA */
+#define _I2C_TXDATA_MASK 0x000000FFUL /**< Mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_SHIFT 0 /**< Shift value for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for I2C_TXDATA */
+#define _I2C_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDATA */
+#define I2C_TXDATA_TXDATA_DEFAULT (_I2C_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDATA */
+
+/* Bit fields for I2C TXDOUBLE */
+#define _I2C_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for I2C_TXDATA0 */
+#define _I2C_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA0_DEFAULT (_I2C_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+#define _I2C_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for I2C_TXDATA1 */
+#define _I2C_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_TXDOUBLE */
+#define I2C_TXDOUBLE_TXDATA1_DEFAULT (_I2C_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_TXDOUBLE */
+
+/* Bit fields for I2C IF */
+#define _I2C_IF_RESETVALUE 0x00000000UL /**< Default value for I2C_IF */
+#define _I2C_IF_MASK 0x001FFFFFUL /**< Mask for I2C_IF */
+#define I2C_IF_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IF_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IF_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IF_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_START_DEFAULT (_I2C_IF_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IF_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IF_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IF_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RSTART_DEFAULT (_I2C_IF_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IF_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IF_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IF_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ADDR_DEFAULT (_I2C_IF_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IF_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IF_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXC_DEFAULT (_I2C_IF_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IF_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IF_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IF_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXBL_DEFAULT (_I2C_IF_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IF_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXDATAV_DEFAULT (_I2C_IF_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IF_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IF_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IF_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ACK_DEFAULT (_I2C_IF_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IF_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IF_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IF_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_NACK_DEFAULT (_I2C_IF_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IF_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IF_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IF_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_MSTOP_DEFAULT (_I2C_IF_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IF_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IF_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_ARBLOST_DEFAULT (_I2C_IF_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IF_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IF_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IF_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSERR_DEFAULT (_I2C_IF_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IF_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IF_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BUSHOLD_DEFAULT (_I2C_IF_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IF_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IF_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_TXOF_DEFAULT (_I2C_IF_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IF_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IF_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXUF_DEFAULT (_I2C_IF_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IF_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IF_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IF_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_BITO_DEFAULT (_I2C_IF_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IF_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IF_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IF_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLTO_DEFAULT (_I2C_IF_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IF_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IF_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IF_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SSTOP_DEFAULT (_I2C_IF_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IF_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IF_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_RXFULL_DEFAULT (_I2C_IF_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IF_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IF_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IF_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_CLERR_DEFAULT (_I2C_IF_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IF_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IF_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IF_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SCLERR_DEFAULT (_I2C_IF_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IF_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IF_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IF_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IF */
+#define I2C_IF_SDAERR_DEFAULT (_I2C_IF_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IF */
+
+/* Bit fields for I2C IEN */
+#define _I2C_IEN_RESETVALUE 0x00000000UL /**< Default value for I2C_IEN */
+#define _I2C_IEN_MASK 0x001FFFFFUL /**< Mask for I2C_IEN */
+#define I2C_IEN_START (0x1UL << 0) /**< START condition Interrupt Flag */
+#define _I2C_IEN_START_SHIFT 0 /**< Shift value for I2C_START */
+#define _I2C_IEN_START_MASK 0x1UL /**< Bit mask for I2C_START */
+#define _I2C_IEN_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_START_DEFAULT (_I2C_IEN_START_DEFAULT << 0) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART (0x1UL << 1) /**< Repeated START condition Interrupt Flag */
+#define _I2C_IEN_RSTART_SHIFT 1 /**< Shift value for I2C_RSTART */
+#define _I2C_IEN_RSTART_MASK 0x2UL /**< Bit mask for I2C_RSTART */
+#define _I2C_IEN_RSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RSTART_DEFAULT (_I2C_IEN_RSTART_DEFAULT << 1) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR (0x1UL << 2) /**< Address Interrupt Flag */
+#define _I2C_IEN_ADDR_SHIFT 2 /**< Shift value for I2C_ADDR */
+#define _I2C_IEN_ADDR_MASK 0x4UL /**< Bit mask for I2C_ADDR */
+#define _I2C_IEN_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ADDR_DEFAULT (_I2C_IEN_ADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC (0x1UL << 3) /**< Transfer Completed Interrupt Flag */
+#define _I2C_IEN_TXC_SHIFT 3 /**< Shift value for I2C_TXC */
+#define _I2C_IEN_TXC_MASK 0x8UL /**< Bit mask for I2C_TXC */
+#define _I2C_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXC_DEFAULT (_I2C_IEN_TXC_DEFAULT << 3) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL (0x1UL << 4) /**< Transmit Buffer Level Interrupt Flag */
+#define _I2C_IEN_TXBL_SHIFT 4 /**< Shift value for I2C_TXBL */
+#define _I2C_IEN_TXBL_MASK 0x10UL /**< Bit mask for I2C_TXBL */
+#define _I2C_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXBL_DEFAULT (_I2C_IEN_TXBL_DEFAULT << 4) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV (0x1UL << 5) /**< Receive Data Valid Interrupt Flag */
+#define _I2C_IEN_RXDATAV_SHIFT 5 /**< Shift value for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_MASK 0x20UL /**< Bit mask for I2C_RXDATAV */
+#define _I2C_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXDATAV_DEFAULT (_I2C_IEN_RXDATAV_DEFAULT << 5) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK (0x1UL << 6) /**< Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_ACK_SHIFT 6 /**< Shift value for I2C_ACK */
+#define _I2C_IEN_ACK_MASK 0x40UL /**< Bit mask for I2C_ACK */
+#define _I2C_IEN_ACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ACK_DEFAULT (_I2C_IEN_ACK_DEFAULT << 6) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK (0x1UL << 7) /**< Not Acknowledge Received Interrupt Flag */
+#define _I2C_IEN_NACK_SHIFT 7 /**< Shift value for I2C_NACK */
+#define _I2C_IEN_NACK_MASK 0x80UL /**< Bit mask for I2C_NACK */
+#define _I2C_IEN_NACK_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_NACK_DEFAULT (_I2C_IEN_NACK_DEFAULT << 7) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP (0x1UL << 8) /**< Leader STOP Condition Interrupt Flag */
+#define _I2C_IEN_MSTOP_SHIFT 8 /**< Shift value for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_MASK 0x100UL /**< Bit mask for I2C_MSTOP */
+#define _I2C_IEN_MSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_MSTOP_DEFAULT (_I2C_IEN_MSTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST (0x1UL << 9) /**< Arbitration Lost Interrupt Flag */
+#define _I2C_IEN_ARBLOST_SHIFT 9 /**< Shift value for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_MASK 0x200UL /**< Bit mask for I2C_ARBLOST */
+#define _I2C_IEN_ARBLOST_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_ARBLOST_DEFAULT (_I2C_IEN_ARBLOST_DEFAULT << 9) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR (0x1UL << 10) /**< Bus Error Interrupt Flag */
+#define _I2C_IEN_BUSERR_SHIFT 10 /**< Shift value for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_MASK 0x400UL /**< Bit mask for I2C_BUSERR */
+#define _I2C_IEN_BUSERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSERR_DEFAULT (_I2C_IEN_BUSERR_DEFAULT << 10) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD (0x1UL << 11) /**< Bus Held Interrupt Flag */
+#define _I2C_IEN_BUSHOLD_SHIFT 11 /**< Shift value for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_MASK 0x800UL /**< Bit mask for I2C_BUSHOLD */
+#define _I2C_IEN_BUSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BUSHOLD_DEFAULT (_I2C_IEN_BUSHOLD_DEFAULT << 11) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF (0x1UL << 12) /**< Transmit Buffer Overflow Interrupt Flag */
+#define _I2C_IEN_TXOF_SHIFT 12 /**< Shift value for I2C_TXOF */
+#define _I2C_IEN_TXOF_MASK 0x1000UL /**< Bit mask for I2C_TXOF */
+#define _I2C_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_TXOF_DEFAULT (_I2C_IEN_TXOF_DEFAULT << 12) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF (0x1UL << 13) /**< Receive Buffer Underflow Interrupt Flag */
+#define _I2C_IEN_RXUF_SHIFT 13 /**< Shift value for I2C_RXUF */
+#define _I2C_IEN_RXUF_MASK 0x2000UL /**< Bit mask for I2C_RXUF */
+#define _I2C_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXUF_DEFAULT (_I2C_IEN_RXUF_DEFAULT << 13) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO (0x1UL << 14) /**< Bus Idle Timeout Interrupt Flag */
+#define _I2C_IEN_BITO_SHIFT 14 /**< Shift value for I2C_BITO */
+#define _I2C_IEN_BITO_MASK 0x4000UL /**< Bit mask for I2C_BITO */
+#define _I2C_IEN_BITO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_BITO_DEFAULT (_I2C_IEN_BITO_DEFAULT << 14) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO (0x1UL << 15) /**< Clock Low Timeout Interrupt Flag */
+#define _I2C_IEN_CLTO_SHIFT 15 /**< Shift value for I2C_CLTO */
+#define _I2C_IEN_CLTO_MASK 0x8000UL /**< Bit mask for I2C_CLTO */
+#define _I2C_IEN_CLTO_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLTO_DEFAULT (_I2C_IEN_CLTO_DEFAULT << 15) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP (0x1UL << 16) /**< Follower STOP condition Interrupt Flag */
+#define _I2C_IEN_SSTOP_SHIFT 16 /**< Shift value for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_MASK 0x10000UL /**< Bit mask for I2C_SSTOP */
+#define _I2C_IEN_SSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SSTOP_DEFAULT (_I2C_IEN_SSTOP_DEFAULT << 16) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL (0x1UL << 17) /**< Receive Buffer Full Interrupt Flag */
+#define _I2C_IEN_RXFULL_SHIFT 17 /**< Shift value for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_MASK 0x20000UL /**< Bit mask for I2C_RXFULL */
+#define _I2C_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_RXFULL_DEFAULT (_I2C_IEN_RXFULL_DEFAULT << 17) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR (0x1UL << 18) /**< Clock Low Error Interrupt Flag */
+#define _I2C_IEN_CLERR_SHIFT 18 /**< Shift value for I2C_CLERR */
+#define _I2C_IEN_CLERR_MASK 0x40000UL /**< Bit mask for I2C_CLERR */
+#define _I2C_IEN_CLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_CLERR_DEFAULT (_I2C_IEN_CLERR_DEFAULT << 18) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR (0x1UL << 19) /**< SCL Error Interrupt Flag */
+#define _I2C_IEN_SCLERR_SHIFT 19 /**< Shift value for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_MASK 0x80000UL /**< Bit mask for I2C_SCLERR */
+#define _I2C_IEN_SCLERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SCLERR_DEFAULT (_I2C_IEN_SCLERR_DEFAULT << 19) /**< Shifted mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR (0x1UL << 20) /**< SDA Error Interrupt Flag */
+#define _I2C_IEN_SDAERR_SHIFT 20 /**< Shift value for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_MASK 0x100000UL /**< Bit mask for I2C_SDAERR */
+#define _I2C_IEN_SDAERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for I2C_IEN */
+#define I2C_IEN_SDAERR_DEFAULT (_I2C_IEN_SDAERR_DEFAULT << 20) /**< Shifted mode DEFAULT for I2C_IEN */
+
+/** @} End of group EFR32ZG23_I2C_BitFields */
+/** @} End of group EFR32ZG23_I2C */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_I2C_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_iadc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_iadc.h
new file mode 100644
index 000000000..4aa2c3129
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_iadc.h
@@ -0,0 +1,1036 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 IADC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_IADC_H
+#define EFR32ZG23_IADC_H
+#define IADC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_IADC IADC
+ * @{
+ * @brief EFR32ZG23 IADC Register Declaration.
+ *****************************************************************************/
+
+/** IADC CFG Register Group Declaration. */
+typedef struct iadc_cfg_typedef{
+ __IOM uint32_t CFG; /**< Configuration */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t SCALE; /**< Scaling */
+ __IOM uint32_t SCHED; /**< Scheduling */
+} IADC_CFG_TypeDef;
+
+/** IADC SCANTABLE Register Group Declaration. */
+typedef struct iadc_scantable_typedef{
+ __IOM uint32_t SCAN; /**< SCAN Entry */
+} IADC_SCANTABLE_TypeDef;
+
+/** IADC Register Declaration. */
+typedef struct iadc_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t CTRL; /**< Control */
+ __IOM uint32_t CMD; /**< Command */
+ __IOM uint32_t TIMER; /**< Timer */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t MASKREQ; /**< Mask Request */
+ __IM uint32_t STMASK; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER; /**< Trigger */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG[2U]; /**< CFG */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA; /**< Scan Data */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE; /**< Single Queue Port Selection */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE[16U]; /**< SCANTABLE */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ uint32_t RESERVED8[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ __IOM uint32_t CMD_SET; /**< Command */
+ __IOM uint32_t TIMER_SET; /**< Timer */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t MASKREQ_SET; /**< Mask Request */
+ __IM uint32_t STMASK_SET; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_SET; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_SET; /**< Trigger */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_SET[2U]; /**< CFG */
+ uint32_t RESERVED11[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_SET; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_SET; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_SET; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_SET; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_SET; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_SET; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_SET; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_SET; /**< Scan Data */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_SET; /**< Single Queue Port Selection */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_SET[16U]; /**< SCANTABLE */
+ uint32_t RESERVED15[4U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ __IOM uint32_t CMD_CLR; /**< Command */
+ __IOM uint32_t TIMER_CLR; /**< Timer */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t MASKREQ_CLR; /**< Mask Request */
+ __IM uint32_t STMASK_CLR; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_CLR; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_CLR; /**< Trigger */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_CLR[2U]; /**< CFG */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_CLR; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_CLR; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_CLR; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_CLR; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_CLR; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_CLR; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_CLR; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_CLR; /**< Scan Data */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_CLR; /**< Single Queue Port Selection */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_CLR[16U]; /**< SCANTABLE */
+ uint32_t RESERVED24[4U]; /**< Reserved for future use */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ uint32_t RESERVED26[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ __IOM uint32_t CMD_TGL; /**< Command */
+ __IOM uint32_t TIMER_TGL; /**< Timer */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t MASKREQ_TGL; /**< Mask Request */
+ __IM uint32_t STMASK_TGL; /**< Scan Table Mask */
+ __IOM uint32_t CMPTHR_TGL; /**< Digital Window Comparator Threshold */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IOM uint32_t TRIGGER_TGL; /**< Trigger */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[5U]; /**< Reserved for future use */
+ IADC_CFG_TypeDef CFG_TGL[2U]; /**< CFG */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLEFIFOCFG_TGL; /**< Single FIFO Configuration */
+ __IM uint32_t SINGLEFIFODATA_TGL; /**< Single FIFO DATA */
+ __IM uint32_t SINGLEFIFOSTAT_TGL; /**< Single FIFO Status */
+ __IM uint32_t SINGLEDATA_TGL; /**< Single Data */
+ __IOM uint32_t SCANFIFOCFG_TGL; /**< Scan FIFO Configuration */
+ __IM uint32_t SCANFIFODATA_TGL; /**< Scan FIFO Read Data */
+ __IM uint32_t SCANFIFOSTAT_TGL; /**< Scan FIFO Status */
+ __IM uint32_t SCANDATA_TGL; /**< Scan Data */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+ uint32_t RESERVED31[1U]; /**< Reserved for future use */
+ __IOM uint32_t SINGLE_TGL; /**< Single Queue Port Selection */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ IADC_SCANTABLE_TypeDef SCANTABLE_TGL[16U]; /**< SCANTABLE */
+ uint32_t RESERVED33[4U]; /**< Reserved for future use */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+} IADC_TypeDef;
+/** @} End of group EFR32ZG23_IADC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_IADC
+ * @{
+ * @defgroup EFR32ZG23_IADC_BitFields IADC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for IADC IPVERSION */
+#define _IADC_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for IADC_IPVERSION */
+#define _IADC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_IPVERSION */
+#define _IADC_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for IADC_IPVERSION */
+#define IADC_IPVERSION_IPVERSION_DEFAULT (_IADC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IPVERSION */
+
+/* Bit fields for IADC EN */
+#define _IADC_EN_RESETVALUE 0x00000000UL /**< Default value for IADC_EN */
+#define _IADC_EN_MASK 0x00000003UL /**< Mask for IADC_EN */
+#define IADC_EN_EN (0x1UL << 0) /**< Enable IADC Module */
+#define _IADC_EN_EN_SHIFT 0 /**< Shift value for IADC_EN */
+#define _IADC_EN_EN_MASK 0x1UL /**< Bit mask for IADC_EN */
+#define _IADC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_EN */
+#define _IADC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for IADC_EN */
+#define _IADC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for IADC_EN */
+#define IADC_EN_EN_DEFAULT (_IADC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_EN */
+#define IADC_EN_EN_DISABLE (_IADC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for IADC_EN */
+#define IADC_EN_EN_ENABLE (_IADC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for IADC_EN */
+#define IADC_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _IADC_EN_DISABLING_SHIFT 1 /**< Shift value for IADC_DISABLING */
+#define _IADC_EN_DISABLING_MASK 0x2UL /**< Bit mask for IADC_DISABLING */
+#define _IADC_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_EN */
+#define IADC_EN_DISABLING_DEFAULT (_IADC_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_EN */
+
+/* Bit fields for IADC CTRL */
+#define _IADC_CTRL_RESETVALUE 0x00000000UL /**< Default value for IADC_CTRL */
+#define _IADC_CTRL_MASK 0x707F003FUL /**< Mask for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT (0x1UL << 0) /**< EM23 Wakeup on Conversion */
+#define _IADC_CTRL_EM23WUCONVERT_SHIFT 0 /**< Shift value for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_MASK 0x1UL /**< Bit mask for IADC_EM23WUCONVERT */
+#define _IADC_CTRL_EM23WUCONVERT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUDVL 0x00000000UL /**< Mode WUDVL for IADC_CTRL */
+#define _IADC_CTRL_EM23WUCONVERT_WUCONVERT 0x00000001UL /**< Mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_DEFAULT (_IADC_CTRL_EM23WUCONVERT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUDVL (_IADC_CTRL_EM23WUCONVERT_WUDVL << 0) /**< Shifted mode WUDVL for IADC_CTRL */
+#define IADC_CTRL_EM23WUCONVERT_WUCONVERT (_IADC_CTRL_EM23WUCONVERT_WUCONVERT << 0) /**< Shifted mode WUCONVERT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0 (0x1UL << 1) /**< ADC_CLK Suspend - PRS0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_SHIFT 1 /**< Shift value for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_MASK 0x2UL /**< Bit mask for IADC_ADCCLKSUSPEND0 */
+#define _IADC_CTRL_ADCCLKSUSPEND0_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND0_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUDIS << 1) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND0_PRSWUEN << 1) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1 (0x1UL << 2) /**< ADC_CLK Suspend - PRS1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_SHIFT 2 /**< Shift value for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_MASK 0x4UL /**< Bit mask for IADC_ADCCLKSUSPEND1 */
+#define _IADC_CTRL_ADCCLKSUSPEND1_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS 0x00000000UL /**< Mode PRSWUDIS for IADC_CTRL */
+#define _IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN 0x00000001UL /**< Mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_DEFAULT (_IADC_CTRL_ADCCLKSUSPEND1_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUDIS << 2) /**< Shifted mode PRSWUDIS for IADC_CTRL */
+#define IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN (_IADC_CTRL_ADCCLKSUSPEND1_PRSWUEN << 2) /**< Shifted mode PRSWUEN for IADC_CTRL */
+#define IADC_CTRL_DBGHALT (0x1UL << 3) /**< Debug Halt */
+#define _IADC_CTRL_DBGHALT_SHIFT 3 /**< Shift value for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_MASK 0x8UL /**< Bit mask for IADC_DBGHALT */
+#define _IADC_CTRL_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_DBGHALT_HALT 0x00000001UL /**< Mode HALT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_DEFAULT (_IADC_CTRL_DBGHALT_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_NORMAL (_IADC_CTRL_DBGHALT_NORMAL << 3) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_DBGHALT_HALT (_IADC_CTRL_DBGHALT_HALT << 3) /**< Shifted mode HALT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_SHIFT 4 /**< Shift value for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_MASK 0x30UL /**< Bit mask for IADC_WARMUPMODE */
+#define _IADC_CTRL_WARMUPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPINSTANDBY 0x00000001UL /**< Mode KEEPINSTANDBY for IADC_CTRL */
+#define _IADC_CTRL_WARMUPMODE_KEEPWARM 0x00000002UL /**< Mode KEEPWARM for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_DEFAULT (_IADC_CTRL_WARMUPMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_NORMAL (_IADC_CTRL_WARMUPMODE_NORMAL << 4) /**< Shifted mode NORMAL for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPINSTANDBY (_IADC_CTRL_WARMUPMODE_KEEPINSTANDBY << 4) /**< Shifted mode KEEPINSTANDBY for IADC_CTRL */
+#define IADC_CTRL_WARMUPMODE_KEEPWARM (_IADC_CTRL_WARMUPMODE_KEEPWARM << 4) /**< Shifted mode KEEPWARM for IADC_CTRL */
+#define _IADC_CTRL_TIMEBASE_SHIFT 16 /**< Shift value for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_MASK 0x7F0000UL /**< Bit mask for IADC_TIMEBASE */
+#define _IADC_CTRL_TIMEBASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_TIMEBASE_DEFAULT (_IADC_CTRL_TIMEBASE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_SHIFT 28 /**< Shift value for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_MASK 0x70000000UL /**< Bit mask for IADC_HSCLKRATE */
+#define _IADC_CTRL_HSCLKRATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV1 0x00000000UL /**< Mode DIV1 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV2 0x00000001UL /**< Mode DIV2 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV3 0x00000002UL /**< Mode DIV3 for IADC_CTRL */
+#define _IADC_CTRL_HSCLKRATE_DIV4 0x00000003UL /**< Mode DIV4 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DEFAULT (_IADC_CTRL_HSCLKRATE_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV1 (_IADC_CTRL_HSCLKRATE_DIV1 << 28) /**< Shifted mode DIV1 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV2 (_IADC_CTRL_HSCLKRATE_DIV2 << 28) /**< Shifted mode DIV2 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV3 (_IADC_CTRL_HSCLKRATE_DIV3 << 28) /**< Shifted mode DIV3 for IADC_CTRL */
+#define IADC_CTRL_HSCLKRATE_DIV4 (_IADC_CTRL_HSCLKRATE_DIV4 << 28) /**< Shifted mode DIV4 for IADC_CTRL */
+
+/* Bit fields for IADC CMD */
+#define _IADC_CMD_RESETVALUE 0x00000000UL /**< Default value for IADC_CMD */
+#define _IADC_CMD_MASK 0x0303001BUL /**< Mask for IADC_CMD */
+#define IADC_CMD_SINGLESTART (0x1UL << 0) /**< Single Queue Start */
+#define _IADC_CMD_SINGLESTART_SHIFT 0 /**< Shift value for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_MASK 0x1UL /**< Bit mask for IADC_SINGLESTART */
+#define _IADC_CMD_SINGLESTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTART_DEFAULT (_IADC_CMD_SINGLESTART_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP (0x1UL << 1) /**< Single Queue Stop */
+#define _IADC_CMD_SINGLESTOP_SHIFT 1 /**< Shift value for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_MASK 0x2UL /**< Bit mask for IADC_SINGLESTOP */
+#define _IADC_CMD_SINGLESTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLESTOP_DEFAULT (_IADC_CMD_SINGLESTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART (0x1UL << 3) /**< Scan Queue Start */
+#define _IADC_CMD_SCANSTART_SHIFT 3 /**< Shift value for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_MASK 0x8UL /**< Bit mask for IADC_SCANSTART */
+#define _IADC_CMD_SCANSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTART_DEFAULT (_IADC_CMD_SCANSTART_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP (0x1UL << 4) /**< Scan Queue Stop */
+#define _IADC_CMD_SCANSTOP_SHIFT 4 /**< Shift value for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_MASK 0x10UL /**< Bit mask for IADC_SCANSTOP */
+#define _IADC_CMD_SCANSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANSTOP_DEFAULT (_IADC_CMD_SCANSTOP_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN (0x1UL << 16) /**< Timer Enable */
+#define _IADC_CMD_TIMEREN_SHIFT 16 /**< Shift value for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_MASK 0x10000UL /**< Bit mask for IADC_TIMEREN */
+#define _IADC_CMD_TIMEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMEREN_DEFAULT (_IADC_CMD_TIMEREN_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS (0x1UL << 17) /**< Timer Disable */
+#define _IADC_CMD_TIMERDIS_SHIFT 17 /**< Shift value for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_MASK 0x20000UL /**< Bit mask for IADC_TIMERDIS */
+#define _IADC_CMD_TIMERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_TIMERDIS_DEFAULT (_IADC_CMD_TIMERDIS_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH (0x1UL << 24) /**< Flush the Single FIFO */
+#define _IADC_CMD_SINGLEFIFOFLUSH_SHIFT 24 /**< Shift value for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_MASK 0x1000000UL /**< Bit mask for IADC_SINGLEFIFOFLUSH */
+#define _IADC_CMD_SINGLEFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SINGLEFIFOFLUSH_DEFAULT (_IADC_CMD_SINGLEFIFOFLUSH_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH (0x1UL << 25) /**< Flush the Scan FIFO */
+#define _IADC_CMD_SCANFIFOFLUSH_SHIFT 25 /**< Shift value for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_MASK 0x2000000UL /**< Bit mask for IADC_SCANFIFOFLUSH */
+#define _IADC_CMD_SCANFIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMD */
+#define IADC_CMD_SCANFIFOFLUSH_DEFAULT (_IADC_CMD_SCANFIFOFLUSH_DEFAULT << 25) /**< Shifted mode DEFAULT for IADC_CMD */
+
+/* Bit fields for IADC TIMER */
+#define _IADC_TIMER_RESETVALUE 0x00000000UL /**< Default value for IADC_TIMER */
+#define _IADC_TIMER_MASK 0x0000FFFFUL /**< Mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_SHIFT 0 /**< Shift value for IADC_TIMER */
+#define _IADC_TIMER_TIMER_MASK 0xFFFFUL /**< Bit mask for IADC_TIMER */
+#define _IADC_TIMER_TIMER_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TIMER */
+#define IADC_TIMER_TIMER_DEFAULT (_IADC_TIMER_TIMER_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TIMER */
+
+/* Bit fields for IADC STATUS */
+#define _IADC_STATUS_RESETVALUE 0x00000000UL /**< Default value for IADC_STATUS */
+#define _IADC_STATUS_MASK 0x4131CF5BUL /**< Mask for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN (0x1UL << 0) /**< Single Queue Enabled */
+#define _IADC_STATUS_SINGLEQEN_SHIFT 0 /**< Shift value for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_MASK 0x1UL /**< Bit mask for IADC_SINGLEQEN */
+#define _IADC_STATUS_SINGLEQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQEN_DEFAULT (_IADC_STATUS_SINGLEQEN_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING (0x1UL << 1) /**< Single Queue Pending */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_SHIFT 1 /**< Shift value for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_MASK 0x2UL /**< Bit mask for IADC_SINGLEQUEUEPENDING */
+#define _IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT (_IADC_STATUS_SINGLEQUEUEPENDING_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN (0x1UL << 3) /**< Scan Queued Enabled */
+#define _IADC_STATUS_SCANQEN_SHIFT 3 /**< Shift value for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_MASK 0x8UL /**< Bit mask for IADC_SCANQEN */
+#define _IADC_STATUS_SCANQEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQEN_DEFAULT (_IADC_STATUS_SCANQEN_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING (0x1UL << 4) /**< Scan Queue Pending */
+#define _IADC_STATUS_SCANQUEUEPENDING_SHIFT 4 /**< Shift value for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_MASK 0x10UL /**< Bit mask for IADC_SCANQUEUEPENDING */
+#define _IADC_STATUS_SCANQUEUEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANQUEUEPENDING_DEFAULT (_IADC_STATUS_SCANQUEUEPENDING_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING (0x1UL << 6) /**< Converting */
+#define _IADC_STATUS_CONVERTING_SHIFT 6 /**< Shift value for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_MASK 0x40UL /**< Bit mask for IADC_CONVERTING */
+#define _IADC_STATUS_CONVERTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_CONVERTING_DEFAULT (_IADC_STATUS_CONVERTING_DEFAULT << 6) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV (0x1UL << 8) /**< SINGLEFIFO Data Valid */
+#define _IADC_STATUS_SINGLEFIFODV_SHIFT 8 /**< Shift value for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_MASK 0x100UL /**< Bit mask for IADC_SINGLEFIFODV */
+#define _IADC_STATUS_SINGLEFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFODV_DEFAULT (_IADC_STATUS_SINGLEFIFODV_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV (0x1UL << 9) /**< SCANFIFO Data Valid */
+#define _IADC_STATUS_SCANFIFODV_SHIFT 9 /**< Shift value for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_MASK 0x200UL /**< Bit mask for IADC_SCANFIFODV */
+#define _IADC_STATUS_SCANFIFODV_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFODV_DEFAULT (_IADC_STATUS_SCANFIFODV_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING (0x1UL << 14) /**< The Single FIFO is flushing */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_SHIFT 14 /**< Shift value for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_MASK 0x4000UL /**< Bit mask for IADC_SINGLEFIFOFLUSHING */
+#define _IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT (_IADC_STATUS_SINGLEFIFOFLUSHING_DEFAULT << 14) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING (0x1UL << 15) /**< The Scan FIFO is flushing */
+#define _IADC_STATUS_SCANFIFOFLUSHING_SHIFT 15 /**< Shift value for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_MASK 0x8000UL /**< Bit mask for IADC_SCANFIFOFLUSHING */
+#define _IADC_STATUS_SCANFIFOFLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SCANFIFOFLUSHING_DEFAULT (_IADC_STATUS_SCANFIFOFLUSHING_DEFAULT << 15) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE (0x1UL << 16) /**< Timer Active */
+#define _IADC_STATUS_TIMERACTIVE_SHIFT 16 /**< Shift value for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_MASK 0x10000UL /**< Bit mask for IADC_TIMERACTIVE */
+#define _IADC_STATUS_TIMERACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_TIMERACTIVE_DEFAULT (_IADC_STATUS_TIMERACTIVE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING (0x1UL << 20) /**< SINGLE write pending */
+#define _IADC_STATUS_SINGLEWRITEPENDING_SHIFT 20 /**< Shift value for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_MASK 0x100000UL /**< Bit mask for IADC_SINGLEWRITEPENDING */
+#define _IADC_STATUS_SINGLEWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SINGLEWRITEPENDING_DEFAULT (_IADC_STATUS_SINGLEWRITEPENDING_DEFAULT << 20) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING (0x1UL << 21) /**< MASKREQ write pending */
+#define _IADC_STATUS_MASKREQWRITEPENDING_SHIFT 21 /**< Shift value for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_MASK 0x200000UL /**< Bit mask for IADC_MASKREQWRITEPENDING */
+#define _IADC_STATUS_MASKREQWRITEPENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_MASKREQWRITEPENDING_DEFAULT (_IADC_STATUS_MASKREQWRITEPENDING_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY (0x1UL << 24) /**< SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_SHIFT 24 /**< Shift value for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_MASK 0x1000000UL /**< Bit mask for IADC_SYNCBUSY */
+#define _IADC_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_SYNCBUSY_DEFAULT (_IADC_STATUS_SYNCBUSY_DEFAULT << 24) /**< Shifted mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM (0x1UL << 30) /**< ADCWARM */
+#define _IADC_STATUS_ADCWARM_SHIFT 30 /**< Shift value for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_MASK 0x40000000UL /**< Bit mask for IADC_ADCWARM */
+#define _IADC_STATUS_ADCWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STATUS */
+#define IADC_STATUS_ADCWARM_DEFAULT (_IADC_STATUS_ADCWARM_DEFAULT << 30) /**< Shifted mode DEFAULT for IADC_STATUS */
+
+/* Bit fields for IADC MASKREQ */
+#define _IADC_MASKREQ_RESETVALUE 0x00000000UL /**< Default value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASK 0x0000FFFFUL /**< Mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_SHIFT 0 /**< Shift value for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_MASK 0xFFFFUL /**< Bit mask for IADC_MASKREQ */
+#define _IADC_MASKREQ_MASKREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_MASKREQ */
+#define IADC_MASKREQ_MASKREQ_DEFAULT (_IADC_MASKREQ_MASKREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_MASKREQ */
+
+/* Bit fields for IADC STMASK */
+#define _IADC_STMASK_RESETVALUE 0x00000000UL /**< Default value for IADC_STMASK */
+#define _IADC_STMASK_MASK 0x0000FFFFUL /**< Mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_SHIFT 0 /**< Shift value for IADC_STMASK */
+#define _IADC_STMASK_STMASK_MASK 0xFFFFUL /**< Bit mask for IADC_STMASK */
+#define _IADC_STMASK_STMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_STMASK */
+#define IADC_STMASK_STMASK_DEFAULT (_IADC_STMASK_STMASK_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_STMASK */
+
+/* Bit fields for IADC CMPTHR */
+#define _IADC_CMPTHR_RESETVALUE 0x00000000UL /**< Default value for IADC_CMPTHR */
+#define _IADC_CMPTHR_MASK 0xFFFFFFFFUL /**< Mask for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADLT_SHIFT 0 /**< Shift value for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_MASK 0xFFFFUL /**< Bit mask for IADC_ADLT */
+#define _IADC_CMPTHR_ADLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADLT_DEFAULT (_IADC_CMPTHR_ADLT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+#define _IADC_CMPTHR_ADGT_SHIFT 16 /**< Shift value for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_MASK 0xFFFF0000UL /**< Bit mask for IADC_ADGT */
+#define _IADC_CMPTHR_ADGT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CMPTHR */
+#define IADC_CMPTHR_ADGT_DEFAULT (_IADC_CMPTHR_ADGT_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CMPTHR */
+
+/* Bit fields for IADC IF */
+#define _IADC_IF_RESETVALUE 0x00000000UL /**< Default value for IADC_IF */
+#define _IADC_IF_MASK 0x800F338FUL /**< Mask for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level */
+#define _IADC_IF_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IF_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFODVL_DEFAULT (_IADC_IF_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level */
+#define _IADC_IF_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IF_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFODVL_DEFAULT (_IADC_IF_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare */
+#define _IADC_IF_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IF_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLECMP_DEFAULT (_IADC_IF_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare */
+#define _IADC_IF_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IF_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANCMP_DEFAULT (_IADC_IF_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done */
+#define _IADC_IF_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IF_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANENTRYDONE_DEFAULT (_IADC_IF_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done */
+#define _IADC_IF_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IF_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANTABLEDONE_DEFAULT (_IADC_IF_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done */
+#define _IADC_IF_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IF_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEDONE_DEFAULT (_IADC_IF_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR (0x1UL << 12) /**< Polarity Error */
+#define _IADC_IF_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IF_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_POLARITYERR_DEFAULT (_IADC_IF_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error */
+#define _IADC_IF_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IF_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_PORTALLOCERR_DEFAULT (_IADC_IF_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow */
+#define _IADC_IF_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IF_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOOF_DEFAULT (_IADC_IF_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow */
+#define _IADC_IF_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IF_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOOF_DEFAULT (_IADC_IF_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow */
+#define _IADC_IF_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IF_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SINGLEFIFOUF_DEFAULT (_IADC_IF_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow */
+#define _IADC_IF_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IF_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_SCANFIFOUF_DEFAULT (_IADC_IF_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error */
+#define _IADC_IF_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IF_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IF */
+#define IADC_IF_EM23ABORTERROR_DEFAULT (_IADC_IF_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IF */
+
+/* Bit fields for IADC IEN */
+#define _IADC_IEN_RESETVALUE 0x00000000UL /**< Default value for IADC_IEN */
+#define _IADC_IEN_MASK 0x800F338FUL /**< Mask for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL (0x1UL << 0) /**< Single FIFO Data Valid Level Enable */
+#define _IADC_IEN_SINGLEFIFODVL_SHIFT 0 /**< Shift value for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_MASK 0x1UL /**< Bit mask for IADC_SINGLEFIFODVL */
+#define _IADC_IEN_SINGLEFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFODVL_DEFAULT (_IADC_IEN_SINGLEFIFODVL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL (0x1UL << 1) /**< Scan FIFO Data Valid Level Enable */
+#define _IADC_IEN_SCANFIFODVL_SHIFT 1 /**< Shift value for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_MASK 0x2UL /**< Bit mask for IADC_SCANFIFODVL */
+#define _IADC_IEN_SCANFIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFODVL_DEFAULT (_IADC_IEN_SCANFIFODVL_DEFAULT << 1) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP (0x1UL << 2) /**< Single Result Window Compare Enable */
+#define _IADC_IEN_SINGLECMP_SHIFT 2 /**< Shift value for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_MASK 0x4UL /**< Bit mask for IADC_SINGLECMP */
+#define _IADC_IEN_SINGLECMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLECMP_DEFAULT (_IADC_IEN_SINGLECMP_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP (0x1UL << 3) /**< Scan Result Window Compare Enable */
+#define _IADC_IEN_SCANCMP_SHIFT 3 /**< Shift value for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_MASK 0x8UL /**< Bit mask for IADC_SCANCMP */
+#define _IADC_IEN_SCANCMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANCMP_DEFAULT (_IADC_IEN_SCANCMP_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE (0x1UL << 7) /**< Scan Entry Done Enable */
+#define _IADC_IEN_SCANENTRYDONE_SHIFT 7 /**< Shift value for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_MASK 0x80UL /**< Bit mask for IADC_SCANENTRYDONE */
+#define _IADC_IEN_SCANENTRYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANENTRYDONE_DEFAULT (_IADC_IEN_SCANENTRYDONE_DEFAULT << 7) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE (0x1UL << 8) /**< Scan Table Done Enable */
+#define _IADC_IEN_SCANTABLEDONE_SHIFT 8 /**< Shift value for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_MASK 0x100UL /**< Bit mask for IADC_SCANTABLEDONE */
+#define _IADC_IEN_SCANTABLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANTABLEDONE_DEFAULT (_IADC_IEN_SCANTABLEDONE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE (0x1UL << 9) /**< Single Conversion Done Enable */
+#define _IADC_IEN_SINGLEDONE_SHIFT 9 /**< Shift value for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_MASK 0x200UL /**< Bit mask for IADC_SINGLEDONE */
+#define _IADC_IEN_SINGLEDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEDONE_DEFAULT (_IADC_IEN_SINGLEDONE_DEFAULT << 9) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR (0x1UL << 12) /**< Polarity Error Enable */
+#define _IADC_IEN_POLARITYERR_SHIFT 12 /**< Shift value for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_MASK 0x1000UL /**< Bit mask for IADC_POLARITYERR */
+#define _IADC_IEN_POLARITYERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_POLARITYERR_DEFAULT (_IADC_IEN_POLARITYERR_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR (0x1UL << 13) /**< Port Allocation Error Enable */
+#define _IADC_IEN_PORTALLOCERR_SHIFT 13 /**< Shift value for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_MASK 0x2000UL /**< Bit mask for IADC_PORTALLOCERR */
+#define _IADC_IEN_PORTALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_PORTALLOCERR_DEFAULT (_IADC_IEN_PORTALLOCERR_DEFAULT << 13) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF (0x1UL << 16) /**< Single FIFO Overflow Enable */
+#define _IADC_IEN_SINGLEFIFOOF_SHIFT 16 /**< Shift value for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_MASK 0x10000UL /**< Bit mask for IADC_SINGLEFIFOOF */
+#define _IADC_IEN_SINGLEFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOOF_DEFAULT (_IADC_IEN_SINGLEFIFOOF_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF (0x1UL << 17) /**< Scan FIFO Overflow Enable */
+#define _IADC_IEN_SCANFIFOOF_SHIFT 17 /**< Shift value for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_MASK 0x20000UL /**< Bit mask for IADC_SCANFIFOOF */
+#define _IADC_IEN_SCANFIFOOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOOF_DEFAULT (_IADC_IEN_SCANFIFOOF_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF (0x1UL << 18) /**< Single FIFO Underflow Enable */
+#define _IADC_IEN_SINGLEFIFOUF_SHIFT 18 /**< Shift value for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_MASK 0x40000UL /**< Bit mask for IADC_SINGLEFIFOUF */
+#define _IADC_IEN_SINGLEFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SINGLEFIFOUF_DEFAULT (_IADC_IEN_SINGLEFIFOUF_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF (0x1UL << 19) /**< Scan FIFO Underflow Enable */
+#define _IADC_IEN_SCANFIFOUF_SHIFT 19 /**< Shift value for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_MASK 0x80000UL /**< Bit mask for IADC_SCANFIFOUF */
+#define _IADC_IEN_SCANFIFOUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_SCANFIFOUF_DEFAULT (_IADC_IEN_SCANFIFOUF_DEFAULT << 19) /**< Shifted mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR (0x1UL << 31) /**< EM2/3 Abort Error Enable */
+#define _IADC_IEN_EM23ABORTERROR_SHIFT 31 /**< Shift value for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_MASK 0x80000000UL /**< Bit mask for IADC_EM23ABORTERROR */
+#define _IADC_IEN_EM23ABORTERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_IEN */
+#define IADC_IEN_EM23ABORTERROR_DEFAULT (_IADC_IEN_EM23ABORTERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_IEN */
+
+/* Bit fields for IADC TRIGGER */
+#define _IADC_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for IADC_TRIGGER */
+#define _IADC_TRIGGER_MASK 0x00011717UL /**< Mask for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_SHIFT 0 /**< Shift value for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_MASK 0x7UL /**< Bit mask for IADC_SCANTRIGSEL */
+#define _IADC_TRIGGER_SCANTRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGSEL_LESENSE 0x00000005UL /**< Mode LESENSE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_DEFAULT (_IADC_TRIGGER_SCANTRIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE (_IADC_TRIGGER_SCANTRIGSEL_IMMEDIATE << 0) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_TIMER (_IADC_TRIGGER_SCANTRIGSEL_TIMER << 0) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SCANTRIGSEL_PRSCLKGRP << 0) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSPOS (_IADC_TRIGGER_SCANTRIGSEL_PRSPOS << 0) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_PRSNEG (_IADC_TRIGGER_SCANTRIGSEL_PRSNEG << 0) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGSEL_LESENSE (_IADC_TRIGGER_SCANTRIGSEL_LESENSE << 0) /**< Shifted mode LESENSE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION (0x1UL << 4) /**< Scan Trigger Action */
+#define _IADC_TRIGGER_SCANTRIGACTION_SHIFT 4 /**< Shift value for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_MASK 0x10UL /**< Bit mask for IADC_SCANTRIGACTION */
+#define _IADC_TRIGGER_SCANTRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_DEFAULT (_IADC_TRIGGER_SCANTRIGACTION_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_ONCE (_IADC_TRIGGER_SCANTRIGACTION_ONCE << 4) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS (_IADC_TRIGGER_SCANTRIGACTION_CONTINUOUS << 4) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_SHIFT 8 /**< Shift value for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_MASK 0x700UL /**< Bit mask for IADC_SINGLETRIGSEL */
+#define _IADC_TRIGGER_SINGLETRIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE 0x00000000UL /**< Mode IMMEDIATE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_TIMER 0x00000001UL /**< Mode TIMER for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP 0x00000002UL /**< Mode PRSCLKGRP for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSPOS 0x00000003UL /**< Mode PRSPOS for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGSEL_PRSNEG 0x00000004UL /**< Mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_DEFAULT (_IADC_TRIGGER_SINGLETRIGSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE (_IADC_TRIGGER_SINGLETRIGSEL_IMMEDIATE << 8) /**< Shifted mode IMMEDIATE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_TIMER (_IADC_TRIGGER_SINGLETRIGSEL_TIMER << 8) /**< Shifted mode TIMER for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP (_IADC_TRIGGER_SINGLETRIGSEL_PRSCLKGRP << 8) /**< Shifted mode PRSCLKGRP for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSPOS (_IADC_TRIGGER_SINGLETRIGSEL_PRSPOS << 8) /**< Shifted mode PRSPOS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGSEL_PRSNEG (_IADC_TRIGGER_SINGLETRIGSEL_PRSNEG << 8) /**< Shifted mode PRSNEG for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION (0x1UL << 12) /**< Single Trigger Action */
+#define _IADC_TRIGGER_SINGLETRIGACTION_SHIFT 12 /**< Shift value for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_MASK 0x1000UL /**< Bit mask for IADC_SINGLETRIGACTION */
+#define _IADC_TRIGGER_SINGLETRIGACTION_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_ONCE 0x00000000UL /**< Mode ONCE for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS 0x00000001UL /**< Mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_DEFAULT (_IADC_TRIGGER_SINGLETRIGACTION_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_ONCE (_IADC_TRIGGER_SINGLETRIGACTION_ONCE << 12) /**< Shifted mode ONCE for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS (_IADC_TRIGGER_SINGLETRIGACTION_CONTINUOUS << 12) /**< Shifted mode CONTINUOUS for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE (0x1UL << 16) /**< Single Tailgate Enable */
+#define _IADC_TRIGGER_SINGLETAILGATE_SHIFT 16 /**< Shift value for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_MASK 0x10000UL /**< Bit mask for IADC_SINGLETAILGATE */
+#define _IADC_TRIGGER_SINGLETAILGATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF 0x00000000UL /**< Mode TAILGATEOFF for IADC_TRIGGER */
+#define _IADC_TRIGGER_SINGLETAILGATE_TAILGATEON 0x00000001UL /**< Mode TAILGATEON for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_DEFAULT (_IADC_TRIGGER_SINGLETAILGATE_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEOFF << 16) /**< Shifted mode TAILGATEOFF for IADC_TRIGGER */
+#define IADC_TRIGGER_SINGLETAILGATE_TAILGATEON (_IADC_TRIGGER_SINGLETAILGATE_TAILGATEON << 16) /**< Shifted mode TAILGATEON for IADC_TRIGGER */
+
+/* Bit fields for IADC CFG */
+#define _IADC_CFG_RESETVALUE 0x00002060UL /**< Default value for IADC_CFG */
+#define _IADC_CFG_MASK 0x30E770FFUL /**< Mask for IADC_CFG */
+#define _IADC_CFG_ADCMODE_SHIFT 0 /**< Shift value for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_MASK 0x3UL /**< Bit mask for IADC_ADCMODE */
+#define _IADC_CFG_ADCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ADCMODE_NORMAL 0x00000000UL /**< Mode NORMAL for IADC_CFG */
+#define IADC_CFG_ADCMODE_DEFAULT (_IADC_CFG_ADCMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ADCMODE_NORMAL (_IADC_CFG_ADCMODE_NORMAL << 0) /**< Shifted mode NORMAL for IADC_CFG */
+#define _IADC_CFG_OSRHS_SHIFT 2 /**< Shift value for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_MASK 0x1CUL /**< Bit mask for IADC_OSRHS */
+#define _IADC_CFG_OSRHS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD2 0x00000000UL /**< Mode HISPD2 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD4 0x00000001UL /**< Mode HISPD4 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD8 0x00000002UL /**< Mode HISPD8 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD16 0x00000003UL /**< Mode HISPD16 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD32 0x00000004UL /**< Mode HISPD32 for IADC_CFG */
+#define _IADC_CFG_OSRHS_HISPD64 0x00000005UL /**< Mode HISPD64 for IADC_CFG */
+#define IADC_CFG_OSRHS_DEFAULT (_IADC_CFG_OSRHS_DEFAULT << 2) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD2 (_IADC_CFG_OSRHS_HISPD2 << 2) /**< Shifted mode HISPD2 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD4 (_IADC_CFG_OSRHS_HISPD4 << 2) /**< Shifted mode HISPD4 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD8 (_IADC_CFG_OSRHS_HISPD8 << 2) /**< Shifted mode HISPD8 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD16 (_IADC_CFG_OSRHS_HISPD16 << 2) /**< Shifted mode HISPD16 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD32 (_IADC_CFG_OSRHS_HISPD32 << 2) /**< Shifted mode HISPD32 for IADC_CFG */
+#define IADC_CFG_OSRHS_HISPD64 (_IADC_CFG_OSRHS_HISPD64 << 2) /**< Shifted mode HISPD64 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_SHIFT 12 /**< Shift value for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_MASK 0x7000UL /**< Bit mask for IADC_ANALOGGAIN */
+#define _IADC_CFG_ANALOGGAIN_DEFAULT 0x00000002UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN0P5 0x00000001UL /**< Mode ANAGAIN0P5 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN1 0x00000002UL /**< Mode ANAGAIN1 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN2 0x00000003UL /**< Mode ANAGAIN2 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN3 0x00000004UL /**< Mode ANAGAIN3 for IADC_CFG */
+#define _IADC_CFG_ANALOGGAIN_ANAGAIN4 0x00000005UL /**< Mode ANAGAIN4 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_DEFAULT (_IADC_CFG_ANALOGGAIN_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN0P5 (_IADC_CFG_ANALOGGAIN_ANAGAIN0P5 << 12) /**< Shifted mode ANAGAIN0P5 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN1 (_IADC_CFG_ANALOGGAIN_ANAGAIN1 << 12) /**< Shifted mode ANAGAIN1 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN2 (_IADC_CFG_ANALOGGAIN_ANAGAIN2 << 12) /**< Shifted mode ANAGAIN2 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN3 (_IADC_CFG_ANALOGGAIN_ANAGAIN3 << 12) /**< Shifted mode ANAGAIN3 for IADC_CFG */
+#define IADC_CFG_ANALOGGAIN_ANAGAIN4 (_IADC_CFG_ANALOGGAIN_ANAGAIN4 << 12) /**< Shifted mode ANAGAIN4 for IADC_CFG */
+#define _IADC_CFG_REFSEL_SHIFT 16 /**< Shift value for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_MASK 0x70000UL /**< Bit mask for IADC_REFSEL */
+#define _IADC_CFG_REFSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_REFSEL_VBGR 0x00000000UL /**< Mode VBGR for IADC_CFG */
+#define _IADC_CFG_REFSEL_VREF 0x00000001UL /**< Mode VREF for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX 0x00000003UL /**< Mode VDDX for IADC_CFG */
+#define _IADC_CFG_REFSEL_VDDX0P8BUF 0x00000004UL /**< Mode VDDX0P8BUF for IADC_CFG */
+#define IADC_CFG_REFSEL_DEFAULT (_IADC_CFG_REFSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_REFSEL_VBGR (_IADC_CFG_REFSEL_VBGR << 16) /**< Shifted mode VBGR for IADC_CFG */
+#define IADC_CFG_REFSEL_VREF (_IADC_CFG_REFSEL_VREF << 16) /**< Shifted mode VREF for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX (_IADC_CFG_REFSEL_VDDX << 16) /**< Shifted mode VDDX for IADC_CFG */
+#define IADC_CFG_REFSEL_VDDX0P8BUF (_IADC_CFG_REFSEL_VDDX0P8BUF << 16) /**< Shifted mode VDDX0P8BUF for IADC_CFG */
+#define _IADC_CFG_DIGAVG_SHIFT 21 /**< Shift value for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_MASK 0xE00000UL /**< Bit mask for IADC_DIGAVG */
+#define _IADC_CFG_DIGAVG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG1 0x00000000UL /**< Mode AVG1 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG2 0x00000001UL /**< Mode AVG2 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG4 0x00000002UL /**< Mode AVG4 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG8 0x00000003UL /**< Mode AVG8 for IADC_CFG */
+#define _IADC_CFG_DIGAVG_AVG16 0x00000004UL /**< Mode AVG16 for IADC_CFG */
+#define IADC_CFG_DIGAVG_DEFAULT (_IADC_CFG_DIGAVG_DEFAULT << 21) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG1 (_IADC_CFG_DIGAVG_AVG1 << 21) /**< Shifted mode AVG1 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG2 (_IADC_CFG_DIGAVG_AVG2 << 21) /**< Shifted mode AVG2 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG4 (_IADC_CFG_DIGAVG_AVG4 << 21) /**< Shifted mode AVG4 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG8 (_IADC_CFG_DIGAVG_AVG8 << 21) /**< Shifted mode AVG8 for IADC_CFG */
+#define IADC_CFG_DIGAVG_AVG16 (_IADC_CFG_DIGAVG_AVG16 << 21) /**< Shifted mode AVG16 for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_SHIFT 28 /**< Shift value for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_MASK 0x30000000UL /**< Bit mask for IADC_TWOSCOMPL */
+#define _IADC_CFG_TWOSCOMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_AUTO 0x00000000UL /**< Mode AUTO for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR 0x00000001UL /**< Mode FORCEUNIPOLAR for IADC_CFG */
+#define _IADC_CFG_TWOSCOMPL_FORCEBIPOLAR 0x00000002UL /**< Mode FORCEBIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_DEFAULT (_IADC_CFG_TWOSCOMPL_DEFAULT << 28) /**< Shifted mode DEFAULT for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_AUTO (_IADC_CFG_TWOSCOMPL_AUTO << 28) /**< Shifted mode AUTO for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEUNIPOLAR << 28) /**< Shifted mode FORCEUNIPOLAR for IADC_CFG */
+#define IADC_CFG_TWOSCOMPL_FORCEBIPOLAR (_IADC_CFG_TWOSCOMPL_FORCEBIPOLAR << 28) /**< Shifted mode FORCEBIPOLAR for IADC_CFG */
+
+/* Bit fields for IADC SCALE */
+#define _IADC_SCALE_RESETVALUE 0x8002C000UL /**< Default value for IADC_SCALE */
+#define _IADC_SCALE_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCALE */
+#define _IADC_SCALE_OFFSET_SHIFT 0 /**< Shift value for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_MASK 0x3FFFFUL /**< Bit mask for IADC_OFFSET */
+#define _IADC_SCALE_OFFSET_DEFAULT 0x0002C000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_OFFSET_DEFAULT (_IADC_SCALE_OFFSET_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN13LSB_SHIFT 18 /**< Shift value for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_MASK 0x7FFC0000UL /**< Bit mask for IADC_GAIN13LSB */
+#define _IADC_SCALE_GAIN13LSB_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN13LSB_DEFAULT (_IADC_SCALE_GAIN13LSB_DEFAULT << 18) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB (0x1UL << 31) /**< Gain 3 MSBs */
+#define _IADC_SCALE_GAIN3MSB_SHIFT 31 /**< Shift value for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_MASK 0x80000000UL /**< Bit mask for IADC_GAIN3MSB */
+#define _IADC_SCALE_GAIN3MSB_DEFAULT 0x00000001UL /**< Mode DEFAULT for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN011 0x00000000UL /**< Mode GAIN011 for IADC_SCALE */
+#define _IADC_SCALE_GAIN3MSB_GAIN100 0x00000001UL /**< Mode GAIN100 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_DEFAULT (_IADC_SCALE_GAIN3MSB_DEFAULT << 31) /**< Shifted mode DEFAULT for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN011 (_IADC_SCALE_GAIN3MSB_GAIN011 << 31) /**< Shifted mode GAIN011 for IADC_SCALE */
+#define IADC_SCALE_GAIN3MSB_GAIN100 (_IADC_SCALE_GAIN3MSB_GAIN100 << 31) /**< Shifted mode GAIN100 for IADC_SCALE */
+
+/* Bit fields for IADC SCHED */
+#define _IADC_SCHED_RESETVALUE 0x00000000UL /**< Default value for IADC_SCHED */
+#define _IADC_SCHED_MASK 0x000003FFUL /**< Mask for IADC_SCHED */
+#define _IADC_SCHED_PRESCALE_SHIFT 0 /**< Shift value for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_MASK 0x3FFUL /**< Bit mask for IADC_PRESCALE */
+#define _IADC_SCHED_PRESCALE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCHED */
+#define IADC_SCHED_PRESCALE_DEFAULT (_IADC_SCHED_PRESCALE_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCHED */
+
+/* Bit fields for IADC SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_MASK 0x0000017FUL /**< Mask for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SINGLEFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SINGLEFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SINGLEFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_SHOWID_DEFAULT (_IADC_SINGLEFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_MASK 0x70UL /**< Bit mask for IADC_DVL */
+#define _IADC_SINGLEFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID5 0x00000004UL /**< Mode VALID5 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID6 0x00000005UL /**< Mode VALID6 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID7 0x00000006UL /**< Mode VALID7 for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DVL_VALID8 0x00000007UL /**< Mode VALID8 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_DEFAULT (_IADC_SINGLEFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID1 (_IADC_SINGLEFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID2 (_IADC_SINGLEFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID3 (_IADC_SINGLEFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID4 (_IADC_SINGLEFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID5 (_IADC_SINGLEFIFOCFG_DVL_VALID5 << 4) /**< Shifted mode VALID5 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID6 (_IADC_SINGLEFIFOCFG_DVL_VALID6 << 4) /**< Shifted mode VALID6 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID7 (_IADC_SINGLEFIFOCFG_DVL_VALID7 << 4) /**< Shifted mode VALID7 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DVL_VALID8 (_IADC_SINGLEFIFOCFG_DVL_VALID8 << 4) /**< Shifted mode VALID8 for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE (0x1UL << 8) /**< Single FIFO DMA wakeup. */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSINGLE */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SINGLEFIFOCFG */
+#define _IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOCFG */
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SINGLEFIFOCFG*/
+#define IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED (_IADC_SINGLEFIFOCFG_DMAWUFIFOSINGLE_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SINGLEFIFOCFG */
+
+/* Bit fields for IADC SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEFIFODATA */
+#define _IADC_SINGLEFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFODATA */
+#define IADC_SINGLEFIFODATA_DATA_DEFAULT (_IADC_SINGLEFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFODATA*/
+
+/* Bit fields for IADC SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_MASK 0x0000000FUL /**< Mask for IADC_SINGLEFIFOSTAT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_MASK 0xFUL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEFIFOSTAT */
+#define IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SINGLEFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEFIFOSTAT*/
+
+/* Bit fields for IADC SINGLEDATA */
+#define _IADC_SINGLEDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SINGLEDATA */
+#define _IADC_SINGLEDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SINGLEDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLEDATA */
+#define IADC_SINGLEDATA_DATA_DEFAULT (_IADC_SINGLEDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLEDATA */
+
+/* Bit fields for IADC SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_RESETVALUE 0x00000030UL /**< Default value for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_MASK 0x0000017FUL /**< Mask for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_SHIFT 0 /**< Shift value for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_MASK 0x7UL /**< Bit mask for IADC_ALIGNMENT */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 0x00000000UL /**< Mode RIGHT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 0x00000001UL /**< Mode RIGHT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 0x00000002UL /**< Mode RIGHT20 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 0x00000003UL /**< Mode LEFT12 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 0x00000004UL /**< Mode LEFT16 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 0x00000005UL /**< Mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT (_IADC_SCANFIFOCFG_ALIGNMENT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT12 << 0) /**< Shifted mode RIGHT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT16 << 0) /**< Shifted mode RIGHT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 (_IADC_SCANFIFOCFG_ALIGNMENT_RIGHT20 << 0) /**< Shifted mode RIGHT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT12 << 0) /**< Shifted mode LEFT12 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT16 << 0) /**< Shifted mode LEFT16 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 (_IADC_SCANFIFOCFG_ALIGNMENT_LEFT20 << 0) /**< Shifted mode LEFT20 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID (0x1UL << 3) /**< Show ID */
+#define _IADC_SCANFIFOCFG_SHOWID_SHIFT 3 /**< Shift value for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_MASK 0x8UL /**< Bit mask for IADC_SHOWID */
+#define _IADC_SCANFIFOCFG_SHOWID_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_SHOWID_DEFAULT (_IADC_SCANFIFOCFG_SHOWID_DEFAULT << 3) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_SHIFT 4 /**< Shift value for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_MASK 0x70UL /**< Bit mask for IADC_DVL */
+#define _IADC_SCANFIFOCFG_DVL_DEFAULT 0x00000003UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID1 0x00000000UL /**< Mode VALID1 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID2 0x00000001UL /**< Mode VALID2 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID3 0x00000002UL /**< Mode VALID3 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID4 0x00000003UL /**< Mode VALID4 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID5 0x00000004UL /**< Mode VALID5 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID6 0x00000005UL /**< Mode VALID6 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID7 0x00000006UL /**< Mode VALID7 for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DVL_VALID8 0x00000007UL /**< Mode VALID8 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_DEFAULT (_IADC_SCANFIFOCFG_DVL_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID1 (_IADC_SCANFIFOCFG_DVL_VALID1 << 4) /**< Shifted mode VALID1 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID2 (_IADC_SCANFIFOCFG_DVL_VALID2 << 4) /**< Shifted mode VALID2 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID3 (_IADC_SCANFIFOCFG_DVL_VALID3 << 4) /**< Shifted mode VALID3 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID4 (_IADC_SCANFIFOCFG_DVL_VALID4 << 4) /**< Shifted mode VALID4 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID5 (_IADC_SCANFIFOCFG_DVL_VALID5 << 4) /**< Shifted mode VALID5 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID6 (_IADC_SCANFIFOCFG_DVL_VALID6 << 4) /**< Shifted mode VALID6 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID7 (_IADC_SCANFIFOCFG_DVL_VALID7 << 4) /**< Shifted mode VALID7 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DVL_VALID8 (_IADC_SCANFIFOCFG_DVL_VALID8 << 4) /**< Shifted mode VALID8 for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN (0x1UL << 8) /**< Scan FIFO DMA Wakeup */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_SHIFT 8 /**< Shift value for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_MASK 0x100UL /**< Bit mask for IADC_DMAWUFIFOSCAN */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED 0x00000000UL /**< Mode DISABLED for IADC_SCANFIFOCFG */
+#define _IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED 0x00000001UL /**< Mode ENABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_DISABLED << 8) /**< Shifted mode DISABLED for IADC_SCANFIFOCFG */
+#define IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED (_IADC_SCANFIFOCFG_DMAWUFIFOSCAN_ENABLED << 8) /**< Shifted mode ENABLED for IADC_SCANFIFOCFG */
+
+/* Bit fields for IADC SCANFIFODATA */
+#define _IADC_SCANFIFODATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANFIFODATA */
+#define _IADC_SCANFIFODATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANFIFODATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFODATA */
+#define IADC_SCANFIFODATA_DATA_DEFAULT (_IADC_SCANFIFODATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFODATA */
+
+/* Bit fields for IADC SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_MASK 0x0000000FUL /**< Mask for IADC_SCANFIFOSTAT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_SHIFT 0 /**< Shift value for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_MASK 0xFUL /**< Bit mask for IADC_FIFOREADCNT */
+#define _IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANFIFOSTAT */
+#define IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT (_IADC_SCANFIFOSTAT_FIFOREADCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANFIFOSTAT */
+
+/* Bit fields for IADC SCANDATA */
+#define _IADC_SCANDATA_RESETVALUE 0x00000000UL /**< Default value for IADC_SCANDATA */
+#define _IADC_SCANDATA_MASK 0xFFFFFFFFUL /**< Mask for IADC_SCANDATA */
+#define _IADC_SCANDATA_DATA_SHIFT 0 /**< Shift value for IADC_DATA */
+#define _IADC_SCANDATA_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for IADC_DATA */
+#define _IADC_SCANDATA_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCANDATA */
+#define IADC_SCANDATA_DATA_DEFAULT (_IADC_SCANDATA_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCANDATA */
+
+/* Bit fields for IADC SINGLE */
+#define _IADC_SINGLE_RESETVALUE 0x00000000UL /**< Default value for IADC_SINGLE */
+#define _IADC_SINGLE_MASK 0x0003FFFFUL /**< Mask for IADC_SINGLE */
+#define _IADC_SINGLE_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SINGLE_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINNEG_DEFAULT (_IADC_SINGLE_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SINGLE_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_DAC1 0x00000002UL /**< Mode DAC1 for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_DEFAULT (_IADC_SINGLE_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_GND (_IADC_SINGLE_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_DAC1 (_IADC_SINGLE_PORTNEG_DAC1 << 4) /**< Shifted mode DAC1 for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTA (_IADC_SINGLE_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTB (_IADC_SINGLE_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTC (_IADC_SINGLE_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTNEG_PORTD (_IADC_SINGLE_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SINGLE */
+#define _IADC_SINGLE_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SINGLE_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PINPOS_DEFAULT (_IADC_SINGLE_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SINGLE_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_DAC0 0x00000002UL /**< Mode DAC0 for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SINGLE */
+#define _IADC_SINGLE_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_DEFAULT (_IADC_SINGLE_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_GND (_IADC_SINGLE_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_SUPPLY (_IADC_SINGLE_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_DAC0 (_IADC_SINGLE_PORTPOS_DAC0 << 12) /**< Shifted mode DAC0 for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTA (_IADC_SINGLE_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTB (_IADC_SINGLE_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTC (_IADC_SINGLE_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SINGLE */
+#define IADC_SINGLE_PORTPOS_PORTD (_IADC_SINGLE_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SINGLE */
+#define IADC_SINGLE_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SINGLE_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SINGLE_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SINGLE_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SINGLE */
+#define _IADC_SINGLE_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_DEFAULT (_IADC_SINGLE_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG0 (_IADC_SINGLE_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SINGLE */
+#define IADC_SINGLE_CFG_CONFIG1 (_IADC_SINGLE_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SINGLE */
+#define IADC_SINGLE_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SINGLE_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SINGLE_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SINGLE_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SINGLE */
+#define IADC_SINGLE_CMP_DEFAULT (_IADC_SINGLE_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SINGLE */
+
+/* Bit fields for IADC SCAN */
+#define _IADC_SCAN_RESETVALUE 0x00000000UL /**< Default value for IADC_SCAN */
+#define _IADC_SCAN_MASK 0x0003FFFFUL /**< Mask for IADC_SCAN */
+#define _IADC_SCAN_PINNEG_SHIFT 0 /**< Shift value for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_MASK 0xFUL /**< Bit mask for IADC_PINNEG */
+#define _IADC_SCAN_PINNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINNEG_DEFAULT (_IADC_SCAN_PINNEG_DEFAULT << 0) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_SHIFT 4 /**< Shift value for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_MASK 0xF0UL /**< Bit mask for IADC_PORTNEG */
+#define _IADC_SCAN_PORTNEG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_DAC1 0x00000002UL /**< Mode DAC1 for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTNEG_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_DEFAULT (_IADC_SCAN_PORTNEG_DEFAULT << 4) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_GND (_IADC_SCAN_PORTNEG_GND << 4) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_DAC1 (_IADC_SCAN_PORTNEG_DAC1 << 4) /**< Shifted mode DAC1 for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTA (_IADC_SCAN_PORTNEG_PORTA << 4) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTB (_IADC_SCAN_PORTNEG_PORTB << 4) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTC (_IADC_SCAN_PORTNEG_PORTC << 4) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTNEG_PORTD (_IADC_SCAN_PORTNEG_PORTD << 4) /**< Shifted mode PORTD for IADC_SCAN */
+#define _IADC_SCAN_PINPOS_SHIFT 8 /**< Shift value for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_MASK 0xF00UL /**< Bit mask for IADC_PINPOS */
+#define _IADC_SCAN_PINPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PINPOS_DEFAULT (_IADC_SCAN_PINPOS_DEFAULT << 8) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SHIFT 12 /**< Shift value for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_MASK 0xF000UL /**< Bit mask for IADC_PORTPOS */
+#define _IADC_SCAN_PORTPOS_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_GND 0x00000000UL /**< Mode GND for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_SUPPLY 0x00000001UL /**< Mode SUPPLY for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_DAC0 0x00000002UL /**< Mode DAC0 for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTA 0x00000008UL /**< Mode PORTA for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTB 0x00000009UL /**< Mode PORTB for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTC 0x0000000AUL /**< Mode PORTC for IADC_SCAN */
+#define _IADC_SCAN_PORTPOS_PORTD 0x0000000BUL /**< Mode PORTD for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_DEFAULT (_IADC_SCAN_PORTPOS_DEFAULT << 12) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_GND (_IADC_SCAN_PORTPOS_GND << 12) /**< Shifted mode GND for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_SUPPLY (_IADC_SCAN_PORTPOS_SUPPLY << 12) /**< Shifted mode SUPPLY for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_DAC0 (_IADC_SCAN_PORTPOS_DAC0 << 12) /**< Shifted mode DAC0 for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTA (_IADC_SCAN_PORTPOS_PORTA << 12) /**< Shifted mode PORTA for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTB (_IADC_SCAN_PORTPOS_PORTB << 12) /**< Shifted mode PORTB for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTC (_IADC_SCAN_PORTPOS_PORTC << 12) /**< Shifted mode PORTC for IADC_SCAN */
+#define IADC_SCAN_PORTPOS_PORTD (_IADC_SCAN_PORTPOS_PORTD << 12) /**< Shifted mode PORTD for IADC_SCAN */
+#define IADC_SCAN_CFG (0x1UL << 16) /**< Configuration Group Select */
+#define _IADC_SCAN_CFG_SHIFT 16 /**< Shift value for IADC_CFG */
+#define _IADC_SCAN_CFG_MASK 0x10000UL /**< Bit mask for IADC_CFG */
+#define _IADC_SCAN_CFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG0 0x00000000UL /**< Mode CONFIG0 for IADC_SCAN */
+#define _IADC_SCAN_CFG_CONFIG1 0x00000001UL /**< Mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CFG_DEFAULT (_IADC_SCAN_CFG_DEFAULT << 16) /**< Shifted mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG0 (_IADC_SCAN_CFG_CONFIG0 << 16) /**< Shifted mode CONFIG0 for IADC_SCAN */
+#define IADC_SCAN_CFG_CONFIG1 (_IADC_SCAN_CFG_CONFIG1 << 16) /**< Shifted mode CONFIG1 for IADC_SCAN */
+#define IADC_SCAN_CMP (0x1UL << 17) /**< Comparison Enable */
+#define _IADC_SCAN_CMP_SHIFT 17 /**< Shift value for IADC_CMP */
+#define _IADC_SCAN_CMP_MASK 0x20000UL /**< Bit mask for IADC_CMP */
+#define _IADC_SCAN_CMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for IADC_SCAN */
+#define IADC_SCAN_CMP_DEFAULT (_IADC_SCAN_CMP_DEFAULT << 17) /**< Shifted mode DEFAULT for IADC_SCAN */
+
+/** @} End of group EFR32ZG23_IADC_BitFields */
+/** @} End of group EFR32ZG23_IADC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_IADC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_icache.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_icache.h
new file mode 100644
index 000000000..c28c7cfb8
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_icache.h
@@ -0,0 +1,248 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 ICACHE register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_ICACHE_H
+#define EFR32ZG23_ICACHE_H
+#define ICACHE_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_ICACHE ICACHE
+ * @{
+ * @brief EFR32ZG23 ICACHE Register Declaration.
+ *****************************************************************************/
+
+/** ICACHE Register Declaration. */
+typedef struct icache_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IM uint32_t PCHITS; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LPMODE; /**< Low Power Mode */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED0[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IM uint32_t PCHITS_SET; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_SET; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_SET; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LPMODE_SET; /**< Low Power Mode */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IM uint32_t PCHITS_CLR; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_CLR; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_CLR; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LPMODE_CLR; /**< Low Power Mode */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED2[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IM uint32_t PCHITS_TGL; /**< Performance Counter Hits */
+ __IM uint32_t PCMISSES_TGL; /**< Performance Counter Misses */
+ __IM uint32_t PCAHITS_TGL; /**< Performance Counter Advanced Hits */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LPMODE_TGL; /**< Low Power Mode */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+} ICACHE_TypeDef;
+/** @} End of group EFR32ZG23_ICACHE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_ICACHE
+ * @{
+ * @defgroup EFR32ZG23_ICACHE_BitFields ICACHE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ICACHE IPVERSION */
+#define _ICACHE_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_IPVERSION */
+#define _ICACHE_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IPVERSION */
+#define ICACHE_IPVERSION_IPVERSION_DEFAULT (_ICACHE_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IPVERSION */
+
+/* Bit fields for ICACHE CTRL */
+#define _ICACHE_CTRL_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CTRL */
+#define _ICACHE_CTRL_MASK 0x00000007UL /**< Mask for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS (0x1UL << 0) /**< Cache Disable */
+#define _ICACHE_CTRL_CACHEDIS_SHIFT 0 /**< Shift value for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_MASK 0x1UL /**< Bit mask for ICACHE_CACHEDIS */
+#define _ICACHE_CTRL_CACHEDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_CACHEDIS_DEFAULT (_ICACHE_CTRL_CACHEDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU (0x1UL << 1) /**< Use MPU */
+#define _ICACHE_CTRL_USEMPU_SHIFT 1 /**< Shift value for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_MASK 0x2UL /**< Bit mask for ICACHE_USEMPU */
+#define _ICACHE_CTRL_USEMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_USEMPU_DEFAULT (_ICACHE_CTRL_USEMPU_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS (0x1UL << 2) /**< Automatic Flushing Disable */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_SHIFT 2 /**< Shift value for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_MASK 0x4UL /**< Bit mask for ICACHE_AUTOFLUSHDIS */
+#define _ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CTRL */
+#define ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT (_ICACHE_CTRL_AUTOFLUSHDIS_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CTRL */
+
+/* Bit fields for ICACHE PCHITS */
+#define _ICACHE_PCHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_SHIFT 0 /**< Shift value for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCHITS */
+#define _ICACHE_PCHITS_PCHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCHITS */
+#define ICACHE_PCHITS_PCHITS_DEFAULT (_ICACHE_PCHITS_PCHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCHITS */
+
+/* Bit fields for ICACHE PCMISSES */
+#define _ICACHE_PCMISSES_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_SHIFT 0 /**< Shift value for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCMISSES */
+#define _ICACHE_PCMISSES_PCMISSES_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCMISSES */
+#define ICACHE_PCMISSES_PCMISSES_DEFAULT (_ICACHE_PCMISSES_PCMISSES_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCMISSES */
+
+/* Bit fields for ICACHE PCAHITS */
+#define _ICACHE_PCAHITS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_MASK 0xFFFFFFFFUL /**< Mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_SHIFT 0 /**< Shift value for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_MASK 0xFFFFFFFFUL /**< Bit mask for ICACHE_PCAHITS */
+#define _ICACHE_PCAHITS_PCAHITS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_PCAHITS */
+#define ICACHE_PCAHITS_PCAHITS_DEFAULT (_ICACHE_PCAHITS_PCAHITS_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_PCAHITS */
+
+/* Bit fields for ICACHE STATUS */
+#define _ICACHE_STATUS_RESETVALUE 0x00000000UL /**< Default value for ICACHE_STATUS */
+#define _ICACHE_STATUS_MASK 0x00000001UL /**< Mask for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING (0x1UL << 0) /**< PC Running */
+#define _ICACHE_STATUS_PCRUNNING_SHIFT 0 /**< Shift value for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_MASK 0x1UL /**< Bit mask for ICACHE_PCRUNNING */
+#define _ICACHE_STATUS_PCRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_STATUS */
+#define ICACHE_STATUS_PCRUNNING_DEFAULT (_ICACHE_STATUS_PCRUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_STATUS */
+
+/* Bit fields for ICACHE CMD */
+#define _ICACHE_CMD_RESETVALUE 0x00000000UL /**< Default value for ICACHE_CMD */
+#define _ICACHE_CMD_MASK 0x00000007UL /**< Mask for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH (0x1UL << 0) /**< Flush */
+#define _ICACHE_CMD_FLUSH_SHIFT 0 /**< Shift value for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_MASK 0x1UL /**< Bit mask for ICACHE_FLUSH */
+#define _ICACHE_CMD_FLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_FLUSH_DEFAULT (_ICACHE_CMD_FLUSH_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC (0x1UL << 1) /**< Start Performance Counters */
+#define _ICACHE_CMD_STARTPC_SHIFT 1 /**< Shift value for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_MASK 0x2UL /**< Bit mask for ICACHE_STARTPC */
+#define _ICACHE_CMD_STARTPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STARTPC_DEFAULT (_ICACHE_CMD_STARTPC_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC (0x1UL << 2) /**< Stop Performance Counters */
+#define _ICACHE_CMD_STOPPC_SHIFT 2 /**< Shift value for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_MASK 0x4UL /**< Bit mask for ICACHE_STOPPC */
+#define _ICACHE_CMD_STOPPC_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_CMD */
+#define ICACHE_CMD_STOPPC_DEFAULT (_ICACHE_CMD_STOPPC_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_CMD */
+
+/* Bit fields for ICACHE LPMODE */
+#define _ICACHE_LPMODE_RESETVALUE 0x00000023UL /**< Default value for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_MASK 0x000000F3UL /**< Mask for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_SHIFT 0 /**< Shift value for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_MASK 0x3UL /**< Bit mask for ICACHE_LPLEVEL */
+#define _ICACHE_LPMODE_LPLEVEL_DEFAULT 0x00000003UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_BASIC 0x00000000UL /**< Mode BASIC for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_ADVANCED 0x00000001UL /**< Mode ADVANCED for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_LPLEVEL_MINACTIVITY 0x00000003UL /**< Mode MINACTIVITY for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_DEFAULT (_ICACHE_LPMODE_LPLEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_BASIC (_ICACHE_LPMODE_LPLEVEL_BASIC << 0) /**< Shifted mode BASIC for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_ADVANCED (_ICACHE_LPMODE_LPLEVEL_ADVANCED << 0) /**< Shifted mode ADVANCED for ICACHE_LPMODE */
+#define ICACHE_LPMODE_LPLEVEL_MINACTIVITY (_ICACHE_LPMODE_LPLEVEL_MINACTIVITY << 0) /**< Shifted mode MINACTIVITY for ICACHE_LPMODE */
+#define _ICACHE_LPMODE_NESTFACTOR_SHIFT 4 /**< Shift value for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_MASK 0xF0UL /**< Bit mask for ICACHE_NESTFACTOR */
+#define _ICACHE_LPMODE_NESTFACTOR_DEFAULT 0x00000002UL /**< Mode DEFAULT for ICACHE_LPMODE */
+#define ICACHE_LPMODE_NESTFACTOR_DEFAULT (_ICACHE_LPMODE_NESTFACTOR_DEFAULT << 4) /**< Shifted mode DEFAULT for ICACHE_LPMODE */
+
+/* Bit fields for ICACHE IF */
+#define _ICACHE_IF_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IF */
+#define _ICACHE_IF_MASK 0x00000107UL /**< Mask for ICACHE_IF */
+#define ICACHE_IF_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IF_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_HITOF_DEFAULT (_ICACHE_IF_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Flag */
+#define _ICACHE_IF_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IF_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_MISSOF_DEFAULT (_ICACHE_IF_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Flag */
+#define _ICACHE_IF_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IF_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_AHITOF_DEFAULT (_ICACHE_IF_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Flag */
+#define _ICACHE_IF_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IF_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IF */
+#define ICACHE_IF_RAMERROR_DEFAULT (_ICACHE_IF_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IF */
+
+/* Bit fields for ICACHE IEN */
+#define _ICACHE_IEN_RESETVALUE 0x00000000UL /**< Default value for ICACHE_IEN */
+#define _ICACHE_IEN_MASK 0x00000107UL /**< Mask for ICACHE_IEN */
+#define ICACHE_IEN_HITOF (0x1UL << 0) /**< Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_HITOF_SHIFT 0 /**< Shift value for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_MASK 0x1UL /**< Bit mask for ICACHE_HITOF */
+#define _ICACHE_IEN_HITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_HITOF_DEFAULT (_ICACHE_IEN_HITOF_DEFAULT << 0) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF (0x1UL << 1) /**< Miss Overflow Interrupt Enable */
+#define _ICACHE_IEN_MISSOF_SHIFT 1 /**< Shift value for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_MASK 0x2UL /**< Bit mask for ICACHE_MISSOF */
+#define _ICACHE_IEN_MISSOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_MISSOF_DEFAULT (_ICACHE_IEN_MISSOF_DEFAULT << 1) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF (0x1UL << 2) /**< Advanced Hit Overflow Interrupt Enable */
+#define _ICACHE_IEN_AHITOF_SHIFT 2 /**< Shift value for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_MASK 0x4UL /**< Bit mask for ICACHE_AHITOF */
+#define _ICACHE_IEN_AHITOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_AHITOF_DEFAULT (_ICACHE_IEN_AHITOF_DEFAULT << 2) /**< Shifted mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR (0x1UL << 8) /**< RAM error Interrupt Enable */
+#define _ICACHE_IEN_RAMERROR_SHIFT 8 /**< Shift value for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_MASK 0x100UL /**< Bit mask for ICACHE_RAMERROR */
+#define _ICACHE_IEN_RAMERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for ICACHE_IEN */
+#define ICACHE_IEN_RAMERROR_DEFAULT (_ICACHE_IEN_RAMERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for ICACHE_IEN */
+
+/** @} End of group EFR32ZG23_ICACHE_BitFields */
+/** @} End of group EFR32ZG23_ICACHE */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_ICACHE_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_keyscan.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_keyscan.h
new file mode 100644
index 000000000..d598f7e5f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_keyscan.h
@@ -0,0 +1,386 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 KEYSCAN register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_KEYSCAN_H
+#define EFR32ZG23_KEYSCAN_H
+#define KEYSCAN_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_KEYSCAN KEYSCAN
+ * @{
+ * @brief EFR32ZG23 KEYSCAN Register Declaration.
+ *****************************************************************************/
+
+/** KEYSCAN Register Declaration. */
+typedef struct keyscan_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t SWRST; /**< Software Reset */
+ __IOM uint32_t CFG; /**< Config */
+ __IOM uint32_t CMD; /**< Command */
+ __IOM uint32_t DELAY; /**< Delay */
+ __IM uint32_t STATUS; /**< Status */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enables */
+ uint32_t RESERVED0[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t SWRST_SET; /**< Software Reset */
+ __IOM uint32_t CFG_SET; /**< Config */
+ __IOM uint32_t CMD_SET; /**< Command */
+ __IOM uint32_t DELAY_SET; /**< Delay */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enables */
+ uint32_t RESERVED1[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset */
+ __IOM uint32_t CFG_CLR; /**< Config */
+ __IOM uint32_t CMD_CLR; /**< Command */
+ __IOM uint32_t DELAY_CLR; /**< Delay */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enables */
+ uint32_t RESERVED2[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset */
+ __IOM uint32_t CFG_TGL; /**< Config */
+ __IOM uint32_t CMD_TGL; /**< Command */
+ __IOM uint32_t DELAY_TGL; /**< Delay */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enables */
+} KEYSCAN_TypeDef;
+/** @} End of group EFR32ZG23_KEYSCAN */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_KEYSCAN
+ * @{
+ * @defgroup EFR32ZG23_KEYSCAN_BitFields KEYSCAN Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for KEYSCAN IPVERSION */
+#define _KEYSCAN_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for KEYSCAN_IPVERSION */
+#define _KEYSCAN_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for KEYSCAN_IPVERSION */
+#define _KEYSCAN_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for KEYSCAN_IPVERSION */
+#define _KEYSCAN_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for KEYSCAN_IPVERSION */
+#define _KEYSCAN_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for KEYSCAN_IPVERSION */
+#define KEYSCAN_IPVERSION_IPVERSION_DEFAULT (_KEYSCAN_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_IPVERSION */
+
+/* Bit fields for KEYSCAN EN */
+#define _KEYSCAN_EN_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_EN */
+#define _KEYSCAN_EN_MASK 0x00000003UL /**< Mask for KEYSCAN_EN */
+#define KEYSCAN_EN_EN (0x1UL << 0) /**< Enable */
+#define _KEYSCAN_EN_EN_SHIFT 0 /**< Shift value for KEYSCAN_EN */
+#define _KEYSCAN_EN_EN_MASK 0x1UL /**< Bit mask for KEYSCAN_EN */
+#define _KEYSCAN_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_EN */
+#define _KEYSCAN_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for KEYSCAN_EN */
+#define _KEYSCAN_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for KEYSCAN_EN */
+#define KEYSCAN_EN_EN_DEFAULT (_KEYSCAN_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_EN */
+#define KEYSCAN_EN_EN_DISABLE (_KEYSCAN_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for KEYSCAN_EN */
+#define KEYSCAN_EN_EN_ENABLE (_KEYSCAN_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for KEYSCAN_EN */
+#define KEYSCAN_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _KEYSCAN_EN_DISABLING_SHIFT 1 /**< Shift value for KEYSCAN_DISABLING */
+#define _KEYSCAN_EN_DISABLING_MASK 0x2UL /**< Bit mask for KEYSCAN_DISABLING */
+#define _KEYSCAN_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_EN */
+#define KEYSCAN_EN_DISABLING_DEFAULT (_KEYSCAN_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for KEYSCAN_EN */
+
+/* Bit fields for KEYSCAN SWRST */
+#define _KEYSCAN_SWRST_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_SWRST */
+#define _KEYSCAN_SWRST_MASK 0x00000003UL /**< Mask for KEYSCAN_SWRST */
+#define KEYSCAN_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _KEYSCAN_SWRST_SWRST_SHIFT 0 /**< Shift value for KEYSCAN_SWRST */
+#define _KEYSCAN_SWRST_SWRST_MASK 0x1UL /**< Bit mask for KEYSCAN_SWRST */
+#define _KEYSCAN_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_SWRST */
+#define KEYSCAN_SWRST_SWRST_DEFAULT (_KEYSCAN_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_SWRST */
+#define KEYSCAN_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _KEYSCAN_SWRST_RESETTING_SHIFT 1 /**< Shift value for KEYSCAN_RESETTING */
+#define _KEYSCAN_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for KEYSCAN_RESETTING */
+#define _KEYSCAN_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_SWRST */
+#define KEYSCAN_SWRST_RESETTING_DEFAULT (_KEYSCAN_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for KEYSCAN_SWRST */
+
+/* Bit fields for KEYSCAN CFG */
+#define _KEYSCAN_CFG_RESETVALUE 0x2501387FUL /**< Default value for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_MASK 0x7753FFFFUL /**< Mask for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_CLKDIV_SHIFT 0 /**< Shift value for KEYSCAN_CLKDIV */
+#define _KEYSCAN_CFG_CLKDIV_MASK 0x3FFFFUL /**< Bit mask for KEYSCAN_CLKDIV */
+#define _KEYSCAN_CFG_CLKDIV_DEFAULT 0x0001387FUL /**< Mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_CLKDIV_DEFAULT (_KEYSCAN_CFG_CLKDIV_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_SINGLEPRESS (0x1UL << 20) /**< Single Press */
+#define _KEYSCAN_CFG_SINGLEPRESS_SHIFT 20 /**< Shift value for KEYSCAN_SINGLEPRESS */
+#define _KEYSCAN_CFG_SINGLEPRESS_MASK 0x100000UL /**< Bit mask for KEYSCAN_SINGLEPRESS */
+#define _KEYSCAN_CFG_SINGLEPRESS_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_SINGLEPRESS_MULTIPRESS 0x00000000UL /**< Mode MULTIPRESS for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_SINGLEPRESS_SINGLEPRESS 0x00000001UL /**< Mode SINGLEPRESS for KEYSCAN_CFG */
+#define KEYSCAN_CFG_SINGLEPRESS_DEFAULT (_KEYSCAN_CFG_SINGLEPRESS_DEFAULT << 20) /**< Shifted mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_SINGLEPRESS_MULTIPRESS (_KEYSCAN_CFG_SINGLEPRESS_MULTIPRESS << 20) /**< Shifted mode MULTIPRESS for KEYSCAN_CFG */
+#define KEYSCAN_CFG_SINGLEPRESS_SINGLEPRESS (_KEYSCAN_CFG_SINGLEPRESS_SINGLEPRESS << 20) /**< Shifted mode SINGLEPRESS for KEYSCAN_CFG */
+#define KEYSCAN_CFG_AUTOSTART (0x1UL << 22) /**< Automatically Start */
+#define _KEYSCAN_CFG_AUTOSTART_SHIFT 22 /**< Shift value for KEYSCAN_AUTOSTART */
+#define _KEYSCAN_CFG_AUTOSTART_MASK 0x400000UL /**< Bit mask for KEYSCAN_AUTOSTART */
+#define _KEYSCAN_CFG_AUTOSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_AUTOSTART_AUTOSTARTDIS 0x00000000UL /**< Mode AUTOSTARTDIS for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_AUTOSTART_AUTOSTARTEN 0x00000001UL /**< Mode AUTOSTARTEN for KEYSCAN_CFG */
+#define KEYSCAN_CFG_AUTOSTART_DEFAULT (_KEYSCAN_CFG_AUTOSTART_DEFAULT << 22) /**< Shifted mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_AUTOSTART_AUTOSTARTDIS (_KEYSCAN_CFG_AUTOSTART_AUTOSTARTDIS << 22) /**< Shifted mode AUTOSTARTDIS for KEYSCAN_CFG */
+#define KEYSCAN_CFG_AUTOSTART_AUTOSTARTEN (_KEYSCAN_CFG_AUTOSTART_AUTOSTARTEN << 22) /**< Shifted mode AUTOSTARTEN for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_SHIFT 24 /**< Shift value for KEYSCAN_NUMROWS */
+#define _KEYSCAN_CFG_NUMROWS_MASK 0x7000000UL /**< Bit mask for KEYSCAN_NUMROWS */
+#define _KEYSCAN_CFG_NUMROWS_DEFAULT 0x00000005UL /**< Mode DEFAULT for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_RSV1 0x00000000UL /**< Mode RSV1 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_RSV2 0x00000001UL /**< Mode RSV2 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_ROW3 0x00000002UL /**< Mode ROW3 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_ROW4 0x00000003UL /**< Mode ROW4 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_ROW5 0x00000004UL /**< Mode ROW5 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMROWS_ROW6 0x00000005UL /**< Mode ROW6 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_DEFAULT (_KEYSCAN_CFG_NUMROWS_DEFAULT << 24) /**< Shifted mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_RSV1 (_KEYSCAN_CFG_NUMROWS_RSV1 << 24) /**< Shifted mode RSV1 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_RSV2 (_KEYSCAN_CFG_NUMROWS_RSV2 << 24) /**< Shifted mode RSV2 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_ROW3 (_KEYSCAN_CFG_NUMROWS_ROW3 << 24) /**< Shifted mode ROW3 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_ROW4 (_KEYSCAN_CFG_NUMROWS_ROW4 << 24) /**< Shifted mode ROW4 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_ROW5 (_KEYSCAN_CFG_NUMROWS_ROW5 << 24) /**< Shifted mode ROW5 for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMROWS_ROW6 (_KEYSCAN_CFG_NUMROWS_ROW6 << 24) /**< Shifted mode ROW6 for KEYSCAN_CFG */
+#define _KEYSCAN_CFG_NUMCOLS_SHIFT 28 /**< Shift value for KEYSCAN_NUMCOLS */
+#define _KEYSCAN_CFG_NUMCOLS_MASK 0x70000000UL /**< Bit mask for KEYSCAN_NUMCOLS */
+#define _KEYSCAN_CFG_NUMCOLS_DEFAULT 0x00000002UL /**< Mode DEFAULT for KEYSCAN_CFG */
+#define KEYSCAN_CFG_NUMCOLS_DEFAULT (_KEYSCAN_CFG_NUMCOLS_DEFAULT << 28) /**< Shifted mode DEFAULT for KEYSCAN_CFG */
+
+/* Bit fields for KEYSCAN CMD */
+#define _KEYSCAN_CMD_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_CMD */
+#define _KEYSCAN_CMD_MASK 0x00000003UL /**< Mask for KEYSCAN_CMD */
+#define KEYSCAN_CMD_KEYSCANSTART (0x1UL << 0) /**< Keyscan Start */
+#define _KEYSCAN_CMD_KEYSCANSTART_SHIFT 0 /**< Shift value for KEYSCAN_KEYSCANSTART */
+#define _KEYSCAN_CMD_KEYSCANSTART_MASK 0x1UL /**< Bit mask for KEYSCAN_KEYSCANSTART */
+#define _KEYSCAN_CMD_KEYSCANSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_CMD */
+#define KEYSCAN_CMD_KEYSCANSTART_DEFAULT (_KEYSCAN_CMD_KEYSCANSTART_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_CMD */
+#define KEYSCAN_CMD_KEYSCANSTOP (0x1UL << 1) /**< Keyscan Stop */
+#define _KEYSCAN_CMD_KEYSCANSTOP_SHIFT 1 /**< Shift value for KEYSCAN_KEYSCANSTOP */
+#define _KEYSCAN_CMD_KEYSCANSTOP_MASK 0x2UL /**< Bit mask for KEYSCAN_KEYSCANSTOP */
+#define _KEYSCAN_CMD_KEYSCANSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_CMD */
+#define KEYSCAN_CMD_KEYSCANSTOP_DEFAULT (_KEYSCAN_CMD_KEYSCANSTOP_DEFAULT << 1) /**< Shifted mode DEFAULT for KEYSCAN_CMD */
+
+/* Bit fields for KEYSCAN DELAY */
+#define _KEYSCAN_DELAY_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_MASK 0x0F0F0F00UL /**< Mask for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SHIFT 8 /**< Shift value for KEYSCAN_SCANDLY */
+#define _KEYSCAN_DELAY_SCANDLY_MASK 0xF00UL /**< Bit mask for KEYSCAN_SCANDLY */
+#define _KEYSCAN_DELAY_SCANDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY2 0x00000000UL /**< Mode SCANDLY2 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY4 0x00000001UL /**< Mode SCANDLY4 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY6 0x00000002UL /**< Mode SCANDLY6 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY8 0x00000003UL /**< Mode SCANDLY8 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY10 0x00000004UL /**< Mode SCANDLY10 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY12 0x00000005UL /**< Mode SCANDLY12 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY14 0x00000006UL /**< Mode SCANDLY14 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY16 0x00000007UL /**< Mode SCANDLY16 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY18 0x00000008UL /**< Mode SCANDLY18 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY20 0x00000009UL /**< Mode SCANDLY20 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY22 0x0000000AUL /**< Mode SCANDLY22 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY24 0x0000000BUL /**< Mode SCANDLY24 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY26 0x0000000CUL /**< Mode SCANDLY26 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY28 0x0000000DUL /**< Mode SCANDLY28 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY30 0x0000000EUL /**< Mode SCANDLY30 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_SCANDLY_SCANDLY32 0x0000000FUL /**< Mode SCANDLY32 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_DEFAULT (_KEYSCAN_DELAY_SCANDLY_DEFAULT << 8) /**< Shifted mode DEFAULT for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY2 (_KEYSCAN_DELAY_SCANDLY_SCANDLY2 << 8) /**< Shifted mode SCANDLY2 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY4 (_KEYSCAN_DELAY_SCANDLY_SCANDLY4 << 8) /**< Shifted mode SCANDLY4 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY6 (_KEYSCAN_DELAY_SCANDLY_SCANDLY6 << 8) /**< Shifted mode SCANDLY6 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY8 (_KEYSCAN_DELAY_SCANDLY_SCANDLY8 << 8) /**< Shifted mode SCANDLY8 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY10 (_KEYSCAN_DELAY_SCANDLY_SCANDLY10 << 8) /**< Shifted mode SCANDLY10 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY12 (_KEYSCAN_DELAY_SCANDLY_SCANDLY12 << 8) /**< Shifted mode SCANDLY12 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY14 (_KEYSCAN_DELAY_SCANDLY_SCANDLY14 << 8) /**< Shifted mode SCANDLY14 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY16 (_KEYSCAN_DELAY_SCANDLY_SCANDLY16 << 8) /**< Shifted mode SCANDLY16 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY18 (_KEYSCAN_DELAY_SCANDLY_SCANDLY18 << 8) /**< Shifted mode SCANDLY18 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY20 (_KEYSCAN_DELAY_SCANDLY_SCANDLY20 << 8) /**< Shifted mode SCANDLY20 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY22 (_KEYSCAN_DELAY_SCANDLY_SCANDLY22 << 8) /**< Shifted mode SCANDLY22 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY24 (_KEYSCAN_DELAY_SCANDLY_SCANDLY24 << 8) /**< Shifted mode SCANDLY24 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY26 (_KEYSCAN_DELAY_SCANDLY_SCANDLY26 << 8) /**< Shifted mode SCANDLY26 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY28 (_KEYSCAN_DELAY_SCANDLY_SCANDLY28 << 8) /**< Shifted mode SCANDLY28 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY30 (_KEYSCAN_DELAY_SCANDLY_SCANDLY30 << 8) /**< Shifted mode SCANDLY30 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_SCANDLY_SCANDLY32 (_KEYSCAN_DELAY_SCANDLY_SCANDLY32 << 8) /**< Shifted mode SCANDLY32 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_SHIFT 16 /**< Shift value for KEYSCAN_DEBDLY */
+#define _KEYSCAN_DELAY_DEBDLY_MASK 0xF0000UL /**< Bit mask for KEYSCAN_DEBDLY */
+#define _KEYSCAN_DELAY_DEBDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY2 0x00000000UL /**< Mode DEBDLY2 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY4 0x00000001UL /**< Mode DEBDLY4 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY6 0x00000002UL /**< Mode DEBDLY6 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY8 0x00000003UL /**< Mode DEBDLY8 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY10 0x00000004UL /**< Mode DEBDLY10 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY12 0x00000005UL /**< Mode DEBDLY12 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY14 0x00000006UL /**< Mode DEBDLY14 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY16 0x00000007UL /**< Mode DEBDLY16 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY18 0x00000008UL /**< Mode DEBDLY18 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY20 0x00000009UL /**< Mode DEBDLY20 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY22 0x0000000AUL /**< Mode DEBDLY22 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY24 0x0000000BUL /**< Mode DEBDLY24 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY26 0x0000000CUL /**< Mode DEBDLY26 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY28 0x0000000DUL /**< Mode DEBDLY28 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY30 0x0000000EUL /**< Mode DEBDLY30 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_DEBDLY_DEBDLY32 0x0000000FUL /**< Mode DEBDLY32 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEFAULT (_KEYSCAN_DELAY_DEBDLY_DEFAULT << 16) /**< Shifted mode DEFAULT for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY2 (_KEYSCAN_DELAY_DEBDLY_DEBDLY2 << 16) /**< Shifted mode DEBDLY2 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY4 (_KEYSCAN_DELAY_DEBDLY_DEBDLY4 << 16) /**< Shifted mode DEBDLY4 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY6 (_KEYSCAN_DELAY_DEBDLY_DEBDLY6 << 16) /**< Shifted mode DEBDLY6 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY8 (_KEYSCAN_DELAY_DEBDLY_DEBDLY8 << 16) /**< Shifted mode DEBDLY8 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY10 (_KEYSCAN_DELAY_DEBDLY_DEBDLY10 << 16) /**< Shifted mode DEBDLY10 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY12 (_KEYSCAN_DELAY_DEBDLY_DEBDLY12 << 16) /**< Shifted mode DEBDLY12 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY14 (_KEYSCAN_DELAY_DEBDLY_DEBDLY14 << 16) /**< Shifted mode DEBDLY14 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY16 (_KEYSCAN_DELAY_DEBDLY_DEBDLY16 << 16) /**< Shifted mode DEBDLY16 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY18 (_KEYSCAN_DELAY_DEBDLY_DEBDLY18 << 16) /**< Shifted mode DEBDLY18 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY20 (_KEYSCAN_DELAY_DEBDLY_DEBDLY20 << 16) /**< Shifted mode DEBDLY20 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY22 (_KEYSCAN_DELAY_DEBDLY_DEBDLY22 << 16) /**< Shifted mode DEBDLY22 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY24 (_KEYSCAN_DELAY_DEBDLY_DEBDLY24 << 16) /**< Shifted mode DEBDLY24 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY26 (_KEYSCAN_DELAY_DEBDLY_DEBDLY26 << 16) /**< Shifted mode DEBDLY26 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY28 (_KEYSCAN_DELAY_DEBDLY_DEBDLY28 << 16) /**< Shifted mode DEBDLY28 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY30 (_KEYSCAN_DELAY_DEBDLY_DEBDLY30 << 16) /**< Shifted mode DEBDLY30 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_DEBDLY_DEBDLY32 (_KEYSCAN_DELAY_DEBDLY_DEBDLY32 << 16) /**< Shifted mode DEBDLY32 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_SHIFT 24 /**< Shift value for KEYSCAN_STABDLY */
+#define _KEYSCAN_DELAY_STABDLY_MASK 0xF000000UL /**< Bit mask for KEYSCAN_STABDLY */
+#define _KEYSCAN_DELAY_STABDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY2 0x00000000UL /**< Mode STABDLY2 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY4 0x00000001UL /**< Mode STABDLY4 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY6 0x00000002UL /**< Mode STABDLY6 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY8 0x00000003UL /**< Mode STABDLY8 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY10 0x00000004UL /**< Mode STABDLY10 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY12 0x00000005UL /**< Mode STABDLY12 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY14 0x00000006UL /**< Mode STABDLY14 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY16 0x00000007UL /**< Mode STABDLY16 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY18 0x00000008UL /**< Mode STABDLY18 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY20 0x00000009UL /**< Mode STABDLY20 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY22 0x0000000AUL /**< Mode STABDLY22 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY24 0x0000000BUL /**< Mode STABDLY24 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY26 0x0000000CUL /**< Mode STABDLY26 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY28 0x0000000DUL /**< Mode STABDLY28 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY30 0x0000000EUL /**< Mode STABDLY30 for KEYSCAN_DELAY */
+#define _KEYSCAN_DELAY_STABDLY_STABDLY32 0x0000000FUL /**< Mode STABDLY32 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_DEFAULT (_KEYSCAN_DELAY_STABDLY_DEFAULT << 24) /**< Shifted mode DEFAULT for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY2 (_KEYSCAN_DELAY_STABDLY_STABDLY2 << 24) /**< Shifted mode STABDLY2 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY4 (_KEYSCAN_DELAY_STABDLY_STABDLY4 << 24) /**< Shifted mode STABDLY4 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY6 (_KEYSCAN_DELAY_STABDLY_STABDLY6 << 24) /**< Shifted mode STABDLY6 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY8 (_KEYSCAN_DELAY_STABDLY_STABDLY8 << 24) /**< Shifted mode STABDLY8 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY10 (_KEYSCAN_DELAY_STABDLY_STABDLY10 << 24) /**< Shifted mode STABDLY10 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY12 (_KEYSCAN_DELAY_STABDLY_STABDLY12 << 24) /**< Shifted mode STABDLY12 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY14 (_KEYSCAN_DELAY_STABDLY_STABDLY14 << 24) /**< Shifted mode STABDLY14 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY16 (_KEYSCAN_DELAY_STABDLY_STABDLY16 << 24) /**< Shifted mode STABDLY16 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY18 (_KEYSCAN_DELAY_STABDLY_STABDLY18 << 24) /**< Shifted mode STABDLY18 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY20 (_KEYSCAN_DELAY_STABDLY_STABDLY20 << 24) /**< Shifted mode STABDLY20 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY22 (_KEYSCAN_DELAY_STABDLY_STABDLY22 << 24) /**< Shifted mode STABDLY22 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY24 (_KEYSCAN_DELAY_STABDLY_STABDLY24 << 24) /**< Shifted mode STABDLY24 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY26 (_KEYSCAN_DELAY_STABDLY_STABDLY26 << 24) /**< Shifted mode STABDLY26 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY28 (_KEYSCAN_DELAY_STABDLY_STABDLY28 << 24) /**< Shifted mode STABDLY28 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY30 (_KEYSCAN_DELAY_STABDLY_STABDLY30 << 24) /**< Shifted mode STABDLY30 for KEYSCAN_DELAY */
+#define KEYSCAN_DELAY_STABDLY_STABDLY32 (_KEYSCAN_DELAY_STABDLY_STABDLY32 << 24) /**< Shifted mode STABDLY32 for KEYSCAN_DELAY */
+
+/* Bit fields for KEYSCAN STATUS */
+#define _KEYSCAN_STATUS_RESETVALUE 0x40000000UL /**< Default value for KEYSCAN_STATUS */
+#define _KEYSCAN_STATUS_MASK 0xC701003FUL /**< Mask for KEYSCAN_STATUS */
+#define _KEYSCAN_STATUS_ROW_SHIFT 0 /**< Shift value for KEYSCAN_ROW */
+#define _KEYSCAN_STATUS_ROW_MASK 0x3FUL /**< Bit mask for KEYSCAN_ROW */
+#define _KEYSCAN_STATUS_ROW_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_ROW_DEFAULT (_KEYSCAN_STATUS_ROW_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_RUNNING (0x1UL << 16) /**< Running */
+#define _KEYSCAN_STATUS_RUNNING_SHIFT 16 /**< Shift value for KEYSCAN_RUNNING */
+#define _KEYSCAN_STATUS_RUNNING_MASK 0x10000UL /**< Bit mask for KEYSCAN_RUNNING */
+#define _KEYSCAN_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_RUNNING_DEFAULT (_KEYSCAN_STATUS_RUNNING_DEFAULT << 16) /**< Shifted mode DEFAULT for KEYSCAN_STATUS */
+#define _KEYSCAN_STATUS_COL_SHIFT 24 /**< Shift value for KEYSCAN_COL */
+#define _KEYSCAN_STATUS_COL_MASK 0x7000000UL /**< Bit mask for KEYSCAN_COL */
+#define _KEYSCAN_STATUS_COL_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_COL_DEFAULT (_KEYSCAN_STATUS_COL_DEFAULT << 24) /**< Shifted mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_NOKEY (0x1UL << 30) /**< No Key pressed status */
+#define _KEYSCAN_STATUS_NOKEY_SHIFT 30 /**< Shift value for KEYSCAN_NOKEY */
+#define _KEYSCAN_STATUS_NOKEY_MASK 0x40000000UL /**< Bit mask for KEYSCAN_NOKEY */
+#define _KEYSCAN_STATUS_NOKEY_DEFAULT 0x00000001UL /**< Mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_NOKEY_DEFAULT (_KEYSCAN_STATUS_NOKEY_DEFAULT << 30) /**< Shifted mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_SYNCBUSY (0x1UL << 31) /**< Sync Busy */
+#define _KEYSCAN_STATUS_SYNCBUSY_SHIFT 31 /**< Shift value for KEYSCAN_SYNCBUSY */
+#define _KEYSCAN_STATUS_SYNCBUSY_MASK 0x80000000UL /**< Bit mask for KEYSCAN_SYNCBUSY */
+#define _KEYSCAN_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_STATUS */
+#define KEYSCAN_STATUS_SYNCBUSY_DEFAULT (_KEYSCAN_STATUS_SYNCBUSY_DEFAULT << 31) /**< Shifted mode DEFAULT for KEYSCAN_STATUS */
+
+/* Bit fields for KEYSCAN IF */
+#define _KEYSCAN_IF_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_IF */
+#define _KEYSCAN_IF_MASK 0x0000000FUL /**< Mask for KEYSCAN_IF */
+#define KEYSCAN_IF_NOKEY (0x1UL << 0) /**< No key was pressed */
+#define _KEYSCAN_IF_NOKEY_SHIFT 0 /**< Shift value for KEYSCAN_NOKEY */
+#define _KEYSCAN_IF_NOKEY_MASK 0x1UL /**< Bit mask for KEYSCAN_NOKEY */
+#define _KEYSCAN_IF_NOKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_NOKEY_DEFAULT (_KEYSCAN_IF_NOKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_KEY (0x1UL << 1) /**< A key was pressed */
+#define _KEYSCAN_IF_KEY_SHIFT 1 /**< Shift value for KEYSCAN_KEY */
+#define _KEYSCAN_IF_KEY_MASK 0x2UL /**< Bit mask for KEYSCAN_KEY */
+#define _KEYSCAN_IF_KEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_KEY_DEFAULT (_KEYSCAN_IF_KEY_DEFAULT << 1) /**< Shifted mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_SCANNED (0x1UL << 2) /**< Completed scan */
+#define _KEYSCAN_IF_SCANNED_SHIFT 2 /**< Shift value for KEYSCAN_SCANNED */
+#define _KEYSCAN_IF_SCANNED_MASK 0x4UL /**< Bit mask for KEYSCAN_SCANNED */
+#define _KEYSCAN_IF_SCANNED_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_SCANNED_DEFAULT (_KEYSCAN_IF_SCANNED_DEFAULT << 2) /**< Shifted mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_WAKEUP (0x1UL << 3) /**< Wake up */
+#define _KEYSCAN_IF_WAKEUP_SHIFT 3 /**< Shift value for KEYSCAN_WAKEUP */
+#define _KEYSCAN_IF_WAKEUP_MASK 0x8UL /**< Bit mask for KEYSCAN_WAKEUP */
+#define _KEYSCAN_IF_WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IF */
+#define KEYSCAN_IF_WAKEUP_DEFAULT (_KEYSCAN_IF_WAKEUP_DEFAULT << 3) /**< Shifted mode DEFAULT for KEYSCAN_IF */
+
+/* Bit fields for KEYSCAN IEN */
+#define _KEYSCAN_IEN_RESETVALUE 0x00000000UL /**< Default value for KEYSCAN_IEN */
+#define _KEYSCAN_IEN_MASK 0x0000000FUL /**< Mask for KEYSCAN_IEN */
+#define KEYSCAN_IEN_NOKEY (0x1UL << 0) /**< No Key was pressed */
+#define _KEYSCAN_IEN_NOKEY_SHIFT 0 /**< Shift value for KEYSCAN_NOKEY */
+#define _KEYSCAN_IEN_NOKEY_MASK 0x1UL /**< Bit mask for KEYSCAN_NOKEY */
+#define _KEYSCAN_IEN_NOKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_NOKEY_DEFAULT (_KEYSCAN_IEN_NOKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_KEY (0x1UL << 1) /**< A Key was pressed */
+#define _KEYSCAN_IEN_KEY_SHIFT 1 /**< Shift value for KEYSCAN_KEY */
+#define _KEYSCAN_IEN_KEY_MASK 0x2UL /**< Bit mask for KEYSCAN_KEY */
+#define _KEYSCAN_IEN_KEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_KEY_DEFAULT (_KEYSCAN_IEN_KEY_DEFAULT << 1) /**< Shifted mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_SCANNED (0x1UL << 2) /**< Completed Scanning */
+#define _KEYSCAN_IEN_SCANNED_SHIFT 2 /**< Shift value for KEYSCAN_SCANNED */
+#define _KEYSCAN_IEN_SCANNED_MASK 0x4UL /**< Bit mask for KEYSCAN_SCANNED */
+#define _KEYSCAN_IEN_SCANNED_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_SCANNED_DEFAULT (_KEYSCAN_IEN_SCANNED_DEFAULT << 2) /**< Shifted mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_WAKEUP (0x1UL << 3) /**< Wake up */
+#define _KEYSCAN_IEN_WAKEUP_SHIFT 3 /**< Shift value for KEYSCAN_WAKEUP */
+#define _KEYSCAN_IEN_WAKEUP_MASK 0x8UL /**< Bit mask for KEYSCAN_WAKEUP */
+#define _KEYSCAN_IEN_WAKEUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for KEYSCAN_IEN */
+#define KEYSCAN_IEN_WAKEUP_DEFAULT (_KEYSCAN_IEN_WAKEUP_DEFAULT << 3) /**< Shifted mode DEFAULT for KEYSCAN_IEN */
+
+/** @} End of group EFR32ZG23_KEYSCAN_BitFields */
+/** @} End of group EFR32ZG23_KEYSCAN */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_KEYSCAN_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcd.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcd.h
new file mode 100644
index 000000000..f786d9698
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcd.h
@@ -0,0 +1,632 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LCD register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LCD_H
+#define EFR32ZG23_LCD_H
+#define LCD_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LCD LCD
+ * @{
+ * @brief EFR32ZG23 LCD Register Declaration.
+ *****************************************************************************/
+
+/** LCD Register Declaration. */
+typedef struct lcd_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t SWRST; /**< Software Reset */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command register */
+ __IOM uint32_t DISPCTRL; /**< Display Control Register */
+ __IOM uint32_t BACFG; /**< Blink and Animation Config Register */
+ __IOM uint32_t BACTRL; /**< Blink and Animation Control Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t AREGA; /**< Animation Register A */
+ __IOM uint32_t AREGB; /**< Animation Register B */
+ __IOM uint32_t IF; /**< Interrupt Enable Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ __IOM uint32_t BIASCTRL; /**< Analog BIAS Control */
+ __IOM uint32_t DISPCTRLX; /**< Display Control Extended */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD0; /**< Segment Data Register 0 */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD1; /**< Segment Data Register 1 */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD2; /**< Segment Data Register 2 */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD3; /**< Segment Data Register 3 */
+ uint32_t RESERVED4[25U]; /**< Reserved for future use */
+ __IOM uint32_t UPDATECTRL; /**< Update Control */
+ uint32_t RESERVED5[11U]; /**< Reserved for future use */
+ __IOM uint32_t FRAMERATE; /**< Frame Rate */
+ uint32_t RESERVED6[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t SWRST_SET; /**< Software Reset */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command register */
+ __IOM uint32_t DISPCTRL_SET; /**< Display Control Register */
+ __IOM uint32_t BACFG_SET; /**< Blink and Animation Config Register */
+ __IOM uint32_t BACTRL_SET; /**< Blink and Animation Control Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t AREGA_SET; /**< Animation Register A */
+ __IOM uint32_t AREGB_SET; /**< Animation Register B */
+ __IOM uint32_t IF_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ __IOM uint32_t BIASCTRL_SET; /**< Analog BIAS Control */
+ __IOM uint32_t DISPCTRLX_SET; /**< Display Control Extended */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD0_SET; /**< Segment Data Register 0 */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD1_SET; /**< Segment Data Register 1 */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD2_SET; /**< Segment Data Register 2 */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD3_SET; /**< Segment Data Register 3 */
+ uint32_t RESERVED11[25U]; /**< Reserved for future use */
+ __IOM uint32_t UPDATECTRL_SET; /**< Update Control */
+ uint32_t RESERVED12[11U]; /**< Reserved for future use */
+ __IOM uint32_t FRAMERATE_SET; /**< Frame Rate */
+ uint32_t RESERVED13[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command register */
+ __IOM uint32_t DISPCTRL_CLR; /**< Display Control Register */
+ __IOM uint32_t BACFG_CLR; /**< Blink and Animation Config Register */
+ __IOM uint32_t BACTRL_CLR; /**< Blink and Animation Control Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t AREGA_CLR; /**< Animation Register A */
+ __IOM uint32_t AREGB_CLR; /**< Animation Register B */
+ __IOM uint32_t IF_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ __IOM uint32_t BIASCTRL_CLR; /**< Analog BIAS Control */
+ __IOM uint32_t DISPCTRLX_CLR; /**< Display Control Extended */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD0_CLR; /**< Segment Data Register 0 */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD1_CLR; /**< Segment Data Register 1 */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD2_CLR; /**< Segment Data Register 2 */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD3_CLR; /**< Segment Data Register 3 */
+ uint32_t RESERVED18[25U]; /**< Reserved for future use */
+ __IOM uint32_t UPDATECTRL_CLR; /**< Update Control */
+ uint32_t RESERVED19[11U]; /**< Reserved for future use */
+ __IOM uint32_t FRAMERATE_CLR; /**< Frame Rate */
+ uint32_t RESERVED20[963U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command register */
+ __IOM uint32_t DISPCTRL_TGL; /**< Display Control Register */
+ __IOM uint32_t BACFG_TGL; /**< Blink and Animation Config Register */
+ __IOM uint32_t BACTRL_TGL; /**< Blink and Animation Control Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t AREGA_TGL; /**< Animation Register A */
+ __IOM uint32_t AREGB_TGL; /**< Animation Register B */
+ __IOM uint32_t IF_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ __IOM uint32_t BIASCTRL_TGL; /**< Analog BIAS Control */
+ __IOM uint32_t DISPCTRLX_TGL; /**< Display Control Extended */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD0_TGL; /**< Segment Data Register 0 */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD1_TGL; /**< Segment Data Register 1 */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD2_TGL; /**< Segment Data Register 2 */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ __IOM uint32_t SEGD3_TGL; /**< Segment Data Register 3 */
+ uint32_t RESERVED25[25U]; /**< Reserved for future use */
+ __IOM uint32_t UPDATECTRL_TGL; /**< Update Control */
+ uint32_t RESERVED26[11U]; /**< Reserved for future use */
+ __IOM uint32_t FRAMERATE_TGL; /**< Frame Rate */
+} LCD_TypeDef;
+/** @} End of group EFR32ZG23_LCD */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LCD
+ * @{
+ * @defgroup EFR32ZG23_LCD_BitFields LCD Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LCD IPVERSION */
+#define _LCD_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for LCD_IPVERSION */
+#define _LCD_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LCD_IPVERSION */
+#define _LCD_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LCD_IPVERSION */
+#define _LCD_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LCD_IPVERSION */
+#define _LCD_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for LCD_IPVERSION */
+#define LCD_IPVERSION_IPVERSION_DEFAULT (_LCD_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_IPVERSION */
+
+/* Bit fields for LCD EN */
+#define _LCD_EN_RESETVALUE 0x00000000UL /**< Default value for LCD_EN */
+#define _LCD_EN_MASK 0x00000003UL /**< Mask for LCD_EN */
+#define LCD_EN_EN (0x1UL << 0) /**< Enable */
+#define _LCD_EN_EN_SHIFT 0 /**< Shift value for LCD_EN */
+#define _LCD_EN_EN_MASK 0x1UL /**< Bit mask for LCD_EN */
+#define _LCD_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_EN */
+#define _LCD_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for LCD_EN */
+#define _LCD_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for LCD_EN */
+#define LCD_EN_EN_DEFAULT (_LCD_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_EN */
+#define LCD_EN_EN_DISABLE (_LCD_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for LCD_EN */
+#define LCD_EN_EN_ENABLE (_LCD_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for LCD_EN */
+#define LCD_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _LCD_EN_DISABLING_SHIFT 1 /**< Shift value for LCD_DISABLING */
+#define _LCD_EN_DISABLING_MASK 0x2UL /**< Bit mask for LCD_DISABLING */
+#define _LCD_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_EN */
+#define LCD_EN_DISABLING_DEFAULT (_LCD_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_EN */
+
+/* Bit fields for LCD SWRST */
+#define _LCD_SWRST_RESETVALUE 0x00000000UL /**< Default value for LCD_SWRST */
+#define _LCD_SWRST_MASK 0x00000003UL /**< Mask for LCD_SWRST */
+#define LCD_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _LCD_SWRST_SWRST_SHIFT 0 /**< Shift value for LCD_SWRST */
+#define _LCD_SWRST_SWRST_MASK 0x1UL /**< Bit mask for LCD_SWRST */
+#define _LCD_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SWRST */
+#define LCD_SWRST_SWRST_DEFAULT (_LCD_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_SWRST */
+#define LCD_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _LCD_SWRST_RESETTING_SHIFT 1 /**< Shift value for LCD_RESETTING */
+#define _LCD_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for LCD_RESETTING */
+#define _LCD_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SWRST */
+#define LCD_SWRST_RESETTING_DEFAULT (_LCD_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_SWRST */
+
+/* Bit fields for LCD CTRL */
+#define _LCD_CTRL_RESETVALUE 0x00100000UL /**< Default value for LCD_CTRL */
+#define _LCD_CTRL_MASK 0x7F1D0006UL /**< Mask for LCD_CTRL */
+#define _LCD_CTRL_UDCTRL_SHIFT 1 /**< Shift value for LCD_UDCTRL */
+#define _LCD_CTRL_UDCTRL_MASK 0x6UL /**< Bit mask for LCD_UDCTRL */
+#define _LCD_CTRL_UDCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_CTRL */
+#define _LCD_CTRL_UDCTRL_REGULAR 0x00000000UL /**< Mode REGULAR for LCD_CTRL */
+#define _LCD_CTRL_UDCTRL_FRAMESTART 0x00000001UL /**< Mode FRAMESTART for LCD_CTRL */
+#define _LCD_CTRL_UDCTRL_FCEVENT 0x00000002UL /**< Mode FCEVENT for LCD_CTRL */
+#define _LCD_CTRL_UDCTRL_DISPLAYEVENT 0x00000003UL /**< Mode DISPLAYEVENT for LCD_CTRL */
+#define LCD_CTRL_UDCTRL_DEFAULT (_LCD_CTRL_UDCTRL_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_CTRL */
+#define LCD_CTRL_UDCTRL_REGULAR (_LCD_CTRL_UDCTRL_REGULAR << 1) /**< Shifted mode REGULAR for LCD_CTRL */
+#define LCD_CTRL_UDCTRL_FRAMESTART (_LCD_CTRL_UDCTRL_FRAMESTART << 1) /**< Shifted mode FRAMESTART for LCD_CTRL */
+#define LCD_CTRL_UDCTRL_FCEVENT (_LCD_CTRL_UDCTRL_FCEVENT << 1) /**< Shifted mode FCEVENT for LCD_CTRL */
+#define LCD_CTRL_UDCTRL_DISPLAYEVENT (_LCD_CTRL_UDCTRL_DISPLAYEVENT << 1) /**< Shifted mode DISPLAYEVENT for LCD_CTRL */
+#define LCD_CTRL_DSC (0x1UL << 16) /**< Direct Segment Control */
+#define _LCD_CTRL_DSC_SHIFT 16 /**< Shift value for LCD_DSC */
+#define _LCD_CTRL_DSC_MASK 0x10000UL /**< Bit mask for LCD_DSC */
+#define _LCD_CTRL_DSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_CTRL */
+#define _LCD_CTRL_DSC_DISABLE 0x00000000UL /**< Mode DISABLE for LCD_CTRL */
+#define _LCD_CTRL_DSC_ENABLE 0x00000001UL /**< Mode ENABLE for LCD_CTRL */
+#define LCD_CTRL_DSC_DEFAULT (_LCD_CTRL_DSC_DEFAULT << 16) /**< Shifted mode DEFAULT for LCD_CTRL */
+#define LCD_CTRL_DSC_DISABLE (_LCD_CTRL_DSC_DISABLE << 16) /**< Shifted mode DISABLE for LCD_CTRL */
+#define LCD_CTRL_DSC_ENABLE (_LCD_CTRL_DSC_ENABLE << 16) /**< Shifted mode ENABLE for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_SHIFT 18 /**< Shift value for LCD_WARMUPDLY */
+#define _LCD_CTRL_WARMUPDLY_MASK 0x1C0000UL /**< Bit mask for LCD_WARMUPDLY */
+#define _LCD_CTRL_WARMUPDLY_DEFAULT 0x00000004UL /**< Mode DEFAULT for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP1 0x00000000UL /**< Mode WARMUP1 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP31 0x00000001UL /**< Mode WARMUP31 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP63 0x00000002UL /**< Mode WARMUP63 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP125 0x00000003UL /**< Mode WARMUP125 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP250 0x00000004UL /**< Mode WARMUP250 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP500 0x00000005UL /**< Mode WARMUP500 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP1000 0x00000006UL /**< Mode WARMUP1000 for LCD_CTRL */
+#define _LCD_CTRL_WARMUPDLY_WARMUP2000 0x00000007UL /**< Mode WARMUP2000 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_DEFAULT (_LCD_CTRL_WARMUPDLY_DEFAULT << 18) /**< Shifted mode DEFAULT for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP1 (_LCD_CTRL_WARMUPDLY_WARMUP1 << 18) /**< Shifted mode WARMUP1 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP31 (_LCD_CTRL_WARMUPDLY_WARMUP31 << 18) /**< Shifted mode WARMUP31 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP63 (_LCD_CTRL_WARMUPDLY_WARMUP63 << 18) /**< Shifted mode WARMUP63 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP125 (_LCD_CTRL_WARMUPDLY_WARMUP125 << 18) /**< Shifted mode WARMUP125 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP250 (_LCD_CTRL_WARMUPDLY_WARMUP250 << 18) /**< Shifted mode WARMUP250 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP500 (_LCD_CTRL_WARMUPDLY_WARMUP500 << 18) /**< Shifted mode WARMUP500 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP1000 (_LCD_CTRL_WARMUPDLY_WARMUP1000 << 18) /**< Shifted mode WARMUP1000 for LCD_CTRL */
+#define LCD_CTRL_WARMUPDLY_WARMUP2000 (_LCD_CTRL_WARMUPDLY_WARMUP2000 << 18) /**< Shifted mode WARMUP2000 for LCD_CTRL */
+#define _LCD_CTRL_PRESCALE_SHIFT 24 /**< Shift value for LCD_PRESCALE */
+#define _LCD_CTRL_PRESCALE_MASK 0x7F000000UL /**< Bit mask for LCD_PRESCALE */
+#define _LCD_CTRL_PRESCALE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_CTRL */
+#define LCD_CTRL_PRESCALE_DEFAULT (_LCD_CTRL_PRESCALE_DEFAULT << 24) /**< Shifted mode DEFAULT for LCD_CTRL */
+
+/* Bit fields for LCD CMD */
+#define _LCD_CMD_RESETVALUE 0x00000000UL /**< Default value for LCD_CMD */
+#define _LCD_CMD_MASK 0x00000003UL /**< Mask for LCD_CMD */
+#define LCD_CMD_LOAD (0x1UL << 0) /**< Load command */
+#define _LCD_CMD_LOAD_SHIFT 0 /**< Shift value for LCD_LOAD */
+#define _LCD_CMD_LOAD_MASK 0x1UL /**< Bit mask for LCD_LOAD */
+#define _LCD_CMD_LOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_CMD */
+#define LCD_CMD_LOAD_DEFAULT (_LCD_CMD_LOAD_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_CMD */
+#define LCD_CMD_CLEAR (0x1UL << 1) /**< Clear command */
+#define _LCD_CMD_CLEAR_SHIFT 1 /**< Shift value for LCD_CLEAR */
+#define _LCD_CMD_CLEAR_MASK 0x2UL /**< Bit mask for LCD_CLEAR */
+#define _LCD_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_CMD */
+#define LCD_CMD_CLEAR_DEFAULT (_LCD_CMD_CLEAR_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_CMD */
+
+/* Bit fields for LCD DISPCTRL */
+#define _LCD_DISPCTRL_RESETVALUE 0x00100000UL /**< Default value for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MASK 0x03700017UL /**< Mask for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MUX_SHIFT 0 /**< Shift value for LCD_MUX */
+#define _LCD_DISPCTRL_MUX_MASK 0x7UL /**< Bit mask for LCD_MUX */
+#define _LCD_DISPCTRL_MUX_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MUX_STATIC 0x00000000UL /**< Mode STATIC for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MUX_DUPLEX 0x00000001UL /**< Mode DUPLEX for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MUX_TRIPLEX 0x00000002UL /**< Mode TRIPLEX for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_MUX_QUADRUPLEX 0x00000003UL /**< Mode QUADRUPLEX for LCD_DISPCTRL */
+#define LCD_DISPCTRL_MUX_DEFAULT (_LCD_DISPCTRL_MUX_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_DISPCTRL */
+#define LCD_DISPCTRL_MUX_STATIC (_LCD_DISPCTRL_MUX_STATIC << 0) /**< Shifted mode STATIC for LCD_DISPCTRL */
+#define LCD_DISPCTRL_MUX_DUPLEX (_LCD_DISPCTRL_MUX_DUPLEX << 0) /**< Shifted mode DUPLEX for LCD_DISPCTRL */
+#define LCD_DISPCTRL_MUX_TRIPLEX (_LCD_DISPCTRL_MUX_TRIPLEX << 0) /**< Shifted mode TRIPLEX for LCD_DISPCTRL */
+#define LCD_DISPCTRL_MUX_QUADRUPLEX (_LCD_DISPCTRL_MUX_QUADRUPLEX << 0) /**< Shifted mode QUADRUPLEX for LCD_DISPCTRL */
+#define LCD_DISPCTRL_WAVE (0x1UL << 4) /**< Waveform Selection */
+#define _LCD_DISPCTRL_WAVE_SHIFT 4 /**< Shift value for LCD_WAVE */
+#define _LCD_DISPCTRL_WAVE_MASK 0x10UL /**< Bit mask for LCD_WAVE */
+#define _LCD_DISPCTRL_WAVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_WAVE_TYPEB 0x00000000UL /**< Mode TYPEB for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_WAVE_TYPEA 0x00000001UL /**< Mode TYPEA for LCD_DISPCTRL */
+#define LCD_DISPCTRL_WAVE_DEFAULT (_LCD_DISPCTRL_WAVE_DEFAULT << 4) /**< Shifted mode DEFAULT for LCD_DISPCTRL */
+#define LCD_DISPCTRL_WAVE_TYPEB (_LCD_DISPCTRL_WAVE_TYPEB << 4) /**< Shifted mode TYPEB for LCD_DISPCTRL */
+#define LCD_DISPCTRL_WAVE_TYPEA (_LCD_DISPCTRL_WAVE_TYPEA << 4) /**< Shifted mode TYPEA for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_SHIFT 20 /**< Shift value for LCD_CHGRDST */
+#define _LCD_DISPCTRL_CHGRDST_MASK 0x700000UL /**< Bit mask for LCD_CHGRDST */
+#define _LCD_DISPCTRL_CHGRDST_DEFAULT 0x00000001UL /**< Mode DEFAULT for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_DISABLE 0x00000000UL /**< Mode DISABLE for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_ONE 0x00000001UL /**< Mode ONE for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_TWO 0x00000002UL /**< Mode TWO for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_THREE 0x00000003UL /**< Mode THREE for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_CHGRDST_FOUR 0x00000004UL /**< Mode FOUR for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_DEFAULT (_LCD_DISPCTRL_CHGRDST_DEFAULT << 20) /**< Shifted mode DEFAULT for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_DISABLE (_LCD_DISPCTRL_CHGRDST_DISABLE << 20) /**< Shifted mode DISABLE for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_ONE (_LCD_DISPCTRL_CHGRDST_ONE << 20) /**< Shifted mode ONE for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_TWO (_LCD_DISPCTRL_CHGRDST_TWO << 20) /**< Shifted mode TWO for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_THREE (_LCD_DISPCTRL_CHGRDST_THREE << 20) /**< Shifted mode THREE for LCD_DISPCTRL */
+#define LCD_DISPCTRL_CHGRDST_FOUR (_LCD_DISPCTRL_CHGRDST_FOUR << 20) /**< Shifted mode FOUR for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_BIAS_SHIFT 24 /**< Shift value for LCD_BIAS */
+#define _LCD_DISPCTRL_BIAS_MASK 0x3000000UL /**< Bit mask for LCD_BIAS */
+#define _LCD_DISPCTRL_BIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_BIAS_STATIC 0x00000000UL /**< Mode STATIC for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_BIAS_ONEHALF 0x00000001UL /**< Mode ONEHALF for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_BIAS_ONETHIRD 0x00000002UL /**< Mode ONETHIRD for LCD_DISPCTRL */
+#define _LCD_DISPCTRL_BIAS_ONEFOURTH 0x00000003UL /**< Mode ONEFOURTH for LCD_DISPCTRL */
+#define LCD_DISPCTRL_BIAS_DEFAULT (_LCD_DISPCTRL_BIAS_DEFAULT << 24) /**< Shifted mode DEFAULT for LCD_DISPCTRL */
+#define LCD_DISPCTRL_BIAS_STATIC (_LCD_DISPCTRL_BIAS_STATIC << 24) /**< Shifted mode STATIC for LCD_DISPCTRL */
+#define LCD_DISPCTRL_BIAS_ONEHALF (_LCD_DISPCTRL_BIAS_ONEHALF << 24) /**< Shifted mode ONEHALF for LCD_DISPCTRL */
+#define LCD_DISPCTRL_BIAS_ONETHIRD (_LCD_DISPCTRL_BIAS_ONETHIRD << 24) /**< Shifted mode ONETHIRD for LCD_DISPCTRL */
+#define LCD_DISPCTRL_BIAS_ONEFOURTH (_LCD_DISPCTRL_BIAS_ONEFOURTH << 24) /**< Shifted mode ONEFOURTH for LCD_DISPCTRL */
+
+/* Bit fields for LCD BACFG */
+#define _LCD_BACFG_RESETVALUE 0x00000007UL /**< Default value for LCD_BACFG */
+#define _LCD_BACFG_MASK 0x00FF0007UL /**< Mask for LCD_BACFG */
+#define _LCD_BACFG_ASTATETOP_SHIFT 0 /**< Shift value for LCD_ASTATETOP */
+#define _LCD_BACFG_ASTATETOP_MASK 0x7UL /**< Bit mask for LCD_ASTATETOP */
+#define _LCD_BACFG_ASTATETOP_DEFAULT 0x00000007UL /**< Mode DEFAULT for LCD_BACFG */
+#define LCD_BACFG_ASTATETOP_DEFAULT (_LCD_BACFG_ASTATETOP_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_BACFG */
+#define _LCD_BACFG_FCPRESC_SHIFT 16 /**< Shift value for LCD_FCPRESC */
+#define _LCD_BACFG_FCPRESC_MASK 0x30000UL /**< Bit mask for LCD_FCPRESC */
+#define _LCD_BACFG_FCPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACFG */
+#define _LCD_BACFG_FCPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LCD_BACFG */
+#define _LCD_BACFG_FCPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LCD_BACFG */
+#define _LCD_BACFG_FCPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LCD_BACFG */
+#define _LCD_BACFG_FCPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LCD_BACFG */
+#define LCD_BACFG_FCPRESC_DEFAULT (_LCD_BACFG_FCPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for LCD_BACFG */
+#define LCD_BACFG_FCPRESC_DIV1 (_LCD_BACFG_FCPRESC_DIV1 << 16) /**< Shifted mode DIV1 for LCD_BACFG */
+#define LCD_BACFG_FCPRESC_DIV2 (_LCD_BACFG_FCPRESC_DIV2 << 16) /**< Shifted mode DIV2 for LCD_BACFG */
+#define LCD_BACFG_FCPRESC_DIV4 (_LCD_BACFG_FCPRESC_DIV4 << 16) /**< Shifted mode DIV4 for LCD_BACFG */
+#define LCD_BACFG_FCPRESC_DIV8 (_LCD_BACFG_FCPRESC_DIV8 << 16) /**< Shifted mode DIV8 for LCD_BACFG */
+#define _LCD_BACFG_FCTOP_SHIFT 18 /**< Shift value for LCD_FCTOP */
+#define _LCD_BACFG_FCTOP_MASK 0xFC0000UL /**< Bit mask for LCD_FCTOP */
+#define _LCD_BACFG_FCTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACFG */
+#define LCD_BACFG_FCTOP_DEFAULT (_LCD_BACFG_FCTOP_DEFAULT << 18) /**< Shifted mode DEFAULT for LCD_BACFG */
+
+/* Bit fields for LCD BACTRL */
+#define _LCD_BACTRL_RESETVALUE 0x00000000UL /**< Default value for LCD_BACTRL */
+#define _LCD_BACTRL_MASK 0x100003FFUL /**< Mask for LCD_BACTRL */
+#define LCD_BACTRL_BLINKEN (0x1UL << 0) /**< Blink Enable */
+#define _LCD_BACTRL_BLINKEN_SHIFT 0 /**< Shift value for LCD_BLINKEN */
+#define _LCD_BACTRL_BLINKEN_MASK 0x1UL /**< Bit mask for LCD_BLINKEN */
+#define _LCD_BACTRL_BLINKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_BLINKEN_DEFAULT (_LCD_BACTRL_BLINKEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_BLANK (0x1UL << 1) /**< Blank Display */
+#define _LCD_BACTRL_BLANK_SHIFT 1 /**< Shift value for LCD_BLANK */
+#define _LCD_BACTRL_BLANK_MASK 0x2UL /**< Bit mask for LCD_BLANK */
+#define _LCD_BACTRL_BLANK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_BLANK_DISABLE 0x00000000UL /**< Mode DISABLE for LCD_BACTRL */
+#define _LCD_BACTRL_BLANK_ENABLE 0x00000001UL /**< Mode ENABLE for LCD_BACTRL */
+#define LCD_BACTRL_BLANK_DEFAULT (_LCD_BACTRL_BLANK_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_BLANK_DISABLE (_LCD_BACTRL_BLANK_DISABLE << 1) /**< Shifted mode DISABLE for LCD_BACTRL */
+#define LCD_BACTRL_BLANK_ENABLE (_LCD_BACTRL_BLANK_ENABLE << 1) /**< Shifted mode ENABLE for LCD_BACTRL */
+#define LCD_BACTRL_AEN (0x1UL << 2) /**< Animation Enable */
+#define _LCD_BACTRL_AEN_SHIFT 2 /**< Shift value for LCD_AEN */
+#define _LCD_BACTRL_AEN_MASK 0x4UL /**< Bit mask for LCD_AEN */
+#define _LCD_BACTRL_AEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_AEN_DEFAULT (_LCD_BACTRL_AEN_DEFAULT << 2) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGASC_SHIFT 3 /**< Shift value for LCD_AREGASC */
+#define _LCD_BACTRL_AREGASC_MASK 0x18UL /**< Bit mask for LCD_AREGASC */
+#define _LCD_BACTRL_AREGASC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGASC_NOSHIFT 0x00000000UL /**< Mode NOSHIFT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGASC_SHIFTLEFT 0x00000001UL /**< Mode SHIFTLEFT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGASC_SHIFTRIGHT 0x00000002UL /**< Mode SHIFTRIGHT for LCD_BACTRL */
+#define LCD_BACTRL_AREGASC_DEFAULT (_LCD_BACTRL_AREGASC_DEFAULT << 3) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_AREGASC_NOSHIFT (_LCD_BACTRL_AREGASC_NOSHIFT << 3) /**< Shifted mode NOSHIFT for LCD_BACTRL */
+#define LCD_BACTRL_AREGASC_SHIFTLEFT (_LCD_BACTRL_AREGASC_SHIFTLEFT << 3) /**< Shifted mode SHIFTLEFT for LCD_BACTRL */
+#define LCD_BACTRL_AREGASC_SHIFTRIGHT (_LCD_BACTRL_AREGASC_SHIFTRIGHT << 3) /**< Shifted mode SHIFTRIGHT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGBSC_SHIFT 5 /**< Shift value for LCD_AREGBSC */
+#define _LCD_BACTRL_AREGBSC_MASK 0x60UL /**< Bit mask for LCD_AREGBSC */
+#define _LCD_BACTRL_AREGBSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGBSC_NOSHIFT 0x00000000UL /**< Mode NOSHIFT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGBSC_SHIFTLEFT 0x00000001UL /**< Mode SHIFTLEFT for LCD_BACTRL */
+#define _LCD_BACTRL_AREGBSC_SHIFTRIGHT 0x00000002UL /**< Mode SHIFTRIGHT for LCD_BACTRL */
+#define LCD_BACTRL_AREGBSC_DEFAULT (_LCD_BACTRL_AREGBSC_DEFAULT << 5) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_AREGBSC_NOSHIFT (_LCD_BACTRL_AREGBSC_NOSHIFT << 5) /**< Shifted mode NOSHIFT for LCD_BACTRL */
+#define LCD_BACTRL_AREGBSC_SHIFTLEFT (_LCD_BACTRL_AREGBSC_SHIFTLEFT << 5) /**< Shifted mode SHIFTLEFT for LCD_BACTRL */
+#define LCD_BACTRL_AREGBSC_SHIFTRIGHT (_LCD_BACTRL_AREGBSC_SHIFTRIGHT << 5) /**< Shifted mode SHIFTRIGHT for LCD_BACTRL */
+#define LCD_BACTRL_ALOGSEL (0x1UL << 7) /**< Animate Logic Function Select */
+#define _LCD_BACTRL_ALOGSEL_SHIFT 7 /**< Shift value for LCD_ALOGSEL */
+#define _LCD_BACTRL_ALOGSEL_MASK 0x80UL /**< Bit mask for LCD_ALOGSEL */
+#define _LCD_BACTRL_ALOGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_ALOGSEL_AND 0x00000000UL /**< Mode AND for LCD_BACTRL */
+#define _LCD_BACTRL_ALOGSEL_OR 0x00000001UL /**< Mode OR for LCD_BACTRL */
+#define LCD_BACTRL_ALOGSEL_DEFAULT (_LCD_BACTRL_ALOGSEL_DEFAULT << 7) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_ALOGSEL_AND (_LCD_BACTRL_ALOGSEL_AND << 7) /**< Shifted mode AND for LCD_BACTRL */
+#define LCD_BACTRL_ALOGSEL_OR (_LCD_BACTRL_ALOGSEL_OR << 7) /**< Shifted mode OR for LCD_BACTRL */
+#define LCD_BACTRL_FCEN (0x1UL << 8) /**< Frame Counter Enable */
+#define _LCD_BACTRL_FCEN_SHIFT 8 /**< Shift value for LCD_FCEN */
+#define _LCD_BACTRL_FCEN_MASK 0x100UL /**< Bit mask for LCD_FCEN */
+#define _LCD_BACTRL_FCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_FCEN_DEFAULT (_LCD_BACTRL_FCEN_DEFAULT << 8) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_DISPLAYCNTEN (0x1UL << 9) /**< Display Counter Enable */
+#define _LCD_BACTRL_DISPLAYCNTEN_SHIFT 9 /**< Shift value for LCD_DISPLAYCNTEN */
+#define _LCD_BACTRL_DISPLAYCNTEN_MASK 0x200UL /**< Bit mask for LCD_DISPLAYCNTEN */
+#define _LCD_BACTRL_DISPLAYCNTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_DISPLAYCNTEN_DISABLE 0x00000000UL /**< Mode DISABLE for LCD_BACTRL */
+#define _LCD_BACTRL_DISPLAYCNTEN_ENABLE 0x00000001UL /**< Mode ENABLE for LCD_BACTRL */
+#define LCD_BACTRL_DISPLAYCNTEN_DEFAULT (_LCD_BACTRL_DISPLAYCNTEN_DEFAULT << 9) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_DISPLAYCNTEN_DISABLE (_LCD_BACTRL_DISPLAYCNTEN_DISABLE << 9) /**< Shifted mode DISABLE for LCD_BACTRL */
+#define LCD_BACTRL_DISPLAYCNTEN_ENABLE (_LCD_BACTRL_DISPLAYCNTEN_ENABLE << 9) /**< Shifted mode ENABLE for LCD_BACTRL */
+#define LCD_BACTRL_ALOC (0x1UL << 28) /**< Animation Location */
+#define _LCD_BACTRL_ALOC_SHIFT 28 /**< Shift value for LCD_ALOC */
+#define _LCD_BACTRL_ALOC_MASK 0x10000000UL /**< Bit mask for LCD_ALOC */
+#define _LCD_BACTRL_ALOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BACTRL */
+#define _LCD_BACTRL_ALOC_SEG0TO7 0x00000000UL /**< Mode SEG0TO7 for LCD_BACTRL */
+#define _LCD_BACTRL_ALOC_SEG8TO15 0x00000001UL /**< Mode SEG8TO15 for LCD_BACTRL */
+#define LCD_BACTRL_ALOC_DEFAULT (_LCD_BACTRL_ALOC_DEFAULT << 28) /**< Shifted mode DEFAULT for LCD_BACTRL */
+#define LCD_BACTRL_ALOC_SEG0TO7 (_LCD_BACTRL_ALOC_SEG0TO7 << 28) /**< Shifted mode SEG0TO7 for LCD_BACTRL */
+#define LCD_BACTRL_ALOC_SEG8TO15 (_LCD_BACTRL_ALOC_SEG8TO15 << 28) /**< Shifted mode SEG8TO15 for LCD_BACTRL */
+
+/* Bit fields for LCD STATUS */
+#define _LCD_STATUS_RESETVALUE 0x00000000UL /**< Default value for LCD_STATUS */
+#define _LCD_STATUS_MASK 0x0000090FUL /**< Mask for LCD_STATUS */
+#define _LCD_STATUS_ASTATE_SHIFT 0 /**< Shift value for LCD_ASTATE */
+#define _LCD_STATUS_ASTATE_MASK 0xFUL /**< Bit mask for LCD_ASTATE */
+#define _LCD_STATUS_ASTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_STATUS */
+#define LCD_STATUS_ASTATE_DEFAULT (_LCD_STATUS_ASTATE_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_STATUS */
+#define LCD_STATUS_BLINK (0x1UL << 8) /**< Blink State */
+#define _LCD_STATUS_BLINK_SHIFT 8 /**< Shift value for LCD_BLINK */
+#define _LCD_STATUS_BLINK_MASK 0x100UL /**< Bit mask for LCD_BLINK */
+#define _LCD_STATUS_BLINK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_STATUS */
+#define LCD_STATUS_BLINK_DEFAULT (_LCD_STATUS_BLINK_DEFAULT << 8) /**< Shifted mode DEFAULT for LCD_STATUS */
+#define LCD_STATUS_LOADBUSY (0x1UL << 11) /**< Load Synchronization is busy */
+#define _LCD_STATUS_LOADBUSY_SHIFT 11 /**< Shift value for LCD_LOADBUSY */
+#define _LCD_STATUS_LOADBUSY_MASK 0x800UL /**< Bit mask for LCD_LOADBUSY */
+#define _LCD_STATUS_LOADBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_STATUS */
+#define LCD_STATUS_LOADBUSY_DEFAULT (_LCD_STATUS_LOADBUSY_DEFAULT << 11) /**< Shifted mode DEFAULT for LCD_STATUS */
+
+/* Bit fields for LCD AREGA */
+#define _LCD_AREGA_RESETVALUE 0x00000000UL /**< Default value for LCD_AREGA */
+#define _LCD_AREGA_MASK 0x000000FFUL /**< Mask for LCD_AREGA */
+#define _LCD_AREGA_AREGA_SHIFT 0 /**< Shift value for LCD_AREGA */
+#define _LCD_AREGA_AREGA_MASK 0xFFUL /**< Bit mask for LCD_AREGA */
+#define _LCD_AREGA_AREGA_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_AREGA */
+#define LCD_AREGA_AREGA_DEFAULT (_LCD_AREGA_AREGA_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_AREGA */
+
+/* Bit fields for LCD AREGB */
+#define _LCD_AREGB_RESETVALUE 0x00000000UL /**< Default value for LCD_AREGB */
+#define _LCD_AREGB_MASK 0x000000FFUL /**< Mask for LCD_AREGB */
+#define _LCD_AREGB_AREGB_SHIFT 0 /**< Shift value for LCD_AREGB */
+#define _LCD_AREGB_AREGB_MASK 0xFFUL /**< Bit mask for LCD_AREGB */
+#define _LCD_AREGB_AREGB_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_AREGB */
+#define LCD_AREGB_AREGB_DEFAULT (_LCD_AREGB_AREGB_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_AREGB */
+
+/* Bit fields for LCD IF */
+#define _LCD_IF_RESETVALUE 0x00000000UL /**< Default value for LCD_IF */
+#define _LCD_IF_MASK 0x00000007UL /**< Mask for LCD_IF */
+#define LCD_IF_FC (0x1UL << 0) /**< Frame Counter */
+#define _LCD_IF_FC_SHIFT 0 /**< Shift value for LCD_FC */
+#define _LCD_IF_FC_MASK 0x1UL /**< Bit mask for LCD_FC */
+#define _LCD_IF_FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IF */
+#define LCD_IF_FC_DEFAULT (_LCD_IF_FC_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_IF */
+#define LCD_IF_DISPLAY (0x1UL << 1) /**< Display Update Event */
+#define _LCD_IF_DISPLAY_SHIFT 1 /**< Shift value for LCD_DISPLAY */
+#define _LCD_IF_DISPLAY_MASK 0x2UL /**< Bit mask for LCD_DISPLAY */
+#define _LCD_IF_DISPLAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IF */
+#define LCD_IF_DISPLAY_DEFAULT (_LCD_IF_DISPLAY_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_IF */
+#define LCD_IF_SYNCBUSYDONE (0x1UL << 2) /**< Synchronization is Done */
+#define _LCD_IF_SYNCBUSYDONE_SHIFT 2 /**< Shift value for LCD_SYNCBUSYDONE */
+#define _LCD_IF_SYNCBUSYDONE_MASK 0x4UL /**< Bit mask for LCD_SYNCBUSYDONE */
+#define _LCD_IF_SYNCBUSYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IF */
+#define LCD_IF_SYNCBUSYDONE_DEFAULT (_LCD_IF_SYNCBUSYDONE_DEFAULT << 2) /**< Shifted mode DEFAULT for LCD_IF */
+
+/* Bit fields for LCD IEN */
+#define _LCD_IEN_RESETVALUE 0x00000000UL /**< Default value for LCD_IEN */
+#define _LCD_IEN_MASK 0x00000007UL /**< Mask for LCD_IEN */
+#define LCD_IEN_FC (0x1UL << 0) /**< Frame Counter */
+#define _LCD_IEN_FC_SHIFT 0 /**< Shift value for LCD_FC */
+#define _LCD_IEN_FC_MASK 0x1UL /**< Bit mask for LCD_FC */
+#define _LCD_IEN_FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IEN */
+#define LCD_IEN_FC_DEFAULT (_LCD_IEN_FC_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_IEN */
+#define LCD_IEN_DISPLAY (0x1UL << 1) /**< Display Update Event */
+#define _LCD_IEN_DISPLAY_SHIFT 1 /**< Shift value for LCD_DISPLAY */
+#define _LCD_IEN_DISPLAY_MASK 0x2UL /**< Bit mask for LCD_DISPLAY */
+#define _LCD_IEN_DISPLAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IEN */
+#define LCD_IEN_DISPLAY_DEFAULT (_LCD_IEN_DISPLAY_DEFAULT << 1) /**< Shifted mode DEFAULT for LCD_IEN */
+#define LCD_IEN_SYNCBUSYDONE (0x1UL << 2) /**< Sync Busy Done */
+#define _LCD_IEN_SYNCBUSYDONE_SHIFT 2 /**< Shift value for LCD_SYNCBUSYDONE */
+#define _LCD_IEN_SYNCBUSYDONE_MASK 0x4UL /**< Bit mask for LCD_SYNCBUSYDONE */
+#define _LCD_IEN_SYNCBUSYDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_IEN */
+#define LCD_IEN_SYNCBUSYDONE_DEFAULT (_LCD_IEN_SYNCBUSYDONE_DEFAULT << 2) /**< Shifted mode DEFAULT for LCD_IEN */
+
+/* Bit fields for LCD BIASCTRL */
+#define _LCD_BIASCTRL_RESETVALUE 0x001F0000UL /**< Default value for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_MASK 0xC45F137FUL /**< Mask for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_RESISTOR_SHIFT 0 /**< Shift value for LCD_RESISTOR */
+#define _LCD_BIASCTRL_RESISTOR_MASK 0xFUL /**< Bit mask for LCD_RESISTOR */
+#define _LCD_BIASCTRL_RESISTOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_RESISTOR_DEFAULT (_LCD_BIASCTRL_RESISTOR_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_BUFDRV_SHIFT 4 /**< Shift value for LCD_BUFDRV */
+#define _LCD_BIASCTRL_BUFDRV_MASK 0x70UL /**< Bit mask for LCD_BUFDRV */
+#define _LCD_BIASCTRL_BUFDRV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_BUFDRV_DEFAULT (_LCD_BIASCTRL_BUFDRV_DEFAULT << 4) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_BUFBIAS_SHIFT 8 /**< Shift value for LCD_BUFBIAS */
+#define _LCD_BIASCTRL_BUFBIAS_MASK 0x300UL /**< Bit mask for LCD_BUFBIAS */
+#define _LCD_BIASCTRL_BUFBIAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_BUFBIAS_DEFAULT (_LCD_BIASCTRL_BUFBIAS_DEFAULT << 8) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_MODE (0x1UL << 12) /**< Mode Setting */
+#define _LCD_BIASCTRL_MODE_SHIFT 12 /**< Shift value for LCD_MODE */
+#define _LCD_BIASCTRL_MODE_MASK 0x1000UL /**< Bit mask for LCD_MODE */
+#define _LCD_BIASCTRL_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_MODE_STEPDOWN 0x00000000UL /**< Mode STEPDOWN for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_MODE_CHARGEPUMP 0x00000001UL /**< Mode CHARGEPUMP for LCD_BIASCTRL */
+#define LCD_BIASCTRL_MODE_DEFAULT (_LCD_BIASCTRL_MODE_DEFAULT << 12) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_MODE_STEPDOWN (_LCD_BIASCTRL_MODE_STEPDOWN << 12) /**< Shifted mode STEPDOWN for LCD_BIASCTRL */
+#define LCD_BIASCTRL_MODE_CHARGEPUMP (_LCD_BIASCTRL_MODE_CHARGEPUMP << 12) /**< Shifted mode CHARGEPUMP for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_VLCD_SHIFT 16 /**< Shift value for LCD_VLCD */
+#define _LCD_BIASCTRL_VLCD_MASK 0x1F0000UL /**< Bit mask for LCD_VLCD */
+#define _LCD_BIASCTRL_VLCD_DEFAULT 0x0000001FUL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_VLCD_DEFAULT (_LCD_BIASCTRL_VLCD_DEFAULT << 16) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_VDDXSEL (0x1UL << 22) /**< VDDX select */
+#define _LCD_BIASCTRL_VDDXSEL_SHIFT 22 /**< Shift value for LCD_VDDXSEL */
+#define _LCD_BIASCTRL_VDDXSEL_MASK 0x400000UL /**< Bit mask for LCD_VDDXSEL */
+#define _LCD_BIASCTRL_VDDXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_VDDXSEL_DVDD 0x00000000UL /**< Mode DVDD for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_VDDXSEL_AVDD 0x00000001UL /**< Mode AVDD for LCD_BIASCTRL */
+#define LCD_BIASCTRL_VDDXSEL_DEFAULT (_LCD_BIASCTRL_VDDXSEL_DEFAULT << 22) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_VDDXSEL_DVDD (_LCD_BIASCTRL_VDDXSEL_DVDD << 22) /**< Shifted mode DVDD for LCD_BIASCTRL */
+#define LCD_BIASCTRL_VDDXSEL_AVDD (_LCD_BIASCTRL_VDDXSEL_AVDD << 22) /**< Shifted mode AVDD for LCD_BIASCTRL */
+#define LCD_BIASCTRL_LCDGATE (0x1UL << 26) /**< LCD Gate */
+#define _LCD_BIASCTRL_LCDGATE_SHIFT 26 /**< Shift value for LCD_LCDGATE */
+#define _LCD_BIASCTRL_LCDGATE_MASK 0x4000000UL /**< Bit mask for LCD_LCDGATE */
+#define _LCD_BIASCTRL_LCDGATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_LCDGATE_UNGATE 0x00000000UL /**< Mode UNGATE for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_LCDGATE_GATE 0x00000001UL /**< Mode GATE for LCD_BIASCTRL */
+#define LCD_BIASCTRL_LCDGATE_DEFAULT (_LCD_BIASCTRL_LCDGATE_DEFAULT << 26) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_LCDGATE_UNGATE (_LCD_BIASCTRL_LCDGATE_UNGATE << 26) /**< Shifted mode UNGATE for LCD_BIASCTRL */
+#define LCD_BIASCTRL_LCDGATE_GATE (_LCD_BIASCTRL_LCDGATE_GATE << 26) /**< Shifted mode GATE for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_DMAMODE_SHIFT 30 /**< Shift value for LCD_DMAMODE */
+#define _LCD_BIASCTRL_DMAMODE_MASK 0xC0000000UL /**< Bit mask for LCD_DMAMODE */
+#define _LCD_BIASCTRL_DMAMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_DMAMODE_DMADISABLE 0x00000000UL /**< Mode DMADISABLE for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_DMAMODE_DMAFC 0x00000001UL /**< Mode DMAFC for LCD_BIASCTRL */
+#define _LCD_BIASCTRL_DMAMODE_DMADISPLAY 0x00000002UL /**< Mode DMADISPLAY for LCD_BIASCTRL */
+#define LCD_BIASCTRL_DMAMODE_DEFAULT (_LCD_BIASCTRL_DMAMODE_DEFAULT << 30) /**< Shifted mode DEFAULT for LCD_BIASCTRL */
+#define LCD_BIASCTRL_DMAMODE_DMADISABLE (_LCD_BIASCTRL_DMAMODE_DMADISABLE << 30) /**< Shifted mode DMADISABLE for LCD_BIASCTRL */
+#define LCD_BIASCTRL_DMAMODE_DMAFC (_LCD_BIASCTRL_DMAMODE_DMAFC << 30) /**< Shifted mode DMAFC for LCD_BIASCTRL */
+#define LCD_BIASCTRL_DMAMODE_DMADISPLAY (_LCD_BIASCTRL_DMAMODE_DMADISPLAY << 30) /**< Shifted mode DMADISPLAY for LCD_BIASCTRL */
+
+/* Bit fields for LCD DISPCTRLX */
+#define _LCD_DISPCTRLX_RESETVALUE 0x00000000UL /**< Default value for LCD_DISPCTRLX */
+#define _LCD_DISPCTRLX_MASK 0x000003FFUL /**< Mask for LCD_DISPCTRLX */
+#define _LCD_DISPCTRLX_DISPLAYDIV_SHIFT 0 /**< Shift value for LCD_DISPLAYDIV */
+#define _LCD_DISPCTRLX_DISPLAYDIV_MASK 0x3FFUL /**< Bit mask for LCD_DISPLAYDIV */
+#define _LCD_DISPCTRLX_DISPLAYDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_DISPCTRLX */
+#define LCD_DISPCTRLX_DISPLAYDIV_DEFAULT (_LCD_DISPCTRLX_DISPLAYDIV_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_DISPCTRLX */
+
+/* Bit fields for LCD SEGD0 */
+#define _LCD_SEGD0_RESETVALUE 0x00000000UL /**< Default value for LCD_SEGD0 */
+#define _LCD_SEGD0_MASK 0x000FFFFFUL /**< Mask for LCD_SEGD0 */
+#define _LCD_SEGD0_SEGD0_SHIFT 0 /**< Shift value for LCD_SEGD0 */
+#define _LCD_SEGD0_SEGD0_MASK 0xFFFFFUL /**< Bit mask for LCD_SEGD0 */
+#define _LCD_SEGD0_SEGD0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SEGD0 */
+#define LCD_SEGD0_SEGD0_DEFAULT (_LCD_SEGD0_SEGD0_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_SEGD0 */
+
+/* Bit fields for LCD SEGD1 */
+#define _LCD_SEGD1_RESETVALUE 0x00000000UL /**< Default value for LCD_SEGD1 */
+#define _LCD_SEGD1_MASK 0x000FFFFFUL /**< Mask for LCD_SEGD1 */
+#define _LCD_SEGD1_SEGD1_SHIFT 0 /**< Shift value for LCD_SEGD1 */
+#define _LCD_SEGD1_SEGD1_MASK 0xFFFFFUL /**< Bit mask for LCD_SEGD1 */
+#define _LCD_SEGD1_SEGD1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SEGD1 */
+#define LCD_SEGD1_SEGD1_DEFAULT (_LCD_SEGD1_SEGD1_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_SEGD1 */
+
+/* Bit fields for LCD SEGD2 */
+#define _LCD_SEGD2_RESETVALUE 0x00000000UL /**< Default value for LCD_SEGD2 */
+#define _LCD_SEGD2_MASK 0x000FFFFFUL /**< Mask for LCD_SEGD2 */
+#define _LCD_SEGD2_SEGD2_SHIFT 0 /**< Shift value for LCD_SEGD2 */
+#define _LCD_SEGD2_SEGD2_MASK 0xFFFFFUL /**< Bit mask for LCD_SEGD2 */
+#define _LCD_SEGD2_SEGD2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SEGD2 */
+#define LCD_SEGD2_SEGD2_DEFAULT (_LCD_SEGD2_SEGD2_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_SEGD2 */
+
+/* Bit fields for LCD SEGD3 */
+#define _LCD_SEGD3_RESETVALUE 0x00000000UL /**< Default value for LCD_SEGD3 */
+#define _LCD_SEGD3_MASK 0x000FFFFFUL /**< Mask for LCD_SEGD3 */
+#define _LCD_SEGD3_SEGD3_SHIFT 0 /**< Shift value for LCD_SEGD3 */
+#define _LCD_SEGD3_SEGD3_MASK 0xFFFFFUL /**< Bit mask for LCD_SEGD3 */
+#define _LCD_SEGD3_SEGD3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_SEGD3 */
+#define LCD_SEGD3_SEGD3_DEFAULT (_LCD_SEGD3_SEGD3_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_SEGD3 */
+
+/* Bit fields for LCD UPDATECTRL */
+#define _LCD_UPDATECTRL_RESETVALUE 0x00000000UL /**< Default value for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_MASK 0x0001E100UL /**< Mask for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_AUTOLOAD (0x1UL << 8) /**< Auto Load */
+#define _LCD_UPDATECTRL_AUTOLOAD_SHIFT 8 /**< Shift value for LCD_AUTOLOAD */
+#define _LCD_UPDATECTRL_AUTOLOAD_MASK 0x100UL /**< Bit mask for LCD_AUTOLOAD */
+#define _LCD_UPDATECTRL_AUTOLOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_AUTOLOAD_MANUAL 0x00000000UL /**< Mode MANUAL for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_AUTOLOAD_AUTO 0x00000001UL /**< Mode AUTO for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_AUTOLOAD_DEFAULT (_LCD_UPDATECTRL_AUTOLOAD_DEFAULT << 8) /**< Shifted mode DEFAULT for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_AUTOLOAD_MANUAL (_LCD_UPDATECTRL_AUTOLOAD_MANUAL << 8) /**< Shifted mode MANUAL for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_AUTOLOAD_AUTO (_LCD_UPDATECTRL_AUTOLOAD_AUTO << 8) /**< Shifted mode AUTO for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_SHIFT 13 /**< Shift value for LCD_LOADADDR */
+#define _LCD_UPDATECTRL_LOADADDR_MASK 0x1E000UL /**< Bit mask for LCD_LOADADDR */
+#define _LCD_UPDATECTRL_LOADADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_BACTRLWR 0x00000000UL /**< Mode BACTRLWR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_AREGAWR 0x00000001UL /**< Mode AREGAWR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_AREGBWR 0x00000002UL /**< Mode AREGBWR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_SEGD0WR 0x00000003UL /**< Mode SEGD0WR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_SEGD1WR 0x00000004UL /**< Mode SEGD1WR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_SEGD2WR 0x00000005UL /**< Mode SEGD2WR for LCD_UPDATECTRL */
+#define _LCD_UPDATECTRL_LOADADDR_SEGD3WR 0x00000006UL /**< Mode SEGD3WR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_DEFAULT (_LCD_UPDATECTRL_LOADADDR_DEFAULT << 13) /**< Shifted mode DEFAULT for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_BACTRLWR (_LCD_UPDATECTRL_LOADADDR_BACTRLWR << 13) /**< Shifted mode BACTRLWR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_AREGAWR (_LCD_UPDATECTRL_LOADADDR_AREGAWR << 13) /**< Shifted mode AREGAWR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_AREGBWR (_LCD_UPDATECTRL_LOADADDR_AREGBWR << 13) /**< Shifted mode AREGBWR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_SEGD0WR (_LCD_UPDATECTRL_LOADADDR_SEGD0WR << 13) /**< Shifted mode SEGD0WR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_SEGD1WR (_LCD_UPDATECTRL_LOADADDR_SEGD1WR << 13) /**< Shifted mode SEGD1WR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_SEGD2WR (_LCD_UPDATECTRL_LOADADDR_SEGD2WR << 13) /**< Shifted mode SEGD2WR for LCD_UPDATECTRL */
+#define LCD_UPDATECTRL_LOADADDR_SEGD3WR (_LCD_UPDATECTRL_LOADADDR_SEGD3WR << 13) /**< Shifted mode SEGD3WR for LCD_UPDATECTRL */
+
+/* Bit fields for LCD FRAMERATE */
+#define _LCD_FRAMERATE_RESETVALUE 0x00000000UL /**< Default value for LCD_FRAMERATE */
+#define _LCD_FRAMERATE_MASK 0x000001FFUL /**< Mask for LCD_FRAMERATE */
+#define _LCD_FRAMERATE_FRDIV_SHIFT 0 /**< Shift value for LCD_FRDIV */
+#define _LCD_FRAMERATE_FRDIV_MASK 0x1FFUL /**< Bit mask for LCD_FRDIV */
+#define _LCD_FRAMERATE_FRDIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCD_FRAMERATE */
+#define LCD_FRAMERATE_FRDIV_DEFAULT (_LCD_FRAMERATE_FRDIV_DEFAULT << 0) /**< Shifted mode DEFAULT for LCD_FRAMERATE */
+
+/** @} End of group EFR32ZG23_LCD_BitFields */
+/** @} End of group EFR32ZG23_LCD */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LCD_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcdrf.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcdrf.h
new file mode 100644
index 000000000..1e13003b3
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lcdrf.h
@@ -0,0 +1,104 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LCDRF register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LCDRF_H
+#define EFR32ZG23_LCDRF_H
+#define LCDRF_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LCDRF LCDRF
+ * @{
+ * @brief EFR32ZG23 LCDRF Register Declaration.
+ *****************************************************************************/
+
+/** LCDRF Register Declaration. */
+typedef struct lcdrf_typedef{
+ __IOM uint32_t RFIMLCDCTRL; /**< RF Interference Mitigation LCD Control */
+ uint32_t RESERVED0[1023U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMLCDCTRL_SET; /**< RF Interference Mitigation LCD Control */
+ uint32_t RESERVED1[1023U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMLCDCTRL_CLR; /**< RF Interference Mitigation LCD Control */
+ uint32_t RESERVED2[1023U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMLCDCTRL_TGL; /**< RF Interference Mitigation LCD Control */
+} LCDRF_TypeDef;
+/** @} End of group EFR32ZG23_LCDRF */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LCDRF
+ * @{
+ * @defgroup EFR32ZG23_LCDRF_BitFields LCDRF Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LCDRF RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_RESETVALUE 0x00000000UL /**< Default value for LCDRF_RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_MASK 0x0000001FUL /**< Mask for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOEN (0x1UL << 0) /**< LCD Charge Pump XO Clock Enable */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOEN_SHIFT 0 /**< Shift value for LCDRF_LCDCPXOEN */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOEN_MASK 0x1UL /**< Bit mask for LCDRF_LCDCPXOEN */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOEN_DEFAULT (_LCDRF_RFIMLCDCTRL_LCDCPXOEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOSEL (0x1UL << 1) /**< LCD Charge Pump XO Select */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOSEL_SHIFT 1 /**< Shift value for LCDRF_LCDCPXOSEL */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOSEL_MASK 0x2UL /**< Bit mask for LCDRF_LCDCPXOSEL */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOSEL_INTRCO 0x00000000UL /**< Mode INTRCO for LCDRF_RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXOSEL_HFXODIV 0x00000001UL /**< Mode HFXODIV for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOSEL_DEFAULT (_LCDRF_RFIMLCDCTRL_LCDCPXOSEL_DEFAULT << 1) /**< Shifted mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOSEL_INTRCO (_LCDRF_RFIMLCDCTRL_LCDCPXOSEL_INTRCO << 1) /**< Shifted mode INTRCO for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXOSEL_HFXODIV (_LCDRF_RFIMLCDCTRL_LCDCPXOSEL_HFXODIV << 1) /**< Shifted mode HFXODIV for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN (0x1UL << 2) /**< LCD Charge Pump XO Retime Enable */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN_SHIFT 2 /**< Shift value for LCDRF_LCDCPXORETIMEEN */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN_MASK 0x4UL /**< Bit mask for LCDRF_LCDCPXORETIMEEN */
+#define _LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN_DEFAULT (_LCDRF_RFIMLCDCTRL_LCDCPXORETIMEEN_DEFAULT << 2) /**< Shifted mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDLOWNOISE (0x1UL << 3) /**< LCD Low Noise */
+#define _LCDRF_RFIMLCDCTRL_LCDLOWNOISE_SHIFT 3 /**< Shift value for LCDRF_LCDLOWNOISE */
+#define _LCDRF_RFIMLCDCTRL_LCDLOWNOISE_MASK 0x8UL /**< Bit mask for LCDRF_LCDLOWNOISE */
+#define _LCDRF_RFIMLCDCTRL_LCDLOWNOISE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_LCDLOWNOISE_NORMAL 0x00000000UL /**< Mode NORMAL for LCDRF_RFIMLCDCTRL */
+#define _LCDRF_RFIMLCDCTRL_LCDLOWNOISE_SLOW 0x00000001UL /**< Mode SLOW for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDLOWNOISE_DEFAULT (_LCDRF_RFIMLCDCTRL_LCDLOWNOISE_DEFAULT << 3) /**< Shifted mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDLOWNOISE_NORMAL (_LCDRF_RFIMLCDCTRL_LCDLOWNOISE_NORMAL << 3) /**< Shifted mode NORMAL for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDLOWNOISE_SLOW (_LCDRF_RFIMLCDCTRL_LCDLOWNOISE_SLOW << 3) /**< Shifted mode SLOW for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCMPDOUT (0x1UL << 4) /**< LCD Comparator Dout */
+#define _LCDRF_RFIMLCDCTRL_LCDCMPDOUT_SHIFT 4 /**< Shift value for LCDRF_LCDCMPDOUT */
+#define _LCDRF_RFIMLCDCTRL_LCDCMPDOUT_MASK 0x10UL /**< Bit mask for LCDRF_LCDCMPDOUT */
+#define _LCDRF_RFIMLCDCTRL_LCDCMPDOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LCDRF_RFIMLCDCTRL */
+#define LCDRF_RFIMLCDCTRL_LCDCMPDOUT_DEFAULT (_LCDRF_RFIMLCDCTRL_LCDCMPDOUT_DEFAULT << 4) /**< Shifted mode DEFAULT for LCDRF_RFIMLCDCTRL */
+
+/** @} End of group EFR32ZG23_LCDRF_BitFields */
+/** @} End of group EFR32ZG23_LCDRF */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LCDRF_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldma.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldma.h
new file mode 100644
index 000000000..0fdee72f1
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldma.h
@@ -0,0 +1,685 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LDMA register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LDMA_H
+#define EFR32ZG23_LDMA_H
+#define LDMA_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LDMA LDMA
+ * @{
+ * @brief EFR32ZG23 LDMA Register Declaration.
+ *****************************************************************************/
+
+/** LDMA CH Register Group Declaration. */
+typedef struct ldma_ch_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t CFG; /**< Channel Configuration Register */
+ __IOM uint32_t LOOP; /**< Channel Loop Counter Register */
+ __IOM uint32_t CTRL; /**< Channel Descriptor Control Word Register */
+ __IOM uint32_t SRC; /**< Channel Descriptor Source Address */
+ __IOM uint32_t DST; /**< Channel Descriptor Destination Address */
+ __IOM uint32_t LINK; /**< Channel Descriptor Link Address */
+ uint32_t RESERVED1[5U]; /**< Reserved for future use */
+} LDMA_CH_TypeDef;
+
+/** LDMA Register Declaration. */
+typedef struct ldma_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL; /**< DMA Control Register */
+ __IM uint32_t STATUS; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_SET; /**< DMA Control Register */
+ __IM uint32_t STATUS_SET; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_SET; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_SET; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_SET; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_SET; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_SET; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_SET; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_SET; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_SET; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_SET; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_SET; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_SET; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_SET; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_SET; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_SET; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_SET; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_SET; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_CLR; /**< DMA Control Register */
+ __IM uint32_t STATUS_CLR; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_CLR; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_CLR; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_CLR; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_CLR; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_CLR; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_CLR; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_CLR; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_CLR; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_CLR; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_CLR; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_CLR; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_CLR; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_CLR; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_CLR; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_CLR; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_CLR; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[906U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< DMA module enable disable Register */
+ __IOM uint32_t CTRL_TGL; /**< DMA Control Register */
+ __IM uint32_t STATUS_TGL; /**< DMA Status Register */
+ __IOM uint32_t SYNCSWSET_TGL; /**< DMA Sync Trig Sw Set Register */
+ __IOM uint32_t SYNCSWCLR_TGL; /**< DMA Sync Trig Sw Clear register */
+ __IOM uint32_t SYNCHWEN_TGL; /**< DMA Sync HW trigger enable register */
+ __IOM uint32_t SYNCHWSEL_TGL; /**< DMA Sync HW trigger selection register */
+ __IM uint32_t SYNCSTATUS_TGL; /**< DMA Sync Trigger Status Register */
+ __IOM uint32_t CHEN_TGL; /**< DMA Channel Enable Register */
+ __IOM uint32_t CHDIS_TGL; /**< DMA Channel Disable Register */
+ __IM uint32_t CHSTATUS_TGL; /**< DMA Channel Status Register */
+ __IM uint32_t CHBUSY_TGL; /**< DMA Channel Busy Register */
+ __IOM uint32_t CHDONE_TGL; /**< DMA Channel Linking Done Register */
+ __IOM uint32_t DBGHALT_TGL; /**< DMA Channel Debug Halt Register */
+ __IOM uint32_t SWREQ_TGL; /**< DMA Channel Software Transfer Request */
+ __IOM uint32_t REQDIS_TGL; /**< DMA Channel Request Disable Register */
+ __IM uint32_t REQPEND_TGL; /**< DMA Channel Requests Pending Register */
+ __IOM uint32_t LINKLOAD_TGL; /**< DMA Channel Link Load Register */
+ __IOM uint32_t REQCLEAR_TGL; /**< DMA Channel Request Clear Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ LDMA_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMA_TypeDef;
+/** @} End of group EFR32ZG23_LDMA */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LDMA
+ * @{
+ * @defgroup EFR32ZG23_LDMA_BitFields LDMA Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMA IPVERSION */
+#define _LDMA_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_MASK 0x000000FFUL /**< Mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_MASK 0xFFUL /**< Bit mask for LDMA_IPVERSION */
+#define _LDMA_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IPVERSION */
+#define LDMA_IPVERSION_IPVERSION_DEFAULT (_LDMA_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IPVERSION */
+
+/* Bit fields for LDMA EN */
+#define _LDMA_EN_RESETVALUE 0x00000000UL /**< Default value for LDMA_EN */
+#define _LDMA_EN_MASK 0x00000001UL /**< Mask for LDMA_EN */
+#define LDMA_EN_EN (0x1UL << 0) /**< LDMA module enable and disable register */
+#define _LDMA_EN_EN_SHIFT 0 /**< Shift value for LDMA_EN */
+#define _LDMA_EN_EN_MASK 0x1UL /**< Bit mask for LDMA_EN */
+#define _LDMA_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_EN */
+#define LDMA_EN_EN_DEFAULT (_LDMA_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_EN */
+
+/* Bit fields for LDMA CTRL */
+#define _LDMA_CTRL_RESETVALUE 0x1E000000UL /**< Default value for LDMA_CTRL */
+#define _LDMA_CTRL_MASK 0x9F000000UL /**< Mask for LDMA_CTRL */
+#define _LDMA_CTRL_NUMFIXED_SHIFT 24 /**< Shift value for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_MASK 0x1F000000UL /**< Bit mask for LDMA_NUMFIXED */
+#define _LDMA_CTRL_NUMFIXED_DEFAULT 0x0000001EUL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_NUMFIXED_DEFAULT (_LDMA_CTRL_NUMFIXED_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST (0x1UL << 31) /**< Reset DMA controller */
+#define _LDMA_CTRL_CORERST_SHIFT 31 /**< Shift value for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_MASK 0x80000000UL /**< Bit mask for LDMA_CORERST */
+#define _LDMA_CTRL_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CTRL */
+#define LDMA_CTRL_CORERST_DEFAULT (_LDMA_CTRL_CORERST_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CTRL */
+
+/* Bit fields for LDMA STATUS */
+#define _LDMA_STATUS_RESETVALUE 0x08100000UL /**< Default value for LDMA_STATUS */
+#define _LDMA_STATUS_MASK 0x1F1F1FFBUL /**< Mask for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY (0x1UL << 0) /**< Any DMA Channel Busy */
+#define _LDMA_STATUS_ANYBUSY_SHIFT 0 /**< Shift value for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_MASK 0x1UL /**< Bit mask for LDMA_ANYBUSY */
+#define _LDMA_STATUS_ANYBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYBUSY_DEFAULT (_LDMA_STATUS_ANYBUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ (0x1UL << 1) /**< Any DMA Channel Request Pending */
+#define _LDMA_STATUS_ANYREQ_SHIFT 1 /**< Shift value for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_MASK 0x2UL /**< Bit mask for LDMA_ANYREQ */
+#define _LDMA_STATUS_ANYREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_ANYREQ_DEFAULT (_LDMA_STATUS_ANYREQ_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHGRANT_SHIFT 3 /**< Shift value for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_MASK 0xF8UL /**< Bit mask for LDMA_CHGRANT */
+#define _LDMA_STATUS_CHGRANT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHGRANT_DEFAULT (_LDMA_STATUS_CHGRANT_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHERROR_SHIFT 8 /**< Shift value for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_MASK 0x1F00UL /**< Bit mask for LDMA_CHERROR */
+#define _LDMA_STATUS_CHERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHERROR_DEFAULT (_LDMA_STATUS_CHERROR_DEFAULT << 8) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_FIFOLEVEL_SHIFT 16 /**< Shift value for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_MASK 0x1F0000UL /**< Bit mask for LDMA_FIFOLEVEL */
+#define _LDMA_STATUS_FIFOLEVEL_DEFAULT 0x00000010UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_FIFOLEVEL_DEFAULT (_LDMA_STATUS_FIFOLEVEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_STATUS */
+#define _LDMA_STATUS_CHNUM_SHIFT 24 /**< Shift value for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_MASK 0x1F000000UL /**< Bit mask for LDMA_CHNUM */
+#define _LDMA_STATUS_CHNUM_DEFAULT 0x00000008UL /**< Mode DEFAULT for LDMA_STATUS */
+#define LDMA_STATUS_CHNUM_DEFAULT (_LDMA_STATUS_CHNUM_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_STATUS */
+
+/* Bit fields for LDMA SYNCSWSET */
+#define _LDMA_SYNCSWSET_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_SHIFT 0 /**< Shift value for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWSET */
+#define _LDMA_SYNCSWSET_SYNCSWSET_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWSET */
+#define LDMA_SYNCSWSET_SYNCSWSET_DEFAULT (_LDMA_SYNCSWSET_SYNCSWSET_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWSET */
+
+/* Bit fields for LDMA SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_SHIFT 0 /**< Shift value for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSWCLR */
+#define _LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSWCLR */
+#define LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT (_LDMA_SYNCSWCLR_SYNCSWCLR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSWCLR */
+
+/* Bit fields for LDMA SYNCHWEN */
+#define _LDMA_SYNCHWEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_SHIFT 0 /**< Shift value for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEN */
+#define _LDMA_SYNCHWEN_SYNCSETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCSETEN_DEFAULT (_LDMA_SYNCHWEN_SYNCSETEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_SHIFT 16 /**< Shift value for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREN */
+#define _LDMA_SYNCHWEN_SYNCCLREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWEN */
+#define LDMA_SYNCHWEN_SYNCCLREN_DEFAULT (_LDMA_SYNCHWEN_SYNCCLREN_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWEN */
+
+/* Bit fields for LDMA SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_MASK 0x00FF00FFUL /**< Mask for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_SHIFT 0 /**< Shift value for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_MASK 0xFFUL /**< Bit mask for LDMA_SYNCSETEDGE */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCSETEDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCSETEDGE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_RISE (_LDMA_SYNCHWSEL_SYNCSETEDGE_RISE << 0) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCSETEDGE_FALL (_LDMA_SYNCHWSEL_SYNCSETEDGE_FALL << 0) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_SHIFT 16 /**< Shift value for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_MASK 0xFF0000UL /**< Bit mask for LDMA_SYNCCLREDGE */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_RISE 0x00000000UL /**< Mode RISE for LDMA_SYNCHWSEL */
+#define _LDMA_SYNCHWSEL_SYNCCLREDGE_FALL 0x00000001UL /**< Mode FALL for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT (_LDMA_SYNCHWSEL_SYNCCLREDGE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_RISE (_LDMA_SYNCHWSEL_SYNCCLREDGE_RISE << 16) /**< Shifted mode RISE for LDMA_SYNCHWSEL */
+#define LDMA_SYNCHWSEL_SYNCCLREDGE_FALL (_LDMA_SYNCHWSEL_SYNCCLREDGE_FALL << 16) /**< Shifted mode FALL for LDMA_SYNCHWSEL */
+
+/* Bit fields for LDMA SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_SYNCSTATUS */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_SHIFT 0 /**< Shift value for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_MASK 0xFFUL /**< Bit mask for LDMA_SYNCTRIG */
+#define _LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SYNCSTATUS */
+#define LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT (_LDMA_SYNCSTATUS_SYNCTRIG_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SYNCSTATUS */
+
+/* Bit fields for LDMA CHEN */
+#define _LDMA_CHEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHEN */
+#define _LDMA_CHEN_MASK 0x000000FFUL /**< Mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_SHIFT 0 /**< Shift value for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_MASK 0xFFUL /**< Bit mask for LDMA_CHEN */
+#define _LDMA_CHEN_CHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHEN */
+#define LDMA_CHEN_CHEN_DEFAULT (_LDMA_CHEN_CHEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHEN */
+
+/* Bit fields for LDMA CHDIS */
+#define _LDMA_CHDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDIS */
+#define _LDMA_CHDIS_MASK 0x000000FFUL /**< Mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_SHIFT 0 /**< Shift value for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_MASK 0xFFUL /**< Bit mask for LDMA_CHDIS */
+#define _LDMA_CHDIS_CHDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDIS */
+#define LDMA_CHDIS_CHDIS_DEFAULT (_LDMA_CHDIS_CHDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDIS */
+
+/* Bit fields for LDMA CHSTATUS */
+#define _LDMA_CHSTATUS_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_MASK 0x000000FFUL /**< Mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_SHIFT 0 /**< Shift value for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_MASK 0xFFUL /**< Bit mask for LDMA_CHSTATUS */
+#define _LDMA_CHSTATUS_CHSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHSTATUS */
+#define LDMA_CHSTATUS_CHSTATUS_DEFAULT (_LDMA_CHSTATUS_CHSTATUS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHSTATUS */
+
+/* Bit fields for LDMA CHBUSY */
+#define _LDMA_CHBUSY_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_MASK 0x000000FFUL /**< Mask for LDMA_CHBUSY */
+#define _LDMA_CHBUSY_BUSY_SHIFT 0 /**< Shift value for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_MASK 0xFFUL /**< Bit mask for LDMA_BUSY */
+#define _LDMA_CHBUSY_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHBUSY */
+#define LDMA_CHBUSY_BUSY_DEFAULT (_LDMA_CHBUSY_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHBUSY */
+
+/* Bit fields for LDMA CHDONE */
+#define _LDMA_CHDONE_RESETVALUE 0x00000000UL /**< Default value for LDMA_CHDONE */
+#define _LDMA_CHDONE_MASK 0x000000FFUL /**< Mask for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0 (0x1UL << 0) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE0_SHIFT 0 /**< Shift value for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_MASK 0x1UL /**< Bit mask for LDMA_CHDONE0 */
+#define _LDMA_CHDONE_CHDONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE0_DEFAULT (_LDMA_CHDONE_CHDONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1 (0x1UL << 1) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE1_SHIFT 1 /**< Shift value for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_MASK 0x2UL /**< Bit mask for LDMA_CHDONE1 */
+#define _LDMA_CHDONE_CHDONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE1_DEFAULT (_LDMA_CHDONE_CHDONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2 (0x1UL << 2) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE2_SHIFT 2 /**< Shift value for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_MASK 0x4UL /**< Bit mask for LDMA_CHDONE2 */
+#define _LDMA_CHDONE_CHDONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE2_DEFAULT (_LDMA_CHDONE_CHDONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3 (0x1UL << 3) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE3_SHIFT 3 /**< Shift value for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_MASK 0x8UL /**< Bit mask for LDMA_CHDONE3 */
+#define _LDMA_CHDONE_CHDONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE3_DEFAULT (_LDMA_CHDONE_CHDONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4 (0x1UL << 4) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE4_SHIFT 4 /**< Shift value for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_MASK 0x10UL /**< Bit mask for LDMA_CHDONE4 */
+#define _LDMA_CHDONE_CHDONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE4_DEFAULT (_LDMA_CHDONE_CHDONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5 (0x1UL << 5) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE5_SHIFT 5 /**< Shift value for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_MASK 0x20UL /**< Bit mask for LDMA_CHDONE5 */
+#define _LDMA_CHDONE_CHDONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE5_DEFAULT (_LDMA_CHDONE_CHDONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6 (0x1UL << 6) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE6_SHIFT 6 /**< Shift value for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_MASK 0x40UL /**< Bit mask for LDMA_CHDONE6 */
+#define _LDMA_CHDONE_CHDONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE6_DEFAULT (_LDMA_CHDONE_CHDONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7 (0x1UL << 7) /**< DMA Channel Link done intr flag */
+#define _LDMA_CHDONE_CHDONE7_SHIFT 7 /**< Shift value for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_MASK 0x80UL /**< Bit mask for LDMA_CHDONE7 */
+#define _LDMA_CHDONE_CHDONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CHDONE */
+#define LDMA_CHDONE_CHDONE7_DEFAULT (_LDMA_CHDONE_CHDONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_CHDONE */
+
+/* Bit fields for LDMA DBGHALT */
+#define _LDMA_DBGHALT_RESETVALUE 0x00000000UL /**< Default value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_MASK 0x000000FFUL /**< Mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_SHIFT 0 /**< Shift value for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_MASK 0xFFUL /**< Bit mask for LDMA_DBGHALT */
+#define _LDMA_DBGHALT_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_DBGHALT */
+#define LDMA_DBGHALT_DBGHALT_DEFAULT (_LDMA_DBGHALT_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_DBGHALT */
+
+/* Bit fields for LDMA SWREQ */
+#define _LDMA_SWREQ_RESETVALUE 0x00000000UL /**< Default value for LDMA_SWREQ */
+#define _LDMA_SWREQ_MASK 0x000000FFUL /**< Mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_SHIFT 0 /**< Shift value for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_MASK 0xFFUL /**< Bit mask for LDMA_SWREQ */
+#define _LDMA_SWREQ_SWREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_SWREQ */
+#define LDMA_SWREQ_SWREQ_DEFAULT (_LDMA_SWREQ_SWREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_SWREQ */
+
+/* Bit fields for LDMA REQDIS */
+#define _LDMA_REQDIS_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQDIS */
+#define _LDMA_REQDIS_MASK 0x000000FFUL /**< Mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_SHIFT 0 /**< Shift value for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_MASK 0xFFUL /**< Bit mask for LDMA_REQDIS */
+#define _LDMA_REQDIS_REQDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQDIS */
+#define LDMA_REQDIS_REQDIS_DEFAULT (_LDMA_REQDIS_REQDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQDIS */
+
+/* Bit fields for LDMA REQPEND */
+#define _LDMA_REQPEND_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQPEND */
+#define _LDMA_REQPEND_MASK 0x000000FFUL /**< Mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_SHIFT 0 /**< Shift value for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_MASK 0xFFUL /**< Bit mask for LDMA_REQPEND */
+#define _LDMA_REQPEND_REQPEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQPEND */
+#define LDMA_REQPEND_REQPEND_DEFAULT (_LDMA_REQPEND_REQPEND_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQPEND */
+
+/* Bit fields for LDMA LINKLOAD */
+#define _LDMA_LINKLOAD_RESETVALUE 0x00000000UL /**< Default value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_MASK 0x000000FFUL /**< Mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_SHIFT 0 /**< Shift value for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_MASK 0xFFUL /**< Bit mask for LDMA_LINKLOAD */
+#define _LDMA_LINKLOAD_LINKLOAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_LINKLOAD */
+#define LDMA_LINKLOAD_LINKLOAD_DEFAULT (_LDMA_LINKLOAD_LINKLOAD_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_LINKLOAD */
+
+/* Bit fields for LDMA REQCLEAR */
+#define _LDMA_REQCLEAR_RESETVALUE 0x00000000UL /**< Default value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_MASK 0x000000FFUL /**< Mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_SHIFT 0 /**< Shift value for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_MASK 0xFFUL /**< Bit mask for LDMA_REQCLEAR */
+#define _LDMA_REQCLEAR_REQCLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_REQCLEAR */
+#define LDMA_REQCLEAR_REQCLEAR_DEFAULT (_LDMA_REQCLEAR_REQCLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_REQCLEAR */
+
+/* Bit fields for LDMA IF */
+#define _LDMA_IF_RESETVALUE 0x00000000UL /**< Default value for LDMA_IF */
+#define _LDMA_IF_MASK 0x800000FFUL /**< Mask for LDMA_IF */
+#define LDMA_IF_DONE0 (0x1UL << 0) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE0_SHIFT 0 /**< Shift value for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_MASK 0x1UL /**< Bit mask for LDMA_DONE0 */
+#define _LDMA_IF_DONE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE0_DEFAULT (_LDMA_IF_DONE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1 (0x1UL << 1) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE1_SHIFT 1 /**< Shift value for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_MASK 0x2UL /**< Bit mask for LDMA_DONE1 */
+#define _LDMA_IF_DONE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE1_DEFAULT (_LDMA_IF_DONE1_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2 (0x1UL << 2) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE2_SHIFT 2 /**< Shift value for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_MASK 0x4UL /**< Bit mask for LDMA_DONE2 */
+#define _LDMA_IF_DONE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE2_DEFAULT (_LDMA_IF_DONE2_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3 (0x1UL << 3) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE3_SHIFT 3 /**< Shift value for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_MASK 0x8UL /**< Bit mask for LDMA_DONE3 */
+#define _LDMA_IF_DONE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE3_DEFAULT (_LDMA_IF_DONE3_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4 (0x1UL << 4) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE4_SHIFT 4 /**< Shift value for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_MASK 0x10UL /**< Bit mask for LDMA_DONE4 */
+#define _LDMA_IF_DONE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE4_DEFAULT (_LDMA_IF_DONE4_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5 (0x1UL << 5) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE5_SHIFT 5 /**< Shift value for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_MASK 0x20UL /**< Bit mask for LDMA_DONE5 */
+#define _LDMA_IF_DONE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE5_DEFAULT (_LDMA_IF_DONE5_DEFAULT << 5) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6 (0x1UL << 6) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE6_SHIFT 6 /**< Shift value for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_MASK 0x40UL /**< Bit mask for LDMA_DONE6 */
+#define _LDMA_IF_DONE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE6_DEFAULT (_LDMA_IF_DONE6_DEFAULT << 6) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7 (0x1UL << 7) /**< DMA Structure Operation Done */
+#define _LDMA_IF_DONE7_SHIFT 7 /**< Shift value for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_MASK 0x80UL /**< Bit mask for LDMA_DONE7 */
+#define _LDMA_IF_DONE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_DONE7_DEFAULT (_LDMA_IF_DONE7_DEFAULT << 7) /**< Shifted mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR (0x1UL << 31) /**< Error Flag */
+#define _LDMA_IF_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IF_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IF_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IF */
+#define LDMA_IF_ERROR_DEFAULT (_LDMA_IF_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IF */
+
+/* Bit fields for LDMA IEN */
+#define _LDMA_IEN_RESETVALUE 0x00000000UL /**< Default value for LDMA_IEN */
+#define _LDMA_IEN_MASK 0x800000FFUL /**< Mask for LDMA_IEN */
+#define _LDMA_IEN_CHDONE_SHIFT 0 /**< Shift value for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_MASK 0xFFUL /**< Bit mask for LDMA_CHDONE */
+#define _LDMA_IEN_CHDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_CHDONE_DEFAULT (_LDMA_IEN_CHDONE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR (0x1UL << 31) /**< Enable or disable the error interrupt */
+#define _LDMA_IEN_ERROR_SHIFT 31 /**< Shift value for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_MASK 0x80000000UL /**< Bit mask for LDMA_ERROR */
+#define _LDMA_IEN_ERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_IEN */
+#define LDMA_IEN_ERROR_DEFAULT (_LDMA_IEN_ERROR_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_IEN */
+
+/* Bit fields for LDMA CH_CFG */
+#define _LDMA_CH_CFG_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_MASK 0x00330000UL /**< Mask for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_SHIFT 16 /**< Shift value for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_MASK 0x30000UL /**< Bit mask for LDMA_ARBSLOTS */
+#define _LDMA_CH_CFG_ARBSLOTS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_ARBSLOTS_EIGHT 0x00000003UL /**< Mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_DEFAULT (_LDMA_CH_CFG_ARBSLOTS_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_ONE (_LDMA_CH_CFG_ARBSLOTS_ONE << 16) /**< Shifted mode ONE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_TWO (_LDMA_CH_CFG_ARBSLOTS_TWO << 16) /**< Shifted mode TWO for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_FOUR (_LDMA_CH_CFG_ARBSLOTS_FOUR << 16) /**< Shifted mode FOUR for LDMA_CH_CFG */
+#define LDMA_CH_CFG_ARBSLOTS_EIGHT (_LDMA_CH_CFG_ARBSLOTS_EIGHT << 16) /**< Shifted mode EIGHT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN (0x1UL << 20) /**< Source Address Increment Sign */
+#define _LDMA_CH_CFG_SRCINCSIGN_SHIFT 20 /**< Shift value for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_MASK 0x100000UL /**< Bit mask for LDMA_SRCINCSIGN */
+#define _LDMA_CH_CFG_SRCINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_SRCINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_DEFAULT (_LDMA_CH_CFG_SRCINCSIGN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_POSITIVE (_LDMA_CH_CFG_SRCINCSIGN_POSITIVE << 20) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_SRCINCSIGN_NEGATIVE (_LDMA_CH_CFG_SRCINCSIGN_NEGATIVE << 20) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN (0x1UL << 21) /**< Destination Address Increment Sign */
+#define _LDMA_CH_CFG_DSTINCSIGN_SHIFT 21 /**< Shift value for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_MASK 0x200000UL /**< Bit mask for LDMA_DSTINCSIGN */
+#define _LDMA_CH_CFG_DSTINCSIGN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_POSITIVE 0x00000000UL /**< Mode POSITIVE for LDMA_CH_CFG */
+#define _LDMA_CH_CFG_DSTINCSIGN_NEGATIVE 0x00000001UL /**< Mode NEGATIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_DEFAULT (_LDMA_CH_CFG_DSTINCSIGN_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_POSITIVE (_LDMA_CH_CFG_DSTINCSIGN_POSITIVE << 21) /**< Shifted mode POSITIVE for LDMA_CH_CFG */
+#define LDMA_CH_CFG_DSTINCSIGN_NEGATIVE (_LDMA_CH_CFG_DSTINCSIGN_NEGATIVE << 21) /**< Shifted mode NEGATIVE for LDMA_CH_CFG */
+
+/* Bit fields for LDMA CH_LOOP */
+#define _LDMA_CH_LOOP_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_MASK 0x000000FFUL /**< Mask for LDMA_CH_LOOP */
+#define _LDMA_CH_LOOP_LOOPCNT_SHIFT 0 /**< Shift value for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_MASK 0xFFUL /**< Bit mask for LDMA_LOOPCNT */
+#define _LDMA_CH_LOOP_LOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LOOP */
+#define LDMA_CH_LOOP_LOOPCNT_DEFAULT (_LDMA_CH_LOOP_LOOPCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LOOP */
+
+/* Bit fields for LDMA CH_CTRL */
+#define _LDMA_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_MASK 0xFFFFFFFBUL /**< Mask for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SHIFT 0 /**< Shift value for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_MASK 0x3UL /**< Bit mask for LDMA_STRUCTTYPE */
+#define _LDMA_CH_CTRL_STRUCTTYPE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_TRANSFER 0x00000000UL /**< Mode TRANSFER for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE 0x00000001UL /**< Mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_STRUCTTYPE_WRITE 0x00000002UL /**< Mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_DEFAULT (_LDMA_CH_CTRL_STRUCTTYPE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_TRANSFER (_LDMA_CH_CTRL_STRUCTTYPE_TRANSFER << 0) /**< Shifted mode TRANSFER for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE (_LDMA_CH_CTRL_STRUCTTYPE_SYNCHRONIZE << 0) /**< Shifted mode SYNCHRONIZE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTTYPE_WRITE (_LDMA_CH_CTRL_STRUCTTYPE_WRITE << 0) /**< Shifted mode WRITE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ (0x1UL << 3) /**< Structure DMA Transfer Request */
+#define _LDMA_CH_CTRL_STRUCTREQ_SHIFT 3 /**< Shift value for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_MASK 0x8UL /**< Bit mask for LDMA_STRUCTREQ */
+#define _LDMA_CH_CTRL_STRUCTREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_STRUCTREQ_DEFAULT (_LDMA_CH_CTRL_STRUCTREQ_DEFAULT << 3) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_XFERCNT_SHIFT 4 /**< Shift value for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_MASK 0x7FF0UL /**< Bit mask for LDMA_XFERCNT */
+#define _LDMA_CH_CTRL_XFERCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_XFERCNT_DEFAULT (_LDMA_CH_CTRL_XFERCNT_DEFAULT << 4) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP (0x1UL << 15) /**< Endian Byte Swap */
+#define _LDMA_CH_CTRL_BYTESWAP_SHIFT 15 /**< Shift value for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_MASK 0x8000UL /**< Bit mask for LDMA_BYTESWAP */
+#define _LDMA_CH_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BYTESWAP_DEFAULT (_LDMA_CH_CTRL_BYTESWAP_DEFAULT << 15) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_SHIFT 16 /**< Shift value for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_MASK 0xF0000UL /**< Bit mask for LDMA_BLOCKSIZE */
+#define _LDMA_CH_CTRL_BLOCKSIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1 0x00000000UL /**< Mode UNIT1 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT2 0x00000001UL /**< Mode UNIT2 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT3 0x00000002UL /**< Mode UNIT3 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT4 0x00000003UL /**< Mode UNIT4 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT6 0x00000004UL /**< Mode UNIT6 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT8 0x00000005UL /**< Mode UNIT8 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT16 0x00000007UL /**< Mode UNIT16 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT32 0x00000009UL /**< Mode UNIT32 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT64 0x0000000AUL /**< Mode UNIT64 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT128 0x0000000BUL /**< Mode UNIT128 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT256 0x0000000CUL /**< Mode UNIT256 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT512 0x0000000DUL /**< Mode UNIT512 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 0x0000000EUL /**< Mode UNIT1024 for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_BLOCKSIZE_ALL 0x0000000FUL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_DEFAULT (_LDMA_CH_CTRL_BLOCKSIZE_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1 << 16) /**< Shifted mode UNIT1 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT2 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT2 << 16) /**< Shifted mode UNIT2 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT3 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT3 << 16) /**< Shifted mode UNIT3 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT4 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT4 << 16) /**< Shifted mode UNIT4 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT6 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT6 << 16) /**< Shifted mode UNIT6 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT8 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT8 << 16) /**< Shifted mode UNIT8 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT16 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT16 << 16) /**< Shifted mode UNIT16 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT32 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT32 << 16) /**< Shifted mode UNIT32 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT64 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT64 << 16) /**< Shifted mode UNIT64 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT128 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT128 << 16) /**< Shifted mode UNIT128 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT256 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT256 << 16) /**< Shifted mode UNIT256 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT512 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT512 << 16) /**< Shifted mode UNIT512 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 (_LDMA_CH_CTRL_BLOCKSIZE_UNIT1024 << 16) /**< Shifted mode UNIT1024 for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_BLOCKSIZE_ALL (_LDMA_CH_CTRL_BLOCKSIZE_ALL << 16) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN (0x1UL << 20) /**< DMA Operation Done Interrupt Flag Set En */
+#define _LDMA_CH_CTRL_DONEIEN_SHIFT 20 /**< Shift value for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_MASK 0x100000UL /**< Bit mask for LDMA_DONEIEN */
+#define _LDMA_CH_CTRL_DONEIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DONEIEN_DEFAULT (_LDMA_CH_CTRL_DONEIEN_DEFAULT << 20) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE (0x1UL << 21) /**< DMA Request Transfer Mode Select */
+#define _LDMA_CH_CTRL_REQMODE_SHIFT 21 /**< Shift value for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_MASK 0x200000UL /**< Bit mask for LDMA_REQMODE */
+#define _LDMA_CH_CTRL_REQMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_BLOCK 0x00000000UL /**< Mode BLOCK for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_REQMODE_ALL 0x00000001UL /**< Mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_DEFAULT (_LDMA_CH_CTRL_REQMODE_DEFAULT << 21) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_BLOCK (_LDMA_CH_CTRL_REQMODE_BLOCK << 21) /**< Shifted mode BLOCK for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_REQMODE_ALL (_LDMA_CH_CTRL_REQMODE_ALL << 21) /**< Shifted mode ALL for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT (0x1UL << 22) /**< Decrement Loop Count */
+#define _LDMA_CH_CTRL_DECLOOPCNT_SHIFT 22 /**< Shift value for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_MASK 0x400000UL /**< Bit mask for LDMA_DECLOOPCNT */
+#define _LDMA_CH_CTRL_DECLOOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DECLOOPCNT_DEFAULT (_LDMA_CH_CTRL_DECLOOPCNT_DEFAULT << 22) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ (0x1UL << 23) /**< Ignore Sreq */
+#define _LDMA_CH_CTRL_IGNORESREQ_SHIFT 23 /**< Shift value for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_MASK 0x800000UL /**< Bit mask for LDMA_IGNORESREQ */
+#define _LDMA_CH_CTRL_IGNORESREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_IGNORESREQ_DEFAULT (_LDMA_CH_CTRL_IGNORESREQ_DEFAULT << 23) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_SHIFT 24 /**< Shift value for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_MASK 0x3000000UL /**< Bit mask for LDMA_SRCINC */
+#define _LDMA_CH_CTRL_SRCINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_DEFAULT (_LDMA_CH_CTRL_SRCINC_DEFAULT << 24) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_ONE (_LDMA_CH_CTRL_SRCINC_ONE << 24) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_TWO (_LDMA_CH_CTRL_SRCINC_TWO << 24) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_FOUR (_LDMA_CH_CTRL_SRCINC_FOUR << 24) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCINC_NONE (_LDMA_CH_CTRL_SRCINC_NONE << 24) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_SHIFT 26 /**< Shift value for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_MASK 0xC000000UL /**< Bit mask for LDMA_SIZE */
+#define _LDMA_CH_CTRL_SIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_BYTE 0x00000000UL /**< Mode BYTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_HALFWORD 0x00000001UL /**< Mode HALFWORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SIZE_WORD 0x00000002UL /**< Mode WORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_DEFAULT (_LDMA_CH_CTRL_SIZE_DEFAULT << 26) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_BYTE (_LDMA_CH_CTRL_SIZE_BYTE << 26) /**< Shifted mode BYTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_HALFWORD (_LDMA_CH_CTRL_SIZE_HALFWORD << 26) /**< Shifted mode HALFWORD for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SIZE_WORD (_LDMA_CH_CTRL_SIZE_WORD << 26) /**< Shifted mode WORD for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_SHIFT 28 /**< Shift value for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_MASK 0x30000000UL /**< Bit mask for LDMA_DSTINC */
+#define _LDMA_CH_CTRL_DSTINC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_ONE 0x00000000UL /**< Mode ONE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_TWO 0x00000001UL /**< Mode TWO for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_FOUR 0x00000002UL /**< Mode FOUR for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTINC_NONE 0x00000003UL /**< Mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_DEFAULT (_LDMA_CH_CTRL_DSTINC_DEFAULT << 28) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_ONE (_LDMA_CH_CTRL_DSTINC_ONE << 28) /**< Shifted mode ONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_TWO (_LDMA_CH_CTRL_DSTINC_TWO << 28) /**< Shifted mode TWO for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_FOUR (_LDMA_CH_CTRL_DSTINC_FOUR << 28) /**< Shifted mode FOUR for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTINC_NONE (_LDMA_CH_CTRL_DSTINC_NONE << 28) /**< Shifted mode NONE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE (0x1UL << 30) /**< Source Addressing Mode */
+#define _LDMA_CH_CTRL_SRCMODE_SHIFT 30 /**< Shift value for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_MASK 0x40000000UL /**< Bit mask for LDMA_SRCMODE */
+#define _LDMA_CH_CTRL_SRCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_SRCMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_DEFAULT (_LDMA_CH_CTRL_SRCMODE_DEFAULT << 30) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_ABSOLUTE (_LDMA_CH_CTRL_SRCMODE_ABSOLUTE << 30) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_SRCMODE_RELATIVE (_LDMA_CH_CTRL_SRCMODE_RELATIVE << 30) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE (0x1UL << 31) /**< Destination Addressing Mode */
+#define _LDMA_CH_CTRL_DSTMODE_SHIFT 31 /**< Shift value for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_MASK 0x80000000UL /**< Bit mask for LDMA_DSTMODE */
+#define _LDMA_CH_CTRL_DSTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_CTRL */
+#define _LDMA_CH_CTRL_DSTMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_DEFAULT (_LDMA_CH_CTRL_DSTMODE_DEFAULT << 31) /**< Shifted mode DEFAULT for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_ABSOLUTE (_LDMA_CH_CTRL_DSTMODE_ABSOLUTE << 31) /**< Shifted mode ABSOLUTE for LDMA_CH_CTRL */
+#define LDMA_CH_CTRL_DSTMODE_RELATIVE (_LDMA_CH_CTRL_DSTMODE_RELATIVE << 31) /**< Shifted mode RELATIVE for LDMA_CH_CTRL */
+
+/* Bit fields for LDMA CH_SRC */
+#define _LDMA_CH_SRC_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_SRC */
+#define _LDMA_CH_SRC_SRCADDR_SHIFT 0 /**< Shift value for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_SRCADDR */
+#define _LDMA_CH_SRC_SRCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_SRC */
+#define LDMA_CH_SRC_SRCADDR_DEFAULT (_LDMA_CH_SRC_SRCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_SRC */
+
+/* Bit fields for LDMA CH_DST */
+#define _LDMA_CH_DST_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_DST */
+#define _LDMA_CH_DST_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_DST */
+#define _LDMA_CH_DST_DSTADDR_SHIFT 0 /**< Shift value for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_MASK 0xFFFFFFFFUL /**< Bit mask for LDMA_DSTADDR */
+#define _LDMA_CH_DST_DSTADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_DST */
+#define LDMA_CH_DST_DSTADDR_DEFAULT (_LDMA_CH_DST_DSTADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_DST */
+
+/* Bit fields for LDMA CH_LINK */
+#define _LDMA_CH_LINK_RESETVALUE 0x00000000UL /**< Default value for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_MASK 0xFFFFFFFFUL /**< Mask for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE (0x1UL << 0) /**< Link Structure Addressing Mode */
+#define _LDMA_CH_LINK_LINKMODE_SHIFT 0 /**< Shift value for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_MASK 0x1UL /**< Bit mask for LDMA_LINKMODE */
+#define _LDMA_CH_LINK_LINKMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_ABSOLUTE 0x00000000UL /**< Mode ABSOLUTE for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKMODE_RELATIVE 0x00000001UL /**< Mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_DEFAULT (_LDMA_CH_LINK_LINKMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_ABSOLUTE (_LDMA_CH_LINK_LINKMODE_ABSOLUTE << 0) /**< Shifted mode ABSOLUTE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKMODE_RELATIVE (_LDMA_CH_LINK_LINKMODE_RELATIVE << 0) /**< Shifted mode RELATIVE for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK (0x1UL << 1) /**< Link Next Structure */
+#define _LDMA_CH_LINK_LINK_SHIFT 1 /**< Shift value for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_MASK 0x2UL /**< Bit mask for LDMA_LINK */
+#define _LDMA_CH_LINK_LINK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINK_DEFAULT (_LDMA_CH_LINK_LINK_DEFAULT << 1) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+#define _LDMA_CH_LINK_LINKADDR_SHIFT 2 /**< Shift value for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_MASK 0xFFFFFFFCUL /**< Bit mask for LDMA_LINKADDR */
+#define _LDMA_CH_LINK_LINKADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMA_CH_LINK */
+#define LDMA_CH_LINK_LINKADDR_DEFAULT (_LDMA_CH_LINK_LINKADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for LDMA_CH_LINK */
+
+/** @} End of group EFR32ZG23_LDMA_BitFields */
+/** @} End of group EFR32ZG23_LDMA */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LDMA_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar.h
new file mode 100644
index 000000000..66fd91c38
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar.h
@@ -0,0 +1,96 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LDMAXBAR register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LDMAXBAR_H
+#define EFR32ZG23_LDMAXBAR_H
+#define LDMAXBAR_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LDMAXBAR LDMAXBAR
+ * @{
+ * @brief EFR32ZG23 LDMAXBAR Register Declaration.
+ *****************************************************************************/
+
+/** LDMAXBAR CH Register Group Declaration. */
+typedef struct ldmaxbar_ch_typedef{
+ __IOM uint32_t REQSEL; /**< Channel Peripheral Request Select Reg... */
+} LDMAXBAR_CH_TypeDef;
+
+/** LDMAXBAR Register Declaration. */
+typedef struct ldmaxbar_typedef{
+ __IM uint32_t IPVERSION; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED0[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_SET[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED1[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_CLR[8U]; /**< DMA Channel Registers */
+ uint32_t RESERVED2[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP veersion ID */
+ LDMAXBAR_CH_TypeDef CH_TGL[8U]; /**< DMA Channel Registers */
+} LDMAXBAR_TypeDef;
+/** @} End of group EFR32ZG23_LDMAXBAR */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LDMAXBAR
+ * @{
+ * @defgroup EFR32ZG23_LDMAXBAR_BitFields LDMAXBAR Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LDMAXBAR IPVERSION */
+#define _LDMAXBAR_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LDMAXBAR_IPVERSION */
+#define _LDMAXBAR_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for LDMAXBAR_IPVERSION */
+#define LDMAXBAR_IPVERSION_IPVERSION_DEFAULT (_LDMAXBAR_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_IPVERSION */
+
+/* Bit fields for LDMAXBAR CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_RESETVALUE 0x00000000UL /**< Default value for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_MASK 0x003F000FUL /**< Mask for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_SHIFT 0 /**< Shift value for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MASK 0xFUL /**< Bit mask for LDMAXBAR_SIGSEL */
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_SHIFT 16 /**< Shift value for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MASK 0x3F0000UL /**< Bit mask for LDMAXBAR_SOURCESEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT (_LDMAXBAR_CH_REQSEL_SOURCESEL_DEFAULT << 16) /**< Shifted mode DEFAULT for LDMAXBAR_CH_REQSEL */
+
+/** @} End of group EFR32ZG23_LDMAXBAR_BitFields */
+/** @} End of group EFR32ZG23_LDMAXBAR */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LDMAXBAR_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar_defines.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar_defines.h
new file mode 100644
index 000000000..f3b7ab882
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ldmaxbar_defines.h
@@ -0,0 +1,165 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LDMA XBAR channel request soruce definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LDMAXBAR_DEFINES_H
+#define EFR32ZG23_LDMAXBAR_DEFINES_H
+
+// Module source selection indices
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_NONE 0x00000000UL /**< Mode NONE for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR 0x00000001UL /**< Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 0x00000002UL /**< Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 0x00000003UL /**< Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 0x00000004UL /**< Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 0x00000005UL /**< Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 0x00000006UL /**< Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 0x0000000aUL /**< Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_MSC 0x0000000bUL /**< Mode MSC for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 0x0000000cUL /**< Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 0x0000000dUL /**< Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 0x0000000eUL /**< Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_VDAC0 0x0000000fUL /**< Mode VDAC0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 0x00000010UL /**< Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 0x00000011UL /**< Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2 0x00000012UL /**< Mode EUSART2 for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_LESENSE 0x00000013UL /**< Mode LESENSE for LDMAXBAR_CH_REQSEL */
+#define _LDMAXBAR_CH_REQSEL_SOURCESEL_LCD 0x00000014UL /**< Mode LCD for LDMAXBAR_CH_REQSEL */
+
+// Shifted source selection indices
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_NONE (_LDMAXBAR_CH_REQSEL_SOURCESEL_NONE << 16)
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR (_LDMAXBAR_CH_REQSEL_SOURCESEL_LDMAXBAR << 16) /**< Shifted Mode LDMAXBAR for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0 << 16) /**< Shifted Mode TIMER0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1 << 16) /**< Shifted Mode TIMER1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_USART0 << 16) /**< Shifted Mode USART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0 << 16) /**< Shifted Mode I2C0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1 << 16) /**< Shifted Mode I2C1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0 << 16) /**< Shifted Mode IADC0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_MSC (_LDMAXBAR_CH_REQSEL_SOURCESEL_MSC << 16) /**< Shifted Mode MSC for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2 << 16) /**< Shifted Mode TIMER2 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3 << 16) /**< Shifted Mode TIMER3 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 (_LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER4 << 16) /**< Shifted Mode TIMER4 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_VDAC0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_VDAC0 << 16) /**< Shifted Mode VDAC0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0 << 16) /**< Shifted Mode EUSART0 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1 << 16) /**< Shifted Mode EUSART1 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2 (_LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2 << 16) /**< Shifted Mode EUSART2 for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_LESENSE (_LDMAXBAR_CH_REQSEL_SOURCESEL_LESENSE << 16) /**< Shifted Mode LESENSE for LDMAXBAR_CH_REQSEL */
+#define LDMAXBAR_CH_REQSEL_SOURCESEL_LCD (_LDMAXBAR_CH_REQSEL_SOURCESEL_LCD << 16) /**< Shifted Mode LCD for LDMAXBAR_CH_REQSEL */
+
+// Module signal selection indices
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 0x00000000UL /** Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 0x00000001UL /** Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 0x00000000UL /** Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 0x00000001UL /** Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 0x00000002UL /** Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF 0x00000003UL /** Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 0x00000000UL /** Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 0x00000001UL /** Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 0x00000002UL /** Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF 0x00000003UL /** Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV 0x00000000UL /** Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT 0x00000001UL /** Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL 0x00000002UL /** Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT 0x00000003UL /** Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY 0x00000004UL /** Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV 0x00000000UL /** Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL 0x00000001UL /** Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV 0x00000000UL /** Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL 0x00000001UL /** Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN 0x00000000UL /** Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE 0x00000001UL /** Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA 0x00000000UL /** Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 0x00000000UL /** Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 0x00000001UL /** Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 0x00000002UL /** Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF 0x00000003UL /** Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 0x00000000UL /** Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 0x00000001UL /** Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 0x00000002UL /** Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF 0x00000003UL /** Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 0x00000000UL /** Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 0x00000001UL /** Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 0x00000002UL /** Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF 0x00000003UL /** Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH0_REQ 0x00000000UL /** Mode VDAC0CH0_REQ for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH1_REQ 0x00000001UL /** Mode VDAC0CH1_REQ for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL 0x00000000UL /** Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL 0x00000001UL /** Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL 0x00000000UL /** Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL 0x00000001UL /** Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL 0x00000000UL /** Mode EUSART2RXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL 0x00000001UL /** Mode EUSART2TXFL for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LESENSEFIFO 0x00000000UL /** Mode LESENSEFIFO for LDMAXBAR_CH_REQSEL**/
+#define _LDMAXBAR_CH_REQSEL_SIGSEL_LCD 0x00000000UL /** Mode LCD for LDMAXBAR_CH_REQSEL**/
+
+// Shifted Module signal selection indices
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ0 << 0) /** Shifted Mode LDMAXBARPRSREQ0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 (_LDMAXBAR_CH_REQSEL_SIGSEL_LDMAXBARPRSREQ1 << 0) /** Shifted Mode LDMAXBARPRSREQ1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 << 0) /** Shifted Mode TIMER0CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 << 0) /** Shifted Mode TIMER0CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 << 0) /** Shifted Mode TIMER0CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF << 0) /** Shifted Mode TIMER0UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 << 0) /** Shifted Mode TIMER1CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 << 0) /** Shifted Mode TIMER1CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 << 0) /** Shifted Mode TIMER1CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF << 0) /** Shifted Mode TIMER1UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV << 0) /** Shifted Mode USART0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT << 0) /** Shifted Mode USART0RXDATAVRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL << 0) /** Shifted Mode USART0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT << 0) /** Shifted Mode USART0TXBLRIGHT for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY (_LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY << 0) /** Shifted Mode USART0TXEMPTY for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV << 0) /** Shifted Mode I2C0RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL << 0) /** Shifted Mode I2C0TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV << 0) /** Shifted Mode I2C1RXDATAV for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL (_LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL << 0) /** Shifted Mode I2C1TXBL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN << 0) /** Shifted Mode IADC0IADC_SCAN for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE (_LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE << 0) /** Shifted Mode IADC0IADC_SINGLE for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA (_LDMAXBAR_CH_REQSEL_SIGSEL_MSCWDATA << 0) /** Shifted Mode MSCWDATA for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 << 0) /** Shifted Mode TIMER2CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 << 0) /** Shifted Mode TIMER2CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 << 0) /** Shifted Mode TIMER2CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF << 0) /** Shifted Mode TIMER2UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 << 0) /** Shifted Mode TIMER3CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 << 0) /** Shifted Mode TIMER3CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 << 0) /** Shifted Mode TIMER3CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF << 0) /** Shifted Mode TIMER3UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC0 << 0) /** Shifted Mode TIMER4CC0 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC1 << 0) /** Shifted Mode TIMER4CC1 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4CC2 << 0) /** Shifted Mode TIMER4CC2 for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF (_LDMAXBAR_CH_REQSEL_SIGSEL_TIMER4UFOF << 0) /** Shifted Mode TIMER4UFOF for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH0_REQ (_LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH0_REQ << 0) /** Shifted Mode VDAC0CH0_REQ for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH1_REQ (_LDMAXBAR_CH_REQSEL_SIGSEL_VDAC0CH1_REQ << 0) /** Shifted Mode VDAC0CH1_REQ for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL << 0) /** Shifted Mode EUSART0RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL << 0) /** Shifted Mode EUSART0TXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL << 0) /** Shifted Mode EUSART1RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL << 0) /** Shifted Mode EUSART1TXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL << 0) /** Shifted Mode EUSART2RXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL (_LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL << 0) /** Shifted Mode EUSART2TXFL for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LESENSEFIFO (_LDMAXBAR_CH_REQSEL_SIGSEL_LESENSEFIFO << 0) /** Shifted Mode LESENSEFIFO for LDMAXBAR_CH_REQSEL**/
+#define LDMAXBAR_CH_REQSEL_SIGSEL_LCD (_LDMAXBAR_CH_REQSEL_SIGSEL_LCD << 0) /** Shifted Mode LCD for LDMAXBAR_CH_REQSEL**/
+
+#endif // EFR32ZG23_LDMAXBAR_DEFINES_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lesense.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lesense.h
new file mode 100644
index 000000000..d2fe29010
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lesense.h
@@ -0,0 +1,1222 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LESENSE register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LESENSE_H
+#define EFR32ZG23_LESENSE_H
+#define LESENSE_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LESENSE LESENSE
+ * @{
+ * @brief EFR32ZG23 LESENSE Register Declaration.
+ *****************************************************************************/
+
+/** LESENSE CH Register Group Declaration. */
+typedef struct lesense_ch_typedef{
+ __IOM uint32_t TIMING; /**< Scan configuration */
+ __IOM uint32_t INTERACT; /**< Scan configuration */
+ __IOM uint32_t EVALCFG; /**< Scan configuration */
+ __IOM uint32_t EVALTHRES; /**< Scan confguration */
+} LESENSE_CH_TypeDef;
+
+/** LESENSE ST Register Group Declaration. */
+typedef struct lesense_st_typedef{
+ __IOM uint32_t ARC; /**< State transition Arc */
+} LESENSE_ST_TypeDef;
+
+/** LESENSE Register Declaration. */
+typedef struct lesense_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Enable */
+ __IOM uint32_t SWRST; /**< Software Reset Register */
+ __IOM uint32_t CFG; /**< Configuration */
+ __IOM uint32_t TIMCTRL; /**< Timing Control */
+ __IOM uint32_t PERCTRL; /**< Peripheral Control */
+ __IOM uint32_t DECCTRL; /**< Decoder control */
+ __IOM uint32_t EVALCTRL; /**< LESENSE evaluation */
+ __IOM uint32_t PRSCTRL; /**< PRS control */
+ __IOM uint32_t CMD; /**< Command */
+ __IOM uint32_t CHEN; /**< Channel enable */
+ __IM uint32_t SCANRES; /**< Scan result */
+ __IM uint32_t STATUS; /**< Status */
+ __IM uint32_t RESCOUNT; /**< Result FIFO Count */
+ __IM uint32_t RESFIFO; /**< Result Fifo */
+ __IM uint32_t CURCH; /**< Current channel index */
+ __IM uint32_t DECSTATE; /**< Current decoder state */
+ __IM uint32_t SENSORSTATE; /**< Sensor State */
+ __IOM uint32_t IDLECONF; /**< IDLE Configuration */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY; /**< Synchronization */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enables */
+ uint32_t RESERVED2[38U]; /**< Reserved for future use */
+ LESENSE_CH_TypeDef CH[16U]; /**< Channels */
+ LESENSE_ST_TypeDef ST[64U]; /**< Decoding FSM Arcs */
+ uint32_t RESERVED3[832U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Enable */
+ __IOM uint32_t SWRST_SET; /**< Software Reset Register */
+ __IOM uint32_t CFG_SET; /**< Configuration */
+ __IOM uint32_t TIMCTRL_SET; /**< Timing Control */
+ __IOM uint32_t PERCTRL_SET; /**< Peripheral Control */
+ __IOM uint32_t DECCTRL_SET; /**< Decoder control */
+ __IOM uint32_t EVALCTRL_SET; /**< LESENSE evaluation */
+ __IOM uint32_t PRSCTRL_SET; /**< PRS control */
+ __IOM uint32_t CMD_SET; /**< Command */
+ __IOM uint32_t CHEN_SET; /**< Channel enable */
+ __IM uint32_t SCANRES_SET; /**< Scan result */
+ __IM uint32_t STATUS_SET; /**< Status */
+ __IM uint32_t RESCOUNT_SET; /**< Result FIFO Count */
+ __IM uint32_t RESFIFO_SET; /**< Result Fifo */
+ __IM uint32_t CURCH_SET; /**< Current channel index */
+ __IM uint32_t DECSTATE_SET; /**< Current decoder state */
+ __IM uint32_t SENSORSTATE_SET; /**< Sensor State */
+ __IOM uint32_t IDLECONF_SET; /**< IDLE Configuration */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization */
+ uint32_t RESERVED5[3U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enables */
+ uint32_t RESERVED6[38U]; /**< Reserved for future use */
+ LESENSE_CH_TypeDef CH_SET[16U]; /**< Channels */
+ LESENSE_ST_TypeDef ST_SET[64U]; /**< Decoding FSM Arcs */
+ uint32_t RESERVED7[832U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Enable */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration */
+ __IOM uint32_t TIMCTRL_CLR; /**< Timing Control */
+ __IOM uint32_t PERCTRL_CLR; /**< Peripheral Control */
+ __IOM uint32_t DECCTRL_CLR; /**< Decoder control */
+ __IOM uint32_t EVALCTRL_CLR; /**< LESENSE evaluation */
+ __IOM uint32_t PRSCTRL_CLR; /**< PRS control */
+ __IOM uint32_t CMD_CLR; /**< Command */
+ __IOM uint32_t CHEN_CLR; /**< Channel enable */
+ __IM uint32_t SCANRES_CLR; /**< Scan result */
+ __IM uint32_t STATUS_CLR; /**< Status */
+ __IM uint32_t RESCOUNT_CLR; /**< Result FIFO Count */
+ __IM uint32_t RESFIFO_CLR; /**< Result Fifo */
+ __IM uint32_t CURCH_CLR; /**< Current channel index */
+ __IM uint32_t DECSTATE_CLR; /**< Current decoder state */
+ __IM uint32_t SENSORSTATE_CLR; /**< Sensor State */
+ __IOM uint32_t IDLECONF_CLR; /**< IDLE Configuration */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization */
+ uint32_t RESERVED9[3U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enables */
+ uint32_t RESERVED10[38U]; /**< Reserved for future use */
+ LESENSE_CH_TypeDef CH_CLR[16U]; /**< Channels */
+ LESENSE_ST_TypeDef ST_CLR[64U]; /**< Decoding FSM Arcs */
+ uint32_t RESERVED11[832U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Enable */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration */
+ __IOM uint32_t TIMCTRL_TGL; /**< Timing Control */
+ __IOM uint32_t PERCTRL_TGL; /**< Peripheral Control */
+ __IOM uint32_t DECCTRL_TGL; /**< Decoder control */
+ __IOM uint32_t EVALCTRL_TGL; /**< LESENSE evaluation */
+ __IOM uint32_t PRSCTRL_TGL; /**< PRS control */
+ __IOM uint32_t CMD_TGL; /**< Command */
+ __IOM uint32_t CHEN_TGL; /**< Channel enable */
+ __IM uint32_t SCANRES_TGL; /**< Scan result */
+ __IM uint32_t STATUS_TGL; /**< Status */
+ __IM uint32_t RESCOUNT_TGL; /**< Result FIFO Count */
+ __IM uint32_t RESFIFO_TGL; /**< Result Fifo */
+ __IM uint32_t CURCH_TGL; /**< Current channel index */
+ __IM uint32_t DECSTATE_TGL; /**< Current decoder state */
+ __IM uint32_t SENSORSTATE_TGL; /**< Sensor State */
+ __IOM uint32_t IDLECONF_TGL; /**< IDLE Configuration */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enables */
+ uint32_t RESERVED14[38U]; /**< Reserved for future use */
+ LESENSE_CH_TypeDef CH_TGL[16U]; /**< Channels */
+ LESENSE_ST_TypeDef ST_TGL[64U]; /**< Decoding FSM Arcs */
+} LESENSE_TypeDef;
+/** @} End of group EFR32ZG23_LESENSE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LESENSE
+ * @{
+ * @defgroup EFR32ZG23_LESENSE_BitFields LESENSE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LESENSE IPVERSION */
+#define _LESENSE_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for LESENSE_IPVERSION */
+#define _LESENSE_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LESENSE_IPVERSION */
+#define _LESENSE_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LESENSE_IPVERSION */
+#define _LESENSE_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LESENSE_IPVERSION */
+#define _LESENSE_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for LESENSE_IPVERSION */
+#define LESENSE_IPVERSION_IPVERSION_DEFAULT (_LESENSE_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_IPVERSION */
+
+/* Bit fields for LESENSE EN */
+#define _LESENSE_EN_RESETVALUE 0x00000000UL /**< Default value for LESENSE_EN */
+#define _LESENSE_EN_MASK 0x00000003UL /**< Mask for LESENSE_EN */
+#define LESENSE_EN_EN (0x1UL << 0) /**< Enable */
+#define _LESENSE_EN_EN_SHIFT 0 /**< Shift value for LESENSE_EN */
+#define _LESENSE_EN_EN_MASK 0x1UL /**< Bit mask for LESENSE_EN */
+#define _LESENSE_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_EN */
+#define _LESENSE_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_EN */
+#define _LESENSE_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for LESENSE_EN */
+#define LESENSE_EN_EN_DEFAULT (_LESENSE_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_EN */
+#define LESENSE_EN_EN_DISABLE (_LESENSE_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for LESENSE_EN */
+#define LESENSE_EN_EN_ENABLE (_LESENSE_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for LESENSE_EN */
+#define LESENSE_EN_DISABLING (0x1UL << 1) /**< Disabling */
+#define _LESENSE_EN_DISABLING_SHIFT 1 /**< Shift value for LESENSE_DISABLING */
+#define _LESENSE_EN_DISABLING_MASK 0x2UL /**< Bit mask for LESENSE_DISABLING */
+#define _LESENSE_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_EN */
+#define LESENSE_EN_DISABLING_DEFAULT (_LESENSE_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_EN */
+
+/* Bit fields for LESENSE SWRST */
+#define _LESENSE_SWRST_RESETVALUE 0x00000000UL /**< Default value for LESENSE_SWRST */
+#define _LESENSE_SWRST_MASK 0x00000003UL /**< Mask for LESENSE_SWRST */
+#define LESENSE_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _LESENSE_SWRST_SWRST_SHIFT 0 /**< Shift value for LESENSE_SWRST */
+#define _LESENSE_SWRST_SWRST_MASK 0x1UL /**< Bit mask for LESENSE_SWRST */
+#define _LESENSE_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SWRST */
+#define LESENSE_SWRST_SWRST_DEFAULT (_LESENSE_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_SWRST */
+#define LESENSE_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _LESENSE_SWRST_RESETTING_SHIFT 1 /**< Shift value for LESENSE_RESETTING */
+#define _LESENSE_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for LESENSE_RESETTING */
+#define _LESENSE_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SWRST */
+#define LESENSE_SWRST_RESETTING_DEFAULT (_LESENSE_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_SWRST */
+
+/* Bit fields for LESENSE CFG */
+#define _LESENSE_CFG_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CFG */
+#define _LESENSE_CFG_MASK 0x00020FEFUL /**< Mask for LESENSE_CFG */
+#define _LESENSE_CFG_SCANMODE_SHIFT 0 /**< Shift value for LESENSE_SCANMODE */
+#define _LESENSE_CFG_SCANMODE_MASK 0x3UL /**< Bit mask for LESENSE_SCANMODE */
+#define _LESENSE_CFG_SCANMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define _LESENSE_CFG_SCANMODE_PERIODIC 0x00000000UL /**< Mode PERIODIC for LESENSE_CFG */
+#define _LESENSE_CFG_SCANMODE_ONESHOT 0x00000001UL /**< Mode ONESHOT for LESENSE_CFG */
+#define _LESENSE_CFG_SCANMODE_PRS 0x00000002UL /**< Mode PRS for LESENSE_CFG */
+#define LESENSE_CFG_SCANMODE_DEFAULT (_LESENSE_CFG_SCANMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_SCANMODE_PERIODIC (_LESENSE_CFG_SCANMODE_PERIODIC << 0) /**< Shifted mode PERIODIC for LESENSE_CFG */
+#define LESENSE_CFG_SCANMODE_ONESHOT (_LESENSE_CFG_SCANMODE_ONESHOT << 0) /**< Shifted mode ONESHOT for LESENSE_CFG */
+#define LESENSE_CFG_SCANMODE_PRS (_LESENSE_CFG_SCANMODE_PRS << 0) /**< Shifted mode PRS for LESENSE_CFG */
+#define _LESENSE_CFG_SCANCONF_SHIFT 2 /**< Shift value for LESENSE_SCANCONF */
+#define _LESENSE_CFG_SCANCONF_MASK 0xCUL /**< Bit mask for LESENSE_SCANCONF */
+#define _LESENSE_CFG_SCANCONF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define _LESENSE_CFG_SCANCONF_DIRMAP 0x00000000UL /**< Mode DIRMAP for LESENSE_CFG */
+#define _LESENSE_CFG_SCANCONF_INVMAP 0x00000001UL /**< Mode INVMAP for LESENSE_CFG */
+#define _LESENSE_CFG_SCANCONF_TOGGLE 0x00000002UL /**< Mode TOGGLE for LESENSE_CFG */
+#define _LESENSE_CFG_SCANCONF_DECDEF 0x00000003UL /**< Mode DECDEF for LESENSE_CFG */
+#define LESENSE_CFG_SCANCONF_DEFAULT (_LESENSE_CFG_SCANCONF_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_SCANCONF_DIRMAP (_LESENSE_CFG_SCANCONF_DIRMAP << 2) /**< Shifted mode DIRMAP for LESENSE_CFG */
+#define LESENSE_CFG_SCANCONF_INVMAP (_LESENSE_CFG_SCANCONF_INVMAP << 2) /**< Shifted mode INVMAP for LESENSE_CFG */
+#define LESENSE_CFG_SCANCONF_TOGGLE (_LESENSE_CFG_SCANCONF_TOGGLE << 2) /**< Shifted mode TOGGLE for LESENSE_CFG */
+#define LESENSE_CFG_SCANCONF_DECDEF (_LESENSE_CFG_SCANCONF_DECDEF << 2) /**< Shifted mode DECDEF for LESENSE_CFG */
+#define LESENSE_CFG_DUALSAMPLE (0x1UL << 5) /**< Enable dual sample mode */
+#define _LESENSE_CFG_DUALSAMPLE_SHIFT 5 /**< Shift value for LESENSE_DUALSAMPLE */
+#define _LESENSE_CFG_DUALSAMPLE_MASK 0x20UL /**< Bit mask for LESENSE_DUALSAMPLE */
+#define _LESENSE_CFG_DUALSAMPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_DUALSAMPLE_DEFAULT (_LESENSE_CFG_DUALSAMPLE_DEFAULT << 5) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_STRSCANRES (0x1UL << 6) /**< Enable storing of SCANRES */
+#define _LESENSE_CFG_STRSCANRES_SHIFT 6 /**< Shift value for LESENSE_STRSCANRES */
+#define _LESENSE_CFG_STRSCANRES_MASK 0x40UL /**< Bit mask for LESENSE_STRSCANRES */
+#define _LESENSE_CFG_STRSCANRES_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_STRSCANRES_DEFAULT (_LESENSE_CFG_STRSCANRES_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_DMAWU (0x1UL << 7) /**< DMA wake-up from EM2 */
+#define _LESENSE_CFG_DMAWU_SHIFT 7 /**< Shift value for LESENSE_DMAWU */
+#define _LESENSE_CFG_DMAWU_MASK 0x80UL /**< Bit mask for LESENSE_DMAWU */
+#define _LESENSE_CFG_DMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define _LESENSE_CFG_DMAWU_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_CFG */
+#define _LESENSE_CFG_DMAWU_ENABLE 0x00000001UL /**< Mode ENABLE for LESENSE_CFG */
+#define LESENSE_CFG_DMAWU_DEFAULT (_LESENSE_CFG_DMAWU_DEFAULT << 7) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_DMAWU_DISABLE (_LESENSE_CFG_DMAWU_DISABLE << 7) /**< Shifted mode DISABLE for LESENSE_CFG */
+#define LESENSE_CFG_DMAWU_ENABLE (_LESENSE_CFG_DMAWU_ENABLE << 7) /**< Shifted mode ENABLE for LESENSE_CFG */
+#define _LESENSE_CFG_RESFIDL_SHIFT 8 /**< Shift value for LESENSE_RESFIDL */
+#define _LESENSE_CFG_RESFIDL_MASK 0xF00UL /**< Bit mask for LESENSE_RESFIDL */
+#define _LESENSE_CFG_RESFIDL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_RESFIDL_DEFAULT (_LESENSE_CFG_RESFIDL_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_DEBUGRUN (0x1UL << 17) /**< Debug Mode Run Enable */
+#define _LESENSE_CFG_DEBUGRUN_SHIFT 17 /**< Shift value for LESENSE_DEBUGRUN */
+#define _LESENSE_CFG_DEBUGRUN_MASK 0x20000UL /**< Bit mask for LESENSE_DEBUGRUN */
+#define _LESENSE_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CFG */
+#define _LESENSE_CFG_DEBUGRUN_X0 0x00000000UL /**< Mode X0 for LESENSE_CFG */
+#define _LESENSE_CFG_DEBUGRUN_X1 0x00000001UL /**< Mode X1 for LESENSE_CFG */
+#define LESENSE_CFG_DEBUGRUN_DEFAULT (_LESENSE_CFG_DEBUGRUN_DEFAULT << 17) /**< Shifted mode DEFAULT for LESENSE_CFG */
+#define LESENSE_CFG_DEBUGRUN_X0 (_LESENSE_CFG_DEBUGRUN_X0 << 17) /**< Shifted mode X0 for LESENSE_CFG */
+#define LESENSE_CFG_DEBUGRUN_X1 (_LESENSE_CFG_DEBUGRUN_X1 << 17) /**< Shifted mode X1 for LESENSE_CFG */
+
+/* Bit fields for LESENSE TIMCTRL */
+#define _LESENSE_TIMCTRL_RESETVALUE 0x00000000UL /**< Default value for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_MASK 0x10CFF773UL /**< Mask for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXPRESC_SHIFT 0 /**< Shift value for LESENSE_AUXPRESC */
+#define _LESENSE_TIMCTRL_AUXPRESC_MASK 0x3UL /**< Bit mask for LESENSE_AUXPRESC */
+#define _LESENSE_TIMCTRL_AUXPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXPRESC_DEFAULT (_LESENSE_TIMCTRL_AUXPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXPRESC_DIV1 (_LESENSE_TIMCTRL_AUXPRESC_DIV1 << 0) /**< Shifted mode DIV1 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXPRESC_DIV2 (_LESENSE_TIMCTRL_AUXPRESC_DIV2 << 0) /**< Shifted mode DIV2 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXPRESC_DIV4 (_LESENSE_TIMCTRL_AUXPRESC_DIV4 << 0) /**< Shifted mode DIV4 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXPRESC_DIV8 (_LESENSE_TIMCTRL_AUXPRESC_DIV8 << 0) /**< Shifted mode DIV8 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_SHIFT 4 /**< Shift value for LESENSE_LFPRESC */
+#define _LESENSE_TIMCTRL_LFPRESC_MASK 0x70UL /**< Bit mask for LESENSE_LFPRESC */
+#define _LESENSE_TIMCTRL_LFPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV16 0x00000004UL /**< Mode DIV16 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV32 0x00000005UL /**< Mode DIV32 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV64 0x00000006UL /**< Mode DIV64 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_LFPRESC_DIV128 0x00000007UL /**< Mode DIV128 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DEFAULT (_LESENSE_TIMCTRL_LFPRESC_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV1 (_LESENSE_TIMCTRL_LFPRESC_DIV1 << 4) /**< Shifted mode DIV1 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV2 (_LESENSE_TIMCTRL_LFPRESC_DIV2 << 4) /**< Shifted mode DIV2 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV4 (_LESENSE_TIMCTRL_LFPRESC_DIV4 << 4) /**< Shifted mode DIV4 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV8 (_LESENSE_TIMCTRL_LFPRESC_DIV8 << 4) /**< Shifted mode DIV8 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV16 (_LESENSE_TIMCTRL_LFPRESC_DIV16 << 4) /**< Shifted mode DIV16 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV32 (_LESENSE_TIMCTRL_LFPRESC_DIV32 << 4) /**< Shifted mode DIV32 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV64 (_LESENSE_TIMCTRL_LFPRESC_DIV64 << 4) /**< Shifted mode DIV64 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_LFPRESC_DIV128 (_LESENSE_TIMCTRL_LFPRESC_DIV128 << 4) /**< Shifted mode DIV128 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_SHIFT 8 /**< Shift value for LESENSE_PCPRESC */
+#define _LESENSE_TIMCTRL_PCPRESC_MASK 0x700UL /**< Bit mask for LESENSE_PCPRESC */
+#define _LESENSE_TIMCTRL_PCPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV16 0x00000004UL /**< Mode DIV16 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV32 0x00000005UL /**< Mode DIV32 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV64 0x00000006UL /**< Mode DIV64 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCPRESC_DIV128 0x00000007UL /**< Mode DIV128 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DEFAULT (_LESENSE_TIMCTRL_PCPRESC_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV1 (_LESENSE_TIMCTRL_PCPRESC_DIV1 << 8) /**< Shifted mode DIV1 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV2 (_LESENSE_TIMCTRL_PCPRESC_DIV2 << 8) /**< Shifted mode DIV2 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV4 (_LESENSE_TIMCTRL_PCPRESC_DIV4 << 8) /**< Shifted mode DIV4 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV8 (_LESENSE_TIMCTRL_PCPRESC_DIV8 << 8) /**< Shifted mode DIV8 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV16 (_LESENSE_TIMCTRL_PCPRESC_DIV16 << 8) /**< Shifted mode DIV16 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV32 (_LESENSE_TIMCTRL_PCPRESC_DIV32 << 8) /**< Shifted mode DIV32 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV64 (_LESENSE_TIMCTRL_PCPRESC_DIV64 << 8) /**< Shifted mode DIV64 for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCPRESC_DIV128 (_LESENSE_TIMCTRL_PCPRESC_DIV128 << 8) /**< Shifted mode DIV128 for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_PCTOP_SHIFT 12 /**< Shift value for LESENSE_PCTOP */
+#define _LESENSE_TIMCTRL_PCTOP_MASK 0xFF000UL /**< Bit mask for LESENSE_PCTOP */
+#define _LESENSE_TIMCTRL_PCTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_PCTOP_DEFAULT (_LESENSE_TIMCTRL_PCTOP_DEFAULT << 12) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_STARTDLY_SHIFT 22 /**< Shift value for LESENSE_STARTDLY */
+#define _LESENSE_TIMCTRL_STARTDLY_MASK 0xC00000UL /**< Bit mask for LESENSE_STARTDLY */
+#define _LESENSE_TIMCTRL_STARTDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_STARTDLY_DEFAULT (_LESENSE_TIMCTRL_STARTDLY_DEFAULT << 22) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXSTARTUP (0x1UL << 28) /**< AUX startup config */
+#define _LESENSE_TIMCTRL_AUXSTARTUP_SHIFT 28 /**< Shift value for LESENSE_AUXSTARTUP */
+#define _LESENSE_TIMCTRL_AUXSTARTUP_MASK 0x10000000UL /**< Bit mask for LESENSE_AUXSTARTUP */
+#define _LESENSE_TIMCTRL_AUXSTARTUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXSTARTUP_PREDEMAND 0x00000000UL /**< Mode PREDEMAND for LESENSE_TIMCTRL */
+#define _LESENSE_TIMCTRL_AUXSTARTUP_ONDEMAND 0x00000001UL /**< Mode ONDEMAND for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXSTARTUP_DEFAULT (_LESENSE_TIMCTRL_AUXSTARTUP_DEFAULT << 28) /**< Shifted mode DEFAULT for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXSTARTUP_PREDEMAND (_LESENSE_TIMCTRL_AUXSTARTUP_PREDEMAND << 28) /**< Shifted mode PREDEMAND for LESENSE_TIMCTRL */
+#define LESENSE_TIMCTRL_AUXSTARTUP_ONDEMAND (_LESENSE_TIMCTRL_AUXSTARTUP_ONDEMAND << 28) /**< Shifted mode ONDEMAND for LESENSE_TIMCTRL */
+
+/* Bit fields for LESENSE PERCTRL */
+#define _LESENSE_PERCTRL_RESETVALUE 0x00000000UL /**< Default value for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_MASK 0x03500144UL /**< Mask for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCH0DATA (0x1UL << 2) /**< DAC CH0 data selection. */
+#define _LESENSE_PERCTRL_DACCH0DATA_SHIFT 2 /**< Shift value for LESENSE_DACCH0DATA */
+#define _LESENSE_PERCTRL_DACCH0DATA_MASK 0x4UL /**< Bit mask for LESENSE_DACCH0DATA */
+#define _LESENSE_PERCTRL_DACCH0DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACCH0DATA_DACDATA 0x00000000UL /**< Mode DACDATA for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACCH0DATA_THRES 0x00000001UL /**< Mode THRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCH0DATA_DEFAULT (_LESENSE_PERCTRL_DACCH0DATA_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCH0DATA_DACDATA (_LESENSE_PERCTRL_DACCH0DATA_DACDATA << 2) /**< Shifted mode DACDATA for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCH0DATA_THRES (_LESENSE_PERCTRL_DACCH0DATA_THRES << 2) /**< Shifted mode THRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACSTARTUP (0x1UL << 6) /**< DAC startup configuration */
+#define _LESENSE_PERCTRL_DACSTARTUP_SHIFT 6 /**< Shift value for LESENSE_DACSTARTUP */
+#define _LESENSE_PERCTRL_DACSTARTUP_MASK 0x40UL /**< Bit mask for LESENSE_DACSTARTUP */
+#define _LESENSE_PERCTRL_DACSTARTUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACSTARTUP_FULLCYCLE 0x00000000UL /**< Mode FULLCYCLE for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACSTARTUP_HALFCYCLE 0x00000001UL /**< Mode HALFCYCLE for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACSTARTUP_DEFAULT (_LESENSE_PERCTRL_DACSTARTUP_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACSTARTUP_FULLCYCLE (_LESENSE_PERCTRL_DACSTARTUP_FULLCYCLE << 6) /**< Shifted mode FULLCYCLE for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACSTARTUP_HALFCYCLE (_LESENSE_PERCTRL_DACSTARTUP_HALFCYCLE << 6) /**< Shifted mode HALFCYCLE for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCONVTRIG (0x1UL << 8) /**< DAC conversion trigger configuration */
+#define _LESENSE_PERCTRL_DACCONVTRIG_SHIFT 8 /**< Shift value for LESENSE_DACCONVTRIG */
+#define _LESENSE_PERCTRL_DACCONVTRIG_MASK 0x100UL /**< Bit mask for LESENSE_DACCONVTRIG */
+#define _LESENSE_PERCTRL_DACCONVTRIG_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACCONVTRIG_CHANNELSTART 0x00000000UL /**< Mode CHANNELSTART for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_DACCONVTRIG_SCANSTART 0x00000001UL /**< Mode SCANSTART for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCONVTRIG_DEFAULT (_LESENSE_PERCTRL_DACCONVTRIG_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_DACCONVTRIG_CHANNELSTART (_LESENSE_PERCTRL_DACCONVTRIG_CHANNELSTART << 8) /**< Shifted mode CHANNELSTART for LESENSE_PERCTRL*/
+#define LESENSE_PERCTRL_DACCONVTRIG_SCANSTART (_LESENSE_PERCTRL_DACCONVTRIG_SCANSTART << 8) /**< Shifted mode SCANSTART for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0MODE (0x1UL << 20) /**< ACMP0 mode */
+#define _LESENSE_PERCTRL_ACMP0MODE_SHIFT 20 /**< Shift value for LESENSE_ACMP0MODE */
+#define _LESENSE_PERCTRL_ACMP0MODE_MASK 0x100000UL /**< Bit mask for LESENSE_ACMP0MODE */
+#define _LESENSE_PERCTRL_ACMP0MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_ACMP0MODE_MUX 0x00000000UL /**< Mode MUX for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_ACMP0MODE_MUXTHRES 0x00000001UL /**< Mode MUXTHRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0MODE_DEFAULT (_LESENSE_PERCTRL_ACMP0MODE_DEFAULT << 20) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0MODE_MUX (_LESENSE_PERCTRL_ACMP0MODE_MUX << 20) /**< Shifted mode MUX for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0MODE_MUXTHRES (_LESENSE_PERCTRL_ACMP0MODE_MUXTHRES << 20) /**< Shifted mode MUXTHRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1MODE (0x1UL << 22) /**< ACMP1 mode */
+#define _LESENSE_PERCTRL_ACMP1MODE_SHIFT 22 /**< Shift value for LESENSE_ACMP1MODE */
+#define _LESENSE_PERCTRL_ACMP1MODE_MASK 0x400000UL /**< Bit mask for LESENSE_ACMP1MODE */
+#define _LESENSE_PERCTRL_ACMP1MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_ACMP1MODE_MUX 0x00000000UL /**< Mode MUX for LESENSE_PERCTRL */
+#define _LESENSE_PERCTRL_ACMP1MODE_MUXTHRES 0x00000001UL /**< Mode MUXTHRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1MODE_DEFAULT (_LESENSE_PERCTRL_ACMP1MODE_DEFAULT << 22) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1MODE_MUX (_LESENSE_PERCTRL_ACMP1MODE_MUX << 22) /**< Shifted mode MUX for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1MODE_MUXTHRES (_LESENSE_PERCTRL_ACMP1MODE_MUXTHRES << 22) /**< Shifted mode MUXTHRES for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0INV (0x1UL << 24) /**< Invert analog comparator 0 output */
+#define _LESENSE_PERCTRL_ACMP0INV_SHIFT 24 /**< Shift value for LESENSE_ACMP0INV */
+#define _LESENSE_PERCTRL_ACMP0INV_MASK 0x1000000UL /**< Bit mask for LESENSE_ACMP0INV */
+#define _LESENSE_PERCTRL_ACMP0INV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP0INV_DEFAULT (_LESENSE_PERCTRL_ACMP0INV_DEFAULT << 24) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1INV (0x1UL << 25) /**< Invert analog comparator 1 output */
+#define _LESENSE_PERCTRL_ACMP1INV_SHIFT 25 /**< Shift value for LESENSE_ACMP1INV */
+#define _LESENSE_PERCTRL_ACMP1INV_MASK 0x2000000UL /**< Bit mask for LESENSE_ACMP1INV */
+#define _LESENSE_PERCTRL_ACMP1INV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PERCTRL */
+#define LESENSE_PERCTRL_ACMP1INV_DEFAULT (_LESENSE_PERCTRL_ACMP1INV_DEFAULT << 25) /**< Shifted mode DEFAULT for LESENSE_PERCTRL */
+
+/* Bit fields for LESENSE DECCTRL */
+#define _LESENSE_DECCTRL_RESETVALUE 0x00000000UL /**< Default value for LESENSE_DECCTRL */
+#define _LESENSE_DECCTRL_MASK 0x000000FDUL /**< Mask for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_DECDIS (0x1UL << 0) /**< Disable the decoder */
+#define _LESENSE_DECCTRL_DECDIS_SHIFT 0 /**< Shift value for LESENSE_DECDIS */
+#define _LESENSE_DECCTRL_DECDIS_MASK 0x1UL /**< Bit mask for LESENSE_DECDIS */
+#define _LESENSE_DECCTRL_DECDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_DECDIS_DEFAULT (_LESENSE_DECCTRL_DECDIS_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_INTMAP (0x1UL << 2) /**< Enable decoder to channel interrupt map */
+#define _LESENSE_DECCTRL_INTMAP_SHIFT 2 /**< Shift value for LESENSE_INTMAP */
+#define _LESENSE_DECCTRL_INTMAP_MASK 0x4UL /**< Bit mask for LESENSE_INTMAP */
+#define _LESENSE_DECCTRL_INTMAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_INTMAP_DEFAULT (_LESENSE_DECCTRL_INTMAP_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS0 (0x1UL << 3) /**< Enable decoder hysteresis on PRS0 output */
+#define _LESENSE_DECCTRL_HYSTPRS0_SHIFT 3 /**< Shift value for LESENSE_HYSTPRS0 */
+#define _LESENSE_DECCTRL_HYSTPRS0_MASK 0x8UL /**< Bit mask for LESENSE_HYSTPRS0 */
+#define _LESENSE_DECCTRL_HYSTPRS0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS0_DEFAULT (_LESENSE_DECCTRL_HYSTPRS0_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS1 (0x1UL << 4) /**< Enable decoder hysteresis on PRS1 output */
+#define _LESENSE_DECCTRL_HYSTPRS1_SHIFT 4 /**< Shift value for LESENSE_HYSTPRS1 */
+#define _LESENSE_DECCTRL_HYSTPRS1_MASK 0x10UL /**< Bit mask for LESENSE_HYSTPRS1 */
+#define _LESENSE_DECCTRL_HYSTPRS1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS1_DEFAULT (_LESENSE_DECCTRL_HYSTPRS1_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS2 (0x1UL << 5) /**< Enable decoder hysteresis on PRS2 output */
+#define _LESENSE_DECCTRL_HYSTPRS2_SHIFT 5 /**< Shift value for LESENSE_HYSTPRS2 */
+#define _LESENSE_DECCTRL_HYSTPRS2_MASK 0x20UL /**< Bit mask for LESENSE_HYSTPRS2 */
+#define _LESENSE_DECCTRL_HYSTPRS2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTPRS2_DEFAULT (_LESENSE_DECCTRL_HYSTPRS2_DEFAULT << 5) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTIRQ (0x1UL << 6) /**< Enable decoder hysteresis on interrupt r */
+#define _LESENSE_DECCTRL_HYSTIRQ_SHIFT 6 /**< Shift value for LESENSE_HYSTIRQ */
+#define _LESENSE_DECCTRL_HYSTIRQ_MASK 0x40UL /**< Bit mask for LESENSE_HYSTIRQ */
+#define _LESENSE_DECCTRL_HYSTIRQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_HYSTIRQ_DEFAULT (_LESENSE_DECCTRL_HYSTIRQ_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_PRSCNT (0x1UL << 7) /**< Enable count mode on decoder PRS channel */
+#define _LESENSE_DECCTRL_PRSCNT_SHIFT 7 /**< Shift value for LESENSE_PRSCNT */
+#define _LESENSE_DECCTRL_PRSCNT_MASK 0x80UL /**< Bit mask for LESENSE_PRSCNT */
+#define _LESENSE_DECCTRL_PRSCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECCTRL */
+#define LESENSE_DECCTRL_PRSCNT_DEFAULT (_LESENSE_DECCTRL_PRSCNT_DEFAULT << 7) /**< Shifted mode DEFAULT for LESENSE_DECCTRL */
+
+/* Bit fields for LESENSE EVALCTRL */
+#define _LESENSE_EVALCTRL_RESETVALUE 0x00000000UL /**< Default value for LESENSE_EVALCTRL */
+#define _LESENSE_EVALCTRL_MASK 0x0000FFFFUL /**< Mask for LESENSE_EVALCTRL */
+#define _LESENSE_EVALCTRL_WINSIZE_SHIFT 0 /**< Shift value for LESENSE_WINSIZE */
+#define _LESENSE_EVALCTRL_WINSIZE_MASK 0xFFFFUL /**< Bit mask for LESENSE_WINSIZE */
+#define _LESENSE_EVALCTRL_WINSIZE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_EVALCTRL */
+#define LESENSE_EVALCTRL_WINSIZE_DEFAULT (_LESENSE_EVALCTRL_WINSIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_EVALCTRL */
+
+/* Bit fields for LESENSE PRSCTRL */
+#define _LESENSE_PRSCTRL_RESETVALUE 0x00000000UL /**< Default value for LESENSE_PRSCTRL */
+#define _LESENSE_PRSCTRL_MASK 0x00011F1FUL /**< Mask for LESENSE_PRSCTRL */
+#define _LESENSE_PRSCTRL_DECCMPVAL_SHIFT 0 /**< Shift value for LESENSE_DECCMPVAL */
+#define _LESENSE_PRSCTRL_DECCMPVAL_MASK 0x1FUL /**< Bit mask for LESENSE_DECCMPVAL */
+#define _LESENSE_PRSCTRL_DECCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PRSCTRL */
+#define LESENSE_PRSCTRL_DECCMPVAL_DEFAULT (_LESENSE_PRSCTRL_DECCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_PRSCTRL */
+#define _LESENSE_PRSCTRL_DECCMPMASK_SHIFT 8 /**< Shift value for LESENSE_DECCMPMASK */
+#define _LESENSE_PRSCTRL_DECCMPMASK_MASK 0x1F00UL /**< Bit mask for LESENSE_DECCMPMASK */
+#define _LESENSE_PRSCTRL_DECCMPMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PRSCTRL */
+#define LESENSE_PRSCTRL_DECCMPMASK_DEFAULT (_LESENSE_PRSCTRL_DECCMPMASK_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_PRSCTRL */
+#define LESENSE_PRSCTRL_DECCMPEN (0x1UL << 16) /**< Enable PRS output DECCMP */
+#define _LESENSE_PRSCTRL_DECCMPEN_SHIFT 16 /**< Shift value for LESENSE_DECCMPEN */
+#define _LESENSE_PRSCTRL_DECCMPEN_MASK 0x10000UL /**< Bit mask for LESENSE_DECCMPEN */
+#define _LESENSE_PRSCTRL_DECCMPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_PRSCTRL */
+#define LESENSE_PRSCTRL_DECCMPEN_DEFAULT (_LESENSE_PRSCTRL_DECCMPEN_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_PRSCTRL */
+
+/* Bit fields for LESENSE CMD */
+#define _LESENSE_CMD_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CMD */
+#define _LESENSE_CMD_MASK 0x0000000FUL /**< Mask for LESENSE_CMD */
+#define LESENSE_CMD_START (0x1UL << 0) /**< Start scanning of sensors. */
+#define _LESENSE_CMD_START_SHIFT 0 /**< Shift value for LESENSE_START */
+#define _LESENSE_CMD_START_MASK 0x1UL /**< Bit mask for LESENSE_START */
+#define _LESENSE_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_START_DEFAULT (_LESENSE_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_STOP (0x1UL << 1) /**< Stop scanning of sensors */
+#define _LESENSE_CMD_STOP_SHIFT 1 /**< Shift value for LESENSE_STOP */
+#define _LESENSE_CMD_STOP_MASK 0x2UL /**< Bit mask for LESENSE_STOP */
+#define _LESENSE_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_STOP_DEFAULT (_LESENSE_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_DECODE (0x1UL << 2) /**< Start decoder */
+#define _LESENSE_CMD_DECODE_SHIFT 2 /**< Shift value for LESENSE_DECODE */
+#define _LESENSE_CMD_DECODE_MASK 0x4UL /**< Bit mask for LESENSE_DECODE */
+#define _LESENSE_CMD_DECODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_DECODE_DEFAULT (_LESENSE_CMD_DECODE_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_CLEARBUF (0x1UL << 3) /**< Clear result buffer */
+#define _LESENSE_CMD_CLEARBUF_SHIFT 3 /**< Shift value for LESENSE_CLEARBUF */
+#define _LESENSE_CMD_CLEARBUF_MASK 0x8UL /**< Bit mask for LESENSE_CLEARBUF */
+#define _LESENSE_CMD_CLEARBUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CMD */
+#define LESENSE_CMD_CLEARBUF_DEFAULT (_LESENSE_CMD_CLEARBUF_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_CMD */
+
+/* Bit fields for LESENSE CHEN */
+#define _LESENSE_CHEN_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CHEN */
+#define _LESENSE_CHEN_MASK 0x0000FFFFUL /**< Mask for LESENSE_CHEN */
+#define _LESENSE_CHEN_CHEN_SHIFT 0 /**< Shift value for LESENSE_CHEN */
+#define _LESENSE_CHEN_CHEN_MASK 0xFFFFUL /**< Bit mask for LESENSE_CHEN */
+#define _LESENSE_CHEN_CHEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CHEN */
+#define LESENSE_CHEN_CHEN_DEFAULT (_LESENSE_CHEN_CHEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CHEN */
+
+/* Bit fields for LESENSE SCANRES */
+#define _LESENSE_SCANRES_RESETVALUE 0x00000000UL /**< Default value for LESENSE_SCANRES */
+#define _LESENSE_SCANRES_MASK 0xFFFFFFFFUL /**< Mask for LESENSE_SCANRES */
+#define _LESENSE_SCANRES_SCANRES_SHIFT 0 /**< Shift value for LESENSE_SCANRES */
+#define _LESENSE_SCANRES_SCANRES_MASK 0xFFFFUL /**< Bit mask for LESENSE_SCANRES */
+#define _LESENSE_SCANRES_SCANRES_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SCANRES */
+#define LESENSE_SCANRES_SCANRES_DEFAULT (_LESENSE_SCANRES_SCANRES_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_SCANRES */
+#define _LESENSE_SCANRES_STEPDIR_SHIFT 16 /**< Shift value for LESENSE_STEPDIR */
+#define _LESENSE_SCANRES_STEPDIR_MASK 0xFFFF0000UL /**< Bit mask for LESENSE_STEPDIR */
+#define _LESENSE_SCANRES_STEPDIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SCANRES */
+#define LESENSE_SCANRES_STEPDIR_DEFAULT (_LESENSE_SCANRES_STEPDIR_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_SCANRES */
+
+/* Bit fields for LESENSE STATUS */
+#define _LESENSE_STATUS_RESETVALUE 0x00000000UL /**< Default value for LESENSE_STATUS */
+#define _LESENSE_STATUS_MASK 0x0000007BUL /**< Mask for LESENSE_STATUS */
+#define LESENSE_STATUS_RESFIFOV (0x1UL << 0) /**< Result fifo valid */
+#define _LESENSE_STATUS_RESFIFOV_SHIFT 0 /**< Shift value for LESENSE_RESFIFOV */
+#define _LESENSE_STATUS_RESFIFOV_MASK 0x1UL /**< Bit mask for LESENSE_RESFIFOV */
+#define _LESENSE_STATUS_RESFIFOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_RESFIFOV_DEFAULT (_LESENSE_STATUS_RESFIFOV_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_RESFIFOFULL (0x1UL << 1) /**< Result fifo full */
+#define _LESENSE_STATUS_RESFIFOFULL_SHIFT 1 /**< Shift value for LESENSE_RESFIFOFULL */
+#define _LESENSE_STATUS_RESFIFOFULL_MASK 0x2UL /**< Bit mask for LESENSE_RESFIFOFULL */
+#define _LESENSE_STATUS_RESFIFOFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_RESFIFOFULL_DEFAULT (_LESENSE_STATUS_RESFIFOFULL_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_SCANACTIVE (0x1UL << 3) /**< LESENSE scan active */
+#define _LESENSE_STATUS_SCANACTIVE_SHIFT 3 /**< Shift value for LESENSE_SCANACTIVE */
+#define _LESENSE_STATUS_SCANACTIVE_MASK 0x8UL /**< Bit mask for LESENSE_SCANACTIVE */
+#define _LESENSE_STATUS_SCANACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_SCANACTIVE_DEFAULT (_LESENSE_STATUS_SCANACTIVE_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_RUNNING (0x1UL << 4) /**< LESENSE periodic counter running */
+#define _LESENSE_STATUS_RUNNING_SHIFT 4 /**< Shift value for LESENSE_RUNNING */
+#define _LESENSE_STATUS_RUNNING_MASK 0x10UL /**< Bit mask for LESENSE_RUNNING */
+#define _LESENSE_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_RUNNING_DEFAULT (_LESENSE_STATUS_RUNNING_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_READBUSY (0x1UL << 5) /**< FIFO Read Busy */
+#define _LESENSE_STATUS_READBUSY_SHIFT 5 /**< Shift value for LESENSE_READBUSY */
+#define _LESENSE_STATUS_READBUSY_MASK 0x20UL /**< Bit mask for LESENSE_READBUSY */
+#define _LESENSE_STATUS_READBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_READBUSY_DEFAULT (_LESENSE_STATUS_READBUSY_DEFAULT << 5) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_FLUSHING (0x1UL << 6) /**< FIFO Flushing */
+#define _LESENSE_STATUS_FLUSHING_SHIFT 6 /**< Shift value for LESENSE_FLUSHING */
+#define _LESENSE_STATUS_FLUSHING_MASK 0x40UL /**< Bit mask for LESENSE_FLUSHING */
+#define _LESENSE_STATUS_FLUSHING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_STATUS */
+#define LESENSE_STATUS_FLUSHING_DEFAULT (_LESENSE_STATUS_FLUSHING_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_STATUS */
+
+/* Bit fields for LESENSE RESCOUNT */
+#define _LESENSE_RESCOUNT_RESETVALUE 0x00000000UL /**< Default value for LESENSE_RESCOUNT */
+#define _LESENSE_RESCOUNT_MASK 0x0000001FUL /**< Mask for LESENSE_RESCOUNT */
+#define _LESENSE_RESCOUNT_COUNT_SHIFT 0 /**< Shift value for LESENSE_COUNT */
+#define _LESENSE_RESCOUNT_COUNT_MASK 0x1FUL /**< Bit mask for LESENSE_COUNT */
+#define _LESENSE_RESCOUNT_COUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_RESCOUNT */
+#define LESENSE_RESCOUNT_COUNT_DEFAULT (_LESENSE_RESCOUNT_COUNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_RESCOUNT */
+
+/* Bit fields for LESENSE RESFIFO */
+#define _LESENSE_RESFIFO_RESETVALUE 0x00000000UL /**< Default value for LESENSE_RESFIFO */
+#define _LESENSE_RESFIFO_MASK 0x000FFFFFUL /**< Mask for LESENSE_RESFIFO */
+#define _LESENSE_RESFIFO_BUFDATASRC_SHIFT 0 /**< Shift value for LESENSE_BUFDATASRC */
+#define _LESENSE_RESFIFO_BUFDATASRC_MASK 0xFFFFFUL /**< Bit mask for LESENSE_BUFDATASRC */
+#define _LESENSE_RESFIFO_BUFDATASRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_RESFIFO */
+#define LESENSE_RESFIFO_BUFDATASRC_DEFAULT (_LESENSE_RESFIFO_BUFDATASRC_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_RESFIFO */
+
+/* Bit fields for LESENSE CURCH */
+#define _LESENSE_CURCH_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CURCH */
+#define _LESENSE_CURCH_MASK 0x0000000FUL /**< Mask for LESENSE_CURCH */
+#define _LESENSE_CURCH_CURCH_SHIFT 0 /**< Shift value for LESENSE_CURCH */
+#define _LESENSE_CURCH_CURCH_MASK 0xFUL /**< Bit mask for LESENSE_CURCH */
+#define _LESENSE_CURCH_CURCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CURCH */
+#define LESENSE_CURCH_CURCH_DEFAULT (_LESENSE_CURCH_CURCH_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CURCH */
+
+/* Bit fields for LESENSE DECSTATE */
+#define _LESENSE_DECSTATE_RESETVALUE 0x00000000UL /**< Default value for LESENSE_DECSTATE */
+#define _LESENSE_DECSTATE_MASK 0x0000001FUL /**< Mask for LESENSE_DECSTATE */
+#define _LESENSE_DECSTATE_DECSTATE_SHIFT 0 /**< Shift value for LESENSE_DECSTATE */
+#define _LESENSE_DECSTATE_DECSTATE_MASK 0x1FUL /**< Bit mask for LESENSE_DECSTATE */
+#define _LESENSE_DECSTATE_DECSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_DECSTATE */
+#define LESENSE_DECSTATE_DECSTATE_DEFAULT (_LESENSE_DECSTATE_DECSTATE_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_DECSTATE */
+
+/* Bit fields for LESENSE SENSORSTATE */
+#define _LESENSE_SENSORSTATE_RESETVALUE 0x00000000UL /**< Default value for LESENSE_SENSORSTATE */
+#define _LESENSE_SENSORSTATE_MASK 0x0000000FUL /**< Mask for LESENSE_SENSORSTATE */
+#define _LESENSE_SENSORSTATE_SENSORSTATE_SHIFT 0 /**< Shift value for LESENSE_SENSORSTATE */
+#define _LESENSE_SENSORSTATE_SENSORSTATE_MASK 0xFUL /**< Bit mask for LESENSE_SENSORSTATE */
+#define _LESENSE_SENSORSTATE_SENSORSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SENSORSTATE */
+#define LESENSE_SENSORSTATE_SENSORSTATE_DEFAULT (_LESENSE_SENSORSTATE_SENSORSTATE_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_SENSORSTATE*/
+
+/* Bit fields for LESENSE IDLECONF */
+#define _LESENSE_IDLECONF_RESETVALUE 0x00000000UL /**< Default value for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_MASK 0xFFFFFFFFUL /**< Mask for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE0_SHIFT 0 /**< Shift value for LESENSE_CHIDLE0 */
+#define _LESENSE_IDLECONF_CHIDLE0_MASK 0x3UL /**< Bit mask for LESENSE_CHIDLE0 */
+#define _LESENSE_IDLECONF_CHIDLE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE0_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE0_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE0_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE0_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE0_DEFAULT (_LESENSE_IDLECONF_CHIDLE0_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE0_DISABLE (_LESENSE_IDLECONF_CHIDLE0_DISABLE << 0) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE0_HIGH (_LESENSE_IDLECONF_CHIDLE0_HIGH << 0) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE0_LOW (_LESENSE_IDLECONF_CHIDLE0_LOW << 0) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE0_DAC (_LESENSE_IDLECONF_CHIDLE0_DAC << 0) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE1_SHIFT 2 /**< Shift value for LESENSE_CHIDLE1 */
+#define _LESENSE_IDLECONF_CHIDLE1_MASK 0xCUL /**< Bit mask for LESENSE_CHIDLE1 */
+#define _LESENSE_IDLECONF_CHIDLE1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE1_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE1_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE1_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE1_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE1_DEFAULT (_LESENSE_IDLECONF_CHIDLE1_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE1_DISABLE (_LESENSE_IDLECONF_CHIDLE1_DISABLE << 2) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE1_HIGH (_LESENSE_IDLECONF_CHIDLE1_HIGH << 2) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE1_LOW (_LESENSE_IDLECONF_CHIDLE1_LOW << 2) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE1_DAC (_LESENSE_IDLECONF_CHIDLE1_DAC << 2) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE2_SHIFT 4 /**< Shift value for LESENSE_CHIDLE2 */
+#define _LESENSE_IDLECONF_CHIDLE2_MASK 0x30UL /**< Bit mask for LESENSE_CHIDLE2 */
+#define _LESENSE_IDLECONF_CHIDLE2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE2_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE2_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE2_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE2_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE2_DEFAULT (_LESENSE_IDLECONF_CHIDLE2_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE2_DISABLE (_LESENSE_IDLECONF_CHIDLE2_DISABLE << 4) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE2_HIGH (_LESENSE_IDLECONF_CHIDLE2_HIGH << 4) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE2_LOW (_LESENSE_IDLECONF_CHIDLE2_LOW << 4) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE2_DAC (_LESENSE_IDLECONF_CHIDLE2_DAC << 4) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE3_SHIFT 6 /**< Shift value for LESENSE_CHIDLE3 */
+#define _LESENSE_IDLECONF_CHIDLE3_MASK 0xC0UL /**< Bit mask for LESENSE_CHIDLE3 */
+#define _LESENSE_IDLECONF_CHIDLE3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE3_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE3_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE3_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE3_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE3_DEFAULT (_LESENSE_IDLECONF_CHIDLE3_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE3_DISABLE (_LESENSE_IDLECONF_CHIDLE3_DISABLE << 6) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE3_HIGH (_LESENSE_IDLECONF_CHIDLE3_HIGH << 6) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE3_LOW (_LESENSE_IDLECONF_CHIDLE3_LOW << 6) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE3_DAC (_LESENSE_IDLECONF_CHIDLE3_DAC << 6) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE4_SHIFT 8 /**< Shift value for LESENSE_CHIDLE4 */
+#define _LESENSE_IDLECONF_CHIDLE4_MASK 0x300UL /**< Bit mask for LESENSE_CHIDLE4 */
+#define _LESENSE_IDLECONF_CHIDLE4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE4_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE4_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE4_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE4_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE4_DEFAULT (_LESENSE_IDLECONF_CHIDLE4_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE4_DISABLE (_LESENSE_IDLECONF_CHIDLE4_DISABLE << 8) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE4_HIGH (_LESENSE_IDLECONF_CHIDLE4_HIGH << 8) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE4_LOW (_LESENSE_IDLECONF_CHIDLE4_LOW << 8) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE4_DAC (_LESENSE_IDLECONF_CHIDLE4_DAC << 8) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE5_SHIFT 10 /**< Shift value for LESENSE_CHIDLE5 */
+#define _LESENSE_IDLECONF_CHIDLE5_MASK 0xC00UL /**< Bit mask for LESENSE_CHIDLE5 */
+#define _LESENSE_IDLECONF_CHIDLE5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE5_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE5_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE5_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE5_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE5_DEFAULT (_LESENSE_IDLECONF_CHIDLE5_DEFAULT << 10) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE5_DISABLE (_LESENSE_IDLECONF_CHIDLE5_DISABLE << 10) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE5_HIGH (_LESENSE_IDLECONF_CHIDLE5_HIGH << 10) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE5_LOW (_LESENSE_IDLECONF_CHIDLE5_LOW << 10) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE5_DAC (_LESENSE_IDLECONF_CHIDLE5_DAC << 10) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE6_SHIFT 12 /**< Shift value for LESENSE_CHIDLE6 */
+#define _LESENSE_IDLECONF_CHIDLE6_MASK 0x3000UL /**< Bit mask for LESENSE_CHIDLE6 */
+#define _LESENSE_IDLECONF_CHIDLE6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE6_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE6_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE6_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE6_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE6_DEFAULT (_LESENSE_IDLECONF_CHIDLE6_DEFAULT << 12) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE6_DISABLE (_LESENSE_IDLECONF_CHIDLE6_DISABLE << 12) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE6_HIGH (_LESENSE_IDLECONF_CHIDLE6_HIGH << 12) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE6_LOW (_LESENSE_IDLECONF_CHIDLE6_LOW << 12) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE6_DAC (_LESENSE_IDLECONF_CHIDLE6_DAC << 12) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE7_SHIFT 14 /**< Shift value for LESENSE_CHIDLE7 */
+#define _LESENSE_IDLECONF_CHIDLE7_MASK 0xC000UL /**< Bit mask for LESENSE_CHIDLE7 */
+#define _LESENSE_IDLECONF_CHIDLE7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE7_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE7_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE7_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE7_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE7_DEFAULT (_LESENSE_IDLECONF_CHIDLE7_DEFAULT << 14) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE7_DISABLE (_LESENSE_IDLECONF_CHIDLE7_DISABLE << 14) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE7_HIGH (_LESENSE_IDLECONF_CHIDLE7_HIGH << 14) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE7_LOW (_LESENSE_IDLECONF_CHIDLE7_LOW << 14) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE7_DAC (_LESENSE_IDLECONF_CHIDLE7_DAC << 14) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE8_SHIFT 16 /**< Shift value for LESENSE_CHIDLE8 */
+#define _LESENSE_IDLECONF_CHIDLE8_MASK 0x30000UL /**< Bit mask for LESENSE_CHIDLE8 */
+#define _LESENSE_IDLECONF_CHIDLE8_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE8_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE8_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE8_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE8_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE8_DEFAULT (_LESENSE_IDLECONF_CHIDLE8_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE8_DISABLE (_LESENSE_IDLECONF_CHIDLE8_DISABLE << 16) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE8_HIGH (_LESENSE_IDLECONF_CHIDLE8_HIGH << 16) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE8_LOW (_LESENSE_IDLECONF_CHIDLE8_LOW << 16) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE8_DAC (_LESENSE_IDLECONF_CHIDLE8_DAC << 16) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE9_SHIFT 18 /**< Shift value for LESENSE_CHIDLE9 */
+#define _LESENSE_IDLECONF_CHIDLE9_MASK 0xC0000UL /**< Bit mask for LESENSE_CHIDLE9 */
+#define _LESENSE_IDLECONF_CHIDLE9_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE9_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE9_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE9_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE9_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE9_DEFAULT (_LESENSE_IDLECONF_CHIDLE9_DEFAULT << 18) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE9_DISABLE (_LESENSE_IDLECONF_CHIDLE9_DISABLE << 18) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE9_HIGH (_LESENSE_IDLECONF_CHIDLE9_HIGH << 18) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE9_LOW (_LESENSE_IDLECONF_CHIDLE9_LOW << 18) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE9_DAC (_LESENSE_IDLECONF_CHIDLE9_DAC << 18) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE10_SHIFT 20 /**< Shift value for LESENSE_CHIDLE10 */
+#define _LESENSE_IDLECONF_CHIDLE10_MASK 0x300000UL /**< Bit mask for LESENSE_CHIDLE10 */
+#define _LESENSE_IDLECONF_CHIDLE10_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE10_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE10_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE10_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE10_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE10_DEFAULT (_LESENSE_IDLECONF_CHIDLE10_DEFAULT << 20) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE10_DISABLE (_LESENSE_IDLECONF_CHIDLE10_DISABLE << 20) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE10_HIGH (_LESENSE_IDLECONF_CHIDLE10_HIGH << 20) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE10_LOW (_LESENSE_IDLECONF_CHIDLE10_LOW << 20) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE10_DAC (_LESENSE_IDLECONF_CHIDLE10_DAC << 20) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE11_SHIFT 22 /**< Shift value for LESENSE_CHIDLE11 */
+#define _LESENSE_IDLECONF_CHIDLE11_MASK 0xC00000UL /**< Bit mask for LESENSE_CHIDLE11 */
+#define _LESENSE_IDLECONF_CHIDLE11_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE11_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE11_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE11_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE11_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE11_DEFAULT (_LESENSE_IDLECONF_CHIDLE11_DEFAULT << 22) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE11_DISABLE (_LESENSE_IDLECONF_CHIDLE11_DISABLE << 22) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE11_HIGH (_LESENSE_IDLECONF_CHIDLE11_HIGH << 22) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE11_LOW (_LESENSE_IDLECONF_CHIDLE11_LOW << 22) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE11_DAC (_LESENSE_IDLECONF_CHIDLE11_DAC << 22) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE12_SHIFT 24 /**< Shift value for LESENSE_CHIDLE12 */
+#define _LESENSE_IDLECONF_CHIDLE12_MASK 0x3000000UL /**< Bit mask for LESENSE_CHIDLE12 */
+#define _LESENSE_IDLECONF_CHIDLE12_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE12_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE12_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE12_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE12_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE12_DEFAULT (_LESENSE_IDLECONF_CHIDLE12_DEFAULT << 24) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE12_DISABLE (_LESENSE_IDLECONF_CHIDLE12_DISABLE << 24) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE12_HIGH (_LESENSE_IDLECONF_CHIDLE12_HIGH << 24) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE12_LOW (_LESENSE_IDLECONF_CHIDLE12_LOW << 24) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE12_DAC (_LESENSE_IDLECONF_CHIDLE12_DAC << 24) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE13_SHIFT 26 /**< Shift value for LESENSE_CHIDLE13 */
+#define _LESENSE_IDLECONF_CHIDLE13_MASK 0xC000000UL /**< Bit mask for LESENSE_CHIDLE13 */
+#define _LESENSE_IDLECONF_CHIDLE13_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE13_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE13_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE13_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE13_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE13_DEFAULT (_LESENSE_IDLECONF_CHIDLE13_DEFAULT << 26) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE13_DISABLE (_LESENSE_IDLECONF_CHIDLE13_DISABLE << 26) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE13_HIGH (_LESENSE_IDLECONF_CHIDLE13_HIGH << 26) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE13_LOW (_LESENSE_IDLECONF_CHIDLE13_LOW << 26) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE13_DAC (_LESENSE_IDLECONF_CHIDLE13_DAC << 26) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE14_SHIFT 28 /**< Shift value for LESENSE_CHIDLE14 */
+#define _LESENSE_IDLECONF_CHIDLE14_MASK 0x30000000UL /**< Bit mask for LESENSE_CHIDLE14 */
+#define _LESENSE_IDLECONF_CHIDLE14_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE14_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE14_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE14_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE14_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE14_DEFAULT (_LESENSE_IDLECONF_CHIDLE14_DEFAULT << 28) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE14_DISABLE (_LESENSE_IDLECONF_CHIDLE14_DISABLE << 28) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE14_HIGH (_LESENSE_IDLECONF_CHIDLE14_HIGH << 28) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE14_LOW (_LESENSE_IDLECONF_CHIDLE14_LOW << 28) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE14_DAC (_LESENSE_IDLECONF_CHIDLE14_DAC << 28) /**< Shifted mode DAC for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE15_SHIFT 30 /**< Shift value for LESENSE_CHIDLE15 */
+#define _LESENSE_IDLECONF_CHIDLE15_MASK 0xC0000000UL /**< Bit mask for LESENSE_CHIDLE15 */
+#define _LESENSE_IDLECONF_CHIDLE15_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE15_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE15_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE15_LOW 0x00000002UL /**< Mode LOW for LESENSE_IDLECONF */
+#define _LESENSE_IDLECONF_CHIDLE15_DAC 0x00000003UL /**< Mode DAC for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE15_DEFAULT (_LESENSE_IDLECONF_CHIDLE15_DEFAULT << 30) /**< Shifted mode DEFAULT for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE15_DISABLE (_LESENSE_IDLECONF_CHIDLE15_DISABLE << 30) /**< Shifted mode DISABLE for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE15_HIGH (_LESENSE_IDLECONF_CHIDLE15_HIGH << 30) /**< Shifted mode HIGH for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE15_LOW (_LESENSE_IDLECONF_CHIDLE15_LOW << 30) /**< Shifted mode LOW for LESENSE_IDLECONF */
+#define LESENSE_IDLECONF_CHIDLE15_DAC (_LESENSE_IDLECONF_CHIDLE15_DAC << 30) /**< Shifted mode DAC for LESENSE_IDLECONF */
+
+/* Bit fields for LESENSE SYNCBUSY */
+#define _LESENSE_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LESENSE_SYNCBUSY */
+#define _LESENSE_SYNCBUSY_MASK 0x00000001UL /**< Mask for LESENSE_SYNCBUSY */
+#define LESENSE_SYNCBUSY_CMD (0x1UL << 0) /**< Command */
+#define _LESENSE_SYNCBUSY_CMD_SHIFT 0 /**< Shift value for LESENSE_CMD */
+#define _LESENSE_SYNCBUSY_CMD_MASK 0x1UL /**< Bit mask for LESENSE_CMD */
+#define _LESENSE_SYNCBUSY_CMD_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_SYNCBUSY */
+#define LESENSE_SYNCBUSY_CMD_DEFAULT (_LESENSE_SYNCBUSY_CMD_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_SYNCBUSY */
+
+/* Bit fields for LESENSE IF */
+#define _LESENSE_IF_RESETVALUE 0x00000000UL /**< Default value for LESENSE_IF */
+#define _LESENSE_IF_MASK 0x003FFFFFUL /**< Mask for LESENSE_IF */
+#define LESENSE_IF_CH0 (0x1UL << 0) /**< Channel */
+#define _LESENSE_IF_CH0_SHIFT 0 /**< Shift value for LESENSE_CH0 */
+#define _LESENSE_IF_CH0_MASK 0x1UL /**< Bit mask for LESENSE_CH0 */
+#define _LESENSE_IF_CH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH0_DEFAULT (_LESENSE_IF_CH0_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH1 (0x1UL << 1) /**< Channel */
+#define _LESENSE_IF_CH1_SHIFT 1 /**< Shift value for LESENSE_CH1 */
+#define _LESENSE_IF_CH1_MASK 0x2UL /**< Bit mask for LESENSE_CH1 */
+#define _LESENSE_IF_CH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH1_DEFAULT (_LESENSE_IF_CH1_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH2 (0x1UL << 2) /**< Channel */
+#define _LESENSE_IF_CH2_SHIFT 2 /**< Shift value for LESENSE_CH2 */
+#define _LESENSE_IF_CH2_MASK 0x4UL /**< Bit mask for LESENSE_CH2 */
+#define _LESENSE_IF_CH2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH2_DEFAULT (_LESENSE_IF_CH2_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH3 (0x1UL << 3) /**< Channel */
+#define _LESENSE_IF_CH3_SHIFT 3 /**< Shift value for LESENSE_CH3 */
+#define _LESENSE_IF_CH3_MASK 0x8UL /**< Bit mask for LESENSE_CH3 */
+#define _LESENSE_IF_CH3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH3_DEFAULT (_LESENSE_IF_CH3_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH4 (0x1UL << 4) /**< Channel */
+#define _LESENSE_IF_CH4_SHIFT 4 /**< Shift value for LESENSE_CH4 */
+#define _LESENSE_IF_CH4_MASK 0x10UL /**< Bit mask for LESENSE_CH4 */
+#define _LESENSE_IF_CH4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH4_DEFAULT (_LESENSE_IF_CH4_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH5 (0x1UL << 5) /**< Channel */
+#define _LESENSE_IF_CH5_SHIFT 5 /**< Shift value for LESENSE_CH5 */
+#define _LESENSE_IF_CH5_MASK 0x20UL /**< Bit mask for LESENSE_CH5 */
+#define _LESENSE_IF_CH5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH5_DEFAULT (_LESENSE_IF_CH5_DEFAULT << 5) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH6 (0x1UL << 6) /**< Channel */
+#define _LESENSE_IF_CH6_SHIFT 6 /**< Shift value for LESENSE_CH6 */
+#define _LESENSE_IF_CH6_MASK 0x40UL /**< Bit mask for LESENSE_CH6 */
+#define _LESENSE_IF_CH6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH6_DEFAULT (_LESENSE_IF_CH6_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH7 (0x1UL << 7) /**< Channel */
+#define _LESENSE_IF_CH7_SHIFT 7 /**< Shift value for LESENSE_CH7 */
+#define _LESENSE_IF_CH7_MASK 0x80UL /**< Bit mask for LESENSE_CH7 */
+#define _LESENSE_IF_CH7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH7_DEFAULT (_LESENSE_IF_CH7_DEFAULT << 7) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH8 (0x1UL << 8) /**< Channel */
+#define _LESENSE_IF_CH8_SHIFT 8 /**< Shift value for LESENSE_CH8 */
+#define _LESENSE_IF_CH8_MASK 0x100UL /**< Bit mask for LESENSE_CH8 */
+#define _LESENSE_IF_CH8_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH8_DEFAULT (_LESENSE_IF_CH8_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH9 (0x1UL << 9) /**< Channel */
+#define _LESENSE_IF_CH9_SHIFT 9 /**< Shift value for LESENSE_CH9 */
+#define _LESENSE_IF_CH9_MASK 0x200UL /**< Bit mask for LESENSE_CH9 */
+#define _LESENSE_IF_CH9_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH9_DEFAULT (_LESENSE_IF_CH9_DEFAULT << 9) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH10 (0x1UL << 10) /**< Channel */
+#define _LESENSE_IF_CH10_SHIFT 10 /**< Shift value for LESENSE_CH10 */
+#define _LESENSE_IF_CH10_MASK 0x400UL /**< Bit mask for LESENSE_CH10 */
+#define _LESENSE_IF_CH10_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH10_DEFAULT (_LESENSE_IF_CH10_DEFAULT << 10) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH11 (0x1UL << 11) /**< Channel */
+#define _LESENSE_IF_CH11_SHIFT 11 /**< Shift value for LESENSE_CH11 */
+#define _LESENSE_IF_CH11_MASK 0x800UL /**< Bit mask for LESENSE_CH11 */
+#define _LESENSE_IF_CH11_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH11_DEFAULT (_LESENSE_IF_CH11_DEFAULT << 11) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH12 (0x1UL << 12) /**< Channel */
+#define _LESENSE_IF_CH12_SHIFT 12 /**< Shift value for LESENSE_CH12 */
+#define _LESENSE_IF_CH12_MASK 0x1000UL /**< Bit mask for LESENSE_CH12 */
+#define _LESENSE_IF_CH12_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH12_DEFAULT (_LESENSE_IF_CH12_DEFAULT << 12) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH13 (0x1UL << 13) /**< Channel */
+#define _LESENSE_IF_CH13_SHIFT 13 /**< Shift value for LESENSE_CH13 */
+#define _LESENSE_IF_CH13_MASK 0x2000UL /**< Bit mask for LESENSE_CH13 */
+#define _LESENSE_IF_CH13_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH13_DEFAULT (_LESENSE_IF_CH13_DEFAULT << 13) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH14 (0x1UL << 14) /**< Channel */
+#define _LESENSE_IF_CH14_SHIFT 14 /**< Shift value for LESENSE_CH14 */
+#define _LESENSE_IF_CH14_MASK 0x4000UL /**< Bit mask for LESENSE_CH14 */
+#define _LESENSE_IF_CH14_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH14_DEFAULT (_LESENSE_IF_CH14_DEFAULT << 14) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH15 (0x1UL << 15) /**< Channel */
+#define _LESENSE_IF_CH15_SHIFT 15 /**< Shift value for LESENSE_CH15 */
+#define _LESENSE_IF_CH15_MASK 0x8000UL /**< Bit mask for LESENSE_CH15 */
+#define _LESENSE_IF_CH15_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CH15_DEFAULT (_LESENSE_IF_CH15_DEFAULT << 15) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_SCANDONE (0x1UL << 16) /**< Scan Done */
+#define _LESENSE_IF_SCANDONE_SHIFT 16 /**< Shift value for LESENSE_SCANDONE */
+#define _LESENSE_IF_SCANDONE_MASK 0x10000UL /**< Bit mask for LESENSE_SCANDONE */
+#define _LESENSE_IF_SCANDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_SCANDONE_DEFAULT (_LESENSE_IF_SCANDONE_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_DEC (0x1UL << 17) /**< Decoder */
+#define _LESENSE_IF_DEC_SHIFT 17 /**< Shift value for LESENSE_DEC */
+#define _LESENSE_IF_DEC_MASK 0x20000UL /**< Bit mask for LESENSE_DEC */
+#define _LESENSE_IF_DEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_DEC_DEFAULT (_LESENSE_IF_DEC_DEFAULT << 17) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESWL (0x1UL << 18) /**< Result Watermark Level */
+#define _LESENSE_IF_RESWL_SHIFT 18 /**< Shift value for LESENSE_RESWL */
+#define _LESENSE_IF_RESWL_MASK 0x40000UL /**< Bit mask for LESENSE_RESWL */
+#define _LESENSE_IF_RESWL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESWL_DEFAULT (_LESENSE_IF_RESWL_DEFAULT << 18) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESOF (0x1UL << 19) /**< Result Overflow */
+#define _LESENSE_IF_RESOF_SHIFT 19 /**< Shift value for LESENSE_RESOF */
+#define _LESENSE_IF_RESOF_MASK 0x80000UL /**< Bit mask for LESENSE_RESOF */
+#define _LESENSE_IF_RESOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESOF_DEFAULT (_LESENSE_IF_RESOF_DEFAULT << 19) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CNTOF (0x1UL << 20) /**< Counter Overflow */
+#define _LESENSE_IF_CNTOF_SHIFT 20 /**< Shift value for LESENSE_CNTOF */
+#define _LESENSE_IF_CNTOF_MASK 0x100000UL /**< Bit mask for LESENSE_CNTOF */
+#define _LESENSE_IF_CNTOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_CNTOF_DEFAULT (_LESENSE_IF_CNTOF_DEFAULT << 20) /**< Shifted mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESUF (0x1UL << 21) /**< Result Underflow */
+#define _LESENSE_IF_RESUF_SHIFT 21 /**< Shift value for LESENSE_RESUF */
+#define _LESENSE_IF_RESUF_MASK 0x200000UL /**< Bit mask for LESENSE_RESUF */
+#define _LESENSE_IF_RESUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IF */
+#define LESENSE_IF_RESUF_DEFAULT (_LESENSE_IF_RESUF_DEFAULT << 21) /**< Shifted mode DEFAULT for LESENSE_IF */
+
+/* Bit fields for LESENSE IEN */
+#define _LESENSE_IEN_RESETVALUE 0x00000000UL /**< Default value for LESENSE_IEN */
+#define _LESENSE_IEN_MASK 0x003FFFFFUL /**< Mask for LESENSE_IEN */
+#define LESENSE_IEN_CH0 (0x1UL << 0) /**< Channel */
+#define _LESENSE_IEN_CH0_SHIFT 0 /**< Shift value for LESENSE_CH0 */
+#define _LESENSE_IEN_CH0_MASK 0x1UL /**< Bit mask for LESENSE_CH0 */
+#define _LESENSE_IEN_CH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH0_DEFAULT (_LESENSE_IEN_CH0_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH1 (0x1UL << 1) /**< Channel */
+#define _LESENSE_IEN_CH1_SHIFT 1 /**< Shift value for LESENSE_CH1 */
+#define _LESENSE_IEN_CH1_MASK 0x2UL /**< Bit mask for LESENSE_CH1 */
+#define _LESENSE_IEN_CH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH1_DEFAULT (_LESENSE_IEN_CH1_DEFAULT << 1) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH2 (0x1UL << 2) /**< Channel */
+#define _LESENSE_IEN_CH2_SHIFT 2 /**< Shift value for LESENSE_CH2 */
+#define _LESENSE_IEN_CH2_MASK 0x4UL /**< Bit mask for LESENSE_CH2 */
+#define _LESENSE_IEN_CH2_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH2_DEFAULT (_LESENSE_IEN_CH2_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH3 (0x1UL << 3) /**< Channel */
+#define _LESENSE_IEN_CH3_SHIFT 3 /**< Shift value for LESENSE_CH3 */
+#define _LESENSE_IEN_CH3_MASK 0x8UL /**< Bit mask for LESENSE_CH3 */
+#define _LESENSE_IEN_CH3_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH3_DEFAULT (_LESENSE_IEN_CH3_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH4 (0x1UL << 4) /**< Channel */
+#define _LESENSE_IEN_CH4_SHIFT 4 /**< Shift value for LESENSE_CH4 */
+#define _LESENSE_IEN_CH4_MASK 0x10UL /**< Bit mask for LESENSE_CH4 */
+#define _LESENSE_IEN_CH4_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH4_DEFAULT (_LESENSE_IEN_CH4_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH5 (0x1UL << 5) /**< Channel */
+#define _LESENSE_IEN_CH5_SHIFT 5 /**< Shift value for LESENSE_CH5 */
+#define _LESENSE_IEN_CH5_MASK 0x20UL /**< Bit mask for LESENSE_CH5 */
+#define _LESENSE_IEN_CH5_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH5_DEFAULT (_LESENSE_IEN_CH5_DEFAULT << 5) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH6 (0x1UL << 6) /**< Channel */
+#define _LESENSE_IEN_CH6_SHIFT 6 /**< Shift value for LESENSE_CH6 */
+#define _LESENSE_IEN_CH6_MASK 0x40UL /**< Bit mask for LESENSE_CH6 */
+#define _LESENSE_IEN_CH6_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH6_DEFAULT (_LESENSE_IEN_CH6_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH7 (0x1UL << 7) /**< Channel */
+#define _LESENSE_IEN_CH7_SHIFT 7 /**< Shift value for LESENSE_CH7 */
+#define _LESENSE_IEN_CH7_MASK 0x80UL /**< Bit mask for LESENSE_CH7 */
+#define _LESENSE_IEN_CH7_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH7_DEFAULT (_LESENSE_IEN_CH7_DEFAULT << 7) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH8 (0x1UL << 8) /**< Channel */
+#define _LESENSE_IEN_CH8_SHIFT 8 /**< Shift value for LESENSE_CH8 */
+#define _LESENSE_IEN_CH8_MASK 0x100UL /**< Bit mask for LESENSE_CH8 */
+#define _LESENSE_IEN_CH8_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH8_DEFAULT (_LESENSE_IEN_CH8_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH9 (0x1UL << 9) /**< Channel */
+#define _LESENSE_IEN_CH9_SHIFT 9 /**< Shift value for LESENSE_CH9 */
+#define _LESENSE_IEN_CH9_MASK 0x200UL /**< Bit mask for LESENSE_CH9 */
+#define _LESENSE_IEN_CH9_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH9_DEFAULT (_LESENSE_IEN_CH9_DEFAULT << 9) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH10 (0x1UL << 10) /**< Channel */
+#define _LESENSE_IEN_CH10_SHIFT 10 /**< Shift value for LESENSE_CH10 */
+#define _LESENSE_IEN_CH10_MASK 0x400UL /**< Bit mask for LESENSE_CH10 */
+#define _LESENSE_IEN_CH10_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH10_DEFAULT (_LESENSE_IEN_CH10_DEFAULT << 10) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH11 (0x1UL << 11) /**< Channel */
+#define _LESENSE_IEN_CH11_SHIFT 11 /**< Shift value for LESENSE_CH11 */
+#define _LESENSE_IEN_CH11_MASK 0x800UL /**< Bit mask for LESENSE_CH11 */
+#define _LESENSE_IEN_CH11_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH11_DEFAULT (_LESENSE_IEN_CH11_DEFAULT << 11) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH12 (0x1UL << 12) /**< Channel */
+#define _LESENSE_IEN_CH12_SHIFT 12 /**< Shift value for LESENSE_CH12 */
+#define _LESENSE_IEN_CH12_MASK 0x1000UL /**< Bit mask for LESENSE_CH12 */
+#define _LESENSE_IEN_CH12_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH12_DEFAULT (_LESENSE_IEN_CH12_DEFAULT << 12) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH13 (0x1UL << 13) /**< Channel */
+#define _LESENSE_IEN_CH13_SHIFT 13 /**< Shift value for LESENSE_CH13 */
+#define _LESENSE_IEN_CH13_MASK 0x2000UL /**< Bit mask for LESENSE_CH13 */
+#define _LESENSE_IEN_CH13_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH13_DEFAULT (_LESENSE_IEN_CH13_DEFAULT << 13) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH14 (0x1UL << 14) /**< Channel */
+#define _LESENSE_IEN_CH14_SHIFT 14 /**< Shift value for LESENSE_CH14 */
+#define _LESENSE_IEN_CH14_MASK 0x4000UL /**< Bit mask for LESENSE_CH14 */
+#define _LESENSE_IEN_CH14_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH14_DEFAULT (_LESENSE_IEN_CH14_DEFAULT << 14) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH15 (0x1UL << 15) /**< Channel */
+#define _LESENSE_IEN_CH15_SHIFT 15 /**< Shift value for LESENSE_CH15 */
+#define _LESENSE_IEN_CH15_MASK 0x8000UL /**< Bit mask for LESENSE_CH15 */
+#define _LESENSE_IEN_CH15_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CH15_DEFAULT (_LESENSE_IEN_CH15_DEFAULT << 15) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_SCANDONE (0x1UL << 16) /**< Scan Complete */
+#define _LESENSE_IEN_SCANDONE_SHIFT 16 /**< Shift value for LESENSE_SCANDONE */
+#define _LESENSE_IEN_SCANDONE_MASK 0x10000UL /**< Bit mask for LESENSE_SCANDONE */
+#define _LESENSE_IEN_SCANDONE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_SCANDONE_DEFAULT (_LESENSE_IEN_SCANDONE_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_DEC (0x1UL << 17) /**< Decoder */
+#define _LESENSE_IEN_DEC_SHIFT 17 /**< Shift value for LESENSE_DEC */
+#define _LESENSE_IEN_DEC_MASK 0x20000UL /**< Bit mask for LESENSE_DEC */
+#define _LESENSE_IEN_DEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_DEC_DEFAULT (_LESENSE_IEN_DEC_DEFAULT << 17) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESWL (0x1UL << 18) /**< Result Watermark Level */
+#define _LESENSE_IEN_RESWL_SHIFT 18 /**< Shift value for LESENSE_RESWL */
+#define _LESENSE_IEN_RESWL_MASK 0x40000UL /**< Bit mask for LESENSE_RESWL */
+#define _LESENSE_IEN_RESWL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESWL_DEFAULT (_LESENSE_IEN_RESWL_DEFAULT << 18) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESOF (0x1UL << 19) /**< Result Overflow */
+#define _LESENSE_IEN_RESOF_SHIFT 19 /**< Shift value for LESENSE_RESOF */
+#define _LESENSE_IEN_RESOF_MASK 0x80000UL /**< Bit mask for LESENSE_RESOF */
+#define _LESENSE_IEN_RESOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESOF_DEFAULT (_LESENSE_IEN_RESOF_DEFAULT << 19) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CNTOF (0x1UL << 20) /**< Counter Overflow */
+#define _LESENSE_IEN_CNTOF_SHIFT 20 /**< Shift value for LESENSE_CNTOF */
+#define _LESENSE_IEN_CNTOF_MASK 0x100000UL /**< Bit mask for LESENSE_CNTOF */
+#define _LESENSE_IEN_CNTOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_CNTOF_DEFAULT (_LESENSE_IEN_CNTOF_DEFAULT << 20) /**< Shifted mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESUF (0x1UL << 21) /**< Result Underflow */
+#define _LESENSE_IEN_RESUF_SHIFT 21 /**< Shift value for LESENSE_RESUF */
+#define _LESENSE_IEN_RESUF_MASK 0x200000UL /**< Bit mask for LESENSE_RESUF */
+#define _LESENSE_IEN_RESUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_IEN */
+#define LESENSE_IEN_RESUF_DEFAULT (_LESENSE_IEN_RESUF_DEFAULT << 21) /**< Shifted mode DEFAULT for LESENSE_IEN */
+
+/* Bit fields for LESENSE CH_TIMING */
+#define _LESENSE_CH_TIMING_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CH_TIMING */
+#define _LESENSE_CH_TIMING_MASK 0x00FFFFFFUL /**< Mask for LESENSE_CH_TIMING */
+#define _LESENSE_CH_TIMING_EXTIME_SHIFT 0 /**< Shift value for LESENSE_EXTIME */
+#define _LESENSE_CH_TIMING_EXTIME_MASK 0x3FUL /**< Bit mask for LESENSE_EXTIME */
+#define _LESENSE_CH_TIMING_EXTIME_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_TIMING */
+#define LESENSE_CH_TIMING_EXTIME_DEFAULT (_LESENSE_CH_TIMING_EXTIME_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CH_TIMING */
+#define _LESENSE_CH_TIMING_SAMPLEDLY_SHIFT 6 /**< Shift value for LESENSE_SAMPLEDLY */
+#define _LESENSE_CH_TIMING_SAMPLEDLY_MASK 0x3FC0UL /**< Bit mask for LESENSE_SAMPLEDLY */
+#define _LESENSE_CH_TIMING_SAMPLEDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_TIMING */
+#define LESENSE_CH_TIMING_SAMPLEDLY_DEFAULT (_LESENSE_CH_TIMING_SAMPLEDLY_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_CH_TIMING */
+#define _LESENSE_CH_TIMING_MEASUREDLY_SHIFT 14 /**< Shift value for LESENSE_MEASUREDLY */
+#define _LESENSE_CH_TIMING_MEASUREDLY_MASK 0xFFC000UL /**< Bit mask for LESENSE_MEASUREDLY */
+#define _LESENSE_CH_TIMING_MEASUREDLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_TIMING */
+#define LESENSE_CH_TIMING_MEASUREDLY_DEFAULT (_LESENSE_CH_TIMING_MEASUREDLY_DEFAULT << 14) /**< Shifted mode DEFAULT for LESENSE_CH_TIMING */
+
+/* Bit fields for LESENSE CH_INTERACT */
+#define _LESENSE_CH_INTERACT_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_MASK 0x3FFF0FFFUL /**< Mask for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_THRES_SHIFT 0 /**< Shift value for LESENSE_THRES */
+#define _LESENSE_CH_INTERACT_THRES_MASK 0xFFFUL /**< Bit mask for LESENSE_THRES */
+#define _LESENSE_CH_INTERACT_THRES_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_THRES_DEFAULT (_LESENSE_CH_INTERACT_THRES_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define _LESENSE_CH_INTERACT_EXMODE_SHIFT 16 /**< Shift value for LESENSE_EXMODE */
+#define _LESENSE_CH_INTERACT_EXMODE_MASK 0x30000UL /**< Bit mask for LESENSE_EXMODE */
+#define _LESENSE_CH_INTERACT_EXMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXMODE_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXMODE_HIGH 0x00000001UL /**< Mode HIGH for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXMODE_LOW 0x00000002UL /**< Mode LOW for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXMODE_DACOUT 0x00000003UL /**< Mode DACOUT for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_EXMODE_DEFAULT (_LESENSE_CH_INTERACT_EXMODE_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_EXMODE_DISABLE (_LESENSE_CH_INTERACT_EXMODE_DISABLE << 16) /**< Shifted mode DISABLE for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_EXMODE_HIGH (_LESENSE_CH_INTERACT_EXMODE_HIGH << 16) /**< Shifted mode HIGH for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_EXMODE_LOW (_LESENSE_CH_INTERACT_EXMODE_LOW << 16) /**< Shifted mode LOW for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_EXMODE_DACOUT (_LESENSE_CH_INTERACT_EXMODE_DACOUT << 16) /**< Shifted mode DACOUT for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_ALTEX (0x1UL << 18) /**< Use alternative excite pin */
+#define _LESENSE_CH_INTERACT_ALTEX_SHIFT 18 /**< Shift value for LESENSE_ALTEX */
+#define _LESENSE_CH_INTERACT_ALTEX_MASK 0x40000UL /**< Bit mask for LESENSE_ALTEX */
+#define _LESENSE_CH_INTERACT_ALTEX_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_ALTEX_DEFAULT (_LESENSE_CH_INTERACT_ALTEX_DEFAULT << 18) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SAMPLECLK (0x1UL << 19) /**< Select clock used for timing of sample d */
+#define _LESENSE_CH_INTERACT_SAMPLECLK_SHIFT 19 /**< Shift value for LESENSE_SAMPLECLK */
+#define _LESENSE_CH_INTERACT_SAMPLECLK_MASK 0x80000UL /**< Bit mask for LESENSE_SAMPLECLK */
+#define _LESENSE_CH_INTERACT_SAMPLECLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLECLK_LFACLK 0x00000000UL /**< Mode LFACLK for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLECLK_AUXHFRCO 0x00000001UL /**< Mode AUXHFRCO for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SAMPLECLK_DEFAULT (_LESENSE_CH_INTERACT_SAMPLECLK_DEFAULT << 19) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SAMPLECLK_LFACLK (_LESENSE_CH_INTERACT_SAMPLECLK_LFACLK << 19) /**< Shifted mode LFACLK for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SAMPLECLK_AUXHFRCO (_LESENSE_CH_INTERACT_SAMPLECLK_AUXHFRCO << 19) /**< Shifted mode AUXHFRCO for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_EXCLK (0x1UL << 20) /**< Select clock used for excitation timing */
+#define _LESENSE_CH_INTERACT_EXCLK_SHIFT 20 /**< Shift value for LESENSE_EXCLK */
+#define _LESENSE_CH_INTERACT_EXCLK_MASK 0x100000UL /**< Bit mask for LESENSE_EXCLK */
+#define _LESENSE_CH_INTERACT_EXCLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXCLK_LFACLK 0x00000000UL /**< Mode LFACLK for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_EXCLK_AUXHFRCO 0x00000001UL /**< Mode AUXHFRCO for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_EXCLK_DEFAULT (_LESENSE_CH_INTERACT_EXCLK_DEFAULT << 20) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_EXCLK_LFACLK (_LESENSE_CH_INTERACT_EXCLK_LFACLK << 20) /**< Shifted mode LFACLK for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_EXCLK_AUXHFRCO (_LESENSE_CH_INTERACT_EXCLK_AUXHFRCO << 20) /**< Shifted mode AUXHFRCO for LESENSE_CH_INTERACT*/
+#define _LESENSE_CH_INTERACT_SETIF_SHIFT 21 /**< Shift value for LESENSE_SETIF */
+#define _LESENSE_CH_INTERACT_SETIF_MASK 0xE00000UL /**< Bit mask for LESENSE_SETIF */
+#define _LESENSE_CH_INTERACT_SETIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SETIF_NONE 0x00000000UL /**< Mode NONE for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SETIF_LEVEL 0x00000001UL /**< Mode LEVEL for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SETIF_POSEDGE 0x00000002UL /**< Mode POSEDGE for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SETIF_NEGEDGE 0x00000003UL /**< Mode NEGEDGE for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SETIF_BOTHEDGES 0x00000004UL /**< Mode BOTHEDGES for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SETIF_DEFAULT (_LESENSE_CH_INTERACT_SETIF_DEFAULT << 21) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SETIF_NONE (_LESENSE_CH_INTERACT_SETIF_NONE << 21) /**< Shifted mode NONE for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SETIF_LEVEL (_LESENSE_CH_INTERACT_SETIF_LEVEL << 21) /**< Shifted mode LEVEL for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SETIF_POSEDGE (_LESENSE_CH_INTERACT_SETIF_POSEDGE << 21) /**< Shifted mode POSEDGE for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SETIF_NEGEDGE (_LESENSE_CH_INTERACT_SETIF_NEGEDGE << 21) /**< Shifted mode NEGEDGE for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SETIF_BOTHEDGES (_LESENSE_CH_INTERACT_SETIF_BOTHEDGES << 21) /**< Shifted mode BOTHEDGES for LESENSE_CH_INTERACT*/
+#define _LESENSE_CH_INTERACT_OFFSET_SHIFT 24 /**< Shift value for LESENSE_OFFSET */
+#define _LESENSE_CH_INTERACT_OFFSET_MASK 0xF000000UL /**< Bit mask for LESENSE_OFFSET */
+#define _LESENSE_CH_INTERACT_OFFSET_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_OFFSET_DEFAULT (_LESENSE_CH_INTERACT_OFFSET_DEFAULT << 24) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define _LESENSE_CH_INTERACT_SAMPLE_SHIFT 28 /**< Shift value for LESENSE_SAMPLE */
+#define _LESENSE_CH_INTERACT_SAMPLE_MASK 0x30000000UL /**< Bit mask for LESENSE_SAMPLE */
+#define _LESENSE_CH_INTERACT_SAMPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLE_ACMPCOUNT 0x00000000UL /**< Mode ACMPCOUNT for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLE_ACMP 0x00000001UL /**< Mode ACMP for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLE_ADC 0x00000002UL /**< Mode ADC for LESENSE_CH_INTERACT */
+#define _LESENSE_CH_INTERACT_SAMPLE_ADCDIFF 0x00000003UL /**< Mode ADCDIFF for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SAMPLE_DEFAULT (_LESENSE_CH_INTERACT_SAMPLE_DEFAULT << 28) /**< Shifted mode DEFAULT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SAMPLE_ACMPCOUNT (_LESENSE_CH_INTERACT_SAMPLE_ACMPCOUNT << 28) /**< Shifted mode ACMPCOUNT for LESENSE_CH_INTERACT*/
+#define LESENSE_CH_INTERACT_SAMPLE_ACMP (_LESENSE_CH_INTERACT_SAMPLE_ACMP << 28) /**< Shifted mode ACMP for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SAMPLE_ADC (_LESENSE_CH_INTERACT_SAMPLE_ADC << 28) /**< Shifted mode ADC for LESENSE_CH_INTERACT */
+#define LESENSE_CH_INTERACT_SAMPLE_ADCDIFF (_LESENSE_CH_INTERACT_SAMPLE_ADCDIFF << 28) /**< Shifted mode ADCDIFF for LESENSE_CH_INTERACT*/
+
+/* Bit fields for LESENSE CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_MASK 0x0000037CUL /**< Mask for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_DECODE (0x1UL << 2) /**< Send result to decoder */
+#define _LESENSE_CH_EVALCFG_DECODE_SHIFT 2 /**< Shift value for LESENSE_DECODE */
+#define _LESENSE_CH_EVALCFG_DECODE_MASK 0x4UL /**< Bit mask for LESENSE_DECODE */
+#define _LESENSE_CH_EVALCFG_DECODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_DECODE_DEFAULT (_LESENSE_CH_EVALCFG_DECODE_DEFAULT << 2) /**< Shifted mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_COMP (0x1UL << 3) /**< Select mode for threshold comparison */
+#define _LESENSE_CH_EVALCFG_COMP_SHIFT 3 /**< Shift value for LESENSE_COMP */
+#define _LESENSE_CH_EVALCFG_COMP_MASK 0x8UL /**< Bit mask for LESENSE_COMP */
+#define _LESENSE_CH_EVALCFG_COMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_COMP_LESS 0x00000000UL /**< Mode LESS for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_COMP_GE 0x00000001UL /**< Mode GE for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_COMP_DEFAULT (_LESENSE_CH_EVALCFG_COMP_DEFAULT << 3) /**< Shifted mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_COMP_LESS (_LESENSE_CH_EVALCFG_COMP_LESS << 3) /**< Shifted mode LESS for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_COMP_GE (_LESENSE_CH_EVALCFG_COMP_GE << 3) /**< Shifted mode GE for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_SHIFT 4 /**< Shift value for LESENSE_STRSAMPLE */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_MASK 0x30UL /**< Bit mask for LESENSE_STRSAMPLE */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_DISABLE 0x00000000UL /**< Mode DISABLE for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_DATA 0x00000001UL /**< Mode DATA for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_STRSAMPLE_DATASRC 0x00000002UL /**< Mode DATASRC for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_STRSAMPLE_DEFAULT (_LESENSE_CH_EVALCFG_STRSAMPLE_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_STRSAMPLE_DISABLE (_LESENSE_CH_EVALCFG_STRSAMPLE_DISABLE << 4) /**< Shifted mode DISABLE for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_STRSAMPLE_DATA (_LESENSE_CH_EVALCFG_STRSAMPLE_DATA << 4) /**< Shifted mode DATA for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_STRSAMPLE_DATASRC (_LESENSE_CH_EVALCFG_STRSAMPLE_DATASRC << 4) /**< Shifted mode DATASRC for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_SCANRESINV (0x1UL << 6) /**< Enable inversion of result */
+#define _LESENSE_CH_EVALCFG_SCANRESINV_SHIFT 6 /**< Shift value for LESENSE_SCANRESINV */
+#define _LESENSE_CH_EVALCFG_SCANRESINV_MASK 0x40UL /**< Bit mask for LESENSE_SCANRESINV */
+#define _LESENSE_CH_EVALCFG_SCANRESINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_SCANRESINV_DEFAULT (_LESENSE_CH_EVALCFG_SCANRESINV_DEFAULT << 6) /**< Shifted mode DEFAULT for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_MODE_SHIFT 8 /**< Shift value for LESENSE_MODE */
+#define _LESENSE_CH_EVALCFG_MODE_MASK 0x300UL /**< Bit mask for LESENSE_MODE */
+#define _LESENSE_CH_EVALCFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_MODE_THRES 0x00000000UL /**< Mode THRES for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_MODE_SLIDINGWIN 0x00000001UL /**< Mode SLIDINGWIN for LESENSE_CH_EVALCFG */
+#define _LESENSE_CH_EVALCFG_MODE_STEPDET 0x00000002UL /**< Mode STEPDET for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_MODE_DEFAULT (_LESENSE_CH_EVALCFG_MODE_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_MODE_THRES (_LESENSE_CH_EVALCFG_MODE_THRES << 8) /**< Shifted mode THRES for LESENSE_CH_EVALCFG */
+#define LESENSE_CH_EVALCFG_MODE_SLIDINGWIN (_LESENSE_CH_EVALCFG_MODE_SLIDINGWIN << 8) /**< Shifted mode SLIDINGWIN for LESENSE_CH_EVALCFG*/
+#define LESENSE_CH_EVALCFG_MODE_STEPDET (_LESENSE_CH_EVALCFG_MODE_STEPDET << 8) /**< Shifted mode STEPDET for LESENSE_CH_EVALCFG */
+
+/* Bit fields for LESENSE CH_EVALTHRES */
+#define _LESENSE_CH_EVALTHRES_RESETVALUE 0x00000000UL /**< Default value for LESENSE_CH_EVALTHRES */
+#define _LESENSE_CH_EVALTHRES_MASK 0x0000FFFFUL /**< Mask for LESENSE_CH_EVALTHRES */
+#define _LESENSE_CH_EVALTHRES_EVALTHRES_SHIFT 0 /**< Shift value for LESENSE_EVALTHRES */
+#define _LESENSE_CH_EVALTHRES_EVALTHRES_MASK 0xFFFFUL /**< Bit mask for LESENSE_EVALTHRES */
+#define _LESENSE_CH_EVALTHRES_EVALTHRES_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_CH_EVALTHRES */
+#define LESENSE_CH_EVALTHRES_EVALTHRES_DEFAULT (_LESENSE_CH_EVALTHRES_EVALTHRES_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_CH_EVALTHRES*/
+
+/* Bit fields for LESENSE ST_ARC */
+#define _LESENSE_ST_ARC_RESETVALUE 0x00000000UL /**< Default value for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_MASK 0x003FFFFFUL /**< Mask for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_SCOMP_SHIFT 0 /**< Shift value for LESENSE_SCOMP */
+#define _LESENSE_ST_ARC_SCOMP_MASK 0xFUL /**< Bit mask for LESENSE_SCOMP */
+#define _LESENSE_ST_ARC_SCOMP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_SCOMP_DEFAULT (_LESENSE_ST_ARC_SCOMP_DEFAULT << 0) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_SMASK_SHIFT 4 /**< Shift value for LESENSE_SMASK */
+#define _LESENSE_ST_ARC_SMASK_MASK 0xF0UL /**< Bit mask for LESENSE_SMASK */
+#define _LESENSE_ST_ARC_SMASK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_SMASK_DEFAULT (_LESENSE_ST_ARC_SMASK_DEFAULT << 4) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_CURSTATE_SHIFT 8 /**< Shift value for LESENSE_CURSTATE */
+#define _LESENSE_ST_ARC_CURSTATE_MASK 0x1F00UL /**< Bit mask for LESENSE_CURSTATE */
+#define _LESENSE_ST_ARC_CURSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_CURSTATE_DEFAULT (_LESENSE_ST_ARC_CURSTATE_DEFAULT << 8) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_SHIFT 13 /**< Shift value for LESENSE_PRSACT */
+#define _LESENSE_ST_ARC_PRSACT_MASK 0xE000UL /**< Bit mask for LESENSE_PRSACT */
+#define _LESENSE_ST_ARC_PRSACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_NONE 0x00000000UL /**< Mode NONE for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS0 0x00000001UL /**< Mode PRS0 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_UP 0x00000001UL /**< Mode UP for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS1 0x00000002UL /**< Mode PRS1 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_DOWN 0x00000002UL /**< Mode DOWN for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS01 0x00000003UL /**< Mode PRS01 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS2 0x00000004UL /**< Mode PRS2 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS02 0x00000005UL /**< Mode PRS02 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_UPANDPRS2 0x00000005UL /**< Mode UPANDPRS2 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS12 0x00000006UL /**< Mode PRS12 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_DOWNANDPRS2 0x00000006UL /**< Mode DOWNANDPRS2 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_PRSACT_PRS012 0x00000007UL /**< Mode PRS012 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_DEFAULT (_LESENSE_ST_ARC_PRSACT_DEFAULT << 13) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_NONE (_LESENSE_ST_ARC_PRSACT_NONE << 13) /**< Shifted mode NONE for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS0 (_LESENSE_ST_ARC_PRSACT_PRS0 << 13) /**< Shifted mode PRS0 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_UP (_LESENSE_ST_ARC_PRSACT_UP << 13) /**< Shifted mode UP for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS1 (_LESENSE_ST_ARC_PRSACT_PRS1 << 13) /**< Shifted mode PRS1 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_DOWN (_LESENSE_ST_ARC_PRSACT_DOWN << 13) /**< Shifted mode DOWN for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS01 (_LESENSE_ST_ARC_PRSACT_PRS01 << 13) /**< Shifted mode PRS01 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS2 (_LESENSE_ST_ARC_PRSACT_PRS2 << 13) /**< Shifted mode PRS2 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS02 (_LESENSE_ST_ARC_PRSACT_PRS02 << 13) /**< Shifted mode PRS02 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_UPANDPRS2 (_LESENSE_ST_ARC_PRSACT_UPANDPRS2 << 13) /**< Shifted mode UPANDPRS2 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS12 (_LESENSE_ST_ARC_PRSACT_PRS12 << 13) /**< Shifted mode PRS12 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_DOWNANDPRS2 (_LESENSE_ST_ARC_PRSACT_DOWNANDPRS2 << 13) /**< Shifted mode DOWNANDPRS2 for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_PRSACT_PRS012 (_LESENSE_ST_ARC_PRSACT_PRS012 << 13) /**< Shifted mode PRS012 for LESENSE_ST_ARC */
+#define _LESENSE_ST_ARC_NEXTSTATE_SHIFT 16 /**< Shift value for LESENSE_NEXTSTATE */
+#define _LESENSE_ST_ARC_NEXTSTATE_MASK 0x1F0000UL /**< Bit mask for LESENSE_NEXTSTATE */
+#define _LESENSE_ST_ARC_NEXTSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_NEXTSTATE_DEFAULT (_LESENSE_ST_ARC_NEXTSTATE_DEFAULT << 16) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_SETIF (0x1UL << 21) /**< Set interrupt flag */
+#define _LESENSE_ST_ARC_SETIF_SHIFT 21 /**< Shift value for LESENSE_SETIF */
+#define _LESENSE_ST_ARC_SETIF_MASK 0x200000UL /**< Bit mask for LESENSE_SETIF */
+#define _LESENSE_ST_ARC_SETIF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LESENSE_ST_ARC */
+#define LESENSE_ST_ARC_SETIF_DEFAULT (_LESENSE_ST_ARC_SETIF_DEFAULT << 21) /**< Shifted mode DEFAULT for LESENSE_ST_ARC */
+
+/** @} End of group EFR32ZG23_LESENSE_BitFields */
+/** @} End of group EFR32ZG23_LESENSE */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LESENSE_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_letimer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_letimer.h
new file mode 100644
index 000000000..c7b71b050
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_letimer.h
@@ -0,0 +1,534 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LETIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LETIMER_H
+#define EFR32ZG23_LETIMER_H
+#define LETIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LETIMER LETIMER
+ * @{
+ * @brief EFR32ZG23 LETIMER Register Declaration.
+ *****************************************************************************/
+
+/** LETIMER Register Declaration. */
+typedef struct letimer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ __IOM uint32_t EN; /**< module en */
+ __IOM uint32_t SWRST; /**< Software Reset Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IOM uint32_t COMP0; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE; /**< PRS Input mode select Register */
+ uint32_t RESERVED1[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ __IOM uint32_t EN_SET; /**< module en */
+ __IOM uint32_t SWRST_SET; /**< Software Reset Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IOM uint32_t COMP0_SET; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_SET; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_SET; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_SET; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_SET; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_SET; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_SET; /**< PRS Input mode select Register */
+ uint32_t RESERVED3[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ __IOM uint32_t EN_CLR; /**< module en */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IOM uint32_t COMP0_CLR; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_CLR; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_CLR; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_CLR; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_CLR; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_CLR; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_CLR; /**< PRS Input mode select Register */
+ uint32_t RESERVED5[1003U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ __IOM uint32_t EN_TGL; /**< module en */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IOM uint32_t COMP0_TGL; /**< Compare Value Register 0 */
+ __IOM uint32_t COMP1_TGL; /**< Compare Value Register 1 */
+ __IOM uint32_t TOP_TGL; /**< Counter TOP Value Register */
+ __IOM uint32_t TOPBUFF_TGL; /**< Buffered Counter TOP Value */
+ __IOM uint32_t REP0_TGL; /**< Repeat Counter Register 0 */
+ __IOM uint32_t REP1_TGL; /**< Repeat Counter Register 1 */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ uint32_t RESERVED6[3U]; /**< Reserved for future use */
+ __IOM uint32_t PRSMODE_TGL; /**< PRS Input mode select Register */
+} LETIMER_TypeDef;
+/** @} End of group EFR32ZG23_LETIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LETIMER
+ * @{
+ * @defgroup EFR32ZG23_LETIMER_BitFields LETIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LETIMER IPVERSION */
+#define _LETIMER_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LETIMER_IPVERSION */
+#define _LETIMER_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for LETIMER_IPVERSION */
+#define LETIMER_IPVERSION_IPVERSION_DEFAULT (_LETIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IPVERSION */
+
+/* Bit fields for LETIMER EN */
+#define _LETIMER_EN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_EN */
+#define _LETIMER_EN_MASK 0x00000003UL /**< Mask for LETIMER_EN */
+#define LETIMER_EN_EN (0x1UL << 0) /**< module en */
+#define _LETIMER_EN_EN_SHIFT 0 /**< Shift value for LETIMER_EN */
+#define _LETIMER_EN_EN_MASK 0x1UL /**< Bit mask for LETIMER_EN */
+#define _LETIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_EN */
+#define LETIMER_EN_EN_DEFAULT (_LETIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_EN */
+#define LETIMER_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _LETIMER_EN_DISABLING_SHIFT 1 /**< Shift value for LETIMER_DISABLING */
+#define _LETIMER_EN_DISABLING_MASK 0x2UL /**< Bit mask for LETIMER_DISABLING */
+#define _LETIMER_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_EN */
+#define LETIMER_EN_DISABLING_DEFAULT (_LETIMER_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_EN */
+
+/* Bit fields for LETIMER SWRST */
+#define _LETIMER_SWRST_RESETVALUE 0x00000000UL /**< Default value for LETIMER_SWRST */
+#define _LETIMER_SWRST_MASK 0x00000003UL /**< Mask for LETIMER_SWRST */
+#define LETIMER_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _LETIMER_SWRST_SWRST_SHIFT 0 /**< Shift value for LETIMER_SWRST */
+#define _LETIMER_SWRST_SWRST_MASK 0x1UL /**< Bit mask for LETIMER_SWRST */
+#define _LETIMER_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SWRST */
+#define LETIMER_SWRST_SWRST_DEFAULT (_LETIMER_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_SWRST */
+#define LETIMER_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _LETIMER_SWRST_RESETTING_SHIFT 1 /**< Shift value for LETIMER_RESETTING */
+#define _LETIMER_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for LETIMER_RESETTING */
+#define _LETIMER_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SWRST */
+#define LETIMER_SWRST_RESETTING_DEFAULT (_LETIMER_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_SWRST */
+
+/* Bit fields for LETIMER CTRL */
+#define _LETIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CTRL */
+#define _LETIMER_CTRL_MASK 0x000F13FFUL /**< Mask for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_SHIFT 0 /**< Shift value for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_MASK 0x3UL /**< Bit mask for LETIMER_REPMODE */
+#define _LETIMER_CTRL_REPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_FREE 0x00000000UL /**< Mode FREE for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_ONESHOT 0x00000001UL /**< Mode ONESHOT for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_BUFFERED 0x00000002UL /**< Mode BUFFERED for LETIMER_CTRL */
+#define _LETIMER_CTRL_REPMODE_DOUBLE 0x00000003UL /**< Mode DOUBLE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DEFAULT (_LETIMER_CTRL_REPMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_FREE (_LETIMER_CTRL_REPMODE_FREE << 0) /**< Shifted mode FREE for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_ONESHOT (_LETIMER_CTRL_REPMODE_ONESHOT << 0) /**< Shifted mode ONESHOT for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_BUFFERED (_LETIMER_CTRL_REPMODE_BUFFERED << 0) /**< Shifted mode BUFFERED for LETIMER_CTRL */
+#define LETIMER_CTRL_REPMODE_DOUBLE (_LETIMER_CTRL_REPMODE_DOUBLE << 0) /**< Shifted mode DOUBLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_SHIFT 2 /**< Shift value for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_MASK 0xCUL /**< Bit mask for LETIMER_UFOA0 */
+#define _LETIMER_CTRL_UFOA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA0_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_DEFAULT (_LETIMER_CTRL_UFOA0_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_NONE (_LETIMER_CTRL_UFOA0_NONE << 2) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_TOGGLE (_LETIMER_CTRL_UFOA0_TOGGLE << 2) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PULSE (_LETIMER_CTRL_UFOA0_PULSE << 2) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA0_PWM (_LETIMER_CTRL_UFOA0_PWM << 2) /**< Shifted mode PWM for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_SHIFT 4 /**< Shift value for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_MASK 0x30UL /**< Bit mask for LETIMER_UFOA1 */
+#define _LETIMER_CTRL_UFOA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_NONE 0x00000000UL /**< Mode NONE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_TOGGLE 0x00000001UL /**< Mode TOGGLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PULSE 0x00000002UL /**< Mode PULSE for LETIMER_CTRL */
+#define _LETIMER_CTRL_UFOA1_PWM 0x00000003UL /**< Mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_DEFAULT (_LETIMER_CTRL_UFOA1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_NONE (_LETIMER_CTRL_UFOA1_NONE << 4) /**< Shifted mode NONE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_TOGGLE (_LETIMER_CTRL_UFOA1_TOGGLE << 4) /**< Shifted mode TOGGLE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PULSE (_LETIMER_CTRL_UFOA1_PULSE << 4) /**< Shifted mode PULSE for LETIMER_CTRL */
+#define LETIMER_CTRL_UFOA1_PWM (_LETIMER_CTRL_UFOA1_PWM << 4) /**< Shifted mode PWM for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0 (0x1UL << 6) /**< Output 0 Polarity */
+#define _LETIMER_CTRL_OPOL0_SHIFT 6 /**< Shift value for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_MASK 0x40UL /**< Bit mask for LETIMER_OPOL0 */
+#define _LETIMER_CTRL_OPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL0_DEFAULT (_LETIMER_CTRL_OPOL0_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1 (0x1UL << 7) /**< Output 1 Polarity */
+#define _LETIMER_CTRL_OPOL1_SHIFT 7 /**< Shift value for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_MASK 0x80UL /**< Bit mask for LETIMER_OPOL1 */
+#define _LETIMER_CTRL_OPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_OPOL1_DEFAULT (_LETIMER_CTRL_OPOL1_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP (0x1UL << 8) /**< Buffered Top */
+#define _LETIMER_CTRL_BUFTOP_SHIFT 8 /**< Shift value for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_MASK 0x100UL /**< Bit mask for LETIMER_BUFTOP */
+#define _LETIMER_CTRL_BUFTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_BUFTOP_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DEFAULT (_LETIMER_CTRL_BUFTOP_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_DISABLE (_LETIMER_CTRL_BUFTOP_DISABLE << 8) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_BUFTOP_ENABLE (_LETIMER_CTRL_BUFTOP_ENABLE << 8) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN (0x1UL << 9) /**< Compare Value 0 Is Top Value */
+#define _LETIMER_CTRL_CNTTOPEN_SHIFT 9 /**< Shift value for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_MASK 0x200UL /**< Bit mask for LETIMER_CNTTOPEN */
+#define _LETIMER_CTRL_CNTTOPEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTTOPEN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DEFAULT (_LETIMER_CTRL_CNTTOPEN_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_DISABLE (_LETIMER_CTRL_CNTTOPEN_DISABLE << 9) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTTOPEN_ENABLE (_LETIMER_CTRL_CNTTOPEN_ENABLE << 9) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN (0x1UL << 12) /**< Debug Mode Run Enable */
+#define _LETIMER_CTRL_DEBUGRUN_SHIFT 12 /**< Shift value for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_MASK 0x1000UL /**< Bit mask for LETIMER_DEBUGRUN */
+#define _LETIMER_CTRL_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DEFAULT (_LETIMER_CTRL_DEBUGRUN_DEFAULT << 12) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_DISABLE (_LETIMER_CTRL_DEBUGRUN_DISABLE << 12) /**< Shifted mode DISABLE for LETIMER_CTRL */
+#define LETIMER_CTRL_DEBUGRUN_ENABLE (_LETIMER_CTRL_DEBUGRUN_ENABLE << 12) /**< Shifted mode ENABLE for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_SHIFT 16 /**< Shift value for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_MASK 0xF0000UL /**< Bit mask for LETIMER_CNTPRESC */
+#define _LETIMER_CTRL_CNTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV1 0x00000000UL /**< Mode DIV1 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV2 0x00000001UL /**< Mode DIV2 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV4 0x00000002UL /**< Mode DIV4 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV8 0x00000003UL /**< Mode DIV8 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV16 0x00000004UL /**< Mode DIV16 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV32 0x00000005UL /**< Mode DIV32 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV64 0x00000006UL /**< Mode DIV64 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV128 0x00000007UL /**< Mode DIV128 for LETIMER_CTRL */
+#define _LETIMER_CTRL_CNTPRESC_DIV256 0x00000008UL /**< Mode DIV256 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DEFAULT (_LETIMER_CTRL_CNTPRESC_DEFAULT << 16) /**< Shifted mode DEFAULT for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV1 (_LETIMER_CTRL_CNTPRESC_DIV1 << 16) /**< Shifted mode DIV1 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV2 (_LETIMER_CTRL_CNTPRESC_DIV2 << 16) /**< Shifted mode DIV2 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV4 (_LETIMER_CTRL_CNTPRESC_DIV4 << 16) /**< Shifted mode DIV4 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV8 (_LETIMER_CTRL_CNTPRESC_DIV8 << 16) /**< Shifted mode DIV8 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV16 (_LETIMER_CTRL_CNTPRESC_DIV16 << 16) /**< Shifted mode DIV16 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV32 (_LETIMER_CTRL_CNTPRESC_DIV32 << 16) /**< Shifted mode DIV32 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV64 (_LETIMER_CTRL_CNTPRESC_DIV64 << 16) /**< Shifted mode DIV64 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV128 (_LETIMER_CTRL_CNTPRESC_DIV128 << 16) /**< Shifted mode DIV128 for LETIMER_CTRL */
+#define LETIMER_CTRL_CNTPRESC_DIV256 (_LETIMER_CTRL_CNTPRESC_DIV256 << 16) /**< Shifted mode DIV256 for LETIMER_CTRL */
+
+/* Bit fields for LETIMER CMD */
+#define _LETIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CMD */
+#define _LETIMER_CMD_MASK 0x0000001FUL /**< Mask for LETIMER_CMD */
+#define LETIMER_CMD_START (0x1UL << 0) /**< Start LETIMER */
+#define _LETIMER_CMD_START_SHIFT 0 /**< Shift value for LETIMER_START */
+#define _LETIMER_CMD_START_MASK 0x1UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_START_DEFAULT (_LETIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP (0x1UL << 1) /**< Stop LETIMER */
+#define _LETIMER_CMD_STOP_SHIFT 1 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_STOP_DEFAULT (_LETIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR (0x1UL << 2) /**< Clear LETIMER */
+#define _LETIMER_CMD_CLEAR_SHIFT 2 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_MASK 0x4UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CLEAR_DEFAULT (_LETIMER_CMD_CLEAR_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0 (0x1UL << 3) /**< Clear Toggle Output 0 */
+#define _LETIMER_CMD_CTO0_SHIFT 3 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_MASK 0x8UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_CMD_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO0_DEFAULT (_LETIMER_CMD_CTO0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1 (0x1UL << 4) /**< Clear Toggle Output 1 */
+#define _LETIMER_CMD_CTO1_SHIFT 4 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_MASK 0x10UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_CMD_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CMD */
+#define LETIMER_CMD_CTO1_DEFAULT (_LETIMER_CMD_CTO1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_CMD */
+
+/* Bit fields for LETIMER STATUS */
+#define _LETIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for LETIMER_STATUS */
+#define _LETIMER_STATUS_MASK 0x00000003UL /**< Mask for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING (0x1UL << 0) /**< LETIMER Running */
+#define _LETIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for LETIMER_RUNNING */
+#define _LETIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_STATUS */
+#define LETIMER_STATUS_RUNNING_DEFAULT (_LETIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_STATUS */
+#define LETIMER_STATUS_LETIMERLOCKSTATUS (0x1UL << 1) /**< LETIMER Lock Status */
+#define _LETIMER_STATUS_LETIMERLOCKSTATUS_SHIFT 1 /**< Shift value for LETIMER_LETIMERLOCKSTATUS */
+#define _LETIMER_STATUS_LETIMERLOCKSTATUS_MASK 0x2UL /**< Bit mask for LETIMER_LETIMERLOCKSTATUS */
+#define _LETIMER_STATUS_LETIMERLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_STATUS */
+#define _LETIMER_STATUS_LETIMERLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LETIMER_STATUS */
+#define _LETIMER_STATUS_LETIMERLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for LETIMER_STATUS */
+#define LETIMER_STATUS_LETIMERLOCKSTATUS_DEFAULT (_LETIMER_STATUS_LETIMERLOCKSTATUS_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_STATUS */
+#define LETIMER_STATUS_LETIMERLOCKSTATUS_UNLOCKED (_LETIMER_STATUS_LETIMERLOCKSTATUS_UNLOCKED << 1) /**< Shifted mode UNLOCKED for LETIMER_STATUS */
+#define LETIMER_STATUS_LETIMERLOCKSTATUS_LOCKED (_LETIMER_STATUS_LETIMERLOCKSTATUS_LOCKED << 1) /**< Shifted mode LOCKED for LETIMER_STATUS */
+
+/* Bit fields for LETIMER CNT */
+#define _LETIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for LETIMER_CNT */
+#define _LETIMER_CNT_MASK 0x00FFFFFFUL /**< Mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_CNT */
+#define LETIMER_CNT_CNT_DEFAULT (_LETIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_CNT */
+
+/* Bit fields for LETIMER COMP0 */
+#define _LETIMER_COMP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_COMP0_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP0 */
+#define LETIMER_COMP0_COMP0_DEFAULT (_LETIMER_COMP0_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP0 */
+
+/* Bit fields for LETIMER COMP1 */
+#define _LETIMER_COMP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_MASK 0x00FFFFFFUL /**< Mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_SHIFT 0 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_COMP1_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_COMP1 */
+#define LETIMER_COMP1_COMP1_DEFAULT (_LETIMER_COMP1_COMP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_COMP1 */
+
+/* Bit fields for LETIMER TOP */
+#define _LETIMER_TOP_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOP */
+#define _LETIMER_TOP_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_SHIFT 0 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_TOP_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOP */
+#define LETIMER_TOP_TOP_DEFAULT (_LETIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOP */
+
+/* Bit fields for LETIMER TOPBUFF */
+#define _LETIMER_TOPBUFF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_MASK 0x00FFFFFFUL /**< Mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_SHIFT 0 /**< Shift value for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_MASK 0xFFFFFFUL /**< Bit mask for LETIMER_TOPBUFF */
+#define _LETIMER_TOPBUFF_TOPBUFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_TOPBUFF */
+#define LETIMER_TOPBUFF_TOPBUFF_DEFAULT (_LETIMER_TOPBUFF_TOPBUFF_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_TOPBUFF */
+
+/* Bit fields for LETIMER REP0 */
+#define _LETIMER_REP0_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP0 */
+#define _LETIMER_REP0_MASK 0x000000FFUL /**< Mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_SHIFT 0 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_MASK 0xFFUL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_REP0_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP0 */
+#define LETIMER_REP0_REP0_DEFAULT (_LETIMER_REP0_REP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP0 */
+
+/* Bit fields for LETIMER REP1 */
+#define _LETIMER_REP1_RESETVALUE 0x00000000UL /**< Default value for LETIMER_REP1 */
+#define _LETIMER_REP1_MASK 0x000000FFUL /**< Mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_SHIFT 0 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_MASK 0xFFUL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_REP1_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_REP1 */
+#define LETIMER_REP1_REP1_DEFAULT (_LETIMER_REP1_REP1_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_REP1 */
+
+/* Bit fields for LETIMER IF */
+#define _LETIMER_IF_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IF */
+#define _LETIMER_IF_MASK 0x0000001FUL /**< Mask for LETIMER_IF */
+#define LETIMER_IF_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Flag */
+#define _LETIMER_IF_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IF_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP0_DEFAULT (_LETIMER_IF_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Flag */
+#define _LETIMER_IF_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IF_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_COMP1_DEFAULT (_LETIMER_IF_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF (0x1UL << 2) /**< Underflow Interrupt Flag */
+#define _LETIMER_IF_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IF_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_UF_DEFAULT (_LETIMER_IF_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Flag */
+#define _LETIMER_IF_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IF_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP0_DEFAULT (_LETIMER_IF_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Flag */
+#define _LETIMER_IF_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IF_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IF */
+#define LETIMER_IF_REP1_DEFAULT (_LETIMER_IF_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IF */
+
+/* Bit fields for LETIMER IEN */
+#define _LETIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for LETIMER_IEN */
+#define _LETIMER_IEN_MASK 0x0000001FUL /**< Mask for LETIMER_IEN */
+#define LETIMER_IEN_COMP0 (0x1UL << 0) /**< Compare Match 0 Interrupt Enable */
+#define _LETIMER_IEN_COMP0_SHIFT 0 /**< Shift value for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_MASK 0x1UL /**< Bit mask for LETIMER_COMP0 */
+#define _LETIMER_IEN_COMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP0_DEFAULT (_LETIMER_IEN_COMP0_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1 (0x1UL << 1) /**< Compare Match 1 Interrupt Enable */
+#define _LETIMER_IEN_COMP1_SHIFT 1 /**< Shift value for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_MASK 0x2UL /**< Bit mask for LETIMER_COMP1 */
+#define _LETIMER_IEN_COMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_COMP1_DEFAULT (_LETIMER_IEN_COMP1_DEFAULT << 1) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF (0x1UL << 2) /**< Underflow Interrupt Enable */
+#define _LETIMER_IEN_UF_SHIFT 2 /**< Shift value for LETIMER_UF */
+#define _LETIMER_IEN_UF_MASK 0x4UL /**< Bit mask for LETIMER_UF */
+#define _LETIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_UF_DEFAULT (_LETIMER_IEN_UF_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0 (0x1UL << 3) /**< Repeat Counter 0 Interrupt Enable */
+#define _LETIMER_IEN_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_IEN_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP0_DEFAULT (_LETIMER_IEN_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1 (0x1UL << 4) /**< Repeat Counter 1 Interrupt Enable */
+#define _LETIMER_IEN_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_IEN_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_IEN */
+#define LETIMER_IEN_REP1_DEFAULT (_LETIMER_IEN_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_IEN */
+
+/* Bit fields for LETIMER LOCK */
+#define _LETIMER_LOCK_RESETVALUE 0x00000000UL /**< Default value for LETIMER_LOCK */
+#define _LETIMER_LOCK_MASK 0x0000FFFFUL /**< Mask for LETIMER_LOCK */
+#define _LETIMER_LOCK_LETIMERLOCKKEY_SHIFT 0 /**< Shift value for LETIMER_LETIMERLOCKKEY */
+#define _LETIMER_LOCK_LETIMERLOCKKEY_MASK 0xFFFFUL /**< Bit mask for LETIMER_LETIMERLOCKKEY */
+#define _LETIMER_LOCK_LETIMERLOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_LOCK */
+#define _LETIMER_LOCK_LETIMERLOCKKEY_UNLOCK 0x0000CCFCUL /**< Mode UNLOCK for LETIMER_LOCK */
+#define LETIMER_LOCK_LETIMERLOCKKEY_DEFAULT (_LETIMER_LOCK_LETIMERLOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_LOCK */
+#define LETIMER_LOCK_LETIMERLOCKKEY_UNLOCK (_LETIMER_LOCK_LETIMERLOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LETIMER_LOCK */
+
+/* Bit fields for LETIMER SYNCBUSY */
+#define _LETIMER_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LETIMER_SYNCBUSY */
+#define _LETIMER_SYNCBUSY_MASK 0x000003FDUL /**< Mask for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT (0x1UL << 0) /**< Sync busy for CNT */
+#define _LETIMER_SYNCBUSY_CNT_SHIFT 0 /**< Shift value for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_MASK 0x1UL /**< Bit mask for LETIMER_CNT */
+#define _LETIMER_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CNT_DEFAULT (_LETIMER_SYNCBUSY_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP (0x1UL << 2) /**< Sync busy for TOP */
+#define _LETIMER_SYNCBUSY_TOP_SHIFT 2 /**< Shift value for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_MASK 0x4UL /**< Bit mask for LETIMER_TOP */
+#define _LETIMER_SYNCBUSY_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_TOP_DEFAULT (_LETIMER_SYNCBUSY_TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0 (0x1UL << 3) /**< Sync busy for REP0 */
+#define _LETIMER_SYNCBUSY_REP0_SHIFT 3 /**< Shift value for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_MASK 0x8UL /**< Bit mask for LETIMER_REP0 */
+#define _LETIMER_SYNCBUSY_REP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP0_DEFAULT (_LETIMER_SYNCBUSY_REP0_DEFAULT << 3) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1 (0x1UL << 4) /**< Sync busy for REP1 */
+#define _LETIMER_SYNCBUSY_REP1_SHIFT 4 /**< Shift value for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_MASK 0x10UL /**< Bit mask for LETIMER_REP1 */
+#define _LETIMER_SYNCBUSY_REP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_REP1_DEFAULT (_LETIMER_SYNCBUSY_REP1_DEFAULT << 4) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START (0x1UL << 5) /**< Sync busy for START */
+#define _LETIMER_SYNCBUSY_START_SHIFT 5 /**< Shift value for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_MASK 0x20UL /**< Bit mask for LETIMER_START */
+#define _LETIMER_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_START_DEFAULT (_LETIMER_SYNCBUSY_START_DEFAULT << 5) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP (0x1UL << 6) /**< Sync busy for STOP */
+#define _LETIMER_SYNCBUSY_STOP_SHIFT 6 /**< Shift value for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_MASK 0x40UL /**< Bit mask for LETIMER_STOP */
+#define _LETIMER_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_STOP_DEFAULT (_LETIMER_SYNCBUSY_STOP_DEFAULT << 6) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR (0x1UL << 7) /**< Sync busy for CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_SHIFT 7 /**< Shift value for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_MASK 0x80UL /**< Bit mask for LETIMER_CLEAR */
+#define _LETIMER_SYNCBUSY_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CLEAR_DEFAULT (_LETIMER_SYNCBUSY_CLEAR_DEFAULT << 7) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0 (0x1UL << 8) /**< Sync busy for CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_SHIFT 8 /**< Shift value for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_MASK 0x100UL /**< Bit mask for LETIMER_CTO0 */
+#define _LETIMER_SYNCBUSY_CTO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO0_DEFAULT (_LETIMER_SYNCBUSY_CTO0_DEFAULT << 8) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1 (0x1UL << 9) /**< Sync busy for CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_SHIFT 9 /**< Shift value for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_MASK 0x200UL /**< Bit mask for LETIMER_CTO1 */
+#define _LETIMER_SYNCBUSY_CTO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_SYNCBUSY */
+#define LETIMER_SYNCBUSY_CTO1_DEFAULT (_LETIMER_SYNCBUSY_CTO1_DEFAULT << 9) /**< Shifted mode DEFAULT for LETIMER_SYNCBUSY */
+
+/* Bit fields for LETIMER PRSMODE */
+#define _LETIMER_PRSMODE_RESETVALUE 0x00000000UL /**< Default value for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_MASK 0x0CCC0000UL /**< Mask for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_SHIFT 18 /**< Shift value for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_MASK 0xC0000UL /**< Bit mask for LETIMER_PRSSTARTMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTARTMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTARTMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_NONE (_LETIMER_PRSMODE_PRSSTARTMODE_NONE << 18) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_RISING (_LETIMER_PRSMODE_PRSSTARTMODE_RISING << 18) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_FALLING (_LETIMER_PRSMODE_PRSSTARTMODE_FALLING << 18) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTARTMODE_BOTH (_LETIMER_PRSMODE_PRSSTARTMODE_BOTH << 18) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_SHIFT 22 /**< Shift value for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_MASK 0xC00000UL /**< Bit mask for LETIMER_PRSSTOPMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSSTOPMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT (_LETIMER_PRSMODE_PRSSTOPMODE_DEFAULT << 22) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_NONE (_LETIMER_PRSMODE_PRSSTOPMODE_NONE << 22) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_RISING (_LETIMER_PRSMODE_PRSSTOPMODE_RISING << 22) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_FALLING (_LETIMER_PRSMODE_PRSSTOPMODE_FALLING << 22) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSSTOPMODE_BOTH (_LETIMER_PRSMODE_PRSSTOPMODE_BOTH << 22) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_SHIFT 26 /**< Shift value for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_MASK 0xC000000UL /**< Bit mask for LETIMER_PRSCLEARMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_NONE 0x00000000UL /**< Mode NONE for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_RISING 0x00000001UL /**< Mode RISING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_FALLING 0x00000002UL /**< Mode FALLING for LETIMER_PRSMODE */
+#define _LETIMER_PRSMODE_PRSCLEARMODE_BOTH 0x00000003UL /**< Mode BOTH for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT (_LETIMER_PRSMODE_PRSCLEARMODE_DEFAULT << 26) /**< Shifted mode DEFAULT for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_NONE (_LETIMER_PRSMODE_PRSCLEARMODE_NONE << 26) /**< Shifted mode NONE for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_RISING (_LETIMER_PRSMODE_PRSCLEARMODE_RISING << 26) /**< Shifted mode RISING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_FALLING (_LETIMER_PRSMODE_PRSCLEARMODE_FALLING << 26) /**< Shifted mode FALLING for LETIMER_PRSMODE */
+#define LETIMER_PRSMODE_PRSCLEARMODE_BOTH (_LETIMER_PRSMODE_PRSCLEARMODE_BOTH << 26) /**< Shifted mode BOTH for LETIMER_PRSMODE */
+
+/** @} End of group EFR32ZG23_LETIMER_BitFields */
+/** @} End of group EFR32ZG23_LETIMER */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LETIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfrco.h
new file mode 100644
index 000000000..62593ea36
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfrco.h
@@ -0,0 +1,197 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LFRCO_H
+#define EFR32ZG23_LFRCO_H
+#define LFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LFRCO LFRCO
+ * @{
+ * @brief EFR32ZG23 LFRCO Register Declaration.
+ *****************************************************************************/
+
+/** LFRCO Register Declaration. */
+typedef struct lfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CAL; /**< Calibration Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED2[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CAL_SET; /**< Calibration Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CAL_CLR; /**< Calibration Register */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED8[1015U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CAL_TGL; /**< Calibration Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} LFRCO_TypeDef;
+/** @} End of group EFR32ZG23_LFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LFRCO
+ * @{
+ * @defgroup EFR32ZG23_LFRCO_BitFields LFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFRCO IPVERSION */
+#define _LFRCO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFRCO_IPVERSION */
+#define _LFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IPVERSION */
+#define LFRCO_IPVERSION_IPVERSION_DEFAULT (_LFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IPVERSION */
+
+/* Bit fields for LFRCO STATUS */
+#define _LFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFRCO_STATUS */
+#define _LFRCO_STATUS_MASK 0x80010001UL /**< Mask for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _LFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_RDY_DEFAULT (_LFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS (0x1UL << 16) /**< Enabled Status */
+#define _LFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFRCO_ENS */
+#define _LFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_ENS_DEFAULT (_LFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK (0x1UL << 31) /**< Lock Status */
+#define _LFRCO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFRCO_LOCK */
+#define _LFRCO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFRCO_STATUS */
+#define _LFRCO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_DEFAULT (_LFRCO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_UNLOCKED (_LFRCO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFRCO_STATUS */
+#define LFRCO_STATUS_LOCK_LOCKED (_LFRCO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFRCO_STATUS */
+
+/* Bit fields for LFRCO CAL */
+#define _LFRCO_CAL_RESETVALUE 0x000000A5UL /**< Default value for LFRCO_CAL */
+#define _LFRCO_CAL_MASK 0x000000FFUL /**< Mask for LFRCO_CAL */
+#define _LFRCO_CAL_FREQTRIM_SHIFT 0 /**< Shift value for LFRCO_FREQTRIM */
+#define _LFRCO_CAL_FREQTRIM_MASK 0xFFUL /**< Bit mask for LFRCO_FREQTRIM */
+#define _LFRCO_CAL_FREQTRIM_DEFAULT 0x000000A5UL /**< Mode DEFAULT for LFRCO_CAL */
+#define LFRCO_CAL_FREQTRIM_DEFAULT (_LFRCO_CAL_FREQTRIM_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_CAL */
+
+/* Bit fields for LFRCO IF */
+#define _LFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IF */
+#define _LFRCO_IF_MASK 0x00000007UL /**< Mask for LFRCO_IF */
+#define LFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _LFRCO_IF_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_RDY_DEFAULT (_LFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Flag */
+#define _LFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_POSEDGE_DEFAULT (_LFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Flag */
+#define _LFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IF */
+#define LFRCO_IF_NEGEDGE_DEFAULT (_LFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IF */
+
+/* Bit fields for LFRCO IEN */
+#define _LFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFRCO_IEN */
+#define _LFRCO_IEN_MASK 0x00000007UL /**< Mask for LFRCO_IEN */
+#define LFRCO_IEN_RDY (0x1UL << 0) /**< Ready Interrupt Enable */
+#define _LFRCO_IEN_RDY_SHIFT 0 /**< Shift value for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFRCO_RDY */
+#define _LFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_RDY_DEFAULT (_LFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Enable */
+#define _LFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFRCO_POSEDGE */
+#define _LFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_POSEDGE_DEFAULT (_LFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Enable */
+#define _LFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFRCO_NEGEDGE */
+#define _LFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_IEN */
+#define LFRCO_IEN_NEGEDGE_DEFAULT (_LFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFRCO_IEN */
+
+/* Bit fields for LFRCO SYNCBUSY */
+#define _LFRCO_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LFRCO_SYNCBUSY */
+#define _LFRCO_SYNCBUSY_MASK 0x00000001UL /**< Mask for LFRCO_SYNCBUSY */
+#define LFRCO_SYNCBUSY_CAL (0x1UL << 0) /**< CAL Busy */
+#define _LFRCO_SYNCBUSY_CAL_SHIFT 0 /**< Shift value for LFRCO_CAL */
+#define _LFRCO_SYNCBUSY_CAL_MASK 0x1UL /**< Bit mask for LFRCO_CAL */
+#define _LFRCO_SYNCBUSY_CAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFRCO_SYNCBUSY */
+#define LFRCO_SYNCBUSY_CAL_DEFAULT (_LFRCO_SYNCBUSY_CAL_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_SYNCBUSY */
+
+/* Bit fields for LFRCO LOCK */
+#define _LFRCO_LOCK_RESETVALUE 0x00002603UL /**< Default value for LFRCO_LOCK */
+#define _LFRCO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFRCO_LOCKKEY */
+#define _LFRCO_LOCK_LOCKKEY_DEFAULT 0x00002603UL /**< Mode DEFAULT for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for LFRCO_LOCK */
+#define _LFRCO_LOCK_LOCKKEY_UNLOCK 0x00002603UL /**< Mode UNLOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_DEFAULT (_LFRCO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_LOCK (_LFRCO_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for LFRCO_LOCK */
+#define LFRCO_LOCK_LOCKKEY_UNLOCK (_LFRCO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFRCO_LOCK */
+
+/** @} End of group EFR32ZG23_LFRCO_BitFields */
+/** @} End of group EFR32ZG23_LFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfxo.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfxo.h
new file mode 100644
index 000000000..4b4dc2f7b
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_lfxo.h
@@ -0,0 +1,281 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 LFXO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_LFXO_H
+#define EFR32ZG23_LFXO_H
+#define LFXO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_LFXO LFXO
+ * @{
+ * @brief EFR32ZG23 LFXO Register Declaration.
+ *****************************************************************************/
+
+/** LFXO Register Declaration. */
+typedef struct lfxo_typedef{
+ __IM uint32_t IPVERSION; /**< LFXO IP version */
+ __IOM uint32_t CTRL; /**< LFXO Control Register */
+ __IOM uint32_t CFG; /**< LFXO Configuration Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< LFXO Status Register */
+ __IOM uint32_t CAL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< LFXO IP version */
+ __IOM uint32_t CTRL_SET; /**< LFXO Control Register */
+ __IOM uint32_t CFG_SET; /**< LFXO Configuration Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< LFXO Status Register */
+ __IOM uint32_t CAL_SET; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_SET; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< LFXO IP version */
+ __IOM uint32_t CTRL_CLR; /**< LFXO Control Register */
+ __IOM uint32_t CFG_CLR; /**< LFXO Configuration Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< LFXO Status Register */
+ __IOM uint32_t CAL_CLR; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< LFXO IP version */
+ __IOM uint32_t CTRL_TGL; /**< LFXO Control Register */
+ __IOM uint32_t CFG_TGL; /**< LFXO Configuration Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< LFXO Status Register */
+ __IOM uint32_t CAL_TGL; /**< LFXO Calibration Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< LFXO Sync Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} LFXO_TypeDef;
+/** @} End of group EFR32ZG23_LFXO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_LFXO
+ * @{
+ * @defgroup EFR32ZG23_LFXO_BitFields LFXO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for LFXO IPVERSION */
+#define _LFXO_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for LFXO_IPVERSION */
+#define _LFXO_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IPVERSION */
+#define LFXO_IPVERSION_IPVERSION_DEFAULT (_LFXO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IPVERSION */
+
+/* Bit fields for LFXO CTRL */
+#define _LFXO_CTRL_RESETVALUE 0x00000002UL /**< Default value for LFXO_CTRL */
+#define _LFXO_CTRL_MASK 0x00000033UL /**< Mask for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN (0x1UL << 0) /**< LFXO Force Enable */
+#define _LFXO_CTRL_FORCEEN_SHIFT 0 /**< Shift value for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_MASK 0x1UL /**< Bit mask for LFXO_FORCEEN */
+#define _LFXO_CTRL_FORCEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FORCEEN_DEFAULT (_LFXO_CTRL_FORCEEN_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND (0x1UL << 1) /**< LFXO Disable On-demand requests */
+#define _LFXO_CTRL_DISONDEMAND_SHIFT 1 /**< Shift value for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_MASK 0x2UL /**< Bit mask for LFXO_DISONDEMAND */
+#define _LFXO_CTRL_DISONDEMAND_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_DISONDEMAND_DEFAULT (_LFXO_CTRL_DISONDEMAND_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN (0x1UL << 4) /**< LFXO Failure Detection Enable */
+#define _LFXO_CTRL_FAILDETEN_SHIFT 4 /**< Shift value for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_MASK 0x10UL /**< Bit mask for LFXO_FAILDETEN */
+#define _LFXO_CTRL_FAILDETEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEN_DEFAULT (_LFXO_CTRL_FAILDETEN_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN (0x1UL << 5) /**< LFXO Failure Detection EM4WU Enable */
+#define _LFXO_CTRL_FAILDETEM4WUEN_SHIFT 5 /**< Shift value for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_MASK 0x20UL /**< Bit mask for LFXO_FAILDETEM4WUEN */
+#define _LFXO_CTRL_FAILDETEM4WUEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CTRL */
+#define LFXO_CTRL_FAILDETEM4WUEN_DEFAULT (_LFXO_CTRL_FAILDETEM4WUEN_DEFAULT << 5) /**< Shifted mode DEFAULT for LFXO_CTRL */
+
+/* Bit fields for LFXO CFG */
+#define _LFXO_CFG_RESETVALUE 0x00000701UL /**< Default value for LFXO_CFG */
+#define _LFXO_CFG_MASK 0x00000733UL /**< Mask for LFXO_CFG */
+#define LFXO_CFG_AGC (0x1UL << 0) /**< LFXO AGC Enable */
+#define _LFXO_CFG_AGC_SHIFT 0 /**< Shift value for LFXO_AGC */
+#define _LFXO_CFG_AGC_MASK 0x1UL /**< Bit mask for LFXO_AGC */
+#define _LFXO_CFG_AGC_DEFAULT 0x00000001UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_AGC_DEFAULT (_LFXO_CFG_AGC_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL (0x1UL << 1) /**< LFXO High Amplitude Enable */
+#define _LFXO_CFG_HIGHAMPL_SHIFT 1 /**< Shift value for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_MASK 0x2UL /**< Bit mask for LFXO_HIGHAMPL */
+#define _LFXO_CFG_HIGHAMPL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_HIGHAMPL_DEFAULT (_LFXO_CFG_HIGHAMPL_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_SHIFT 4 /**< Shift value for LFXO_MODE */
+#define _LFXO_CFG_MODE_MASK 0x30UL /**< Bit mask for LFXO_MODE */
+#define _LFXO_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_MODE_XTAL 0x00000000UL /**< Mode XTAL for LFXO_CFG */
+#define _LFXO_CFG_MODE_BUFEXTCLK 0x00000001UL /**< Mode BUFEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_MODE_DIGEXTCLK 0x00000002UL /**< Mode DIGEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DEFAULT (_LFXO_CFG_MODE_DEFAULT << 4) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_MODE_XTAL (_LFXO_CFG_MODE_XTAL << 4) /**< Shifted mode XTAL for LFXO_CFG */
+#define LFXO_CFG_MODE_BUFEXTCLK (_LFXO_CFG_MODE_BUFEXTCLK << 4) /**< Shifted mode BUFEXTCLK for LFXO_CFG */
+#define LFXO_CFG_MODE_DIGEXTCLK (_LFXO_CFG_MODE_DIGEXTCLK << 4) /**< Shifted mode DIGEXTCLK for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_SHIFT 8 /**< Shift value for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_MASK 0x700UL /**< Bit mask for LFXO_TIMEOUT */
+#define _LFXO_CFG_TIMEOUT_DEFAULT 0x00000007UL /**< Mode DEFAULT for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2 0x00000000UL /**< Mode CYCLES2 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES256 0x00000001UL /**< Mode CYCLES256 for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES1K 0x00000002UL /**< Mode CYCLES1K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES2K 0x00000003UL /**< Mode CYCLES2K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES4K 0x00000004UL /**< Mode CYCLES4K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES8K 0x00000005UL /**< Mode CYCLES8K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES16K 0x00000006UL /**< Mode CYCLES16K for LFXO_CFG */
+#define _LFXO_CFG_TIMEOUT_CYCLES32K 0x00000007UL /**< Mode CYCLES32K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_DEFAULT (_LFXO_CFG_TIMEOUT_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2 (_LFXO_CFG_TIMEOUT_CYCLES2 << 8) /**< Shifted mode CYCLES2 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES256 (_LFXO_CFG_TIMEOUT_CYCLES256 << 8) /**< Shifted mode CYCLES256 for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES1K (_LFXO_CFG_TIMEOUT_CYCLES1K << 8) /**< Shifted mode CYCLES1K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES2K (_LFXO_CFG_TIMEOUT_CYCLES2K << 8) /**< Shifted mode CYCLES2K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES4K (_LFXO_CFG_TIMEOUT_CYCLES4K << 8) /**< Shifted mode CYCLES4K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES8K (_LFXO_CFG_TIMEOUT_CYCLES8K << 8) /**< Shifted mode CYCLES8K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES16K (_LFXO_CFG_TIMEOUT_CYCLES16K << 8) /**< Shifted mode CYCLES16K for LFXO_CFG */
+#define LFXO_CFG_TIMEOUT_CYCLES32K (_LFXO_CFG_TIMEOUT_CYCLES32K << 8) /**< Shifted mode CYCLES32K for LFXO_CFG */
+
+/* Bit fields for LFXO STATUS */
+#define _LFXO_STATUS_RESETVALUE 0x00000000UL /**< Default value for LFXO_STATUS */
+#define _LFXO_STATUS_MASK 0x80010001UL /**< Mask for LFXO_STATUS */
+#define LFXO_STATUS_RDY (0x1UL << 0) /**< LFXO Ready Status */
+#define _LFXO_STATUS_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_STATUS_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_RDY_DEFAULT (_LFXO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS (0x1UL << 16) /**< LFXO Enable Status */
+#define _LFXO_STATUS_ENS_SHIFT 16 /**< Shift value for LFXO_ENS */
+#define _LFXO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for LFXO_ENS */
+#define _LFXO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_ENS_DEFAULT (_LFXO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK (0x1UL << 31) /**< LFXO Locked Status */
+#define _LFXO_STATUS_LOCK_SHIFT 31 /**< Shift value for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for LFXO_LOCK */
+#define _LFXO_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for LFXO_STATUS */
+#define _LFXO_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_DEFAULT (_LFXO_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_UNLOCKED (_LFXO_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for LFXO_STATUS */
+#define LFXO_STATUS_LOCK_LOCKED (_LFXO_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for LFXO_STATUS */
+
+/* Bit fields for LFXO CAL */
+#define _LFXO_CAL_RESETVALUE 0x00000200UL /**< Default value for LFXO_CAL */
+#define _LFXO_CAL_MASK 0x0000037FUL /**< Mask for LFXO_CAL */
+#define _LFXO_CAL_CAPTUNE_SHIFT 0 /**< Shift value for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_MASK 0x7FUL /**< Bit mask for LFXO_CAPTUNE */
+#define _LFXO_CAL_CAPTUNE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_CAPTUNE_DEFAULT (_LFXO_CAL_CAPTUNE_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_CAL */
+#define _LFXO_CAL_GAIN_SHIFT 8 /**< Shift value for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_MASK 0x300UL /**< Bit mask for LFXO_GAIN */
+#define _LFXO_CAL_GAIN_DEFAULT 0x00000002UL /**< Mode DEFAULT for LFXO_CAL */
+#define LFXO_CAL_GAIN_DEFAULT (_LFXO_CAL_GAIN_DEFAULT << 8) /**< Shifted mode DEFAULT for LFXO_CAL */
+
+/* Bit fields for LFXO IF */
+#define _LFXO_IF_RESETVALUE 0x00000000UL /**< Default value for LFXO_IF */
+#define _LFXO_IF_MASK 0x0000000FUL /**< Mask for LFXO_IF */
+#define LFXO_IF_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Flag */
+#define _LFXO_IF_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IF_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_RDY_DEFAULT (_LFXO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Flag */
+#define _LFXO_IF_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_POSEDGE_DEFAULT (_LFXO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Flag */
+#define _LFXO_IF_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_NEGEDGE_DEFAULT (_LFXO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Flag */
+#define _LFXO_IF_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IF_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IF_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IF */
+#define LFXO_IF_FAIL_DEFAULT (_LFXO_IF_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IF */
+
+/* Bit fields for LFXO IEN */
+#define _LFXO_IEN_RESETVALUE 0x00000000UL /**< Default value for LFXO_IEN */
+#define _LFXO_IEN_MASK 0x0000000FUL /**< Mask for LFXO_IEN */
+#define LFXO_IEN_RDY (0x1UL << 0) /**< LFXO Ready Interrupt Enable */
+#define _LFXO_IEN_RDY_SHIFT 0 /**< Shift value for LFXO_RDY */
+#define _LFXO_IEN_RDY_MASK 0x1UL /**< Bit mask for LFXO_RDY */
+#define _LFXO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_RDY_DEFAULT (_LFXO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE (0x1UL << 1) /**< Rising Edge Interrupt Enable */
+#define _LFXO_IEN_POSEDGE_SHIFT 1 /**< Shift value for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for LFXO_POSEDGE */
+#define _LFXO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_POSEDGE_DEFAULT (_LFXO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE (0x1UL << 2) /**< Falling Edge Interrupt Enable */
+#define _LFXO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for LFXO_NEGEDGE */
+#define _LFXO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_NEGEDGE_DEFAULT (_LFXO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL (0x1UL << 3) /**< LFXO Failure Interrupt Enable */
+#define _LFXO_IEN_FAIL_SHIFT 3 /**< Shift value for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_MASK 0x8UL /**< Bit mask for LFXO_FAIL */
+#define _LFXO_IEN_FAIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_IEN */
+#define LFXO_IEN_FAIL_DEFAULT (_LFXO_IEN_FAIL_DEFAULT << 3) /**< Shifted mode DEFAULT for LFXO_IEN */
+
+/* Bit fields for LFXO SYNCBUSY */
+#define _LFXO_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for LFXO_SYNCBUSY */
+#define _LFXO_SYNCBUSY_MASK 0x00000001UL /**< Mask for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL (0x1UL << 0) /**< LFXO Synchronization status */
+#define _LFXO_SYNCBUSY_CAL_SHIFT 0 /**< Shift value for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_MASK 0x1UL /**< Bit mask for LFXO_CAL */
+#define _LFXO_SYNCBUSY_CAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for LFXO_SYNCBUSY */
+#define LFXO_SYNCBUSY_CAL_DEFAULT (_LFXO_SYNCBUSY_CAL_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_SYNCBUSY */
+
+/* Bit fields for LFXO LOCK */
+#define _LFXO_LOCK_RESETVALUE 0x00001A20UL /**< Default value for LFXO_LOCK */
+#define _LFXO_LOCK_MASK 0x0000FFFFUL /**< Mask for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for LFXO_LOCKKEY */
+#define _LFXO_LOCK_LOCKKEY_DEFAULT 0x00001A20UL /**< Mode DEFAULT for LFXO_LOCK */
+#define _LFXO_LOCK_LOCKKEY_UNLOCK 0x00001A20UL /**< Mode UNLOCK for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_DEFAULT (_LFXO_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for LFXO_LOCK */
+#define LFXO_LOCK_LOCKKEY_UNLOCK (_LFXO_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for LFXO_LOCK */
+
+/** @} End of group EFR32ZG23_LFXO_BitFields */
+/** @} End of group EFR32ZG23_LFXO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_LFXO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mailbox.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mailbox.h
new file mode 100644
index 000000000..15839a223
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mailbox.h
@@ -0,0 +1,140 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 MAILBOX register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_MAILBOX_H
+#define EFR32ZG23_MAILBOX_H
+#define MAILBOX_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_MAILBOX MAILBOX
+ * @{
+ * @brief EFR32ZG23 MAILBOX Register Declaration.
+ *****************************************************************************/
+
+/** MAILBOX MSGPTRS Register Group Declaration. */
+typedef struct mailbox_msgptrs_typedef{
+ __IOM uint32_t MSGPTR; /**< Message Pointer */
+} MAILBOX_MSGPTRS_TypeDef;
+
+/** MAILBOX Register Declaration. */
+typedef struct mailbox_typedef{
+ MAILBOX_MSGPTRS_TypeDef MSGPTRS[4U]; /**< Message Pointers */
+ uint32_t RESERVED0[12U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag register */
+ __IOM uint32_t IEN; /**< Interrupt Enable register */
+ uint32_t RESERVED1[1006U]; /**< Reserved for future use */
+ MAILBOX_MSGPTRS_TypeDef MSGPTRS_SET[4U]; /**< Message Pointers */
+ uint32_t RESERVED2[12U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable register */
+ uint32_t RESERVED3[1006U]; /**< Reserved for future use */
+ MAILBOX_MSGPTRS_TypeDef MSGPTRS_CLR[4U]; /**< Message Pointers */
+ uint32_t RESERVED4[12U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable register */
+ uint32_t RESERVED5[1006U]; /**< Reserved for future use */
+ MAILBOX_MSGPTRS_TypeDef MSGPTRS_TGL[4U]; /**< Message Pointers */
+ uint32_t RESERVED6[12U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable register */
+} MAILBOX_TypeDef;
+/** @} End of group EFR32ZG23_MAILBOX */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_MAILBOX
+ * @{
+ * @defgroup EFR32ZG23_MAILBOX_BitFields MAILBOX Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MAILBOX MSGPTR */
+#define _MAILBOX_MSGPTR_RESETVALUE 0x00000000UL /**< Default value for MAILBOX_MSGPTR */
+#define _MAILBOX_MSGPTR_MASK 0xFFFFFFFFUL /**< Mask for MAILBOX_MSGPTR */
+#define _MAILBOX_MSGPTR_PTR_SHIFT 0 /**< Shift value for MAILBOX_PTR */
+#define _MAILBOX_MSGPTR_PTR_MASK 0xFFFFFFFFUL /**< Bit mask for MAILBOX_PTR */
+#define _MAILBOX_MSGPTR_PTR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_MSGPTR */
+#define MAILBOX_MSGPTR_PTR_DEFAULT (_MAILBOX_MSGPTR_PTR_DEFAULT << 0) /**< Shifted mode DEFAULT for MAILBOX_MSGPTR */
+
+/* Bit fields for MAILBOX IF */
+#define _MAILBOX_IF_RESETVALUE 0x00000000UL /**< Default value for MAILBOX_IF */
+#define _MAILBOX_IF_MASK 0x0000000FUL /**< Mask for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF0 (0x1UL << 0) /**< Mailbox Interupt Flag */
+#define _MAILBOX_IF_MBOXIF0_SHIFT 0 /**< Shift value for MAILBOX_MBOXIF0 */
+#define _MAILBOX_IF_MBOXIF0_MASK 0x1UL /**< Bit mask for MAILBOX_MBOXIF0 */
+#define _MAILBOX_IF_MBOXIF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF0_DEFAULT (_MAILBOX_IF_MBOXIF0_DEFAULT << 0) /**< Shifted mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF1 (0x1UL << 1) /**< Mailbox Interupt Flag */
+#define _MAILBOX_IF_MBOXIF1_SHIFT 1 /**< Shift value for MAILBOX_MBOXIF1 */
+#define _MAILBOX_IF_MBOXIF1_MASK 0x2UL /**< Bit mask for MAILBOX_MBOXIF1 */
+#define _MAILBOX_IF_MBOXIF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF1_DEFAULT (_MAILBOX_IF_MBOXIF1_DEFAULT << 1) /**< Shifted mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF2 (0x1UL << 2) /**< Mailbox Interupt Flag */
+#define _MAILBOX_IF_MBOXIF2_SHIFT 2 /**< Shift value for MAILBOX_MBOXIF2 */
+#define _MAILBOX_IF_MBOXIF2_MASK 0x4UL /**< Bit mask for MAILBOX_MBOXIF2 */
+#define _MAILBOX_IF_MBOXIF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF2_DEFAULT (_MAILBOX_IF_MBOXIF2_DEFAULT << 2) /**< Shifted mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF3 (0x1UL << 3) /**< Mailbox Interupt Flag */
+#define _MAILBOX_IF_MBOXIF3_SHIFT 3 /**< Shift value for MAILBOX_MBOXIF3 */
+#define _MAILBOX_IF_MBOXIF3_MASK 0x8UL /**< Bit mask for MAILBOX_MBOXIF3 */
+#define _MAILBOX_IF_MBOXIF3_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IF */
+#define MAILBOX_IF_MBOXIF3_DEFAULT (_MAILBOX_IF_MBOXIF3_DEFAULT << 3) /**< Shifted mode DEFAULT for MAILBOX_IF */
+
+/* Bit fields for MAILBOX IEN */
+#define _MAILBOX_IEN_RESETVALUE 0x00000000UL /**< Default value for MAILBOX_IEN */
+#define _MAILBOX_IEN_MASK 0x0000000FUL /**< Mask for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN0 (0x1UL << 0) /**< Mailbox Interrupt Enable */
+#define _MAILBOX_IEN_MBOXIEN0_SHIFT 0 /**< Shift value for MAILBOX_MBOXIEN0 */
+#define _MAILBOX_IEN_MBOXIEN0_MASK 0x1UL /**< Bit mask for MAILBOX_MBOXIEN0 */
+#define _MAILBOX_IEN_MBOXIEN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN0_DEFAULT (_MAILBOX_IEN_MBOXIEN0_DEFAULT << 0) /**< Shifted mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN1 (0x1UL << 1) /**< Mailbox Interrupt Enable */
+#define _MAILBOX_IEN_MBOXIEN1_SHIFT 1 /**< Shift value for MAILBOX_MBOXIEN1 */
+#define _MAILBOX_IEN_MBOXIEN1_MASK 0x2UL /**< Bit mask for MAILBOX_MBOXIEN1 */
+#define _MAILBOX_IEN_MBOXIEN1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN1_DEFAULT (_MAILBOX_IEN_MBOXIEN1_DEFAULT << 1) /**< Shifted mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN2 (0x1UL << 2) /**< Mailbox Interrupt Enable */
+#define _MAILBOX_IEN_MBOXIEN2_SHIFT 2 /**< Shift value for MAILBOX_MBOXIEN2 */
+#define _MAILBOX_IEN_MBOXIEN2_MASK 0x4UL /**< Bit mask for MAILBOX_MBOXIEN2 */
+#define _MAILBOX_IEN_MBOXIEN2_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN2_DEFAULT (_MAILBOX_IEN_MBOXIEN2_DEFAULT << 2) /**< Shifted mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN3 (0x1UL << 3) /**< Mailbox Interrupt Enable */
+#define _MAILBOX_IEN_MBOXIEN3_SHIFT 3 /**< Shift value for MAILBOX_MBOXIEN3 */
+#define _MAILBOX_IEN_MBOXIEN3_MASK 0x8UL /**< Bit mask for MAILBOX_MBOXIEN3 */
+#define _MAILBOX_IEN_MBOXIEN3_DEFAULT 0x00000000UL /**< Mode DEFAULT for MAILBOX_IEN */
+#define MAILBOX_IEN_MBOXIEN3_DEFAULT (_MAILBOX_IEN_MBOXIEN3_DEFAULT << 3) /**< Shifted mode DEFAULT for MAILBOX_IEN */
+
+/** @} End of group EFR32ZG23_MAILBOX_BitFields */
+/** @} End of group EFR32ZG23_MAILBOX */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_MAILBOX_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mpahbram.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mpahbram.h
new file mode 100644
index 000000000..234d49ac9
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_mpahbram.h
@@ -0,0 +1,242 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 MPAHBRAM register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_MPAHBRAM_H
+#define EFR32ZG23_MPAHBRAM_H
+#define MPAHBRAM_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_MPAHBRAM MPAHBRAM
+ * @{
+ * @brief EFR32ZG23 MPAHBRAM Register Declaration.
+ *****************************************************************************/
+
+/** MPAHBRAM Register Declaration. */
+typedef struct mpahbram_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CMD; /**< Command register */
+ __IOM uint32_t CTRL; /**< Control register */
+ __IM uint32_t ECCERRADDR0; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1; /**< ECC Error Address 1 */
+ uint32_t RESERVED0[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND; /**< Multiple ECC error indication */
+ __IOM uint32_t IF; /**< Interrupt Flags */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CMD_SET; /**< Command register */
+ __IOM uint32_t CTRL_SET; /**< Control register */
+ __IM uint32_t ECCERRADDR0_SET; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_SET; /**< ECC Error Address 1 */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_SET; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_SET; /**< Interrupt Flags */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CMD_CLR; /**< Command register */
+ __IOM uint32_t CTRL_CLR; /**< Control register */
+ __IM uint32_t ECCERRADDR0_CLR; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_CLR; /**< ECC Error Address 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_CLR; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flags */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED9[7U]; /**< Reserved for future use */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1006U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CMD_TGL; /**< Command register */
+ __IOM uint32_t CTRL_TGL; /**< Control register */
+ __IM uint32_t ECCERRADDR0_TGL; /**< ECC Error Address 0 */
+ __IM uint32_t ECCERRADDR1_TGL; /**< ECC Error Address 1 */
+ uint32_t RESERVED12[2U]; /**< Reserved for future use */
+ __IM uint32_t ECCMERRIND_TGL; /**< Multiple ECC error indication */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flags */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} MPAHBRAM_TypeDef;
+/** @} End of group EFR32ZG23_MPAHBRAM */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_MPAHBRAM
+ * @{
+ * @defgroup EFR32ZG23_MPAHBRAM_BitFields MPAHBRAM Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MPAHBRAM IPVERSION */
+#define _MPAHBRAM_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_MASK 0x00000001UL /**< Mask for MPAHBRAM_IPVERSION */
+#define MPAHBRAM_IPVERSION_IPVERSION (0x1UL << 0) /**< New BitField */
+#define _MPAHBRAM_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_MASK 0x1UL /**< Bit mask for MPAHBRAM_IPVERSION */
+#define _MPAHBRAM_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for MPAHBRAM_IPVERSION */
+#define MPAHBRAM_IPVERSION_IPVERSION_DEFAULT (_MPAHBRAM_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IPVERSION */
+
+/* Bit fields for MPAHBRAM CMD */
+#define _MPAHBRAM_CMD_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_CMD */
+#define _MPAHBRAM_CMD_MASK 0x00000003UL /**< Mask for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0 (0x1UL << 0) /**< Clear ECCERRADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_SHIFT 0 /**< Shift value for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_MASK 0x1UL /**< Bit mask for MPAHBRAM_CLEARECCADDR0 */
+#define _MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1 (0x1UL << 1) /**< Clear ECCERRADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_SHIFT 1 /**< Shift value for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_MASK 0x2UL /**< Bit mask for MPAHBRAM_CLEARECCADDR1 */
+#define _MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CMD */
+#define MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT (_MPAHBRAM_CMD_CLEARECCADDR1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CMD */
+
+/* Bit fields for MPAHBRAM CTRL */
+#define _MPAHBRAM_CTRL_RESETVALUE 0x00000040UL /**< Default value for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_MASK 0x0000007FUL /**< Mask for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN (0x1UL << 0) /**< Enable ECC functionality */
+#define _MPAHBRAM_CTRL_ECCEN_SHIFT 0 /**< Shift value for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_MASK 0x1UL /**< Bit mask for MPAHBRAM_ECCEN */
+#define _MPAHBRAM_CTRL_ECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCEN_DEFAULT (_MPAHBRAM_CTRL_ECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN (0x1UL << 1) /**< Enable ECC syndrome writes */
+#define _MPAHBRAM_CTRL_ECCWEN_SHIFT 1 /**< Shift value for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_MASK 0x2UL /**< Bit mask for MPAHBRAM_ECCWEN */
+#define _MPAHBRAM_CTRL_ECCWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCWEN_DEFAULT (_MPAHBRAM_CTRL_ECCWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN (0x1UL << 2) /**< ECC Error bus fault enable */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_SHIFT 2 /**< Shift value for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_MASK 0x4UL /**< Bit mask for MPAHBRAM_ECCERRFAULTEN */
+#define _MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ECCERRFAULTEN_DEFAULT << 2) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_SHIFT 3 /**< Shift value for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_MASK 0x38UL /**< Bit mask for MPAHBRAM_AHBPORTPRIORITY */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE 0x00000000UL /**< Mode NONE for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 0x00000001UL /**< Mode PORT0 for MPAHBRAM_CTRL */
+#define _MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 0x00000002UL /**< Mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT (_MPAHBRAM_CTRL_AHBPORTPRIORITY_DEFAULT << 3) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE (_MPAHBRAM_CTRL_AHBPORTPRIORITY_NONE << 3) /**< Shifted mode NONE for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT0 << 3) /**< Shifted mode PORT0 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 (_MPAHBRAM_CTRL_AHBPORTPRIORITY_PORT1 << 3) /**< Shifted mode PORT1 for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN (0x1UL << 6) /**< Address fault bus fault enable */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_SHIFT 6 /**< Shift value for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_MASK 0x40UL /**< Bit mask for MPAHBRAM_ADDRFAULTEN */
+#define _MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MPAHBRAM_CTRL */
+#define MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT (_MPAHBRAM_CTRL_ADDRFAULTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for MPAHBRAM_CTRL */
+
+/* Bit fields for MPAHBRAM ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR0 */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR0 */
+#define MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR0_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR0*/
+
+/* Bit fields for MPAHBRAM ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_MASK 0xFFFFFFFFUL /**< Mask for MPAHBRAM_ECCERRADDR1 */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_SHIFT 0 /**< Shift value for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_MASK 0xFFFFFFFFUL /**< Bit mask for MPAHBRAM_ADDR */
+#define _MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCERRADDR1 */
+#define MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT (_MPAHBRAM_ECCERRADDR1_ADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCERRADDR1*/
+
+/* Bit fields for MPAHBRAM ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_ECCMERRIND */
+#define _MPAHBRAM_ECCMERRIND_MASK 0x00000003UL /**< Mask for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0 (0x1UL << 0) /**< Multiple ECC errors on AHB port 0 */
+#define _MPAHBRAM_ECCMERRIND_P0_SHIFT 0 /**< Shift value for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_MASK 0x1UL /**< Bit mask for MPAHBRAM_P0 */
+#define _MPAHBRAM_ECCMERRIND_P0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P0_DEFAULT (_MPAHBRAM_ECCMERRIND_P0_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+#define MPAHBRAM_ECCMERRIND_P1 (0x1UL << 1) /**< Multiple ECC errors on AHB port 1 */
+#define _MPAHBRAM_ECCMERRIND_P1_SHIFT 1 /**< Shift value for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_MASK 0x2UL /**< Bit mask for MPAHBRAM_P1 */
+#define _MPAHBRAM_ECCMERRIND_P1_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_ECCMERRIND */
+#define MPAHBRAM_ECCMERRIND_P1_DEFAULT (_MPAHBRAM_ECCMERRIND_P1_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_ECCMERRIND*/
+
+/* Bit fields for MPAHBRAM IF */
+#define _MPAHBRAM_IF_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IF */
+#define _MPAHBRAM_IF_MASK 0x00000033UL /**< Mask for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IF_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR1B_DEFAULT (_MPAHBRAM_IF_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IF_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR1B_DEFAULT (_MPAHBRAM_IF_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IF_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB0ERR2B_DEFAULT (_MPAHBRAM_IF_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Flag */
+#define _MPAHBRAM_IF_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IF_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IF */
+#define MPAHBRAM_IF_AHB1ERR2B_DEFAULT (_MPAHBRAM_IF_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IF */
+
+/* Bit fields for MPAHBRAM IEN */
+#define _MPAHBRAM_IEN_RESETVALUE 0x00000000UL /**< Default value for MPAHBRAM_IEN */
+#define _MPAHBRAM_IEN_MASK 0x00000033UL /**< Mask for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B (0x1UL << 0) /**< AHB0 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR1B_SHIFT 0 /**< Shift value for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_MASK 0x1UL /**< Bit mask for MPAHBRAM_AHB0ERR1B */
+#define _MPAHBRAM_IEN_AHB0ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR1B_DEFAULT << 0) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B (0x1UL << 1) /**< AHB1 1-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR1B_SHIFT 1 /**< Shift value for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_MASK 0x2UL /**< Bit mask for MPAHBRAM_AHB1ERR1B */
+#define _MPAHBRAM_IEN_AHB1ERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR1B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR1B_DEFAULT << 1) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B (0x1UL << 4) /**< AHB0 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB0ERR2B_SHIFT 4 /**< Shift value for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_MASK 0x10UL /**< Bit mask for MPAHBRAM_AHB0ERR2B */
+#define _MPAHBRAM_IEN_AHB0ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB0ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB0ERR2B_DEFAULT << 4) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B (0x1UL << 5) /**< AHB1 2-bit ECC Error Interrupt Enable */
+#define _MPAHBRAM_IEN_AHB1ERR2B_SHIFT 5 /**< Shift value for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_MASK 0x20UL /**< Bit mask for MPAHBRAM_AHB1ERR2B */
+#define _MPAHBRAM_IEN_AHB1ERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for MPAHBRAM_IEN */
+#define MPAHBRAM_IEN_AHB1ERR2B_DEFAULT (_MPAHBRAM_IEN_AHB1ERR2B_DEFAULT << 5) /**< Shifted mode DEFAULT for MPAHBRAM_IEN */
+
+/** @} End of group EFR32ZG23_MPAHBRAM_BitFields */
+/** @} End of group EFR32ZG23_MPAHBRAM */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_MPAHBRAM_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_msc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_msc.h
new file mode 100644
index 000000000..1ca11ffaa
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_msc.h
@@ -0,0 +1,502 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 MSC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_MSC_H
+#define EFR32ZG23_MSC_H
+#define MSC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_MSC MSC
+ * @{
+ * @brief EFR32ZG23 MSC Register Declaration.
+ *****************************************************************************/
+
+/** MSC Register Declaration. */
+typedef struct msc_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t READCTRL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD; /**< Write Command Register */
+ __IOM uint32_t ADDRB; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA; /**< Write Data Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE; /**< User Data Region Size Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL; /**< Power control register */
+ uint32_t RESERVED2[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1; /**< Main space page 32-63 lock word */
+ uint32_t RESERVED3[2U]; /**< Reserved for future use */
+ uint32_t RESERVED4[4U]; /**< Reserved for future use */
+ uint32_t RESERVED5[4U]; /**< Reserved for future use */
+ uint32_t RESERVED6[4U]; /**< Reserved for future use */
+ uint32_t RESERVED7[4U]; /**< Reserved for future use */
+ uint32_t RESERVED8[12U]; /**< Reserved for future use */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[8U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t READCTRL_SET; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_SET; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_SET; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_SET; /**< Write Command Register */
+ __IOM uint32_t ADDRB_SET; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_SET; /**< Write Data Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED13[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_SET; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_SET; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED14[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_SET; /**< Power control register */
+ uint32_t RESERVED15[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_SET; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_SET; /**< Main space page 32-63 lock word */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ uint32_t RESERVED17[4U]; /**< Reserved for future use */
+ uint32_t RESERVED18[4U]; /**< Reserved for future use */
+ uint32_t RESERVED19[4U]; /**< Reserved for future use */
+ uint32_t RESERVED20[4U]; /**< Reserved for future use */
+ uint32_t RESERVED21[12U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[8U]; /**< Reserved for future use */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ uint32_t RESERVED25[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t READCTRL_CLR; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_CLR; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_CLR; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_CLR; /**< Write Command Register */
+ __IOM uint32_t ADDRB_CLR; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_CLR; /**< Write Data Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_CLR; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_CLR; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED27[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_CLR; /**< Power control register */
+ uint32_t RESERVED28[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_CLR; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_CLR; /**< Main space page 32-63 lock word */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ uint32_t RESERVED30[4U]; /**< Reserved for future use */
+ uint32_t RESERVED31[4U]; /**< Reserved for future use */
+ uint32_t RESERVED32[4U]; /**< Reserved for future use */
+ uint32_t RESERVED33[4U]; /**< Reserved for future use */
+ uint32_t RESERVED34[12U]; /**< Reserved for future use */
+ uint32_t RESERVED35[1U]; /**< Reserved for future use */
+ uint32_t RESERVED36[8U]; /**< Reserved for future use */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ uint32_t RESERVED38[910U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t READCTRL_TGL; /**< Read Control Register */
+ __IOM uint32_t RDATACTRL_TGL; /**< Read Data Control Register */
+ __IOM uint32_t WRITECTRL_TGL; /**< Write Control Register */
+ __IOM uint32_t WRITECMD_TGL; /**< Write Command Register */
+ __IOM uint32_t ADDRB_TGL; /**< Page Erase/Write Address Buffer */
+ __IOM uint32_t WDATA_TGL; /**< Write Data Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED39[3U]; /**< Reserved for future use */
+ __IM uint32_t USERDATASIZE_TGL; /**< User Data Region Size Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ __IOM uint32_t MISCLOCKWORD_TGL; /**< Mass erase and User data page lock word */
+ uint32_t RESERVED40[3U]; /**< Reserved for future use */
+ __IOM uint32_t PWRCTRL_TGL; /**< Power control register */
+ uint32_t RESERVED41[51U]; /**< Reserved for future use */
+ __IOM uint32_t PAGELOCK0_TGL; /**< Main space page 0-31 lock word */
+ __IOM uint32_t PAGELOCK1_TGL; /**< Main space page 32-63 lock word */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ uint32_t RESERVED43[4U]; /**< Reserved for future use */
+ uint32_t RESERVED44[4U]; /**< Reserved for future use */
+ uint32_t RESERVED45[4U]; /**< Reserved for future use */
+ uint32_t RESERVED46[4U]; /**< Reserved for future use */
+ uint32_t RESERVED47[12U]; /**< Reserved for future use */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ uint32_t RESERVED49[8U]; /**< Reserved for future use */
+ uint32_t RESERVED50[1U]; /**< Reserved for future use */
+} MSC_TypeDef;
+/** @} End of group EFR32ZG23_MSC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_MSC
+ * @{
+ * @defgroup EFR32ZG23_MSC_BitFields MSC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for MSC IPVERSION */
+#define _MSC_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for MSC_IPVERSION */
+#define _MSC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_IPVERSION */
+#define _MSC_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for MSC_IPVERSION */
+#define MSC_IPVERSION_IPVERSION_DEFAULT (_MSC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IPVERSION */
+
+/* Bit fields for MSC READCTRL */
+#define _MSC_READCTRL_RESETVALUE 0x00200000UL /**< Default value for MSC_READCTRL */
+#define _MSC_READCTRL_MASK 0x00300000UL /**< Mask for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_SHIFT 20 /**< Shift value for MSC_MODE */
+#define _MSC_READCTRL_MODE_MASK 0x300000UL /**< Bit mask for MSC_MODE */
+#define _MSC_READCTRL_MODE_DEFAULT 0x00000002UL /**< Mode DEFAULT for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS0 0x00000000UL /**< Mode WS0 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS1 0x00000001UL /**< Mode WS1 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS2 0x00000002UL /**< Mode WS2 for MSC_READCTRL */
+#define _MSC_READCTRL_MODE_WS3 0x00000003UL /**< Mode WS3 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_DEFAULT (_MSC_READCTRL_MODE_DEFAULT << 20) /**< Shifted mode DEFAULT for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS0 (_MSC_READCTRL_MODE_WS0 << 20) /**< Shifted mode WS0 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS1 (_MSC_READCTRL_MODE_WS1 << 20) /**< Shifted mode WS1 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS2 (_MSC_READCTRL_MODE_WS2 << 20) /**< Shifted mode WS2 for MSC_READCTRL */
+#define MSC_READCTRL_MODE_WS3 (_MSC_READCTRL_MODE_WS3 << 20) /**< Shifted mode WS3 for MSC_READCTRL */
+
+/* Bit fields for MSC RDATACTRL */
+#define _MSC_RDATACTRL_RESETVALUE 0x00001000UL /**< Default value for MSC_RDATACTRL */
+#define _MSC_RDATACTRL_MASK 0x00001002UL /**< Mask for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS (0x1UL << 1) /**< Automatic Invalidate Disable */
+#define _MSC_RDATACTRL_AFDIS_SHIFT 1 /**< Shift value for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_MASK 0x2UL /**< Bit mask for MSC_AFDIS */
+#define _MSC_RDATACTRL_AFDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_AFDIS_DEFAULT (_MSC_RDATACTRL_AFDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN (0x1UL << 12) /**< Flash dout pipeline buffer enable */
+#define _MSC_RDATACTRL_DOUTBUFEN_SHIFT 12 /**< Shift value for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_MASK 0x1000UL /**< Bit mask for MSC_DOUTBUFEN */
+#define _MSC_RDATACTRL_DOUTBUFEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_RDATACTRL */
+#define MSC_RDATACTRL_DOUTBUFEN_DEFAULT (_MSC_RDATACTRL_DOUTBUFEN_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_RDATACTRL */
+
+/* Bit fields for MSC WRITECTRL */
+#define _MSC_WRITECTRL_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_MASK 0x00FF000BUL /**< Mask for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN (0x1UL << 0) /**< Enable Write/Erase Controller */
+#define _MSC_WRITECTRL_WREN_SHIFT 0 /**< Shift value for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_MASK 0x1UL /**< Bit mask for MSC_WREN */
+#define _MSC_WRITECTRL_WREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_WREN_DEFAULT (_MSC_WRITECTRL_WREN_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT (0x1UL << 1) /**< Abort Page Erase on Interrupt */
+#define _MSC_WRITECTRL_IRQERASEABORT_SHIFT 1 /**< Shift value for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_MASK 0x2UL /**< Bit mask for MSC_IRQERASEABORT */
+#define _MSC_WRITECTRL_IRQERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_IRQERASEABORT_DEFAULT (_MSC_WRITECTRL_IRQERASEABORT_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE (0x1UL << 3) /**< Low-Power Write */
+#define _MSC_WRITECTRL_LPWRITE_SHIFT 3 /**< Shift value for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_MASK 0x8UL /**< Bit mask for MSC_LPWRITE */
+#define _MSC_WRITECTRL_LPWRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_LPWRITE_DEFAULT (_MSC_WRITECTRL_LPWRITE_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+#define _MSC_WRITECTRL_RANGECOUNT_SHIFT 16 /**< Shift value for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_MASK 0xFF0000UL /**< Bit mask for MSC_RANGECOUNT */
+#define _MSC_WRITECTRL_RANGECOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECTRL */
+#define MSC_WRITECTRL_RANGECOUNT_DEFAULT (_MSC_WRITECTRL_RANGECOUNT_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_WRITECTRL */
+
+/* Bit fields for MSC WRITECMD */
+#define _MSC_WRITECMD_RESETVALUE 0x00000000UL /**< Default value for MSC_WRITECMD */
+#define _MSC_WRITECMD_MASK 0x00001136UL /**< Mask for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE (0x1UL << 1) /**< Erase Page */
+#define _MSC_WRITECMD_ERASEPAGE_SHIFT 1 /**< Shift value for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_MASK 0x2UL /**< Bit mask for MSC_ERASEPAGE */
+#define _MSC_WRITECMD_ERASEPAGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEPAGE_DEFAULT (_MSC_WRITECMD_ERASEPAGE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND (0x1UL << 2) /**< End Write Mode */
+#define _MSC_WRITECMD_WRITEEND_SHIFT 2 /**< Shift value for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_MASK 0x4UL /**< Bit mask for MSC_WRITEEND */
+#define _MSC_WRITECMD_WRITEEND_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_WRITEEND_DEFAULT (_MSC_WRITECMD_WRITEEND_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE (0x1UL << 4) /**< Erase range of pages */
+#define _MSC_WRITECMD_ERASERANGE_SHIFT 4 /**< Shift value for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_MASK 0x10UL /**< Bit mask for MSC_ERASERANGE */
+#define _MSC_WRITECMD_ERASERANGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASERANGE_DEFAULT (_MSC_WRITECMD_ERASERANGE_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT (0x1UL << 5) /**< Abort erase sequence */
+#define _MSC_WRITECMD_ERASEABORT_SHIFT 5 /**< Shift value for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_MASK 0x20UL /**< Bit mask for MSC_ERASEABORT */
+#define _MSC_WRITECMD_ERASEABORT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEABORT_DEFAULT (_MSC_WRITECMD_ERASEABORT_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0 (0x1UL << 8) /**< Mass erase region 0 */
+#define _MSC_WRITECMD_ERASEMAIN0_SHIFT 8 /**< Shift value for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_MASK 0x100UL /**< Bit mask for MSC_ERASEMAIN0 */
+#define _MSC_WRITECMD_ERASEMAIN0_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_ERASEMAIN0_DEFAULT (_MSC_WRITECMD_ERASEMAIN0_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA (0x1UL << 12) /**< Clear WDATA state */
+#define _MSC_WRITECMD_CLEARWDATA_SHIFT 12 /**< Shift value for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_MASK 0x1000UL /**< Bit mask for MSC_CLEARWDATA */
+#define _MSC_WRITECMD_CLEARWDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WRITECMD */
+#define MSC_WRITECMD_CLEARWDATA_DEFAULT (_MSC_WRITECMD_CLEARWDATA_DEFAULT << 12) /**< Shifted mode DEFAULT for MSC_WRITECMD */
+
+/* Bit fields for MSC ADDRB */
+#define _MSC_ADDRB_RESETVALUE 0x00000000UL /**< Default value for MSC_ADDRB */
+#define _MSC_ADDRB_MASK 0xFFFFFFFFUL /**< Mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_SHIFT 0 /**< Shift value for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_ADDRB */
+#define _MSC_ADDRB_ADDRB_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_ADDRB */
+#define MSC_ADDRB_ADDRB_DEFAULT (_MSC_ADDRB_ADDRB_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_ADDRB */
+
+/* Bit fields for MSC WDATA */
+#define _MSC_WDATA_RESETVALUE 0x00000000UL /**< Default value for MSC_WDATA */
+#define _MSC_WDATA_MASK 0xFFFFFFFFUL /**< Mask for MSC_WDATA */
+#define _MSC_WDATA_DATAW_SHIFT 0 /**< Shift value for MSC_DATAW */
+#define _MSC_WDATA_DATAW_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_DATAW */
+#define _MSC_WDATA_DATAW_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_WDATA */
+#define MSC_WDATA_DATAW_DEFAULT (_MSC_WDATA_DATAW_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_WDATA */
+
+/* Bit fields for MSC STATUS */
+#define _MSC_STATUS_RESETVALUE 0x08000008UL /**< Default value for MSC_STATUS */
+#define _MSC_STATUS_MASK 0xF90100FFUL /**< Mask for MSC_STATUS */
+#define MSC_STATUS_BUSY (0x1UL << 0) /**< Erase/Write Busy */
+#define _MSC_STATUS_BUSY_SHIFT 0 /**< Shift value for MSC_BUSY */
+#define _MSC_STATUS_BUSY_MASK 0x1UL /**< Bit mask for MSC_BUSY */
+#define _MSC_STATUS_BUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_BUSY_DEFAULT (_MSC_STATUS_BUSY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED (0x1UL << 1) /**< Access Locked */
+#define _MSC_STATUS_LOCKED_SHIFT 1 /**< Shift value for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_MASK 0x2UL /**< Bit mask for MSC_LOCKED */
+#define _MSC_STATUS_LOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_LOCKED_DEFAULT (_MSC_STATUS_LOCKED_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR (0x1UL << 2) /**< Invalid Write Address or Erase Page */
+#define _MSC_STATUS_INVADDR_SHIFT 2 /**< Shift value for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_MASK 0x4UL /**< Bit mask for MSC_INVADDR */
+#define _MSC_STATUS_INVADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_INVADDR_DEFAULT (_MSC_STATUS_INVADDR_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY (0x1UL << 3) /**< WDATA Write Ready */
+#define _MSC_STATUS_WDATAREADY_SHIFT 3 /**< Shift value for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_MASK 0x8UL /**< Bit mask for MSC_WDATAREADY */
+#define _MSC_STATUS_WDATAREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WDATAREADY_DEFAULT (_MSC_STATUS_WDATAREADY_DEFAULT << 3) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED (0x1UL << 4) /**< Erase Operation Aborted */
+#define _MSC_STATUS_ERASEABORTED_SHIFT 4 /**< Shift value for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_MASK 0x10UL /**< Bit mask for MSC_ERASEABORTED */
+#define _MSC_STATUS_ERASEABORTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_ERASEABORTED_DEFAULT (_MSC_STATUS_ERASEABORTED_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING (0x1UL << 5) /**< Write Command In Queue */
+#define _MSC_STATUS_PENDING_SHIFT 5 /**< Shift value for MSC_PENDING */
+#define _MSC_STATUS_PENDING_MASK 0x20UL /**< Bit mask for MSC_PENDING */
+#define _MSC_STATUS_PENDING_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PENDING_DEFAULT (_MSC_STATUS_PENDING_DEFAULT << 5) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT (0x1UL << 6) /**< Write Command Timeout */
+#define _MSC_STATUS_TIMEOUT_SHIFT 6 /**< Shift value for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_MASK 0x40UL /**< Bit mask for MSC_TIMEOUT */
+#define _MSC_STATUS_TIMEOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_TIMEOUT_DEFAULT (_MSC_STATUS_TIMEOUT_DEFAULT << 6) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL (0x1UL << 7) /**< EraseRange with skipped locked pages */
+#define _MSC_STATUS_RANGEPARTIAL_SHIFT 7 /**< Shift value for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_MASK 0x80UL /**< Bit mask for MSC_RANGEPARTIAL */
+#define _MSC_STATUS_RANGEPARTIAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_RANGEPARTIAL_DEFAULT (_MSC_STATUS_RANGEPARTIAL_DEFAULT << 7) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK (0x1UL << 16) /**< Register Lock Status */
+#define _MSC_STATUS_REGLOCK_SHIFT 16 /**< Shift value for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_MASK 0x10000UL /**< Bit mask for MSC_REGLOCK */
+#define _MSC_STATUS_REGLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for MSC_STATUS */
+#define _MSC_STATUS_REGLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_DEFAULT (_MSC_STATUS_REGLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_UNLOCKED (_MSC_STATUS_REGLOCK_UNLOCKED << 16) /**< Shifted mode UNLOCKED for MSC_STATUS */
+#define MSC_STATUS_REGLOCK_LOCKED (_MSC_STATUS_REGLOCK_LOCKED << 16) /**< Shifted mode LOCKED for MSC_STATUS */
+#define MSC_STATUS_PWRON (0x1UL << 24) /**< Flash power on status */
+#define _MSC_STATUS_PWRON_SHIFT 24 /**< Shift value for MSC_PWRON */
+#define _MSC_STATUS_PWRON_MASK 0x1000000UL /**< Bit mask for MSC_PWRON */
+#define _MSC_STATUS_PWRON_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRON_DEFAULT (_MSC_STATUS_PWRON_DEFAULT << 24) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY (0x1UL << 27) /**< Flash Write Ready */
+#define _MSC_STATUS_WREADY_SHIFT 27 /**< Shift value for MSC_WREADY */
+#define _MSC_STATUS_WREADY_MASK 0x8000000UL /**< Bit mask for MSC_WREADY */
+#define _MSC_STATUS_WREADY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_WREADY_DEFAULT (_MSC_STATUS_WREADY_DEFAULT << 27) /**< Shifted mode DEFAULT for MSC_STATUS */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_SHIFT 28 /**< Shift value for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_MASK 0xF0000000UL /**< Bit mask for MSC_PWRUPCKBDFAILCOUNT */
+#define _MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_STATUS */
+#define MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT (_MSC_STATUS_PWRUPCKBDFAILCOUNT_DEFAULT << 28) /**< Shifted mode DEFAULT for MSC_STATUS */
+
+/* Bit fields for MSC IF */
+#define _MSC_IF_RESETVALUE 0x00000000UL /**< Default value for MSC_IF */
+#define _MSC_IF_MASK 0x00000307UL /**< Mask for MSC_IF */
+#define MSC_IF_ERASE (0x1UL << 0) /**< Host Erase Done Interrupt Read Flag */
+#define _MSC_IF_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IF_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IF_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_ERASE_DEFAULT (_MSC_IF_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE (0x1UL << 1) /**< Host Write Done Interrupt Read Flag */
+#define _MSC_IF_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IF_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IF_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WRITE_DEFAULT (_MSC_IF_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV (0x1UL << 2) /**< Host write buffer overflow */
+#define _MSC_IF_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IF_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_WDATAOV_DEFAULT (_MSC_IF_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF (0x1UL << 8) /**< Flash Power Up Sequence Complete Flag */
+#define _MSC_IF_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IF_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWRUPF_DEFAULT (_MSC_IF_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF (0x1UL << 9) /**< Flash Power Off Sequence Complete Flag */
+#define _MSC_IF_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IF_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IF_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IF */
+#define MSC_IF_PWROFF_DEFAULT (_MSC_IF_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IF */
+
+/* Bit fields for MSC IEN */
+#define _MSC_IEN_RESETVALUE 0x00000000UL /**< Default value for MSC_IEN */
+#define _MSC_IEN_MASK 0x00000307UL /**< Mask for MSC_IEN */
+#define MSC_IEN_ERASE (0x1UL << 0) /**< Erase Done Interrupt enable */
+#define _MSC_IEN_ERASE_SHIFT 0 /**< Shift value for MSC_ERASE */
+#define _MSC_IEN_ERASE_MASK 0x1UL /**< Bit mask for MSC_ERASE */
+#define _MSC_IEN_ERASE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_ERASE_DEFAULT (_MSC_IEN_ERASE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE (0x1UL << 1) /**< Write Done Interrupt enable */
+#define _MSC_IEN_WRITE_SHIFT 1 /**< Shift value for MSC_WRITE */
+#define _MSC_IEN_WRITE_MASK 0x2UL /**< Bit mask for MSC_WRITE */
+#define _MSC_IEN_WRITE_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WRITE_DEFAULT (_MSC_IEN_WRITE_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV (0x1UL << 2) /**< write data buffer overflow irq enable */
+#define _MSC_IEN_WDATAOV_SHIFT 2 /**< Shift value for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_MASK 0x4UL /**< Bit mask for MSC_WDATAOV */
+#define _MSC_IEN_WDATAOV_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_WDATAOV_DEFAULT (_MSC_IEN_WDATAOV_DEFAULT << 2) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF (0x1UL << 8) /**< Flash Power Up Seq done irq enable */
+#define _MSC_IEN_PWRUPF_SHIFT 8 /**< Shift value for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_MASK 0x100UL /**< Bit mask for MSC_PWRUPF */
+#define _MSC_IEN_PWRUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWRUPF_DEFAULT (_MSC_IEN_PWRUPF_DEFAULT << 8) /**< Shifted mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF (0x1UL << 9) /**< Flash Power Off Seq done irq enable */
+#define _MSC_IEN_PWROFF_SHIFT 9 /**< Shift value for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_MASK 0x200UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_IEN_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_IEN */
+#define MSC_IEN_PWROFF_DEFAULT (_MSC_IEN_PWROFF_DEFAULT << 9) /**< Shifted mode DEFAULT for MSC_IEN */
+
+/* Bit fields for MSC USERDATASIZE */
+#define _MSC_USERDATASIZE_RESETVALUE 0x00000004UL /**< Default value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_MASK 0x0000003FUL /**< Mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_SHIFT 0 /**< Shift value for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_MASK 0x3FUL /**< Bit mask for MSC_USERDATASIZE */
+#define _MSC_USERDATASIZE_USERDATASIZE_DEFAULT 0x00000004UL /**< Mode DEFAULT for MSC_USERDATASIZE */
+#define MSC_USERDATASIZE_USERDATASIZE_DEFAULT (_MSC_USERDATASIZE_USERDATASIZE_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_USERDATASIZE */
+
+/* Bit fields for MSC CMD */
+#define _MSC_CMD_RESETVALUE 0x00000000UL /**< Default value for MSC_CMD */
+#define _MSC_CMD_MASK 0x00000011UL /**< Mask for MSC_CMD */
+#define MSC_CMD_PWRUP (0x1UL << 0) /**< Flash Power Up Command */
+#define _MSC_CMD_PWRUP_SHIFT 0 /**< Shift value for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_MASK 0x1UL /**< Bit mask for MSC_PWRUP */
+#define _MSC_CMD_PWRUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWRUP_DEFAULT (_MSC_CMD_PWRUP_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF (0x1UL << 4) /**< Flash power off/sleep command */
+#define _MSC_CMD_PWROFF_SHIFT 4 /**< Shift value for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_MASK 0x10UL /**< Bit mask for MSC_PWROFF */
+#define _MSC_CMD_PWROFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_CMD */
+#define MSC_CMD_PWROFF_DEFAULT (_MSC_CMD_PWROFF_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_CMD */
+
+/* Bit fields for MSC LOCK */
+#define _MSC_LOCK_RESETVALUE 0x00000000UL /**< Default value for MSC_LOCK */
+#define _MSC_LOCK_MASK 0x0000FFFFUL /**< Mask for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for MSC_LOCKKEY */
+#define _MSC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for MSC_LOCK */
+#define _MSC_LOCK_LOCKKEY_UNLOCK 0x00001B71UL /**< Mode UNLOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_DEFAULT (_MSC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_LOCK (_MSC_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for MSC_LOCK */
+#define MSC_LOCK_LOCKKEY_UNLOCK (_MSC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for MSC_LOCK */
+
+/* Bit fields for MSC MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_RESETVALUE 0x00000011UL /**< Default value for MSC_MISCLOCKWORD */
+#define _MSC_MISCLOCKWORD_MASK 0x00000011UL /**< Mask for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT (0x1UL << 0) /**< Mass Erase Lock */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_SHIFT 0 /**< Shift value for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_MASK 0x1UL /**< Bit mask for MSC_MELOCKBIT */
+#define _MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_MELOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT (0x1UL << 4) /**< User Data Lock */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_SHIFT 4 /**< Shift value for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_MASK 0x10UL /**< Bit mask for MSC_UDLOCKBIT */
+#define _MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_MISCLOCKWORD */
+#define MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT (_MSC_MISCLOCKWORD_UDLOCKBIT_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_MISCLOCKWORD */
+
+/* Bit fields for MSC PWRCTRL */
+#define _MSC_PWRCTRL_RESETVALUE 0x00100002UL /**< Default value for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_MASK 0x00FF0013UL /**< Mask for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY (0x1UL << 0) /**< Power down Flash macro when enter EM1 */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_SHIFT 0 /**< Shift value for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_MASK 0x1UL /**< Bit mask for MSC_PWROFFONEM1ENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1ENTRY_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY (0x1UL << 1) /**< Power down Flash macro when enter EM1P */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_SHIFT 1 /**< Shift value for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_MASK 0x2UL /**< Bit mask for MSC_PWROFFONEM1PENTRY */
+#define _MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT 0x00000001UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT (_MSC_PWRCTRL_PWROFFONEM1PENTRY_DEFAULT << 1) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN (0x1UL << 4) /**< POWER down flash again in EM1/EM1p */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_SHIFT 4 /**< Shift value for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_MASK 0x10UL /**< Bit mask for MSC_PWROFFENTRYAGAIN */
+#define _MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT (_MSC_PWRCTRL_PWROFFENTRYAGAIN_DEFAULT << 4) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+#define _MSC_PWRCTRL_PWROFFDLY_SHIFT 16 /**< Shift value for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_MASK 0xFF0000UL /**< Bit mask for MSC_PWROFFDLY */
+#define _MSC_PWRCTRL_PWROFFDLY_DEFAULT 0x00000010UL /**< Mode DEFAULT for MSC_PWRCTRL */
+#define MSC_PWRCTRL_PWROFFDLY_DEFAULT (_MSC_PWRCTRL_PWROFFDLY_DEFAULT << 16) /**< Shifted mode DEFAULT for MSC_PWRCTRL */
+
+/* Bit fields for MSC PAGELOCK0 */
+#define _MSC_PAGELOCK0_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK0 */
+#define _MSC_PAGELOCK0_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK0_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK0 */
+#define MSC_PAGELOCK0_LOCKBIT_DEFAULT (_MSC_PAGELOCK0_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK0 */
+
+/* Bit fields for MSC PAGELOCK1 */
+#define _MSC_PAGELOCK1_RESETVALUE 0x00000000UL /**< Default value for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_MASK 0xFFFFFFFFUL /**< Mask for MSC_PAGELOCK1 */
+#define _MSC_PAGELOCK1_LOCKBIT_SHIFT 0 /**< Shift value for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_MASK 0xFFFFFFFFUL /**< Bit mask for MSC_LOCKBIT */
+#define _MSC_PAGELOCK1_LOCKBIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for MSC_PAGELOCK1 */
+#define MSC_PAGELOCK1_LOCKBIT_DEFAULT (_MSC_PAGELOCK1_LOCKBIT_DEFAULT << 0) /**< Shifted mode DEFAULT for MSC_PAGELOCK1 */
+
+/** @} End of group EFR32ZG23_MSC_BitFields */
+/** @} End of group EFR32ZG23_MSC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_MSC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pcnt.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pcnt.h
new file mode 100644
index 000000000..bd42bed17
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pcnt.h
@@ -0,0 +1,482 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 PCNT register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_PCNT_H
+#define EFR32ZG23_PCNT_H
+#define PCNT_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_PCNT PCNT
+ * @{
+ * @brief EFR32ZG23 PCNT Register Declaration.
+ *****************************************************************************/
+
+/** PCNT Register Declaration. */
+typedef struct pcnt_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t SWRST; /**< Software Reset Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IM uint32_t CNT; /**< Counter Value Register */
+ __IM uint32_t AUXCNT; /**< Auxiliary Counter Value Register */
+ __IOM uint32_t TOP; /**< Top Value Register */
+ __IOM uint32_t TOPB; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t OVSCTRL; /**< Oversampling Control Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED0[1008U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t SWRST_SET; /**< Software Reset Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IM uint32_t CNT_SET; /**< Counter Value Register */
+ __IM uint32_t AUXCNT_SET; /**< Auxiliary Counter Value Register */
+ __IOM uint32_t TOP_SET; /**< Top Value Register */
+ __IOM uint32_t TOPB_SET; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t OVSCTRL_SET; /**< Oversampling Control Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED1[1008U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IM uint32_t AUXCNT_CLR; /**< Auxiliary Counter Value Register */
+ __IOM uint32_t TOP_CLR; /**< Top Value Register */
+ __IOM uint32_t TOPB_CLR; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t OVSCTRL_CLR; /**< Oversampling Control Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED2[1008U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IM uint32_t AUXCNT_TGL; /**< Auxiliary Counter Value Register */
+ __IOM uint32_t TOP_TGL; /**< Top Value Register */
+ __IOM uint32_t TOPB_TGL; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t OVSCTRL_TGL; /**< Oversampling Control Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+} PCNT_TypeDef;
+/** @} End of group EFR32ZG23_PCNT */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_PCNT
+ * @{
+ * @defgroup EFR32ZG23_PCNT_BitFields PCNT Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PCNT IPVERSION */
+#define _PCNT_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for PCNT_IPVERSION */
+#define _PCNT_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PCNT_IPVERSION */
+#define _PCNT_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PCNT_IPVERSION */
+#define _PCNT_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PCNT_IPVERSION */
+#define _PCNT_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for PCNT_IPVERSION */
+#define PCNT_IPVERSION_IPVERSION_DEFAULT (_PCNT_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_IPVERSION */
+
+/* Bit fields for PCNT EN */
+#define _PCNT_EN_RESETVALUE 0x00000000UL /**< Default value for PCNT_EN */
+#define _PCNT_EN_MASK 0x00000003UL /**< Mask for PCNT_EN */
+#define PCNT_EN_EN (0x1UL << 0) /**< PCNT Module Enable */
+#define _PCNT_EN_EN_SHIFT 0 /**< Shift value for PCNT_EN */
+#define _PCNT_EN_EN_MASK 0x1UL /**< Bit mask for PCNT_EN */
+#define _PCNT_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_EN */
+#define PCNT_EN_EN_DEFAULT (_PCNT_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_EN */
+#define PCNT_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _PCNT_EN_DISABLING_SHIFT 1 /**< Shift value for PCNT_DISABLING */
+#define _PCNT_EN_DISABLING_MASK 0x2UL /**< Bit mask for PCNT_DISABLING */
+#define _PCNT_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_EN */
+#define PCNT_EN_DISABLING_DEFAULT (_PCNT_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_EN */
+
+/* Bit fields for PCNT SWRST */
+#define _PCNT_SWRST_RESETVALUE 0x00000000UL /**< Default value for PCNT_SWRST */
+#define _PCNT_SWRST_MASK 0x00000003UL /**< Mask for PCNT_SWRST */
+#define PCNT_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _PCNT_SWRST_SWRST_SHIFT 0 /**< Shift value for PCNT_SWRST */
+#define _PCNT_SWRST_SWRST_MASK 0x1UL /**< Bit mask for PCNT_SWRST */
+#define _PCNT_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SWRST */
+#define PCNT_SWRST_SWRST_DEFAULT (_PCNT_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_SWRST */
+#define PCNT_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _PCNT_SWRST_RESETTING_SHIFT 1 /**< Shift value for PCNT_RESETTING */
+#define _PCNT_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for PCNT_RESETTING */
+#define _PCNT_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SWRST */
+#define PCNT_SWRST_RESETTING_DEFAULT (_PCNT_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_SWRST */
+
+/* Bit fields for PCNT CFG */
+#define _PCNT_CFG_RESETVALUE 0x00000000UL /**< Default value for PCNT_CFG */
+#define _PCNT_CFG_MASK 0x00000377UL /**< Mask for PCNT_CFG */
+#define _PCNT_CFG_MODE_SHIFT 0 /**< Shift value for PCNT_MODE */
+#define _PCNT_CFG_MODE_MASK 0x7UL /**< Bit mask for PCNT_MODE */
+#define _PCNT_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define _PCNT_CFG_MODE_OVSSINGLE 0x00000000UL /**< Mode OVSSINGLE for PCNT_CFG */
+#define _PCNT_CFG_MODE_EXTCLKSINGLE 0x00000001UL /**< Mode EXTCLKSINGLE for PCNT_CFG */
+#define _PCNT_CFG_MODE_EXTCLKQUAD 0x00000002UL /**< Mode EXTCLKQUAD for PCNT_CFG */
+#define _PCNT_CFG_MODE_OVSQUAD1X 0x00000003UL /**< Mode OVSQUAD1X for PCNT_CFG */
+#define _PCNT_CFG_MODE_OVSQUAD2X 0x00000004UL /**< Mode OVSQUAD2X for PCNT_CFG */
+#define _PCNT_CFG_MODE_OVSQUAD4X 0x00000005UL /**< Mode OVSQUAD4X for PCNT_CFG */
+#define PCNT_CFG_MODE_DEFAULT (_PCNT_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_MODE_OVSSINGLE (_PCNT_CFG_MODE_OVSSINGLE << 0) /**< Shifted mode OVSSINGLE for PCNT_CFG */
+#define PCNT_CFG_MODE_EXTCLKSINGLE (_PCNT_CFG_MODE_EXTCLKSINGLE << 0) /**< Shifted mode EXTCLKSINGLE for PCNT_CFG */
+#define PCNT_CFG_MODE_EXTCLKQUAD (_PCNT_CFG_MODE_EXTCLKQUAD << 0) /**< Shifted mode EXTCLKQUAD for PCNT_CFG */
+#define PCNT_CFG_MODE_OVSQUAD1X (_PCNT_CFG_MODE_OVSQUAD1X << 0) /**< Shifted mode OVSQUAD1X for PCNT_CFG */
+#define PCNT_CFG_MODE_OVSQUAD2X (_PCNT_CFG_MODE_OVSQUAD2X << 0) /**< Shifted mode OVSQUAD2X for PCNT_CFG */
+#define PCNT_CFG_MODE_OVSQUAD4X (_PCNT_CFG_MODE_OVSQUAD4X << 0) /**< Shifted mode OVSQUAD4X for PCNT_CFG */
+#define PCNT_CFG_DEBUGHALT (0x1UL << 4) /**< Debug Mode Halt Enable */
+#define _PCNT_CFG_DEBUGHALT_SHIFT 4 /**< Shift value for PCNT_DEBUGHALT */
+#define _PCNT_CFG_DEBUGHALT_MASK 0x10UL /**< Bit mask for PCNT_DEBUGHALT */
+#define _PCNT_CFG_DEBUGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define _PCNT_CFG_DEBUGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for PCNT_CFG */
+#define _PCNT_CFG_DEBUGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for PCNT_CFG */
+#define PCNT_CFG_DEBUGHALT_DEFAULT (_PCNT_CFG_DEBUGHALT_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_DEBUGHALT_DISABLE (_PCNT_CFG_DEBUGHALT_DISABLE << 4) /**< Shifted mode DISABLE for PCNT_CFG */
+#define PCNT_CFG_DEBUGHALT_ENABLE (_PCNT_CFG_DEBUGHALT_ENABLE << 4) /**< Shifted mode ENABLE for PCNT_CFG */
+#define PCNT_CFG_FILTEN (0x1UL << 5) /**< Enable Digital Pulse Width Filter */
+#define _PCNT_CFG_FILTEN_SHIFT 5 /**< Shift value for PCNT_FILTEN */
+#define _PCNT_CFG_FILTEN_MASK 0x20UL /**< Bit mask for PCNT_FILTEN */
+#define _PCNT_CFG_FILTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_FILTEN_DEFAULT (_PCNT_CFG_FILTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_HYST (0x1UL << 6) /**< Enable Hysteresis */
+#define _PCNT_CFG_HYST_SHIFT 6 /**< Shift value for PCNT_HYST */
+#define _PCNT_CFG_HYST_MASK 0x40UL /**< Bit mask for PCNT_HYST */
+#define _PCNT_CFG_HYST_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_HYST_DEFAULT (_PCNT_CFG_HYST_DEFAULT << 6) /**< Shifted mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_S0PRSEN (0x1UL << 8) /**< S0IN PRS Enable */
+#define _PCNT_CFG_S0PRSEN_SHIFT 8 /**< Shift value for PCNT_S0PRSEN */
+#define _PCNT_CFG_S0PRSEN_MASK 0x100UL /**< Bit mask for PCNT_S0PRSEN */
+#define _PCNT_CFG_S0PRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_S0PRSEN_DEFAULT (_PCNT_CFG_S0PRSEN_DEFAULT << 8) /**< Shifted mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_S1PRSEN (0x1UL << 9) /**< S1IN PRS Enable */
+#define _PCNT_CFG_S1PRSEN_SHIFT 9 /**< Shift value for PCNT_S1PRSEN */
+#define _PCNT_CFG_S1PRSEN_MASK 0x200UL /**< Bit mask for PCNT_S1PRSEN */
+#define _PCNT_CFG_S1PRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CFG */
+#define PCNT_CFG_S1PRSEN_DEFAULT (_PCNT_CFG_S1PRSEN_DEFAULT << 9) /**< Shifted mode DEFAULT for PCNT_CFG */
+
+/* Bit fields for PCNT CTRL */
+#define _PCNT_CTRL_RESETVALUE 0x00000000UL /**< Default value for PCNT_CTRL */
+#define _PCNT_CTRL_MASK 0x000000F7UL /**< Mask for PCNT_CTRL */
+#define PCNT_CTRL_S1CDIR (0x1UL << 0) /**< Count Direction Determined By S1 */
+#define _PCNT_CTRL_S1CDIR_SHIFT 0 /**< Shift value for PCNT_S1CDIR */
+#define _PCNT_CTRL_S1CDIR_MASK 0x1UL /**< Bit mask for PCNT_S1CDIR */
+#define _PCNT_CTRL_S1CDIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_S1CDIR_DEFAULT (_PCNT_CTRL_S1CDIR_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_CNTDIR (0x1UL << 1) /**< Non-Quadrature Mode Counter Direction Co */
+#define _PCNT_CTRL_CNTDIR_SHIFT 1 /**< Shift value for PCNT_CNTDIR */
+#define _PCNT_CTRL_CNTDIR_MASK 0x2UL /**< Bit mask for PCNT_CNTDIR */
+#define _PCNT_CTRL_CNTDIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CTRL */
+#define _PCNT_CTRL_CNTDIR_UP 0x00000000UL /**< Mode UP for PCNT_CTRL */
+#define _PCNT_CTRL_CNTDIR_DOWN 0x00000001UL /**< Mode DOWN for PCNT_CTRL */
+#define PCNT_CTRL_CNTDIR_DEFAULT (_PCNT_CTRL_CNTDIR_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_CNTDIR_UP (_PCNT_CTRL_CNTDIR_UP << 1) /**< Shifted mode UP for PCNT_CTRL */
+#define PCNT_CTRL_CNTDIR_DOWN (_PCNT_CTRL_CNTDIR_DOWN << 1) /**< Shifted mode DOWN for PCNT_CTRL */
+#define PCNT_CTRL_EDGE (0x1UL << 2) /**< Edge Select */
+#define _PCNT_CTRL_EDGE_SHIFT 2 /**< Shift value for PCNT_EDGE */
+#define _PCNT_CTRL_EDGE_MASK 0x4UL /**< Bit mask for PCNT_EDGE */
+#define _PCNT_CTRL_EDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CTRL */
+#define _PCNT_CTRL_EDGE_POS 0x00000000UL /**< Mode POS for PCNT_CTRL */
+#define _PCNT_CTRL_EDGE_NEG 0x00000001UL /**< Mode NEG for PCNT_CTRL */
+#define PCNT_CTRL_EDGE_DEFAULT (_PCNT_CTRL_EDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_EDGE_POS (_PCNT_CTRL_EDGE_POS << 2) /**< Shifted mode POS for PCNT_CTRL */
+#define PCNT_CTRL_EDGE_NEG (_PCNT_CTRL_EDGE_NEG << 2) /**< Shifted mode NEG for PCNT_CTRL */
+#define _PCNT_CTRL_CNTEV_SHIFT 4 /**< Shift value for PCNT_CNTEV */
+#define _PCNT_CTRL_CNTEV_MASK 0x30UL /**< Bit mask for PCNT_CNTEV */
+#define _PCNT_CTRL_CNTEV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CTRL */
+#define _PCNT_CTRL_CNTEV_BOTH 0x00000000UL /**< Mode BOTH for PCNT_CTRL */
+#define _PCNT_CTRL_CNTEV_UP 0x00000001UL /**< Mode UP for PCNT_CTRL */
+#define _PCNT_CTRL_CNTEV_DOWN 0x00000002UL /**< Mode DOWN for PCNT_CTRL */
+#define PCNT_CTRL_CNTEV_DEFAULT (_PCNT_CTRL_CNTEV_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_CNTEV_BOTH (_PCNT_CTRL_CNTEV_BOTH << 4) /**< Shifted mode BOTH for PCNT_CTRL */
+#define PCNT_CTRL_CNTEV_UP (_PCNT_CTRL_CNTEV_UP << 4) /**< Shifted mode UP for PCNT_CTRL */
+#define PCNT_CTRL_CNTEV_DOWN (_PCNT_CTRL_CNTEV_DOWN << 4) /**< Shifted mode DOWN for PCNT_CTRL */
+#define _PCNT_CTRL_AUXCNTEV_SHIFT 6 /**< Shift value for PCNT_AUXCNTEV */
+#define _PCNT_CTRL_AUXCNTEV_MASK 0xC0UL /**< Bit mask for PCNT_AUXCNTEV */
+#define _PCNT_CTRL_AUXCNTEV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CTRL */
+#define _PCNT_CTRL_AUXCNTEV_BOTH 0x00000000UL /**< Mode BOTH for PCNT_CTRL */
+#define _PCNT_CTRL_AUXCNTEV_UP 0x00000001UL /**< Mode UP for PCNT_CTRL */
+#define _PCNT_CTRL_AUXCNTEV_DOWN 0x00000002UL /**< Mode DOWN for PCNT_CTRL */
+#define PCNT_CTRL_AUXCNTEV_DEFAULT (_PCNT_CTRL_AUXCNTEV_DEFAULT << 6) /**< Shifted mode DEFAULT for PCNT_CTRL */
+#define PCNT_CTRL_AUXCNTEV_BOTH (_PCNT_CTRL_AUXCNTEV_BOTH << 6) /**< Shifted mode BOTH for PCNT_CTRL */
+#define PCNT_CTRL_AUXCNTEV_UP (_PCNT_CTRL_AUXCNTEV_UP << 6) /**< Shifted mode UP for PCNT_CTRL */
+#define PCNT_CTRL_AUXCNTEV_DOWN (_PCNT_CTRL_AUXCNTEV_DOWN << 6) /**< Shifted mode DOWN for PCNT_CTRL */
+
+/* Bit fields for PCNT CMD */
+#define _PCNT_CMD_RESETVALUE 0x00000000UL /**< Default value for PCNT_CMD */
+#define _PCNT_CMD_MASK 0x00000F17UL /**< Mask for PCNT_CMD */
+#define PCNT_CMD_CORERST (0x1UL << 0) /**< PCNT Clock Domain Reset */
+#define _PCNT_CMD_CORERST_SHIFT 0 /**< Shift value for PCNT_CORERST */
+#define _PCNT_CMD_CORERST_MASK 0x1UL /**< Bit mask for PCNT_CORERST */
+#define _PCNT_CMD_CORERST_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_CORERST_DEFAULT (_PCNT_CMD_CORERST_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_CNTRST (0x1UL << 1) /**< CNT Reset */
+#define _PCNT_CMD_CNTRST_SHIFT 1 /**< Shift value for PCNT_CNTRST */
+#define _PCNT_CMD_CNTRST_MASK 0x2UL /**< Bit mask for PCNT_CNTRST */
+#define _PCNT_CMD_CNTRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_CNTRST_DEFAULT (_PCNT_CMD_CNTRST_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_AUXCNTRST (0x1UL << 2) /**< AUXCNT Reset */
+#define _PCNT_CMD_AUXCNTRST_SHIFT 2 /**< Shift value for PCNT_AUXCNTRST */
+#define _PCNT_CMD_AUXCNTRST_MASK 0x4UL /**< Bit mask for PCNT_AUXCNTRST */
+#define _PCNT_CMD_AUXCNTRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_AUXCNTRST_DEFAULT (_PCNT_CMD_AUXCNTRST_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_LCNTIM (0x1UL << 4) /**< Load CNT Immediately */
+#define _PCNT_CMD_LCNTIM_SHIFT 4 /**< Shift value for PCNT_LCNTIM */
+#define _PCNT_CMD_LCNTIM_MASK 0x10UL /**< Bit mask for PCNT_LCNTIM */
+#define _PCNT_CMD_LCNTIM_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_LCNTIM_DEFAULT (_PCNT_CMD_LCNTIM_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STARTCNT (0x1UL << 8) /**< Start Main Counter */
+#define _PCNT_CMD_STARTCNT_SHIFT 8 /**< Shift value for PCNT_STARTCNT */
+#define _PCNT_CMD_STARTCNT_MASK 0x100UL /**< Bit mask for PCNT_STARTCNT */
+#define _PCNT_CMD_STARTCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STARTCNT_DEFAULT (_PCNT_CMD_STARTCNT_DEFAULT << 8) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STARTAUXCNT (0x1UL << 9) /**< Start Aux Counter */
+#define _PCNT_CMD_STARTAUXCNT_SHIFT 9 /**< Shift value for PCNT_STARTAUXCNT */
+#define _PCNT_CMD_STARTAUXCNT_MASK 0x200UL /**< Bit mask for PCNT_STARTAUXCNT */
+#define _PCNT_CMD_STARTAUXCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STARTAUXCNT_DEFAULT (_PCNT_CMD_STARTAUXCNT_DEFAULT << 9) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STOPCNT (0x1UL << 10) /**< Stop Main Counter */
+#define _PCNT_CMD_STOPCNT_SHIFT 10 /**< Shift value for PCNT_STOPCNT */
+#define _PCNT_CMD_STOPCNT_MASK 0x400UL /**< Bit mask for PCNT_STOPCNT */
+#define _PCNT_CMD_STOPCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STOPCNT_DEFAULT (_PCNT_CMD_STOPCNT_DEFAULT << 10) /**< Shifted mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STOPAUXCNT (0x1UL << 11) /**< Stop Aux Counter */
+#define _PCNT_CMD_STOPAUXCNT_SHIFT 11 /**< Shift value for PCNT_STOPAUXCNT */
+#define _PCNT_CMD_STOPAUXCNT_MASK 0x800UL /**< Bit mask for PCNT_STOPAUXCNT */
+#define _PCNT_CMD_STOPAUXCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CMD */
+#define PCNT_CMD_STOPAUXCNT_DEFAULT (_PCNT_CMD_STOPAUXCNT_DEFAULT << 11) /**< Shifted mode DEFAULT for PCNT_CMD */
+
+/* Bit fields for PCNT STATUS */
+#define _PCNT_STATUS_RESETVALUE 0x00000000UL /**< Default value for PCNT_STATUS */
+#define _PCNT_STATUS_MASK 0x0000001FUL /**< Mask for PCNT_STATUS */
+#define PCNT_STATUS_DIR (0x1UL << 0) /**< Current Counter Direction */
+#define _PCNT_STATUS_DIR_SHIFT 0 /**< Shift value for PCNT_DIR */
+#define _PCNT_STATUS_DIR_MASK 0x1UL /**< Bit mask for PCNT_DIR */
+#define _PCNT_STATUS_DIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_STATUS */
+#define _PCNT_STATUS_DIR_UP 0x00000000UL /**< Mode UP for PCNT_STATUS */
+#define _PCNT_STATUS_DIR_DOWN 0x00000001UL /**< Mode DOWN for PCNT_STATUS */
+#define PCNT_STATUS_DIR_DEFAULT (_PCNT_STATUS_DIR_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_DIR_UP (_PCNT_STATUS_DIR_UP << 0) /**< Shifted mode UP for PCNT_STATUS */
+#define PCNT_STATUS_DIR_DOWN (_PCNT_STATUS_DIR_DOWN << 0) /**< Shifted mode DOWN for PCNT_STATUS */
+#define PCNT_STATUS_TOPBV (0x1UL << 1) /**< TOP Buffer Valid */
+#define _PCNT_STATUS_TOPBV_SHIFT 1 /**< Shift value for PCNT_TOPBV */
+#define _PCNT_STATUS_TOPBV_MASK 0x2UL /**< Bit mask for PCNT_TOPBV */
+#define _PCNT_STATUS_TOPBV_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_TOPBV_DEFAULT (_PCNT_STATUS_TOPBV_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_PCNTLOCKSTATUS (0x1UL << 2) /**< Lock Status */
+#define _PCNT_STATUS_PCNTLOCKSTATUS_SHIFT 2 /**< Shift value for PCNT_PCNTLOCKSTATUS */
+#define _PCNT_STATUS_PCNTLOCKSTATUS_MASK 0x4UL /**< Bit mask for PCNT_PCNTLOCKSTATUS */
+#define _PCNT_STATUS_PCNTLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_STATUS */
+#define _PCNT_STATUS_PCNTLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for PCNT_STATUS */
+#define _PCNT_STATUS_PCNTLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for PCNT_STATUS */
+#define PCNT_STATUS_PCNTLOCKSTATUS_DEFAULT (_PCNT_STATUS_PCNTLOCKSTATUS_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_PCNTLOCKSTATUS_UNLOCKED (_PCNT_STATUS_PCNTLOCKSTATUS_UNLOCKED << 2) /**< Shifted mode UNLOCKED for PCNT_STATUS */
+#define PCNT_STATUS_PCNTLOCKSTATUS_LOCKED (_PCNT_STATUS_PCNTLOCKSTATUS_LOCKED << 2) /**< Shifted mode LOCKED for PCNT_STATUS */
+#define PCNT_STATUS_CNTRUNNING (0x1UL << 3) /**< Main Counter running status */
+#define _PCNT_STATUS_CNTRUNNING_SHIFT 3 /**< Shift value for PCNT_CNTRUNNING */
+#define _PCNT_STATUS_CNTRUNNING_MASK 0x8UL /**< Bit mask for PCNT_CNTRUNNING */
+#define _PCNT_STATUS_CNTRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_CNTRUNNING_DEFAULT (_PCNT_STATUS_CNTRUNNING_DEFAULT << 3) /**< Shifted mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_AUXCNTRUNNING (0x1UL << 4) /**< Aux Counter running status */
+#define _PCNT_STATUS_AUXCNTRUNNING_SHIFT 4 /**< Shift value for PCNT_AUXCNTRUNNING */
+#define _PCNT_STATUS_AUXCNTRUNNING_MASK 0x10UL /**< Bit mask for PCNT_AUXCNTRUNNING */
+#define _PCNT_STATUS_AUXCNTRUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_STATUS */
+#define PCNT_STATUS_AUXCNTRUNNING_DEFAULT (_PCNT_STATUS_AUXCNTRUNNING_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_STATUS */
+
+/* Bit fields for PCNT IF */
+#define _PCNT_IF_RESETVALUE 0x00000000UL /**< Default value for PCNT_IF */
+#define _PCNT_IF_MASK 0x0000001FUL /**< Mask for PCNT_IF */
+#define PCNT_IF_UF (0x1UL << 0) /**< Underflow Interrupt Read Flag */
+#define _PCNT_IF_UF_SHIFT 0 /**< Shift value for PCNT_UF */
+#define _PCNT_IF_UF_MASK 0x1UL /**< Bit mask for PCNT_UF */
+#define _PCNT_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IF */
+#define PCNT_IF_UF_DEFAULT (_PCNT_IF_UF_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_IF */
+#define PCNT_IF_OF (0x1UL << 1) /**< Overflow Interrupt Read Flag */
+#define _PCNT_IF_OF_SHIFT 1 /**< Shift value for PCNT_OF */
+#define _PCNT_IF_OF_MASK 0x2UL /**< Bit mask for PCNT_OF */
+#define _PCNT_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IF */
+#define PCNT_IF_OF_DEFAULT (_PCNT_IF_OF_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_IF */
+#define PCNT_IF_DIRCNG (0x1UL << 2) /**< Direction Change Detect Interrupt Flag */
+#define _PCNT_IF_DIRCNG_SHIFT 2 /**< Shift value for PCNT_DIRCNG */
+#define _PCNT_IF_DIRCNG_MASK 0x4UL /**< Bit mask for PCNT_DIRCNG */
+#define _PCNT_IF_DIRCNG_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IF */
+#define PCNT_IF_DIRCNG_DEFAULT (_PCNT_IF_DIRCNG_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_IF */
+#define PCNT_IF_AUXOF (0x1UL << 3) /**< Auxiliary Overflow Interrupt Read Flag */
+#define _PCNT_IF_AUXOF_SHIFT 3 /**< Shift value for PCNT_AUXOF */
+#define _PCNT_IF_AUXOF_MASK 0x8UL /**< Bit mask for PCNT_AUXOF */
+#define _PCNT_IF_AUXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IF */
+#define PCNT_IF_AUXOF_DEFAULT (_PCNT_IF_AUXOF_DEFAULT << 3) /**< Shifted mode DEFAULT for PCNT_IF */
+#define PCNT_IF_OQSTERR (0x1UL << 4) /**< Oversampling Quad State Err Int Flag */
+#define _PCNT_IF_OQSTERR_SHIFT 4 /**< Shift value for PCNT_OQSTERR */
+#define _PCNT_IF_OQSTERR_MASK 0x10UL /**< Bit mask for PCNT_OQSTERR */
+#define _PCNT_IF_OQSTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IF */
+#define PCNT_IF_OQSTERR_DEFAULT (_PCNT_IF_OQSTERR_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_IF */
+
+/* Bit fields for PCNT IEN */
+#define _PCNT_IEN_RESETVALUE 0x00000000UL /**< Default value for PCNT_IEN */
+#define _PCNT_IEN_MASK 0x0000001FUL /**< Mask for PCNT_IEN */
+#define PCNT_IEN_UF (0x1UL << 0) /**< Underflow Interrupt Read Flag */
+#define _PCNT_IEN_UF_SHIFT 0 /**< Shift value for PCNT_UF */
+#define _PCNT_IEN_UF_MASK 0x1UL /**< Bit mask for PCNT_UF */
+#define _PCNT_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_UF_DEFAULT (_PCNT_IEN_UF_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_OF (0x1UL << 1) /**< Overflow Interrupt Read Flag */
+#define _PCNT_IEN_OF_SHIFT 1 /**< Shift value for PCNT_OF */
+#define _PCNT_IEN_OF_MASK 0x2UL /**< Bit mask for PCNT_OF */
+#define _PCNT_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_OF_DEFAULT (_PCNT_IEN_OF_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_DIRCNG (0x1UL << 2) /**< Direction Change Detect Interrupt Flag */
+#define _PCNT_IEN_DIRCNG_SHIFT 2 /**< Shift value for PCNT_DIRCNG */
+#define _PCNT_IEN_DIRCNG_MASK 0x4UL /**< Bit mask for PCNT_DIRCNG */
+#define _PCNT_IEN_DIRCNG_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_DIRCNG_DEFAULT (_PCNT_IEN_DIRCNG_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_AUXOF (0x1UL << 3) /**< Auxiliary Overflow Interrupt Read Flag */
+#define _PCNT_IEN_AUXOF_SHIFT 3 /**< Shift value for PCNT_AUXOF */
+#define _PCNT_IEN_AUXOF_MASK 0x8UL /**< Bit mask for PCNT_AUXOF */
+#define _PCNT_IEN_AUXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_AUXOF_DEFAULT (_PCNT_IEN_AUXOF_DEFAULT << 3) /**< Shifted mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_OQSTERR (0x1UL << 4) /**< Oversampling Quad State Err Int Flag */
+#define _PCNT_IEN_OQSTERR_SHIFT 4 /**< Shift value for PCNT_OQSTERR */
+#define _PCNT_IEN_OQSTERR_MASK 0x10UL /**< Bit mask for PCNT_OQSTERR */
+#define _PCNT_IEN_OQSTERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_IEN */
+#define PCNT_IEN_OQSTERR_DEFAULT (_PCNT_IEN_OQSTERR_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_IEN */
+
+/* Bit fields for PCNT CNT */
+#define _PCNT_CNT_RESETVALUE 0x00000000UL /**< Default value for PCNT_CNT */
+#define _PCNT_CNT_MASK 0x0000FFFFUL /**< Mask for PCNT_CNT */
+#define _PCNT_CNT_CNT_SHIFT 0 /**< Shift value for PCNT_CNT */
+#define _PCNT_CNT_CNT_MASK 0xFFFFUL /**< Bit mask for PCNT_CNT */
+#define _PCNT_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_CNT */
+#define PCNT_CNT_CNT_DEFAULT (_PCNT_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_CNT */
+
+/* Bit fields for PCNT AUXCNT */
+#define _PCNT_AUXCNT_RESETVALUE 0x00000000UL /**< Default value for PCNT_AUXCNT */
+#define _PCNT_AUXCNT_MASK 0x0000FFFFUL /**< Mask for PCNT_AUXCNT */
+#define _PCNT_AUXCNT_AUXCNT_SHIFT 0 /**< Shift value for PCNT_AUXCNT */
+#define _PCNT_AUXCNT_AUXCNT_MASK 0xFFFFUL /**< Bit mask for PCNT_AUXCNT */
+#define _PCNT_AUXCNT_AUXCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_AUXCNT */
+#define PCNT_AUXCNT_AUXCNT_DEFAULT (_PCNT_AUXCNT_AUXCNT_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_AUXCNT */
+
+/* Bit fields for PCNT TOP */
+#define _PCNT_TOP_RESETVALUE 0x000000FFUL /**< Default value for PCNT_TOP */
+#define _PCNT_TOP_MASK 0x0000FFFFUL /**< Mask for PCNT_TOP */
+#define _PCNT_TOP_TOP_SHIFT 0 /**< Shift value for PCNT_TOP */
+#define _PCNT_TOP_TOP_MASK 0xFFFFUL /**< Bit mask for PCNT_TOP */
+#define _PCNT_TOP_TOP_DEFAULT 0x000000FFUL /**< Mode DEFAULT for PCNT_TOP */
+#define PCNT_TOP_TOP_DEFAULT (_PCNT_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_TOP */
+
+/* Bit fields for PCNT TOPB */
+#define _PCNT_TOPB_RESETVALUE 0x000000FFUL /**< Default value for PCNT_TOPB */
+#define _PCNT_TOPB_MASK 0x0000FFFFUL /**< Mask for PCNT_TOPB */
+#define _PCNT_TOPB_TOPB_SHIFT 0 /**< Shift value for PCNT_TOPB */
+#define _PCNT_TOPB_TOPB_MASK 0xFFFFUL /**< Bit mask for PCNT_TOPB */
+#define _PCNT_TOPB_TOPB_DEFAULT 0x000000FFUL /**< Mode DEFAULT for PCNT_TOPB */
+#define PCNT_TOPB_TOPB_DEFAULT (_PCNT_TOPB_TOPB_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_TOPB */
+
+/* Bit fields for PCNT OVSCTRL */
+#define _PCNT_OVSCTRL_RESETVALUE 0x00000000UL /**< Default value for PCNT_OVSCTRL */
+#define _PCNT_OVSCTRL_MASK 0x000010FFUL /**< Mask for PCNT_OVSCTRL */
+#define _PCNT_OVSCTRL_FILTLEN_SHIFT 0 /**< Shift value for PCNT_FILTLEN */
+#define _PCNT_OVSCTRL_FILTLEN_MASK 0xFFUL /**< Bit mask for PCNT_FILTLEN */
+#define _PCNT_OVSCTRL_FILTLEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_OVSCTRL */
+#define PCNT_OVSCTRL_FILTLEN_DEFAULT (_PCNT_OVSCTRL_FILTLEN_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_OVSCTRL */
+#define PCNT_OVSCTRL_FLUTTERRM (0x1UL << 12) /**< Flutter Remove */
+#define _PCNT_OVSCTRL_FLUTTERRM_SHIFT 12 /**< Shift value for PCNT_FLUTTERRM */
+#define _PCNT_OVSCTRL_FLUTTERRM_MASK 0x1000UL /**< Bit mask for PCNT_FLUTTERRM */
+#define _PCNT_OVSCTRL_FLUTTERRM_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_OVSCTRL */
+#define PCNT_OVSCTRL_FLUTTERRM_DEFAULT (_PCNT_OVSCTRL_FLUTTERRM_DEFAULT << 12) /**< Shifted mode DEFAULT for PCNT_OVSCTRL */
+
+/* Bit fields for PCNT SYNCBUSY */
+#define _PCNT_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for PCNT_SYNCBUSY */
+#define _PCNT_SYNCBUSY_MASK 0x0000001FUL /**< Mask for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_CTRL (0x1UL << 0) /**< CTRL Register Busy */
+#define _PCNT_SYNCBUSY_CTRL_SHIFT 0 /**< Shift value for PCNT_CTRL */
+#define _PCNT_SYNCBUSY_CTRL_MASK 0x1UL /**< Bit mask for PCNT_CTRL */
+#define _PCNT_SYNCBUSY_CTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_CTRL_DEFAULT (_PCNT_SYNCBUSY_CTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_CMD (0x1UL << 1) /**< CMD Register Busy */
+#define _PCNT_SYNCBUSY_CMD_SHIFT 1 /**< Shift value for PCNT_CMD */
+#define _PCNT_SYNCBUSY_CMD_MASK 0x2UL /**< Bit mask for PCNT_CMD */
+#define _PCNT_SYNCBUSY_CMD_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_CMD_DEFAULT (_PCNT_SYNCBUSY_CMD_DEFAULT << 1) /**< Shifted mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_TOP (0x1UL << 2) /**< TOP Register Busy */
+#define _PCNT_SYNCBUSY_TOP_SHIFT 2 /**< Shift value for PCNT_TOP */
+#define _PCNT_SYNCBUSY_TOP_MASK 0x4UL /**< Bit mask for PCNT_TOP */
+#define _PCNT_SYNCBUSY_TOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_TOP_DEFAULT (_PCNT_SYNCBUSY_TOP_DEFAULT << 2) /**< Shifted mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_TOPB (0x1UL << 3) /**< TOPB Register Busy */
+#define _PCNT_SYNCBUSY_TOPB_SHIFT 3 /**< Shift value for PCNT_TOPB */
+#define _PCNT_SYNCBUSY_TOPB_MASK 0x8UL /**< Bit mask for PCNT_TOPB */
+#define _PCNT_SYNCBUSY_TOPB_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_TOPB_DEFAULT (_PCNT_SYNCBUSY_TOPB_DEFAULT << 3) /**< Shifted mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_OVSCTRL (0x1UL << 4) /**< OVSCTRL Register Busy */
+#define _PCNT_SYNCBUSY_OVSCTRL_SHIFT 4 /**< Shift value for PCNT_OVSCTRL */
+#define _PCNT_SYNCBUSY_OVSCTRL_MASK 0x10UL /**< Bit mask for PCNT_OVSCTRL */
+#define _PCNT_SYNCBUSY_OVSCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_SYNCBUSY */
+#define PCNT_SYNCBUSY_OVSCTRL_DEFAULT (_PCNT_SYNCBUSY_OVSCTRL_DEFAULT << 4) /**< Shifted mode DEFAULT for PCNT_SYNCBUSY */
+
+/* Bit fields for PCNT LOCK */
+#define _PCNT_LOCK_RESETVALUE 0x00000000UL /**< Default value for PCNT_LOCK */
+#define _PCNT_LOCK_MASK 0x0000FFFFUL /**< Mask for PCNT_LOCK */
+#define _PCNT_LOCK_PCNTLOCKKEY_SHIFT 0 /**< Shift value for PCNT_PCNTLOCKKEY */
+#define _PCNT_LOCK_PCNTLOCKKEY_MASK 0xFFFFUL /**< Bit mask for PCNT_PCNTLOCKKEY */
+#define _PCNT_LOCK_PCNTLOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PCNT_LOCK */
+#define _PCNT_LOCK_PCNTLOCKKEY_UNLOCK 0x0000A7E0UL /**< Mode UNLOCK for PCNT_LOCK */
+#define PCNT_LOCK_PCNTLOCKKEY_DEFAULT (_PCNT_LOCK_PCNTLOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for PCNT_LOCK */
+#define PCNT_LOCK_PCNTLOCKKEY_UNLOCK (_PCNT_LOCK_PCNTLOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for PCNT_LOCK */
+
+/** @} End of group EFR32ZG23_PCNT_BitFields */
+/** @} End of group EFR32ZG23_PCNT */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_PCNT_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pfmxpprf.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pfmxpprf.h
new file mode 100644
index 000000000..418598da6
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_pfmxpprf.h
@@ -0,0 +1,215 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 PFMXPPRF register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_PFMXPPRF_H
+#define EFR32ZG23_PFMXPPRF_H
+#define PFMXPPRF_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_PFMXPPRF PFMXPPRF
+ * @{
+ * @brief EFR32ZG23 PFMXPPRF Register Declaration.
+ *****************************************************************************/
+
+/** PFMXPPRF Register Declaration. */
+typedef struct pfmxpprf_typedef{
+ __IOM uint32_t RFIMDCDCCTRL0; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL1; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL2; /**< New Register */
+ __IM uint32_t RFIMDCDCSTATUS; /**< New Register */
+ __IOM uint32_t RPURATD0; /**< Root Access Type Descriptor Register */
+ uint32_t RESERVED0[1019U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMDCDCCTRL0_SET; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL1_SET; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL2_SET; /**< New Register */
+ __IM uint32_t RFIMDCDCSTATUS_SET; /**< New Register */
+ __IOM uint32_t RPURATD0_SET; /**< Root Access Type Descriptor Register */
+ uint32_t RESERVED1[1019U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMDCDCCTRL0_CLR; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL1_CLR; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL2_CLR; /**< New Register */
+ __IM uint32_t RFIMDCDCSTATUS_CLR; /**< New Register */
+ __IOM uint32_t RPURATD0_CLR; /**< Root Access Type Descriptor Register */
+ uint32_t RESERVED2[1019U]; /**< Reserved for future use */
+ __IOM uint32_t RFIMDCDCCTRL0_TGL; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL1_TGL; /**< New Register */
+ __IOM uint32_t RFIMDCDCCTRL2_TGL; /**< New Register */
+ __IM uint32_t RFIMDCDCSTATUS_TGL; /**< New Register */
+ __IOM uint32_t RPURATD0_TGL; /**< Root Access Type Descriptor Register */
+} PFMXPPRF_TypeDef;
+/** @} End of group EFR32ZG23_PFMXPPRF */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_PFMXPPRF
+ * @{
+ * @defgroup EFR32ZG23_PFMXPPRF_BitFields PFMXPPRF Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PFMXPPRF RFIMDCDCCTRL0 */
+#define _PFMXPPRF_RFIMDCDCCTRL0_RESETVALUE 0x00000000UL /**< Default value for PFMXPPRF_RFIMDCDCCTRL0 */
+#define _PFMXPPRF_RFIMDCDCCTRL0_MASK 0x80000003UL /**< Mask for PFMXPPRF_RFIMDCDCCTRL0 */
+#define PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ (0x1UL << 0) /**< TX Max Req */
+#define _PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ_SHIFT 0 /**< Shift value for PFMXPPRF_TXMAXREQ */
+#define _PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ_MASK 0x1UL /**< Bit mask for PFMXPPRF_TXMAXREQ */
+#define _PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL0 */
+#define PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL0_TXMAXREQ_DEFAULT << 0) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL0*/
+#define PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ (0x1UL << 1) /**< RX PP Req */
+#define _PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ_SHIFT 1 /**< Shift value for PFMXPPRF_RXPPREQ */
+#define _PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ_MASK 0x2UL /**< Bit mask for PFMXPPRF_RXPPREQ */
+#define _PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL0 */
+#define PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL0_RXPPREQ_DEFAULT << 1) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL0*/
+
+/* Bit fields for PFMXPPRF RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_RESETVALUE 0x00000014UL /**< Default value for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_MASK 0x0000003FUL /**< Mask for PFMXPPRF_RFIMDCDCCTRL1 */
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN (0x1UL << 0) /**< DCDC DIV Enable */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN_SHIFT 0 /**< Shift value for PFMXPPRF_DCDCDIVEN */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN_MASK 0x1UL /**< Bit mask for PFMXPPRF_DCDCDIVEN */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1 */
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVEN_DEFAULT << 0) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN (0x1UL << 1) /**< DCDC DIV Inverter Enable */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN_SHIFT 1 /**< Shift value for PFMXPPRF_DCDCDIVINVEN */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN_MASK 0x2UL /**< Bit mask for PFMXPPRF_DCDCDIVINVEN */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1 */
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVINVEN_DEFAULT << 1) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1*/
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_SHIFT 2 /**< Shift value for PFMXPPRF_DCDCDIVRATIO */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_MASK 0x3CUL /**< Bit mask for PFMXPPRF_DCDCDIVRATIO */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DEFAULT 0x00000005UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO8 0x00000000UL /**< Mode DIVRATIO8 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO9 0x00000001UL /**< Mode DIVRATIO9 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO10 0x00000002UL /**< Mode DIVRATIO10 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO11 0x00000003UL /**< Mode DIVRATIO11 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO12 0x00000004UL /**< Mode DIVRATIO12 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO13 0x00000005UL /**< Mode DIVRATIO13 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO14 0x00000006UL /**< Mode DIVRATIO14 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO15 0x00000007UL /**< Mode DIVRATIO15 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO16 0x00000008UL /**< Mode DIVRATIO16 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO17 0x00000009UL /**< Mode DIVRATIO17 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO18 0x0000000AUL /**< Mode DIVRATIO18 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO19 0x0000000BUL /**< Mode DIVRATIO19 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO20 0x0000000CUL /**< Mode DIVRATIO20 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO21 0x0000000DUL /**< Mode DIVRATIO21 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO22 0x0000000EUL /**< Mode DIVRATIO22 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define _PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO23 0x0000000FUL /**< Mode DIVRATIO23 for PFMXPPRF_RFIMDCDCCTRL1 */
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DEFAULT << 2) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO8 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO8 << 2) /**< Shifted mode DIVRATIO8 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO9 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO9 << 2) /**< Shifted mode DIVRATIO9 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO10 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO10 << 2) /**< Shifted mode DIVRATIO10 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO11 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO11 << 2) /**< Shifted mode DIVRATIO11 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO12 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO12 << 2) /**< Shifted mode DIVRATIO12 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO13 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO13 << 2) /**< Shifted mode DIVRATIO13 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO14 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO14 << 2) /**< Shifted mode DIVRATIO14 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO15 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO15 << 2) /**< Shifted mode DIVRATIO15 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO16 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO16 << 2) /**< Shifted mode DIVRATIO16 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO17 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO17 << 2) /**< Shifted mode DIVRATIO17 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO18 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO18 << 2) /**< Shifted mode DIVRATIO18 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO19 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO19 << 2) /**< Shifted mode DIVRATIO19 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO20 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO20 << 2) /**< Shifted mode DIVRATIO20 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO21 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO21 << 2) /**< Shifted mode DIVRATIO21 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO22 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO22 << 2) /**< Shifted mode DIVRATIO22 for PFMXPPRF_RFIMDCDCCTRL1*/
+#define PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO23 (_PFMXPPRF_RFIMDCDCCTRL1_DCDCDIVRATIO_DIVRATIO23 << 2) /**< Shifted mode DIVRATIO23 for PFMXPPRF_RFIMDCDCCTRL1*/
+
+/* Bit fields for PFMXPPRF RFIMDCDCCTRL2 */
+#define _PFMXPPRF_RFIMDCDCCTRL2_RESETVALUE 0x0AD0B4A0UL /**< Default value for PFMXPPRF_RFIMDCDCCTRL2 */
+#define _PFMXPPRF_RFIMDCDCCTRL2_MASK 0x9FFFFFFFUL /**< Mask for PFMXPPRF_RFIMDCDCCTRL2 */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMAX_SHIFT 0 /**< Shift value for PFMXPPRF_PPTMAX */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMAX_MASK 0x1FFUL /**< Bit mask for PFMXPPRF_PPTMAX */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMAX_DEFAULT 0x000000A0UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2 */
+#define PFMXPPRF_RFIMDCDCCTRL2_PPTMAX_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL2_PPTMAX_DEFAULT << 0) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2*/
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMIN_SHIFT 9 /**< Shift value for PFMXPPRF_PPTMIN */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMIN_MASK 0x3FE00UL /**< Bit mask for PFMXPPRF_PPTMIN */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPTMIN_DEFAULT 0x0000005AUL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2 */
+#define PFMXPPRF_RFIMDCDCCTRL2_PPTMIN_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL2_PPTMIN_DEFAULT << 9) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2*/
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPND_SHIFT 18 /**< Shift value for PFMXPPRF_PPND */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPND_MASK 0x7FC0000UL /**< Bit mask for PFMXPPRF_PPND */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPND_DEFAULT 0x000000B4UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2 */
+#define PFMXPPRF_RFIMDCDCCTRL2_PPND_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL2_PPND_DEFAULT << 18) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2*/
+#define PFMXPPRF_RFIMDCDCCTRL2_PPCALEN (0x1UL << 27) /**< Pulse Pairing Calibration Loop Enable */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPCALEN_SHIFT 27 /**< Shift value for PFMXPPRF_PPCALEN */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPCALEN_MASK 0x8000000UL /**< Bit mask for PFMXPPRF_PPCALEN */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPCALEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2 */
+#define PFMXPPRF_RFIMDCDCCTRL2_PPCALEN_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL2_PPCALEN_DEFAULT << 27) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2*/
+#define PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY (0x1UL << 28) /**< Pulse Pairing Sync Only */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY_SHIFT 28 /**< Shift value for PFMXPPRF_PPSYNCONLY */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY_MASK 0x10000000UL /**< Bit mask for PFMXPPRF_PPSYNCONLY */
+#define _PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2 */
+#define PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY_DEFAULT (_PFMXPPRF_RFIMDCDCCTRL2_PPSYNCONLY_DEFAULT << 28) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCCTRL2*/
+
+/* Bit fields for PFMXPPRF RFIMDCDCSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_RESETVALUE 0x00000000UL /**< Default value for PFMXPPRF_RFIMDCDCSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_MASK 0x0001FF07UL /**< Mask for PFMXPPRF_RFIMDCDCSTATUS */
+#define PFMXPPRF_RFIMDCDCSTATUS_DCDCEN (0x1UL << 0) /**< DCDC Enable Status */
+#define _PFMXPPRF_RFIMDCDCSTATUS_DCDCEN_SHIFT 0 /**< Shift value for PFMXPPRF_DCDCEN */
+#define _PFMXPPRF_RFIMDCDCSTATUS_DCDCEN_MASK 0x1UL /**< Bit mask for PFMXPPRF_DCDCEN */
+#define _PFMXPPRF_RFIMDCDCSTATUS_DCDCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS */
+#define PFMXPPRF_RFIMDCDCSTATUS_DCDCEN_DEFAULT (_PFMXPPRF_RFIMDCDCSTATUS_DCDCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS*/
+#define PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS (0x1UL << 1) /**< TX MAX Status */
+#define _PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS_SHIFT 1 /**< Shift value for PFMXPPRF_TXMAXSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS_MASK 0x2UL /**< Bit mask for PFMXPPRF_TXMAXSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS */
+#define PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS_DEFAULT (_PFMXPPRF_RFIMDCDCSTATUS_TXMAXSTATUS_DEFAULT << 1) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS*/
+#define PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS (0x1UL << 2) /**< RX PP Status */
+#define _PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS_SHIFT 2 /**< Shift value for PFMXPPRF_RXPPSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS_MASK 0x4UL /**< Bit mask for PFMXPPRF_RXPPSTATUS */
+#define _PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS */
+#define PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS_DEFAULT (_PFMXPPRF_RFIMDCDCSTATUS_RXPPSTATUS_DEFAULT << 2) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS*/
+#define _PFMXPPRF_RFIMDCDCSTATUS_WNO1_SHIFT 8 /**< Shift value for PFMXPPRF_WNO1 */
+#define _PFMXPPRF_RFIMDCDCSTATUS_WNO1_MASK 0x1FF00UL /**< Bit mask for PFMXPPRF_WNO1 */
+#define _PFMXPPRF_RFIMDCDCSTATUS_WNO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS */
+#define PFMXPPRF_RFIMDCDCSTATUS_WNO1_DEFAULT (_PFMXPPRF_RFIMDCDCSTATUS_WNO1_DEFAULT << 8) /**< Shifted mode DEFAULT for PFMXPPRF_RFIMDCDCSTATUS*/
+
+/* Bit fields for PFMXPPRF RPURATD0 */
+#define _PFMXPPRF_RPURATD0_RESETVALUE 0x00000000UL /**< Default value for PFMXPPRF_RPURATD0 */
+#define _PFMXPPRF_RPURATD0_MASK 0x00000007UL /**< Mask for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0 (0x1UL << 0) /**< RFIMDCDCCTRL0 Protection Bit */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0_SHIFT 0 /**< Shift value for PFMXPPRF_RATDRFIMDCDCCTRL0 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0_MASK 0x1UL /**< Bit mask for PFMXPPRF_RATDRFIMDCDCCTRL0 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0_DEFAULT (_PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL0_DEFAULT << 0) /**< Shifted mode DEFAULT for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1 (0x1UL << 1) /**< RFIMDCDCCTRL1 Protection Bit */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1_SHIFT 1 /**< Shift value for PFMXPPRF_RATDRFIMDCDCCTRL1 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1_MASK 0x2UL /**< Bit mask for PFMXPPRF_RATDRFIMDCDCCTRL1 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1_DEFAULT (_PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL1_DEFAULT << 1) /**< Shifted mode DEFAULT for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2 (0x1UL << 2) /**< RFIMDCDCCTRL2 Protection Bit */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2_SHIFT 2 /**< Shift value for PFMXPPRF_RATDRFIMDCDCCTRL2 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2_MASK 0x4UL /**< Bit mask for PFMXPPRF_RATDRFIMDCDCCTRL2 */
+#define _PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for PFMXPPRF_RPURATD0 */
+#define PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2_DEFAULT (_PFMXPPRF_RPURATD0_RATDRFIMDCDCCTRL2_DEFAULT << 2) /**< Shifted mode DEFAULT for PFMXPPRF_RPURATD0 */
+
+/** @} End of group EFR32ZG23_PFMXPPRF_BitFields */
+/** @} End of group EFR32ZG23_PFMXPPRF */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_PFMXPPRF_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs.h
new file mode 100644
index 000000000..410677b29
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs.h
@@ -0,0 +1,1553 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 PRS register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_PRS_H
+#define EFR32ZG23_PRS_H
+#define PRS_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_PRS PRS
+ * @{
+ * @brief EFR32ZG23 PRS Register Declaration.
+ *****************************************************************************/
+
+/** PRS ASYNC_CH Register Group Declaration. */
+typedef struct prs_async_ch_typedef{
+ __IOM uint32_t CTRL; /**< Async Channel Control Register */
+} PRS_ASYNC_CH_TypeDef;
+
+/** PRS SYNC_CH Register Group Declaration. */
+typedef struct prs_sync_ch_typedef{
+ __IOM uint32_t CTRL; /**< Sync Channel Control Register */
+} PRS_SYNC_CH_TypeDef;
+
+/** PRS Register Declaration. */
+typedef struct prs_typedef{
+ __IM uint32_t IPVERSION; /**< PRS IPVERSION */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1; /**< DMAREQ1 Consumer register */
+ uint32_t RESERVED2[4U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_LESENSE_START; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN; /**< MODEM DIN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S0IN; /**< S0IN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S1IN; /**< S1IN Consumer register */
+ uint32_t RESERVED3[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC25; /**< TAMPERSRC25 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26; /**< TAMPERSRC26 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN0; /**< IN0 consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN1; /**< IN1 Consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_OSCREQ; /**< OSCREQ consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_TIMEOUT; /**< TIMEOUT Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0; /**< CTI0 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1; /**< CTI1 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2; /**< CTI2 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3; /**< CTI3 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV; /**< M33 Consumer Selection */
+ __IOM uint32_t CONSUMER_TIMER0_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER; /**< TRIGGER Consumer register */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH0; /**< ASYNCTRIG consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH1; /**< ASYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH0; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH1; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1; /**< SRC1 Consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC0; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC1; /**< SRC1 Consumer register */
+ uint32_t RESERVED5[1U]; /**< Reserved for future use */
+ uint32_t RESERVED6[893U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< PRS IPVERSION */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_SET; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_SET; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_SET; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_SET; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_SET[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_SET[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_SET; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_SET; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_SET; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_SET; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_SET; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_SET; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_SET; /**< DMAREQ1 Consumer register */
+ uint32_t RESERVED9[4U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_LESENSE_START_SET; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_SET; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_SET; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_SET; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_SET; /**< MODEM DIN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S0IN_SET; /**< S0IN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S1IN_SET; /**< S1IN Consumer register */
+ uint32_t RESERVED10[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_SET; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_SET; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_SET; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_SET; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_SET; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_SET; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC25_SET; /**< TAMPERSRC25 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_SET; /**< TAMPERSRC26 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_SET; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_SET; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_SET; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_SET; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_SET; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN0_SET; /**< IN0 consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN1_SET; /**< IN1 Consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_OSCREQ_SET; /**< OSCREQ consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_TIMEOUT_SET; /**< TIMEOUT Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_SET; /**< CTI0 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_SET; /**< CTI1 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_SET; /**< CTI2 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_SET; /**< CTI3 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_SET; /**< M33 Consumer Selection */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_SET; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_SET; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_SET; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_SET; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_SET; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_SET; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_SET; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_SET; /**< TRIGGER Consumer register */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH0_SET; /**< ASYNCTRIG consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH1_SET; /**< ASYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH0_SET; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH1_SET; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_SET; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_SET; /**< SRC1 Consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC0_SET; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC1_SET; /**< SRC1 Consumer register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[893U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< PRS IPVERSION */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_CLR; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_CLR; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_CLR; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_CLR; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_CLR[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_CLR[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_CLR; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_CLR; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_CLR; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_CLR; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_CLR; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_CLR; /**< DMAREQ1 Consumer register */
+ uint32_t RESERVED16[4U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_LESENSE_START_CLR; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_CLR; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_CLR; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_CLR; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_CLR; /**< MODEM DIN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S0IN_CLR; /**< S0IN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S1IN_CLR; /**< S1IN Consumer register */
+ uint32_t RESERVED17[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_CLR; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_CLR; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_CLR; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_CLR; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_CLR; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_CLR; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC25_CLR; /**< TAMPERSRC25 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_CLR; /**< TAMPERSRC26 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_CLR; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_CLR; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_CLR; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_CLR; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_CLR; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN0_CLR; /**< IN0 consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN1_CLR; /**< IN1 Consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_OSCREQ_CLR; /**< OSCREQ consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_TIMEOUT_CLR; /**< TIMEOUT Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_CLR; /**< CTI0 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_CLR; /**< CTI1 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_CLR; /**< CTI2 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_CLR; /**< CTI3 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_CLR; /**< M33 Consumer Selection */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_CLR; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_CLR; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_CLR; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_CLR; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_CLR; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_CLR; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_CLR; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_CLR; /**< TRIGGER Consumer register */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH0_CLR; /**< ASYNCTRIG consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH1_CLR; /**< ASYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH0_CLR; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH1_CLR; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_CLR; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_CLR; /**< SRC1 Consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC0_CLR; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC1_CLR; /**< SRC1 Consumer register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ uint32_t RESERVED20[893U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< PRS IPVERSION */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IOM uint32_t ASYNC_SWPULSE_TGL; /**< Software Pulse Register */
+ __IOM uint32_t ASYNC_SWLEVEL_TGL; /**< Software Level Register */
+ __IM uint32_t ASYNC_PEEK_TGL; /**< Async Channel Values */
+ __IM uint32_t SYNC_PEEK_TGL; /**< Sync Channel Values */
+ PRS_ASYNC_CH_TypeDef ASYNC_CH_TGL[12U]; /**< Async Channel registers */
+ PRS_SYNC_CH_TypeDef SYNC_CH_TGL[4U]; /**< Sync Channel registers */
+ __IOM uint32_t CONSUMER_CMU_CALDN_TGL; /**< CALDN consumer register */
+ __IOM uint32_t CONSUMER_CMU_CALUP_TGL; /**< CALUP Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART1_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_EUSART2_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_IADC0_SCANTRIGGER_TGL; /**< SCAN consumer register */
+ __IOM uint32_t CONSUMER_IADC0_SINGLETRIGGER_TGL; /**< SINGLE Consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ0_TGL; /**< DMAREQ0 consumer register */
+ __IOM uint32_t CONSUMER_LDMAXBAR_DMAREQ1_TGL; /**< DMAREQ1 Consumer register */
+ uint32_t RESERVED23[4U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_LESENSE_START_TGL; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_CLEAR_TGL; /**< CLEAR consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_START_TGL; /**< START Consumer register */
+ __IOM uint32_t CONSUMER_LETIMER0_STOP_TGL; /**< STOP Consumer register */
+ __IOM uint32_t CONSUMER_MODEM_DIN_TGL; /**< MODEM DIN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S0IN_TGL; /**< S0IN consumer register */
+ __IOM uint32_t CONSUMER_PCNT0_S1IN_TGL; /**< S1IN Consumer register */
+ uint32_t RESERVED24[11U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_RAC_CLR_TGL; /**< CLR consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN0_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN1_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN2_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_CTIIN3_TGL; /**< CTI Consumer register */
+ __IOM uint32_t CONSUMER_RAC_FORCETX_TGL; /**< FORCETX Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXDIS_TGL; /**< RXDIS Consumer register */
+ __IOM uint32_t CONSUMER_RAC_RXEN_TGL; /**< RXEN Consumer register */
+ __IOM uint32_t CONSUMER_RAC_TXEN_TGL; /**< TXEN Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC25_TGL; /**< TAMPERSRC25 consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC26_TGL; /**< TAMPERSRC26 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC27_TGL; /**< TAMPERSRC27 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC28_TGL; /**< TAMPERSRC28 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC29_TGL; /**< TAMPERSRC29 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC30_TGL; /**< TAMPERSRC30 Consumer register */
+ __IOM uint32_t CONSUMER_SETAMPER_TAMPERSRC31_TGL; /**< TAMPERSRC31 Consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN0_TGL; /**< IN0 consumer register */
+ __IOM uint32_t CONSUMER_SYSRTC0_IN1_TGL; /**< IN1 Consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_OSCREQ_TGL; /**< OSCREQ consumer register */
+ __IOM uint32_t CONSUMER_HFXO0_TIMEOUT_TGL; /**< TIMEOUT Consumer register */
+ __IOM uint32_t CONSUMER_CORE_CTIIN0_TGL; /**< CTI0 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN1_TGL; /**< CTI1 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN2_TGL; /**< CTI2 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_CTIIN3_TGL; /**< CTI3 Consumer Selection */
+ __IOM uint32_t CONSUMER_CORE_M33RXEV_TGL; /**< M33 Consumer Selection */
+ __IOM uint32_t CONSUMER_TIMER0_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER0_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER1_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER2_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER3_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC0_TGL; /**< CC0 consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC1_TGL; /**< CC1 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_CC2_TGL; /**< CC2 Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTI_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS1_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_TIMER4_DTIFS2_TGL; /**< DTI Consumer register */
+ __IOM uint32_t CONSUMER_USART0_CLK_TGL; /**< CLK consumer register */
+ __IOM uint32_t CONSUMER_USART0_IR_TGL; /**< IR Consumer register */
+ __IOM uint32_t CONSUMER_USART0_RX_TGL; /**< RX Consumer register */
+ __IOM uint32_t CONSUMER_USART0_TRIGGER_TGL; /**< TRIGGER Consumer register */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH0_TGL; /**< ASYNCTRIG consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_ASYNCTRIGCH1_TGL; /**< ASYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH0_TGL; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_VDAC0_SYNCTRIGCH1_TGL; /**< SYNCTRIG Consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC0_TGL; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG0_SRC1_TGL; /**< SRC1 Consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC0_TGL; /**< SRC0 consumer register */
+ __IOM uint32_t CONSUMER_WDOG1_SRC1_TGL; /**< SRC1 Consumer register */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+} PRS_TypeDef;
+/** @} End of group EFR32ZG23_PRS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_PRS
+ * @{
+ * @defgroup EFR32ZG23_PRS_BitFields PRS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for PRS IPVERSION */
+#define _PRS_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for PRS_IPVERSION */
+#define _PRS_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for PRS_IPVERSION */
+#define _PRS_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for PRS_IPVERSION */
+#define PRS_IPVERSION_IPVERSION_DEFAULT (_PRS_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_IPVERSION */
+
+/* Bit fields for PRS ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWPULSE */
+#define _PRS_ASYNC_SWPULSE_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE (0x1UL << 0) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_SHIFT 0 /**< Shift value for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_MASK 0x1UL /**< Bit mask for PRS_CH0PULSE */
+#define _PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH0PULSE_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE (0x1UL << 1) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_SHIFT 1 /**< Shift value for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_MASK 0x2UL /**< Bit mask for PRS_CH1PULSE */
+#define _PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH1PULSE_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE (0x1UL << 2) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_SHIFT 2 /**< Shift value for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_MASK 0x4UL /**< Bit mask for PRS_CH2PULSE */
+#define _PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH2PULSE_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE (0x1UL << 3) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_SHIFT 3 /**< Shift value for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_MASK 0x8UL /**< Bit mask for PRS_CH3PULSE */
+#define _PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH3PULSE_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE (0x1UL << 4) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_SHIFT 4 /**< Shift value for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_MASK 0x10UL /**< Bit mask for PRS_CH4PULSE */
+#define _PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH4PULSE_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE (0x1UL << 5) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_SHIFT 5 /**< Shift value for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_MASK 0x20UL /**< Bit mask for PRS_CH5PULSE */
+#define _PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH5PULSE_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE (0x1UL << 6) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_SHIFT 6 /**< Shift value for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_MASK 0x40UL /**< Bit mask for PRS_CH6PULSE */
+#define _PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH6PULSE_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE (0x1UL << 7) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_SHIFT 7 /**< Shift value for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_MASK 0x80UL /**< Bit mask for PRS_CH7PULSE */
+#define _PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH7PULSE_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE (0x1UL << 8) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_SHIFT 8 /**< Shift value for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_MASK 0x100UL /**< Bit mask for PRS_CH8PULSE */
+#define _PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH8PULSE_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE (0x1UL << 9) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_SHIFT 9 /**< Shift value for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_MASK 0x200UL /**< Bit mask for PRS_CH9PULSE */
+#define _PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH9PULSE_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE (0x1UL << 10) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_SHIFT 10 /**< Shift value for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_MASK 0x400UL /**< Bit mask for PRS_CH10PULSE */
+#define _PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH10PULSE_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE (0x1UL << 11) /**< Channel pulse */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_SHIFT 11 /**< Shift value for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_MASK 0x800UL /**< Bit mask for PRS_CH11PULSE */
+#define _PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWPULSE */
+#define PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT (_PRS_ASYNC_SWPULSE_CH11PULSE_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWPULSE */
+
+/* Bit fields for PRS ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_SWLEVEL */
+#define _PRS_ASYNC_SWLEVEL_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL (0x1UL << 0) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_SHIFT 0 /**< Shift value for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_MASK 0x1UL /**< Bit mask for PRS_CH0LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH0LEVEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL (0x1UL << 1) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_SHIFT 1 /**< Shift value for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_MASK 0x2UL /**< Bit mask for PRS_CH1LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH1LEVEL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL (0x1UL << 2) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_SHIFT 2 /**< Shift value for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_MASK 0x4UL /**< Bit mask for PRS_CH2LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH2LEVEL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL (0x1UL << 3) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_SHIFT 3 /**< Shift value for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_MASK 0x8UL /**< Bit mask for PRS_CH3LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH3LEVEL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL (0x1UL << 4) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_SHIFT 4 /**< Shift value for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_MASK 0x10UL /**< Bit mask for PRS_CH4LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH4LEVEL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL (0x1UL << 5) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_SHIFT 5 /**< Shift value for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_MASK 0x20UL /**< Bit mask for PRS_CH5LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH5LEVEL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL (0x1UL << 6) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_SHIFT 6 /**< Shift value for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_MASK 0x40UL /**< Bit mask for PRS_CH6LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH6LEVEL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL (0x1UL << 7) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_SHIFT 7 /**< Shift value for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_MASK 0x80UL /**< Bit mask for PRS_CH7LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH7LEVEL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL (0x1UL << 8) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_SHIFT 8 /**< Shift value for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_MASK 0x100UL /**< Bit mask for PRS_CH8LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH8LEVEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL (0x1UL << 9) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_SHIFT 9 /**< Shift value for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_MASK 0x200UL /**< Bit mask for PRS_CH9LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH9LEVEL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL (0x1UL << 10) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_SHIFT 10 /**< Shift value for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_MASK 0x400UL /**< Bit mask for PRS_CH10LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH10LEVEL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL (0x1UL << 11) /**< Channel Level */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_SHIFT 11 /**< Shift value for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_MASK 0x800UL /**< Bit mask for PRS_CH11LEVEL */
+#define _PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_SWLEVEL */
+#define PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT (_PRS_ASYNC_SWLEVEL_CH11LEVEL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_SWLEVEL */
+
+/* Bit fields for PRS ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_ASYNC_PEEK */
+#define _PRS_ASYNC_PEEK_MASK 0x00000FFFUL /**< Mask for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel 0 Current Value */
+#define _PRS_ASYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_ASYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH0VAL_DEFAULT (_PRS_ASYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel 1 Current Value */
+#define _PRS_ASYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_ASYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH1VAL_DEFAULT (_PRS_ASYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel 2 Current Value */
+#define _PRS_ASYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_ASYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH2VAL_DEFAULT (_PRS_ASYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel 3 Current Value */
+#define _PRS_ASYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_ASYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH3VAL_DEFAULT (_PRS_ASYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL (0x1UL << 4) /**< Channel 4 Current Value */
+#define _PRS_ASYNC_PEEK_CH4VAL_SHIFT 4 /**< Shift value for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_MASK 0x10UL /**< Bit mask for PRS_CH4VAL */
+#define _PRS_ASYNC_PEEK_CH4VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH4VAL_DEFAULT (_PRS_ASYNC_PEEK_CH4VAL_DEFAULT << 4) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL (0x1UL << 5) /**< Channel 5 Current Value */
+#define _PRS_ASYNC_PEEK_CH5VAL_SHIFT 5 /**< Shift value for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_MASK 0x20UL /**< Bit mask for PRS_CH5VAL */
+#define _PRS_ASYNC_PEEK_CH5VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH5VAL_DEFAULT (_PRS_ASYNC_PEEK_CH5VAL_DEFAULT << 5) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL (0x1UL << 6) /**< Channel 6 Current Value */
+#define _PRS_ASYNC_PEEK_CH6VAL_SHIFT 6 /**< Shift value for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_MASK 0x40UL /**< Bit mask for PRS_CH6VAL */
+#define _PRS_ASYNC_PEEK_CH6VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH6VAL_DEFAULT (_PRS_ASYNC_PEEK_CH6VAL_DEFAULT << 6) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL (0x1UL << 7) /**< Channel 7 Current Value */
+#define _PRS_ASYNC_PEEK_CH7VAL_SHIFT 7 /**< Shift value for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_MASK 0x80UL /**< Bit mask for PRS_CH7VAL */
+#define _PRS_ASYNC_PEEK_CH7VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH7VAL_DEFAULT (_PRS_ASYNC_PEEK_CH7VAL_DEFAULT << 7) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL (0x1UL << 8) /**< Channel 8 Current Value */
+#define _PRS_ASYNC_PEEK_CH8VAL_SHIFT 8 /**< Shift value for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_MASK 0x100UL /**< Bit mask for PRS_CH8VAL */
+#define _PRS_ASYNC_PEEK_CH8VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH8VAL_DEFAULT (_PRS_ASYNC_PEEK_CH8VAL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL (0x1UL << 9) /**< Channel 9 Current Value */
+#define _PRS_ASYNC_PEEK_CH9VAL_SHIFT 9 /**< Shift value for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_MASK 0x200UL /**< Bit mask for PRS_CH9VAL */
+#define _PRS_ASYNC_PEEK_CH9VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH9VAL_DEFAULT (_PRS_ASYNC_PEEK_CH9VAL_DEFAULT << 9) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL (0x1UL << 10) /**< Channel 10 Current Value */
+#define _PRS_ASYNC_PEEK_CH10VAL_SHIFT 10 /**< Shift value for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_MASK 0x400UL /**< Bit mask for PRS_CH10VAL */
+#define _PRS_ASYNC_PEEK_CH10VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH10VAL_DEFAULT (_PRS_ASYNC_PEEK_CH10VAL_DEFAULT << 10) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL (0x1UL << 11) /**< Channel 11 Current Value */
+#define _PRS_ASYNC_PEEK_CH11VAL_SHIFT 11 /**< Shift value for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_MASK 0x800UL /**< Bit mask for PRS_CH11VAL */
+#define _PRS_ASYNC_PEEK_CH11VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_PEEK */
+#define PRS_ASYNC_PEEK_CH11VAL_DEFAULT (_PRS_ASYNC_PEEK_CH11VAL_DEFAULT << 11) /**< Shifted mode DEFAULT for PRS_ASYNC_PEEK */
+
+/* Bit fields for PRS SYNC_PEEK */
+#define _PRS_SYNC_PEEK_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_PEEK */
+#define _PRS_SYNC_PEEK_MASK 0x0000000FUL /**< Mask for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL (0x1UL << 0) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH0VAL_SHIFT 0 /**< Shift value for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_MASK 0x1UL /**< Bit mask for PRS_CH0VAL */
+#define _PRS_SYNC_PEEK_CH0VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH0VAL_DEFAULT (_PRS_SYNC_PEEK_CH0VAL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL (0x1UL << 1) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH1VAL_SHIFT 1 /**< Shift value for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_MASK 0x2UL /**< Bit mask for PRS_CH1VAL */
+#define _PRS_SYNC_PEEK_CH1VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH1VAL_DEFAULT (_PRS_SYNC_PEEK_CH1VAL_DEFAULT << 1) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL (0x1UL << 2) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH2VAL_SHIFT 2 /**< Shift value for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_MASK 0x4UL /**< Bit mask for PRS_CH2VAL */
+#define _PRS_SYNC_PEEK_CH2VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH2VAL_DEFAULT (_PRS_SYNC_PEEK_CH2VAL_DEFAULT << 2) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL (0x1UL << 3) /**< Channel Value */
+#define _PRS_SYNC_PEEK_CH3VAL_SHIFT 3 /**< Shift value for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_MASK 0x8UL /**< Bit mask for PRS_CH3VAL */
+#define _PRS_SYNC_PEEK_CH3VAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_PEEK */
+#define PRS_SYNC_PEEK_CH3VAL_DEFAULT (_PRS_SYNC_PEEK_CH3VAL_DEFAULT << 3) /**< Shifted mode DEFAULT for PRS_SYNC_PEEK */
+
+/* Bit fields for PRS ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_RESETVALUE 0x000C0000UL /**< Default value for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_MASK 0x0F0F7F07UL /**< Mask for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_NONE 0x00000000UL /**< Mode NONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_NONE (_PRS_ASYNC_CH_CTRL_SIGSEL_NONE << 0) /**< Shifted mode NONE for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_ASYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_SHIFT 16 /**< Shift value for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_MASK 0xF0000UL /**< Bit mask for PRS_FNSEL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT 0x0000000CUL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO 0x00000000UL /**< Mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B 0x00000001UL /**< Mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B 0x00000002UL /**< Mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A 0x00000003UL /**< Mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B 0x00000004UL /**< Mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_B 0x00000005UL /**< Mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B 0x00000006UL /**< Mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B 0x00000007UL /**< Mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B 0x00000008UL /**< Mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B 0x00000009UL /**< Mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_B 0x0000000AUL /**< Mode B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B 0x0000000BUL /**< Mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A 0x0000000CUL /**< Mode A for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B 0x0000000DUL /**< Mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B 0x0000000EUL /**< Mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define _PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE 0x0000000FUL /**< Mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_FNSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ZERO << 16) /**< Shifted mode LOGICAL_ZERO for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NOR_B << 16) /**< Shifted mode A_NOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_AND_B << 16) /**< Shifted mode NOT_A_AND_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A << 16) /**< Shifted mode NOT_A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_NOT_B << 16) /**< Shifted mode A_AND_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_B << 16) /**< Shifted mode NOT_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XOR_B << 16) /**< Shifted mode A_XOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_NAND_B << 16) /**< Shifted mode A_NAND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_AND_B << 16) /**< Shifted mode A_AND_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_XNOR_B << 16) /**< Shifted mode A_XNOR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_B (_PRS_ASYNC_CH_CTRL_FNSEL_B << 16) /**< Shifted mode B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_NOT_A_OR_B << 16) /**< Shifted mode NOT_A_OR_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A (_PRS_ASYNC_CH_CTRL_FNSEL_A << 16) /**< Shifted mode A for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_NOT_B << 16) /**< Shifted mode A_OR_NOT_B for PRS_ASYNC_CH_CTRL*/
+#define PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B (_PRS_ASYNC_CH_CTRL_FNSEL_A_OR_B << 16) /**< Shifted mode A_OR_B for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE (_PRS_ASYNC_CH_CTRL_FNSEL_LOGICAL_ONE << 16) /**< Shifted mode LOGICAL_ONE for PRS_ASYNC_CH_CTRL*/
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_SHIFT 24 /**< Shift value for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_MASK 0xF000000UL /**< Bit mask for PRS_AUXSEL */
+#define _PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_ASYNC_CH_CTRL */
+#define PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT (_PRS_ASYNC_CH_CTRL_AUXSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for PRS_ASYNC_CH_CTRL */
+
+/* Bit fields for PRS SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_RESETVALUE 0x00000000UL /**< Default value for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_MASK 0x00007F07UL /**< Mask for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_SHIFT 0 /**< Shift value for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_MASK 0x7UL /**< Bit mask for PRS_SIGSEL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_NONE 0x00000000UL /**< Mode NONE for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT (_PRS_SYNC_CH_CTRL_SIGSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SIGSEL_NONE (_PRS_SYNC_CH_CTRL_SIGSEL_NONE << 0) /**< Shifted mode NONE for PRS_SYNC_CH_CTRL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_SHIFT 8 /**< Shift value for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_MASK 0x7F00UL /**< Bit mask for PRS_SOURCESEL */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_SYNC_CH_CTRL */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT (_PRS_SYNC_CH_CTRL_SOURCESEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_SYNC_CH_CTRL */
+
+/* Bit fields for PRS CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALDN */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALDN */
+#define PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALDN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALDN*/
+
+/* Bit fields for PRS CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CMU_CALUP */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CMU_CALUP */
+#define PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT (_PRS_CONSUMER_CMU_CALUP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CMU_CALUP*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_CLK */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_CLK */
+#define PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_RX */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_RX */
+#define PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define _PRS_CONSUMER_EUSART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART0_TRIGGER */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+#define PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_CLK */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_CLK */
+#define PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_RX */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_RX */
+#define PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define _PRS_CONSUMER_EUSART1_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART1_TRIGGER */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+#define PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART1_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART1_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_EUSART2_CLK */
+#define _PRS_CONSUMER_EUSART2_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART2_CLK */
+#define _PRS_CONSUMER_EUSART2_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART2_CLK */
+#define _PRS_CONSUMER_EUSART2_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART2_CLK */
+#define PRS_CONSUMER_EUSART2_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART2_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART2_CLK*/
+
+/* Bit fields for PRS CONSUMER_EUSART2_RX */
+#define _PRS_CONSUMER_EUSART2_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART2_RX */
+#define _PRS_CONSUMER_EUSART2_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART2_RX */
+#define _PRS_CONSUMER_EUSART2_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART2_RX */
+#define PRS_CONSUMER_EUSART2_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART2_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART2_RX*/
+
+/* Bit fields for PRS CONSUMER_EUSART2_TRIGGER */
+#define _PRS_CONSUMER_EUSART2_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_EUSART2_TRIGGER*/
+#define _PRS_CONSUMER_EUSART2_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_EUSART2_TRIGGER */
+#define _PRS_CONSUMER_EUSART2_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_EUSART2_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_EUSART2_TRIGGER*/
+#define PRS_CONSUMER_EUSART2_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_EUSART2_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_EUSART2_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SCANTRIGGER */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+#define PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SCANTRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SCANTRIGGER*/
+
+/* Bit fields for PRS CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_IADC0_SINGLETRIGGER */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+#define PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT (_PRS_CONSUMER_IADC0_SINGLETRIGGER_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_IADC0_SINGLETRIGGER*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ0 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ0*/
+
+/* Bit fields for PRS CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LDMAXBAR_DMAREQ1 */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+#define PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT (_PRS_CONSUMER_LDMAXBAR_DMAREQ1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LDMAXBAR_DMAREQ1*/
+
+/* Bit fields for PRS CONSUMER_LESENSE_START */
+#define _PRS_CONSUMER_LESENSE_START_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LESENSE_START*/
+#define _PRS_CONSUMER_LESENSE_START_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LESENSE_START */
+#define _PRS_CONSUMER_LESENSE_START_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LESENSE_START_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LESENSE_START_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LESENSE_START */
+#define PRS_CONSUMER_LESENSE_START_PRSSEL_DEFAULT (_PRS_CONSUMER_LESENSE_START_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LESENSE_START*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define _PRS_CONSUMER_LETIMER0_CLEAR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_CLEAR */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+#define PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_CLEAR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_CLEAR*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_START*/
+#define _PRS_CONSUMER_LETIMER0_START_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_START */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+#define PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_START_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_START*/
+
+/* Bit fields for PRS CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_LETIMER0_STOP*/
+#define _PRS_CONSUMER_LETIMER0_STOP_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_LETIMER0_STOP */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP */
+#define PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT (_PRS_CONSUMER_LETIMER0_STOP_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_LETIMER0_STOP*/
+
+/* Bit fields for PRS CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_MODEM_DIN */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_MODEM_DIN */
+#define PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT (_PRS_CONSUMER_MODEM_DIN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_MODEM_DIN*/
+
+/* Bit fields for PRS CONSUMER_PCNT0_S0IN */
+#define _PRS_CONSUMER_PCNT0_S0IN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PCNT0_S0IN */
+#define _PRS_CONSUMER_PCNT0_S0IN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PCNT0_S0IN */
+#define _PRS_CONSUMER_PCNT0_S0IN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PCNT0_S0IN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PCNT0_S0IN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PCNT0_S0IN */
+#define PRS_CONSUMER_PCNT0_S0IN_PRSSEL_DEFAULT (_PRS_CONSUMER_PCNT0_S0IN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PCNT0_S0IN*/
+
+/* Bit fields for PRS CONSUMER_PCNT0_S1IN */
+#define _PRS_CONSUMER_PCNT0_S1IN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_PCNT0_S1IN */
+#define _PRS_CONSUMER_PCNT0_S1IN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_PCNT0_S1IN */
+#define _PRS_CONSUMER_PCNT0_S1IN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_PCNT0_S1IN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_PCNT0_S1IN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_PCNT0_S1IN */
+#define PRS_CONSUMER_PCNT0_S1IN_PRSSEL_DEFAULT (_PRS_CONSUMER_PCNT0_S1IN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_PCNT0_S1IN*/
+
+/* Bit fields for PRS CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CLR */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CLR */
+#define PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CLR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CLR*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN0 */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0 */
+#define PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN1 */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1 */
+#define PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN2 */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2 */
+#define PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_CTIIN3 */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3 */
+#define PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_FORCETX */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_FORCETX */
+#define PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_FORCETX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_FORCETX*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXDIS */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXDIS */
+#define PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXDIS_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXDIS*/
+
+/* Bit fields for PRS CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_RXEN */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_RXEN */
+#define PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_RXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_RXEN*/
+
+/* Bit fields for PRS CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_RAC_TXEN */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_RAC_TXEN */
+#define PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT (_PRS_CONSUMER_RAC_TXEN_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_RAC_TXEN*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC25 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC25_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC25*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC25_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC25 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC25_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC25_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC25_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC25*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC25_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC25_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC25*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC26 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC26_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC26*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC27 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC27_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC27*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC28 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC28_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC28*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC29 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC29_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC29*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC30 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC30_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC30*/
+
+/* Bit fields for PRS CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SETAMPER_TAMPERSRC31 */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+#define PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT (_PRS_CONSUMER_SETAMPER_TAMPERSRC31_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SETAMPER_TAMPERSRC31*/
+
+/* Bit fields for PRS CONSUMER_SYSRTC0_IN0 */
+#define _PRS_CONSUMER_SYSRTC0_IN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SYSRTC0_IN0 */
+#define _PRS_CONSUMER_SYSRTC0_IN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SYSRTC0_IN0 */
+#define _PRS_CONSUMER_SYSRTC0_IN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SYSRTC0_IN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SYSRTC0_IN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SYSRTC0_IN0 */
+#define PRS_CONSUMER_SYSRTC0_IN0_PRSSEL_DEFAULT (_PRS_CONSUMER_SYSRTC0_IN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SYSRTC0_IN0*/
+
+/* Bit fields for PRS CONSUMER_SYSRTC0_IN1 */
+#define _PRS_CONSUMER_SYSRTC0_IN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_SYSRTC0_IN1 */
+#define _PRS_CONSUMER_SYSRTC0_IN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_SYSRTC0_IN1 */
+#define _PRS_CONSUMER_SYSRTC0_IN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_SYSRTC0_IN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_SYSRTC0_IN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_SYSRTC0_IN1 */
+#define PRS_CONSUMER_SYSRTC0_IN1_PRSSEL_DEFAULT (_PRS_CONSUMER_SYSRTC0_IN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_SYSRTC0_IN1*/
+
+/* Bit fields for PRS CONSUMER_HFXO0_OSCREQ */
+#define _PRS_CONSUMER_HFXO0_OSCREQ_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_HFXO0_OSCREQ */
+#define _PRS_CONSUMER_HFXO0_OSCREQ_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_HFXO0_OSCREQ */
+#define _PRS_CONSUMER_HFXO0_OSCREQ_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_HFXO0_OSCREQ_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_HFXO0_OSCREQ_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_HFXO0_OSCREQ */
+#define PRS_CONSUMER_HFXO0_OSCREQ_PRSSEL_DEFAULT (_PRS_CONSUMER_HFXO0_OSCREQ_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_HFXO0_OSCREQ*/
+
+/* Bit fields for PRS CONSUMER_HFXO0_TIMEOUT */
+#define _PRS_CONSUMER_HFXO0_TIMEOUT_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_HFXO0_TIMEOUT*/
+#define _PRS_CONSUMER_HFXO0_TIMEOUT_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_HFXO0_TIMEOUT */
+#define _PRS_CONSUMER_HFXO0_TIMEOUT_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_HFXO0_TIMEOUT_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_HFXO0_TIMEOUT_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_HFXO0_TIMEOUT */
+#define PRS_CONSUMER_HFXO0_TIMEOUT_PRSSEL_DEFAULT (_PRS_CONSUMER_HFXO0_TIMEOUT_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_HFXO0_TIMEOUT*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN0 */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0 */
+#define PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN0*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN1 */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1 */
+#define PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN1*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN2 */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2 */
+#define PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN2*/
+
+/* Bit fields for PRS CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_CTIIN3 */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3 */
+#define PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_CTIIN3_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_CTIIN3*/
+
+/* Bit fields for PRS CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_CORE_M33RXEV */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV */
+#define PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT (_PRS_CONSUMER_CORE_M33RXEV_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_CORE_M33RXEV*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC0 */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC0 */
+#define PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC1 */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC1 */
+#define PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER0_CC2 */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_CC2 */
+#define PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTI */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTI */
+#define PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS1*/
+#define _PRS_CONSUMER_TIMER0_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1 */
+#define PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER0_DTIFS2*/
+#define _PRS_CONSUMER_TIMER0_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2 */
+#define PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER0_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER0_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC0 */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC0 */
+#define PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC1 */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC1 */
+#define PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER1_CC2 */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_CC2 */
+#define PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTI */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTI */
+#define PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS1*/
+#define _PRS_CONSUMER_TIMER1_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1 */
+#define PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER1_DTIFS2*/
+#define _PRS_CONSUMER_TIMER1_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2 */
+#define PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER1_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER1_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC0 */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC0 */
+#define PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC1 */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC1 */
+#define PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER2_CC2 */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_CC2 */
+#define PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTI */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTI */
+#define PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS1*/
+#define _PRS_CONSUMER_TIMER2_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1 */
+#define PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER2_DTIFS2*/
+#define _PRS_CONSUMER_TIMER2_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2 */
+#define PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER2_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER2_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC0 */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC0 */
+#define PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC1 */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC1 */
+#define PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER3_CC2 */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_CC2 */
+#define PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTI */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTI */
+#define PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS1*/
+#define _PRS_CONSUMER_TIMER3_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1 */
+#define PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER3_DTIFS2*/
+#define _PRS_CONSUMER_TIMER3_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2 */
+#define PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER3_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER3_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC0 */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC0 */
+#define PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC0*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC1 */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC1 */
+#define PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_MASK 0x0000030FUL /**< Mask for PRS_CONSUMER_TIMER4_CC2 */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_CC2 */
+#define PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_CC2_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_CC2*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTI */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTI */
+#define PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTI_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTI*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS1*/
+#define _PRS_CONSUMER_TIMER4_DTIFS1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1 */
+#define PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS1*/
+
+/* Bit fields for PRS CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_TIMER4_DTIFS2*/
+#define _PRS_CONSUMER_TIMER4_DTIFS2_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2 */
+#define PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT (_PRS_CONSUMER_TIMER4_DTIFS2_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_TIMER4_DTIFS2*/
+
+/* Bit fields for PRS CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_CLK */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_CLK */
+#define PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_CLK_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_CLK*/
+
+/* Bit fields for PRS CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_IR */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_IR */
+#define PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_IR_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_IR*/
+
+/* Bit fields for PRS CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_RX */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_RX */
+#define PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_RX_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_RX*/
+
+/* Bit fields for PRS CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_USART0_TRIGGER*/
+#define _PRS_CONSUMER_USART0_TRIGGER_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_USART0_TRIGGER */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+#define PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT (_PRS_CONSUMER_USART0_TRIGGER_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_USART0_TRIGGER*/
+
+/* Bit fields for PRS CONSUMER_VDAC0_ASYNCTRIGCH0 */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_VDAC0_ASYNCTRIGCH0*/
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_VDAC0_ASYNCTRIGCH0 */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_VDAC0_ASYNCTRIGCH0*/
+#define PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_PRSSEL_DEFAULT (_PRS_CONSUMER_VDAC0_ASYNCTRIGCH0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_VDAC0_ASYNCTRIGCH0*/
+
+/* Bit fields for PRS CONSUMER_VDAC0_ASYNCTRIGCH1 */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_VDAC0_ASYNCTRIGCH1*/
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_VDAC0_ASYNCTRIGCH1 */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_VDAC0_ASYNCTRIGCH1*/
+#define PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_PRSSEL_DEFAULT (_PRS_CONSUMER_VDAC0_ASYNCTRIGCH1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_VDAC0_ASYNCTRIGCH1*/
+
+/* Bit fields for PRS CONSUMER_VDAC0_SYNCTRIGCH0 */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_VDAC0_SYNCTRIGCH0*/
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH0_MASK 0x00000300UL /**< Mask for PRS_CONSUMER_VDAC0_SYNCTRIGCH0 */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH0_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH0_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH0_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_VDAC0_SYNCTRIGCH0*/
+#define PRS_CONSUMER_VDAC0_SYNCTRIGCH0_SPRSSEL_DEFAULT (_PRS_CONSUMER_VDAC0_SYNCTRIGCH0_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_VDAC0_SYNCTRIGCH0*/
+
+/* Bit fields for PRS CONSUMER_VDAC0_SYNCTRIGCH1 */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_VDAC0_SYNCTRIGCH1*/
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH1_MASK 0x00000300UL /**< Mask for PRS_CONSUMER_VDAC0_SYNCTRIGCH1 */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH1_SPRSSEL_SHIFT 8 /**< Shift value for PRS_SPRSSEL */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH1_SPRSSEL_MASK 0x300UL /**< Bit mask for PRS_SPRSSEL */
+#define _PRS_CONSUMER_VDAC0_SYNCTRIGCH1_SPRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_VDAC0_SYNCTRIGCH1*/
+#define PRS_CONSUMER_VDAC0_SYNCTRIGCH1_SPRSSEL_DEFAULT (_PRS_CONSUMER_VDAC0_SYNCTRIGCH1_SPRSSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for PRS_CONSUMER_VDAC0_SYNCTRIGCH1*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC0 */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0 */
+#define PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC0*/
+
+/* Bit fields for PRS CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG0_SRC1 */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1 */
+#define PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG0_SRC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG0_SRC1*/
+
+/* Bit fields for PRS CONSUMER_WDOG1_SRC0 */
+#define _PRS_CONSUMER_WDOG1_SRC0_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG1_SRC0 */
+#define _PRS_CONSUMER_WDOG1_SRC0_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG1_SRC0 */
+#define _PRS_CONSUMER_WDOG1_SRC0_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG1_SRC0_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG1_SRC0_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG1_SRC0 */
+#define PRS_CONSUMER_WDOG1_SRC0_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG1_SRC0_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG1_SRC0*/
+
+/* Bit fields for PRS CONSUMER_WDOG1_SRC1 */
+#define _PRS_CONSUMER_WDOG1_SRC1_RESETVALUE 0x00000000UL /**< Default value for PRS_CONSUMER_WDOG1_SRC1 */
+#define _PRS_CONSUMER_WDOG1_SRC1_MASK 0x0000000FUL /**< Mask for PRS_CONSUMER_WDOG1_SRC1 */
+#define _PRS_CONSUMER_WDOG1_SRC1_PRSSEL_SHIFT 0 /**< Shift value for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG1_SRC1_PRSSEL_MASK 0xFUL /**< Bit mask for PRS_PRSSEL */
+#define _PRS_CONSUMER_WDOG1_SRC1_PRSSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for PRS_CONSUMER_WDOG1_SRC1 */
+#define PRS_CONSUMER_WDOG1_SRC1_PRSSEL_DEFAULT (_PRS_CONSUMER_WDOG1_SRC1_PRSSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for PRS_CONSUMER_WDOG1_SRC1*/
+
+/** @} End of group EFR32ZG23_PRS_BitFields */
+/** @} End of group EFR32ZG23_PRS */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_PRS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs_signals.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs_signals.h
new file mode 100644
index 000000000..49d1defa4
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_prs_signals.h
@@ -0,0 +1,978 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 PRS register signal bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_PRS_SIGNALS_H
+#define EFR32ZG23_PRS_SIGNALS_H
+
+/** Synchronous signal sources enumeration: */
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000005UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000006UL)
+#define _PRS_SYNC_CH_CTRL_SOURCESEL_VDAC0 (0x00000007UL)
+
+/** Synchronous signal sources enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SOURCESEL_NONE (_PRS_SYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+#define PRS_SYNC_CH_CTRL_SOURCESEL_VDAC0 (_PRS_SYNC_CH_CTRL_SOURCESEL_VDAC0 << 8)
+
+/** Synchronous signals enumeration: */
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH0DONESYNC (0x00000000UL)
+#define _PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH1DONESYNC (0x00000001UL)
+
+/** Synchronous signals enumeration aligned with register bit field: */
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH0DONESYNC (_PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH0DONESYNC << 0)
+#define PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH1DONESYNC (_PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH1DONESYNC << 0)
+
+/** Synchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_SYNC_TIMER0_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_SYNC_TIMER0_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_SYNC_TIMER0_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_SYNC_TIMER0_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_SYNC_TIMER0_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_SYNC_TIMER1_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_SYNC_TIMER1_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_SYNC_TIMER1_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_SYNC_TIMER1_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_SYNC_TIMER1_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_SYNC_IADC0_SCAN_ENTRY_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_SYNC_IADC0_SCAN_TABLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_SYNC_IADC0_SINGLE_DONE (PRS_SYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_SYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_SYNC_TIMER2_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_SYNC_TIMER2_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_SYNC_TIMER2_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_SYNC_TIMER2_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_SYNC_TIMER2_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_SYNC_TIMER3_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_SYNC_TIMER3_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_SYNC_TIMER3_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_SYNC_TIMER3_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_SYNC_TIMER3_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_SYNC_TIMER4_UF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_SYNC_TIMER4_OF (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_SYNC_TIMER4_CC0 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_SYNC_TIMER4_CC1 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_SYNC_TIMER4_CC2 (PRS_SYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_SYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+#define PRS_SYNC_VDAC0_CH0_DONE_SYNC (PRS_SYNC_CH_CTRL_SOURCESEL_VDAC0 | PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH0DONESYNC)
+#define PRS_SYNC_VDAC0_CH1_DONE_SYNC (PRS_SYNC_CH_CTRL_SOURCESEL_VDAC0 | PRS_SYNC_CH_CTRL_SIGSEL_VDAC0CH1DONESYNC)
+
+/** Asynchronous signal sources enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (0x00000008UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (0x00000009UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (0x0000000aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP1 (0x0000000bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L (0x0000000cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0 (0x0000000dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PCNT0 (0x0000000eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 (0x0000000fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE (0x00000010UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0L (0x00000011UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (0x00000012UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (0x00000013UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (0x00000014UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (0x00000015UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (0x00000016UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCOEM23 (0x00000017UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_LCD (0x00000018UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (0x00000020UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (0x00000021UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (0x00000022UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (0x00000023UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (0x00000024UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (0x00000025UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (0x00000026UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (0x00000027UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (0x00000028UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (0x00000029UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (0x0000002aUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (0x0000002bUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (0x0000002cUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (0x0000002dUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (0x0000002eUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (0x0000002fUL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (0x00000030UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (0x00000031UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (0x00000032UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (0x00000033UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (0x00000034UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L (0x00000035UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2 (0x00000036UL)
+#define _PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (0x00000037UL)
+
+/** Asynchronous signal sources enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_NONE (_PRS_ASYNC_CH_CTRL_SOURCESEL_NONE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO (_PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CORE (_PRS_ASYNC_CH_CTRL_SOURCESEL_CORE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH (_PRS_ASYNC_CH_CTRL_SOURCESEL_CMUH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_AGC (_PRS_ASYNC_CH_CTRL_SOURCESEL_AGC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC (_PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH (_PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_FRC (_PRS_ASYNC_CH_CTRL_SOURCESEL_FRC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER (_PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH (_PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PRS (_PRS_ASYNC_CH_CTRL_SOURCESEL_PRS << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RACL (_PRS_ASYNC_CH_CTRL_SOURCESEL_RACL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_RAC (_PRS_ASYNC_CH_CTRL_SOURCESEL_RAC << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 (_PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L (_PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_PCNT0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_PCNT0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE (_PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0L (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2 (_PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCO0 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMUL << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_EMU (_PRS_ASYNC_CH_CTRL_SOURCESEL_EMU << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCOEM23 (_PRS_ASYNC_CH_CTRL_SOURCESEL_HFRCOEM23 << 8)
+#define PRS_ASYNC_CH_CTRL_SOURCESEL_LCD (_PRS_ASYNC_CH_CTRL_SOURCESEL_LCD << 8)
+
+/** Asynchronous signals enumeration: */
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_ACMP1OUT (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0WARM (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1WARM (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0DONEASYNC (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1DONEASYNC (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LINTERNALTIMEROF (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LREFRESHTIMEROF (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0DIR (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0UFOF (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT0 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT1 (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT0 (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT2 (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECCMP (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS1 (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (0x00000007UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LCS (0x00000000UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LIRDATX (0x00000001UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRTS (0x00000002UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXDATAV (0x00000003UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTX (0x00000004UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXC (0x00000005UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXFL (0x00000006UL)
+#define _PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXFL (0x00000007UL)
+
+/** Asynchronous signals enumeration aligned with register bit field: */
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC (_PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW (_PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 (_PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE (_PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL (_PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF (_PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT (_PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 (_PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 (_PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID (_PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 (_PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT (_PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_ACMP1OUT (_PRS_ASYNC_CH_CTRL_SIGSEL_ACMP1OUT << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0WARM (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0WARM << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1WARM (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1WARM << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0DONEASYNC (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0DONEASYNC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1DONEASYNC (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1DONEASYNC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LINTERNALTIMEROF (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LINTERNALTIMEROF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LREFRESHTIMEROF (_PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LREFRESHTIMEROF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0DIR (_PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0DIR << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0UFOF (_PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0UFOF << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT0 (_PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT0 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT1 (_PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT2 (_PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT2 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECCMP (_PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECCMP << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS (_PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS1 (_PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS1 << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LCS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LCS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LIRDATX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LIRDATX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRTS (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRTS << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXDATAV (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXDATAV << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTX (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTX << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXC (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXC << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXFL << 0)
+#define PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXFL (_PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXFL << 0)
+
+/** Asynchronous signals and sources combined and aligned with register bit fields: */
+#define PRS_ASYNC_USART0_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0CS)
+#define PRS_ASYNC_USART0_IRTX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0IRTX)
+#define PRS_ASYNC_USART0_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RTS)
+#define PRS_ASYNC_USART0_RXDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0RXDATA)
+#define PRS_ASYNC_USART0_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TX)
+#define PRS_ASYNC_USART0_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_USART0 | PRS_ASYNC_CH_CTRL_SIGSEL_USART0TXC)
+#define PRS_ASYNC_TIMER0_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0UF)
+#define PRS_ASYNC_TIMER0_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0OF)
+#define PRS_ASYNC_TIMER0_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC0)
+#define PRS_ASYNC_TIMER0_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC1)
+#define PRS_ASYNC_TIMER0_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER0CC2)
+#define PRS_ASYNC_TIMER1_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1UF)
+#define PRS_ASYNC_TIMER1_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1OF)
+#define PRS_ASYNC_TIMER1_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC0)
+#define PRS_ASYNC_TIMER1_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC1)
+#define PRS_ASYNC_TIMER1_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER1 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER1CC2)
+#define PRS_ASYNC_IADC0_SCANENTRYDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANENTRYDONE)
+#define PRS_ASYNC_IADC0_SCANTABLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SCANTABLEDONE)
+#define PRS_ASYNC_IADC0_SINGLEDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_IADC0 | PRS_ASYNC_CH_CTRL_SIGSEL_IADC0SINGLEDONE)
+#define PRS_ASYNC_LETIMER0_CH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH0)
+#define PRS_ASYNC_LETIMER0_CH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_LETIMER0 | PRS_ASYNC_CH_CTRL_SIGSEL_LETIMER0CH1)
+#define PRS_ASYNC_BURTC_COMP (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCCOMP)
+#define PRS_ASYNC_BURTC_OVERFLOW (PRS_ASYNC_CH_CTRL_SOURCESEL_BURTC | PRS_ASYNC_CH_CTRL_SIGSEL_BURTCOVERFLOW)
+#define PRS_ASYNC_GPIO_PIN0 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN0)
+#define PRS_ASYNC_GPIO_PIN1 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN1)
+#define PRS_ASYNC_GPIO_PIN2 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN2)
+#define PRS_ASYNC_GPIO_PIN3 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN3)
+#define PRS_ASYNC_GPIO_PIN4 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN4)
+#define PRS_ASYNC_GPIO_PIN5 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN5)
+#define PRS_ASYNC_GPIO_PIN6 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN6)
+#define PRS_ASYNC_GPIO_PIN7 (PRS_ASYNC_CH_CTRL_SOURCESEL_GPIO | PRS_ASYNC_CH_CTRL_SIGSEL_GPIOPIN7)
+#define PRS_ASYNC_TIMER2_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2UF)
+#define PRS_ASYNC_TIMER2_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2OF)
+#define PRS_ASYNC_TIMER2_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC0)
+#define PRS_ASYNC_TIMER2_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC1)
+#define PRS_ASYNC_TIMER2_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER2 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER2CC2)
+#define PRS_ASYNC_TIMER3_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3UF)
+#define PRS_ASYNC_TIMER3_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3OF)
+#define PRS_ASYNC_TIMER3_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC0)
+#define PRS_ASYNC_TIMER3_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC1)
+#define PRS_ASYNC_TIMER3_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER3 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER3CC2)
+#define PRS_ASYNC_CORE_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT0)
+#define PRS_ASYNC_CORE_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT1)
+#define PRS_ASYNC_CORE_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT2)
+#define PRS_ASYNC_CORE_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_CORE | PRS_ASYNC_CH_CTRL_SIGSEL_CORECTIOUT3)
+#define PRS_ASYNC_CMUL_CLKOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT0)
+#define PRS_ASYNC_CMUL_CLKOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT1)
+#define PRS_ASYNC_CMUL_CLKOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_CMUL | PRS_ASYNC_CH_CTRL_SIGSEL_CMULCLKOUT2)
+#define PRS_ASYNC_AGCL_CCA (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCA)
+#define PRS_ASYNC_AGCL_CCAREQ (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLCCAREQ)
+#define PRS_ASYNC_AGCL_GAINADJUST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINADJUST)
+#define PRS_ASYNC_AGCL_GAINOK (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINOK)
+#define PRS_ASYNC_AGCL_GAINREDUCED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLGAINREDUCED)
+#define PRS_ASYNC_AGCL_IFPKI1 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKI1)
+#define PRS_ASYNC_AGCL_IFPKQ2 (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKQ2)
+#define PRS_ASYNC_AGCL_IFPKRST (PRS_ASYNC_CH_CTRL_SOURCESEL_AGCL | PRS_ASYNC_CH_CTRL_SIGSEL_AGCLIFPKRST)
+#define PRS_ASYNC_AGC_PEAKDET (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPEAKDET)
+#define PRS_ASYNC_AGC_PROPAGATED (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCPROPAGATED)
+#define PRS_ASYNC_AGC_RSSIDONE (PRS_ASYNC_CH_CTRL_SOURCESEL_AGC | PRS_ASYNC_CH_CTRL_SIGSEL_AGCRSSIDONE)
+#define PRS_ASYNC_BUFC_THR0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR0)
+#define PRS_ASYNC_BUFC_THR1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR1)
+#define PRS_ASYNC_BUFC_THR2 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR2)
+#define PRS_ASYNC_BUFC_THR3 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCTHR3)
+#define PRS_ASYNC_BUFC_CNT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT0)
+#define PRS_ASYNC_BUFC_CNT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCCNT1)
+#define PRS_ASYNC_BUFC_FULL (PRS_ASYNC_CH_CTRL_SOURCESEL_BUFC | PRS_ASYNC_CH_CTRL_SIGSEL_BUFCFULL)
+#define PRS_ASYNC_MODEML_ADVANCE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLADVANCE)
+#define PRS_ASYNC_MODEML_ANT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT0)
+#define PRS_ASYNC_MODEML_ANT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLANT1)
+#define PRS_ASYNC_MODEML_COHDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSADET)
+#define PRS_ASYNC_MODEML_COHDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLCOHDSALIVE)
+#define PRS_ASYNC_MODEML_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDCLK)
+#define PRS_ASYNC_MODEML_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLDOUT)
+#define PRS_ASYNC_MODEML_FRAMEDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEML | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLFRAMEDET)
+#define PRS_ASYNC_MODEM_FRAMESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMFRAMESENT)
+#define PRS_ASYNC_MODEM_LOWCORR (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLOWCORR)
+#define PRS_ASYNC_MODEM_LRDSADET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSADET)
+#define PRS_ASYNC_MODEM_LRDSALIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMLRDSALIVE)
+#define PRS_ASYNC_MODEM_NEWSYMBOL (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWSYMBOL)
+#define PRS_ASYNC_MODEM_NEWWND (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMNEWWND)
+#define PRS_ASYNC_MODEM_POSTPONE (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPOSTPONE)
+#define PRS_ASYNC_MODEM_PREDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEM | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMPREDET)
+#define PRS_ASYNC_MODEMH_PRESENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHPRESENT)
+#define PRS_ASYNC_MODEMH_RSSIJUMP (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHRSSIJUMP)
+#define PRS_ASYNC_MODEMH_SYNCSENT (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHSYNCSENT)
+#define PRS_ASYNC_MODEMH_TIMDET (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHTIMDET)
+#define PRS_ASYNC_MODEMH_WEAK (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHWEAK)
+#define PRS_ASYNC_MODEMH_EOF (PRS_ASYNC_CH_CTRL_SOURCESEL_MODEMH | PRS_ASYNC_CH_CTRL_SIGSEL_MODEMHEOF)
+#define PRS_ASYNC_FRC_DCLK (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDCLK)
+#define PRS_ASYNC_FRC_DOUT (PRS_ASYNC_CH_CTRL_SOURCESEL_FRC | PRS_ASYNC_CH_CTRL_SIGSEL_FRCDOUT)
+#define PRS_ASYNC_PROTIMERL_BOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBOF)
+#define PRS_ASYNC_PROTIMERL_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC0)
+#define PRS_ASYNC_PROTIMERL_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC1)
+#define PRS_ASYNC_PROTIMERL_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC2)
+#define PRS_ASYNC_PROTIMERL_CC3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC3)
+#define PRS_ASYNC_PROTIMERL_CC4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLCC4)
+#define PRS_ASYNC_PROTIMERL_LBTF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTF)
+#define PRS_ASYNC_PROTIMERL_LBTR (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMERL | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLLBTR)
+#define PRS_ASYNC_PROTIMER_LBTS (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERLBTS)
+#define PRS_ASYNC_PROTIMER_POF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERPOF)
+#define PRS_ASYNC_PROTIMER_T0MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0MATCH)
+#define PRS_ASYNC_PROTIMER_T0UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT0UF)
+#define PRS_ASYNC_PROTIMER_T1MATCH (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1MATCH)
+#define PRS_ASYNC_PROTIMER_T1UF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERT1UF)
+#define PRS_ASYNC_PROTIMER_WOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PROTIMER | PRS_ASYNC_CH_CTRL_SIGSEL_PROTIMERWOF)
+#define PRS_ASYNC_SYNTH_MUX0 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX0)
+#define PRS_ASYNC_SYNTH_MUX1 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYNTH | PRS_ASYNC_CH_CTRL_SIGSEL_SYNTHMUX1)
+#define PRS_ASYNC_PRSL_ASYNCH0 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH0)
+#define PRS_ASYNC_PRSL_ASYNCH1 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH1)
+#define PRS_ASYNC_PRSL_ASYNCH2 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH2)
+#define PRS_ASYNC_PRSL_ASYNCH3 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH3)
+#define PRS_ASYNC_PRSL_ASYNCH4 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH4)
+#define PRS_ASYNC_PRSL_ASYNCH5 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH5)
+#define PRS_ASYNC_PRSL_ASYNCH6 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH6)
+#define PRS_ASYNC_PRSL_ASYNCH7 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRSL | PRS_ASYNC_CH_CTRL_SIGSEL_PRSLASYNCH7)
+#define PRS_ASYNC_PRS_ASYNCH8 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH8)
+#define PRS_ASYNC_PRS_ASYNCH9 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH9)
+#define PRS_ASYNC_PRS_ASYNCH10 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH10)
+#define PRS_ASYNC_PRS_ASYNCH11 (PRS_ASYNC_CH_CTRL_SOURCESEL_PRS | PRS_ASYNC_CH_CTRL_SIGSEL_PRSASYNCH11)
+#define PRS_ASYNC_RACL_ACTIVE (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLACTIVE)
+#define PRS_ASYNC_RACL_LNAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLLNAEN)
+#define PRS_ASYNC_RACL_PAEN (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLPAEN)
+#define PRS_ASYNC_RACL_RX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLRX)
+#define PRS_ASYNC_RACL_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLTX)
+#define PRS_ASYNC_RACL_CTIOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT0)
+#define PRS_ASYNC_RACL_CTIOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT1)
+#define PRS_ASYNC_RACL_CTIOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_RACL | PRS_ASYNC_CH_CTRL_SIGSEL_RACLCTIOUT2)
+#define PRS_ASYNC_RAC_CTIOUT3 (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACCTIOUT3)
+#define PRS_ASYNC_RAC_AUXADCDATA (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATA)
+#define PRS_ASYNC_RAC_AUXADCDATAVALID (PRS_ASYNC_CH_CTRL_SOURCESEL_RAC | PRS_ASYNC_CH_CTRL_SIGSEL_RACAUXADCDATAVALID)
+#define PRS_ASYNC_TIMER4_UF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4UF)
+#define PRS_ASYNC_TIMER4_OF (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4OF)
+#define PRS_ASYNC_TIMER4_CC0 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC0)
+#define PRS_ASYNC_TIMER4_CC1 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC1)
+#define PRS_ASYNC_TIMER4_CC2 (PRS_ASYNC_CH_CTRL_SOURCESEL_TIMER4 | PRS_ASYNC_CH_CTRL_SIGSEL_TIMER4CC2)
+#define PRS_ASYNC_ACMP0_OUT (PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP0 | PRS_ASYNC_CH_CTRL_SIGSEL_ACMP0OUT)
+#define PRS_ASYNC_ACMP1_OUT (PRS_ASYNC_CH_CTRL_SOURCESEL_ACMP1 | PRS_ASYNC_CH_CTRL_SIGSEL_ACMP1OUT)
+#define PRS_ASYNC_VDAC0L_CH0WARM (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0WARM)
+#define PRS_ASYNC_VDAC0L_CH1WARM (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1WARM)
+#define PRS_ASYNC_VDAC0L_CH0DONEASYNC (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH0DONEASYNC)
+#define PRS_ASYNC_VDAC0L_CH1DONEASYNC (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LCH1DONEASYNC)
+#define PRS_ASYNC_VDAC0L_INTERNALTIMEROF (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LINTERNALTIMEROF)
+#define PRS_ASYNC_VDAC0L_REFRESHTIMEROF (PRS_ASYNC_CH_CTRL_SOURCESEL_VDAC0L | PRS_ASYNC_CH_CTRL_SIGSEL_VDAC0LREFRESHTIMEROF)
+#define PRS_ASYNC_PCNT0_DIR (PRS_ASYNC_CH_CTRL_SOURCESEL_PCNT0 | PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0DIR)
+#define PRS_ASYNC_PCNT0_UFOF (PRS_ASYNC_CH_CTRL_SOURCESEL_PCNT0 | PRS_ASYNC_CH_CTRL_SIGSEL_PCNT0UFOF)
+#define PRS_ASYNC_SYSRTC0_GRP0OUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 | PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT0)
+#define PRS_ASYNC_SYSRTC0_GRP0OUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 | PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP0OUT1)
+#define PRS_ASYNC_SYSRTC0_GRP1OUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 | PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT0)
+#define PRS_ASYNC_SYSRTC0_GRP1OUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_SYSRTC0 | PRS_ASYNC_CH_CTRL_SIGSEL_SYSRTC0GRP1OUT1)
+#define PRS_ASYNC_LESENSE_DECOUT0 (PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE | PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT0)
+#define PRS_ASYNC_LESENSE_DECOUT1 (PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE | PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT1)
+#define PRS_ASYNC_LESENSE_DECOUT2 (PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE | PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECOUT2)
+#define PRS_ASYNC_LESENSE_DECCMP (PRS_ASYNC_CH_CTRL_SOURCESEL_LESENSE | PRS_ASYNC_CH_CTRL_SIGSEL_LESENSEDECCMP)
+#define PRS_ASYNC_HFXO0L_STATUS (PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0L | PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS)
+#define PRS_ASYNC_HFXO0L_STATUS1 (PRS_ASYNC_CH_CTRL_SOURCESEL_HFXO0L | PRS_ASYNC_CH_CTRL_SIGSEL_HFXO0LSTATUS1)
+#define PRS_ASYNC_EUSART0L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LCS)
+#define PRS_ASYNC_EUSART0L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LIRDATX)
+#define PRS_ASYNC_EUSART0L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRTS)
+#define PRS_ASYNC_EUSART0L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXDATAV)
+#define PRS_ASYNC_EUSART0L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTX)
+#define PRS_ASYNC_EUSART0L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXC)
+#define PRS_ASYNC_EUSART0L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LRXFL)
+#define PRS_ASYNC_EUSART0L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART0L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART0LTXFL)
+#define PRS_ASYNC_EUSART1L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LCS)
+#define PRS_ASYNC_EUSART1L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LIRDATX)
+#define PRS_ASYNC_EUSART1L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRTS)
+#define PRS_ASYNC_EUSART1L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXDATAV)
+#define PRS_ASYNC_EUSART1L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTX)
+#define PRS_ASYNC_EUSART1L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXC)
+#define PRS_ASYNC_EUSART1L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LRXFL)
+#define PRS_ASYNC_EUSART1L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART1L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART1LTXFL)
+#define PRS_ASYNC_EUSART2L_CS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LCS)
+#define PRS_ASYNC_EUSART2L_IRDATX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LIRDATX)
+#define PRS_ASYNC_EUSART2L_RTS (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRTS)
+#define PRS_ASYNC_EUSART2L_RXDATAV (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXDATAV)
+#define PRS_ASYNC_EUSART2L_TX (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTX)
+#define PRS_ASYNC_EUSART2L_TXC (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXC)
+#define PRS_ASYNC_EUSART2L_RXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LRXFL)
+#define PRS_ASYNC_EUSART2L_TXFL (PRS_ASYNC_CH_CTRL_SOURCESEL_EUSART2L | PRS_ASYNC_CH_CTRL_SIGSEL_EUSART2LTXFL)
+
+/**
+ * Asynchronous signals and sources combined and aligned with register bit fields
+ * without the '_ASYNCH_' infix in order for backward compatibility:
+ */
+#define PRS_USART0_CS (PRS_ASYNC_USART0_CS)
+#define PRS_USART0_IRTX (PRS_ASYNC_USART0_IRTX)
+#define PRS_USART0_RTS (PRS_ASYNC_USART0_RTS)
+#define PRS_USART0_RXDATA (PRS_ASYNC_USART0_RXDATA)
+#define PRS_USART0_TX (PRS_ASYNC_USART0_TX)
+#define PRS_USART0_TXC (PRS_ASYNC_USART0_TXC)
+#define PRS_TIMER0_UF (PRS_ASYNC_TIMER0_UF)
+#define PRS_TIMER0_OF (PRS_ASYNC_TIMER0_OF)
+#define PRS_TIMER0_CC0 (PRS_ASYNC_TIMER0_CC0)
+#define PRS_TIMER0_CC1 (PRS_ASYNC_TIMER0_CC1)
+#define PRS_TIMER0_CC2 (PRS_ASYNC_TIMER0_CC2)
+#define PRS_TIMER1_UF (PRS_ASYNC_TIMER1_UF)
+#define PRS_TIMER1_OF (PRS_ASYNC_TIMER1_OF)
+#define PRS_TIMER1_CC0 (PRS_ASYNC_TIMER1_CC0)
+#define PRS_TIMER1_CC1 (PRS_ASYNC_TIMER1_CC1)
+#define PRS_TIMER1_CC2 (PRS_ASYNC_TIMER1_CC2)
+#define PRS_IADC0_SCANENTRYDONE (PRS_ASYNC_IADC0_SCANENTRYDONE)
+#define PRS_IADC0_SCANTABLEDONE (PRS_ASYNC_IADC0_SCANTABLEDONE)
+#define PRS_IADC0_SINGLEDONE (PRS_ASYNC_IADC0_SINGLEDONE)
+#define PRS_LETIMER0_CH0 (PRS_ASYNC_LETIMER0_CH0)
+#define PRS_LETIMER0_CH1 (PRS_ASYNC_LETIMER0_CH1)
+#define PRS_BURTC_COMP (PRS_ASYNC_BURTC_COMP)
+#define PRS_BURTC_OVERFLOW (PRS_ASYNC_BURTC_OVERFLOW)
+#define PRS_GPIO_PIN0 (PRS_ASYNC_GPIO_PIN0)
+#define PRS_GPIO_PIN1 (PRS_ASYNC_GPIO_PIN1)
+#define PRS_GPIO_PIN2 (PRS_ASYNC_GPIO_PIN2)
+#define PRS_GPIO_PIN3 (PRS_ASYNC_GPIO_PIN3)
+#define PRS_GPIO_PIN4 (PRS_ASYNC_GPIO_PIN4)
+#define PRS_GPIO_PIN5 (PRS_ASYNC_GPIO_PIN5)
+#define PRS_GPIO_PIN6 (PRS_ASYNC_GPIO_PIN6)
+#define PRS_GPIO_PIN7 (PRS_ASYNC_GPIO_PIN7)
+#define PRS_TIMER2_UF (PRS_ASYNC_TIMER2_UF)
+#define PRS_TIMER2_OF (PRS_ASYNC_TIMER2_OF)
+#define PRS_TIMER2_CC0 (PRS_ASYNC_TIMER2_CC0)
+#define PRS_TIMER2_CC1 (PRS_ASYNC_TIMER2_CC1)
+#define PRS_TIMER2_CC2 (PRS_ASYNC_TIMER2_CC2)
+#define PRS_TIMER3_UF (PRS_ASYNC_TIMER3_UF)
+#define PRS_TIMER3_OF (PRS_ASYNC_TIMER3_OF)
+#define PRS_TIMER3_CC0 (PRS_ASYNC_TIMER3_CC0)
+#define PRS_TIMER3_CC1 (PRS_ASYNC_TIMER3_CC1)
+#define PRS_TIMER3_CC2 (PRS_ASYNC_TIMER3_CC2)
+#define PRS_CORE_CTIOUT0 (PRS_ASYNC_CORE_CTIOUT0)
+#define PRS_CORE_CTIOUT1 (PRS_ASYNC_CORE_CTIOUT1)
+#define PRS_CORE_CTIOUT2 (PRS_ASYNC_CORE_CTIOUT2)
+#define PRS_CORE_CTIOUT3 (PRS_ASYNC_CORE_CTIOUT3)
+#define PRS_CMUL_CLKOUT0 (PRS_ASYNC_CMUL_CLKOUT0)
+#define PRS_CMUL_CLKOUT1 (PRS_ASYNC_CMUL_CLKOUT1)
+#define PRS_CMUL_CLKOUT2 (PRS_ASYNC_CMUL_CLKOUT2)
+#define PRS_AGCL_CCA (PRS_ASYNC_AGCL_CCA)
+#define PRS_AGCL_CCAREQ (PRS_ASYNC_AGCL_CCAREQ)
+#define PRS_AGCL_GAINADJUST (PRS_ASYNC_AGCL_GAINADJUST)
+#define PRS_AGCL_GAINOK (PRS_ASYNC_AGCL_GAINOK)
+#define PRS_AGCL_GAINREDUCED (PRS_ASYNC_AGCL_GAINREDUCED)
+#define PRS_AGCL_IFPKI1 (PRS_ASYNC_AGCL_IFPKI1)
+#define PRS_AGCL_IFPKQ2 (PRS_ASYNC_AGCL_IFPKQ2)
+#define PRS_AGCL_IFPKRST (PRS_ASYNC_AGCL_IFPKRST)
+#define PRS_AGC_PEAKDET (PRS_ASYNC_AGC_PEAKDET)
+#define PRS_AGC_PROPAGATED (PRS_ASYNC_AGC_PROPAGATED)
+#define PRS_AGC_RSSIDONE (PRS_ASYNC_AGC_RSSIDONE)
+#define PRS_BUFC_THR0 (PRS_ASYNC_BUFC_THR0)
+#define PRS_BUFC_THR1 (PRS_ASYNC_BUFC_THR1)
+#define PRS_BUFC_THR2 (PRS_ASYNC_BUFC_THR2)
+#define PRS_BUFC_THR3 (PRS_ASYNC_BUFC_THR3)
+#define PRS_BUFC_CNT0 (PRS_ASYNC_BUFC_CNT0)
+#define PRS_BUFC_CNT1 (PRS_ASYNC_BUFC_CNT1)
+#define PRS_BUFC_FULL (PRS_ASYNC_BUFC_FULL)
+#define PRS_MODEML_ADVANCE (PRS_ASYNC_MODEML_ADVANCE)
+#define PRS_MODEML_ANT0 (PRS_ASYNC_MODEML_ANT0)
+#define PRS_MODEML_ANT1 (PRS_ASYNC_MODEML_ANT1)
+#define PRS_MODEML_COHDSADET (PRS_ASYNC_MODEML_COHDSADET)
+#define PRS_MODEML_COHDSALIVE (PRS_ASYNC_MODEML_COHDSALIVE)
+#define PRS_MODEML_DCLK (PRS_ASYNC_MODEML_DCLK)
+#define PRS_MODEML_DOUT (PRS_ASYNC_MODEML_DOUT)
+#define PRS_MODEML_FRAMEDET (PRS_ASYNC_MODEML_FRAMEDET)
+#define PRS_MODEM_FRAMESENT (PRS_ASYNC_MODEM_FRAMESENT)
+#define PRS_MODEM_LOWCORR (PRS_ASYNC_MODEM_LOWCORR)
+#define PRS_MODEM_LRDSADET (PRS_ASYNC_MODEM_LRDSADET)
+#define PRS_MODEM_LRDSALIVE (PRS_ASYNC_MODEM_LRDSALIVE)
+#define PRS_MODEM_NEWSYMBOL (PRS_ASYNC_MODEM_NEWSYMBOL)
+#define PRS_MODEM_NEWWND (PRS_ASYNC_MODEM_NEWWND)
+#define PRS_MODEM_POSTPONE (PRS_ASYNC_MODEM_POSTPONE)
+#define PRS_MODEM_PREDET (PRS_ASYNC_MODEM_PREDET)
+#define PRS_MODEMH_PRESENT (PRS_ASYNC_MODEMH_PRESENT)
+#define PRS_MODEMH_RSSIJUMP (PRS_ASYNC_MODEMH_RSSIJUMP)
+#define PRS_MODEMH_SYNCSENT (PRS_ASYNC_MODEMH_SYNCSENT)
+#define PRS_MODEMH_TIMDET (PRS_ASYNC_MODEMH_TIMDET)
+#define PRS_MODEMH_WEAK (PRS_ASYNC_MODEMH_WEAK)
+#define PRS_MODEMH_EOF (PRS_ASYNC_MODEMH_EOF)
+#define PRS_FRC_DCLK (PRS_ASYNC_FRC_DCLK)
+#define PRS_FRC_DOUT (PRS_ASYNC_FRC_DOUT)
+#define PRS_PROTIMERL_BOF (PRS_ASYNC_PROTIMERL_BOF)
+#define PRS_PROTIMERL_CC0 (PRS_ASYNC_PROTIMERL_CC0)
+#define PRS_PROTIMERL_CC1 (PRS_ASYNC_PROTIMERL_CC1)
+#define PRS_PROTIMERL_CC2 (PRS_ASYNC_PROTIMERL_CC2)
+#define PRS_PROTIMERL_CC3 (PRS_ASYNC_PROTIMERL_CC3)
+#define PRS_PROTIMERL_CC4 (PRS_ASYNC_PROTIMERL_CC4)
+#define PRS_PROTIMERL_LBTF (PRS_ASYNC_PROTIMERL_LBTF)
+#define PRS_PROTIMERL_LBTR (PRS_ASYNC_PROTIMERL_LBTR)
+#define PRS_PROTIMER_LBTS (PRS_ASYNC_PROTIMER_LBTS)
+#define PRS_PROTIMER_POF (PRS_ASYNC_PROTIMER_POF)
+#define PRS_PROTIMER_T0MATCH (PRS_ASYNC_PROTIMER_T0MATCH)
+#define PRS_PROTIMER_T0UF (PRS_ASYNC_PROTIMER_T0UF)
+#define PRS_PROTIMER_T1MATCH (PRS_ASYNC_PROTIMER_T1MATCH)
+#define PRS_PROTIMER_T1UF (PRS_ASYNC_PROTIMER_T1UF)
+#define PRS_PROTIMER_WOF (PRS_ASYNC_PROTIMER_WOF)
+#define PRS_SYNTH_MUX0 (PRS_ASYNC_SYNTH_MUX0)
+#define PRS_SYNTH_MUX1 (PRS_ASYNC_SYNTH_MUX1)
+#define PRS_PRSL_ASYNCH0 (PRS_ASYNC_PRSL_ASYNCH0)
+#define PRS_PRSL_ASYNCH1 (PRS_ASYNC_PRSL_ASYNCH1)
+#define PRS_PRSL_ASYNCH2 (PRS_ASYNC_PRSL_ASYNCH2)
+#define PRS_PRSL_ASYNCH3 (PRS_ASYNC_PRSL_ASYNCH3)
+#define PRS_PRSL_ASYNCH4 (PRS_ASYNC_PRSL_ASYNCH4)
+#define PRS_PRSL_ASYNCH5 (PRS_ASYNC_PRSL_ASYNCH5)
+#define PRS_PRSL_ASYNCH6 (PRS_ASYNC_PRSL_ASYNCH6)
+#define PRS_PRSL_ASYNCH7 (PRS_ASYNC_PRSL_ASYNCH7)
+#define PRS_PRS_ASYNCH8 (PRS_ASYNC_PRS_ASYNCH8)
+#define PRS_PRS_ASYNCH9 (PRS_ASYNC_PRS_ASYNCH9)
+#define PRS_PRS_ASYNCH10 (PRS_ASYNC_PRS_ASYNCH10)
+#define PRS_PRS_ASYNCH11 (PRS_ASYNC_PRS_ASYNCH11)
+#define PRS_RACL_ACTIVE (PRS_ASYNC_RACL_ACTIVE)
+#define PRS_RACL_LNAEN (PRS_ASYNC_RACL_LNAEN)
+#define PRS_RACL_PAEN (PRS_ASYNC_RACL_PAEN)
+#define PRS_RACL_RX (PRS_ASYNC_RACL_RX)
+#define PRS_RACL_TX (PRS_ASYNC_RACL_TX)
+#define PRS_RACL_CTIOUT0 (PRS_ASYNC_RACL_CTIOUT0)
+#define PRS_RACL_CTIOUT1 (PRS_ASYNC_RACL_CTIOUT1)
+#define PRS_RACL_CTIOUT2 (PRS_ASYNC_RACL_CTIOUT2)
+#define PRS_RAC_CTIOUT3 (PRS_ASYNC_RAC_CTIOUT3)
+#define PRS_RAC_AUXADCDATA (PRS_ASYNC_RAC_AUXADCDATA)
+#define PRS_RAC_AUXADCDATAVALID (PRS_ASYNC_RAC_AUXADCDATAVALID)
+#define PRS_TIMER4_UF (PRS_ASYNC_TIMER4_UF)
+#define PRS_TIMER4_OF (PRS_ASYNC_TIMER4_OF)
+#define PRS_TIMER4_CC0 (PRS_ASYNC_TIMER4_CC0)
+#define PRS_TIMER4_CC1 (PRS_ASYNC_TIMER4_CC1)
+#define PRS_TIMER4_CC2 (PRS_ASYNC_TIMER4_CC2)
+#define PRS_ACMP0_OUT (PRS_ASYNC_ACMP0_OUT)
+#define PRS_ACMP1_OUT (PRS_ASYNC_ACMP1_OUT)
+#define PRS_VDAC0L_CH0WARM (PRS_ASYNC_VDAC0L_CH0WARM)
+#define PRS_VDAC0L_CH1WARM (PRS_ASYNC_VDAC0L_CH1WARM)
+#define PRS_VDAC0L_CH0DONEASYNC (PRS_ASYNC_VDAC0L_CH0DONEASYNC)
+#define PRS_VDAC0L_CH1DONEASYNC (PRS_ASYNC_VDAC0L_CH1DONEASYNC)
+#define PRS_VDAC0L_INTERNALTIMEROF (PRS_ASYNC_VDAC0L_INTERNALTIMEROF)
+#define PRS_VDAC0L_REFRESHTIMEROF (PRS_ASYNC_VDAC0L_REFRESHTIMEROF)
+#define PRS_PCNT0_DIR (PRS_ASYNC_PCNT0_DIR)
+#define PRS_PCNT0_UFOF (PRS_ASYNC_PCNT0_UFOF)
+#define PRS_SYSRTC0_GRP0OUT0 (PRS_ASYNC_SYSRTC0_GRP0OUT0)
+#define PRS_SYSRTC0_GRP0OUT1 (PRS_ASYNC_SYSRTC0_GRP0OUT1)
+#define PRS_SYSRTC0_GRP1OUT0 (PRS_ASYNC_SYSRTC0_GRP1OUT0)
+#define PRS_SYSRTC0_GRP1OUT1 (PRS_ASYNC_SYSRTC0_GRP1OUT1)
+#define PRS_LESENSE_DECOUT0 (PRS_ASYNC_LESENSE_DECOUT0)
+#define PRS_LESENSE_DECOUT1 (PRS_ASYNC_LESENSE_DECOUT1)
+#define PRS_LESENSE_DECOUT2 (PRS_ASYNC_LESENSE_DECOUT2)
+#define PRS_LESENSE_DECCMP (PRS_ASYNC_LESENSE_DECCMP)
+#define PRS_HFXO0L_STATUS (PRS_ASYNC_HFXO0L_STATUS)
+#define PRS_HFXO0L_STATUS1 (PRS_ASYNC_HFXO0L_STATUS1)
+#define PRS_EUSART0L_CS (PRS_ASYNC_EUSART0L_CS)
+#define PRS_EUSART0L_IRDATX (PRS_ASYNC_EUSART0L_IRDATX)
+#define PRS_EUSART0L_RTS (PRS_ASYNC_EUSART0L_RTS)
+#define PRS_EUSART0L_RXDATAV (PRS_ASYNC_EUSART0L_RXDATAV)
+#define PRS_EUSART0L_TX (PRS_ASYNC_EUSART0L_TX)
+#define PRS_EUSART0L_TXC (PRS_ASYNC_EUSART0L_TXC)
+#define PRS_EUSART0L_RXFL (PRS_ASYNC_EUSART0L_RXFL)
+#define PRS_EUSART0L_TXFL (PRS_ASYNC_EUSART0L_TXFL)
+#define PRS_EUSART1L_CS (PRS_ASYNC_EUSART1L_CS)
+#define PRS_EUSART1L_IRDATX (PRS_ASYNC_EUSART1L_IRDATX)
+#define PRS_EUSART1L_RTS (PRS_ASYNC_EUSART1L_RTS)
+#define PRS_EUSART1L_RXDATAV (PRS_ASYNC_EUSART1L_RXDATAV)
+#define PRS_EUSART1L_TX (PRS_ASYNC_EUSART1L_TX)
+#define PRS_EUSART1L_TXC (PRS_ASYNC_EUSART1L_TXC)
+#define PRS_EUSART1L_RXFL (PRS_ASYNC_EUSART1L_RXFL)
+#define PRS_EUSART1L_TXFL (PRS_ASYNC_EUSART1L_TXFL)
+#define PRS_EUSART2L_CS (PRS_ASYNC_EUSART2L_CS)
+#define PRS_EUSART2L_IRDATX (PRS_ASYNC_EUSART2L_IRDATX)
+#define PRS_EUSART2L_RTS (PRS_ASYNC_EUSART2L_RTS)
+#define PRS_EUSART2L_RXDATAV (PRS_ASYNC_EUSART2L_RXDATAV)
+#define PRS_EUSART2L_TX (PRS_ASYNC_EUSART2L_TX)
+#define PRS_EUSART2L_TXC (PRS_ASYNC_EUSART2L_TXC)
+#define PRS_EUSART2L_RXFL (PRS_ASYNC_EUSART2L_RXFL)
+#define PRS_EUSART2L_TXFL (PRS_ASYNC_EUSART2L_TXFL)
+
+#endif // EFR32ZG23_PRS_SIGNALS_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_scratchpad.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_scratchpad.h
new file mode 100644
index 000000000..ae5ad6f5f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_scratchpad.h
@@ -0,0 +1,87 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 SCRATCHPAD register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_SCRATCHPAD_H
+#define EFR32ZG23_SCRATCHPAD_H
+#define SCRATCHPAD_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SCRATCHPAD SCRATCHPAD
+ * @{
+ * @brief EFR32ZG23 SCRATCHPAD Register Declaration.
+ *****************************************************************************/
+
+/** SCRATCHPAD Register Declaration. */
+typedef struct scratchpad_typedef{
+ __IOM uint32_t SREG0; /**< Scratchpad Register 0 */
+ __IOM uint32_t SREG1; /**< Scratchpad Register 1 */
+ uint32_t RESERVED0[1022U]; /**< Reserved for future use */
+ __IOM uint32_t SREG0_SET; /**< Scratchpad Register 0 */
+ __IOM uint32_t SREG1_SET; /**< Scratchpad Register 1 */
+ uint32_t RESERVED1[1022U]; /**< Reserved for future use */
+ __IOM uint32_t SREG0_CLR; /**< Scratchpad Register 0 */
+ __IOM uint32_t SREG1_CLR; /**< Scratchpad Register 1 */
+ uint32_t RESERVED2[1022U]; /**< Reserved for future use */
+ __IOM uint32_t SREG0_TGL; /**< Scratchpad Register 0 */
+ __IOM uint32_t SREG1_TGL; /**< Scratchpad Register 1 */
+} SCRATCHPAD_TypeDef;
+/** @} End of group EFR32ZG23_SCRATCHPAD */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SCRATCHPAD
+ * @{
+ * @defgroup EFR32ZG23_SCRATCHPAD_BitFields SCRATCHPAD Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SCRATCHPAD SREG0 */
+#define _SCRATCHPAD_SREG0_RESETVALUE 0x00000000UL /**< Default value for SCRATCHPAD_SREG0 */
+#define _SCRATCHPAD_SREG0_MASK 0xFFFFFFFFUL /**< Mask for SCRATCHPAD_SREG0 */
+#define _SCRATCHPAD_SREG0_SCRATCH_SHIFT 0 /**< Shift value for SCRATCHPAD_SCRATCH */
+#define _SCRATCHPAD_SREG0_SCRATCH_MASK 0xFFFFFFFFUL /**< Bit mask for SCRATCHPAD_SCRATCH */
+#define _SCRATCHPAD_SREG0_SCRATCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for SCRATCHPAD_SREG0 */
+#define SCRATCHPAD_SREG0_SCRATCH_DEFAULT (_SCRATCHPAD_SREG0_SCRATCH_DEFAULT << 0) /**< Shifted mode DEFAULT for SCRATCHPAD_SREG0 */
+
+/* Bit fields for SCRATCHPAD SREG1 */
+#define _SCRATCHPAD_SREG1_RESETVALUE 0x00000000UL /**< Default value for SCRATCHPAD_SREG1 */
+#define _SCRATCHPAD_SREG1_MASK 0xFFFFFFFFUL /**< Mask for SCRATCHPAD_SREG1 */
+#define _SCRATCHPAD_SREG1_SCRATCH_SHIFT 0 /**< Shift value for SCRATCHPAD_SCRATCH */
+#define _SCRATCHPAD_SREG1_SCRATCH_MASK 0xFFFFFFFFUL /**< Bit mask for SCRATCHPAD_SCRATCH */
+#define _SCRATCHPAD_SREG1_SCRATCH_DEFAULT 0x00000000UL /**< Mode DEFAULT for SCRATCHPAD_SREG1 */
+#define SCRATCHPAD_SREG1_SCRATCH_DEFAULT (_SCRATCHPAD_SREG1_SCRATCH_DEFAULT << 0) /**< Shifted mode DEFAULT for SCRATCHPAD_SREG1 */
+
+/** @} End of group EFR32ZG23_SCRATCHPAD_BitFields */
+/** @} End of group EFR32ZG23_SCRATCHPAD */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_SCRATCHPAD_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_semailbox.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_semailbox.h
new file mode 100644
index 000000000..86bcba1c0
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_semailbox.h
@@ -0,0 +1,383 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 SEMAILBOX register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_SEMAILBOX_H
+#define EFR32ZG23_SEMAILBOX_H
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SEMAILBOX_HOST SEMAILBOX_HOST
+ * @{
+ * @brief EFR32ZG23 SEMAILBOX_HOST Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_HOST Register Declaration. */
+typedef struct semailbox_host_typedef{
+ __IOM uint32_t FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t TX_STATUS; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t RX_STATUS; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t TX_PROT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t RX_PROT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t TX_HEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t RX_HEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t CONFIGURATION; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_HOST_TypeDef;
+/** @} End of group EFR32ZG23_SEMAILBOX_HOST */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SEMAILBOX_HOST
+ * @{
+ * @defgroup EFR32ZG23_SEMAILBOX_HOST_BitFields SEMAILBOX_HOST Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX FIFO */
+#define _SEMAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_FIFO */
+#define SEMAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_FIFO */
+
+/* Bit fields for SEMAILBOX TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_TX_STATUS */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_TX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define _SEMAILBOX_TX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_TX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_TX_STATUS_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXINT_DEFAULT (_SEMAILBOX_TX_STATUS_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_TX_STATUS_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXFULL_DEFAULT (_SEMAILBOX_TX_STATUS_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+#define SEMAILBOX_TX_STATUS_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_TX_STATUS_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_STATUS */
+#define SEMAILBOX_TX_STATUS_TXERROR_DEFAULT (_SEMAILBOX_TX_STATUS_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_STATUS*/
+
+/* Bit fields for SEMAILBOX RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_RX_STATUS */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT (_SEMAILBOX_RX_STATUS_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define _SEMAILBOX_RX_STATUS_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT (_SEMAILBOX_RX_STATUS_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_RX_STATUS_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXINT_DEFAULT (_SEMAILBOX_RX_STATUS_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT (_SEMAILBOX_RX_STATUS_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_RX_STATUS_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXHDR_DEFAULT (_SEMAILBOX_RX_STATUS_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+#define SEMAILBOX_RX_STATUS_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_RX_STATUS_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_STATUS */
+#define SEMAILBOX_RX_STATUS_RXERROR_DEFAULT (_SEMAILBOX_RX_STATUS_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_STATUS*/
+
+/* Bit fields for SEMAILBOX TX_PROT */
+#define _SEMAILBOX_TX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_TX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_TX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_TX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_TX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+#define _SEMAILBOX_TX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_TX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_PROT */
+#define SEMAILBOX_TX_PROT_USER_DEFAULT (_SEMAILBOX_TX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_TX_PROT */
+
+/* Bit fields for SEMAILBOX RX_PROT */
+#define _SEMAILBOX_RX_PROT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT (_SEMAILBOX_RX_PROT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT (_SEMAILBOX_RX_PROT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_RX_PROT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_NONSECURE_DEFAULT (_SEMAILBOX_RX_PROT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+#define _SEMAILBOX_RX_PROT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_RX_PROT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_PROT */
+#define SEMAILBOX_RX_PROT_USER_DEFAULT (_SEMAILBOX_RX_PROT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_RX_PROT */
+
+/* Bit fields for SEMAILBOX TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_TX_HEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_TX_HEADER */
+#define SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT (_SEMAILBOX_TX_HEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_TX_HEADER*/
+
+/* Bit fields for SEMAILBOX RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_RX_HEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_RX_HEADER */
+#define SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT (_SEMAILBOX_RX_HEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_RX_HEADER*/
+
+/* Bit fields for SEMAILBOX CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_CONFIGURATION */
+#define _SEMAILBOX_CONFIGURATION_MASK 0x00000003UL /**< Mask for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+#define SEMAILBOX_CONFIGURATION_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_CONFIGURATION */
+#define SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT (_SEMAILBOX_CONFIGURATION_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_CONFIGURATION*/
+
+/** @} End of group EFR32ZG23_SEMAILBOX_HOST_BitFields */
+/** @} End of group EFR32ZG23_SEMAILBOX_HOST */
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SEMAILBOX_APBSE SEMAILBOX_APBSE
+ * @{
+ * @brief EFR32ZG23 SEMAILBOX_APBSE Register Declaration.
+ *****************************************************************************/
+
+/** SEMAILBOX_APBSE Register Declaration. */
+typedef struct semailbox_apbse_typedef{
+ __IOM uint32_t SE_ESECURE_MAILBOX_FIFO; /**< ESECURE_MAILBOX_FIFO */
+ uint32_t RESERVED0[15U]; /**< Reserved for future use */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXSTAT; /**< ESECURE_MAILBOX_TXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXSTAT; /**< ESECURE_MAILBOX_RXSTAT */
+ __IM uint32_t SE_ESECURE_MAILBOX_TXPROTECT; /**< ESECURE_MAILBOX_TXPROTECT */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXPROTECT; /**< ESECURE_MAILBOX_RXPROTECT */
+ __IOM uint32_t SE_ESECURE_MAILBOX_TXHEADER; /**< ESECURE_MAILBOX_TXHEADER */
+ __IM uint32_t SE_ESECURE_MAILBOX_RXHEADER; /**< ESECURE_MAILBOX_RXHEADER */
+ __IOM uint32_t SE_ESECURE_MAILBOX_CONFIG; /**< ESECURE_MAILBOX_CONFIG */
+} SEMAILBOX_APBSE_TypeDef;
+/** @} End of group EFR32ZG23_SEMAILBOX_APBSE */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SEMAILBOX_APBSE
+ * @{
+ * @defgroup EFR32ZG23_SEMAILBOX_APBSE_BitFields SEMAILBOX_APBSE Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_SHIFT 0 /**< Shift value for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_FIFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_FIFO_FIFO_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_FIFO*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MASK 0x00BFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT (0x1UL << 20) /**< TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_SHIFT 20 /**< Shift value for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_TXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL (0x1UL << 21) /**< TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_SHIFT 21 /**< Shift value for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_MASK 0x200000UL /**< Bit mask for SEMAILBOX_TXFULL */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXFULL_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR (0x1UL << 23) /**< TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_TXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT_TXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXSTAT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MASK 0x00FFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_SHIFT 0 /**< Shift value for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_MASK 0xFFFFUL /**< Bit mask for SEMAILBOX_REMBYTES */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_REMBYTES_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_SHIFT 16 /**< Shift value for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_MASK 0xF0000UL /**< Bit mask for SEMAILBOX_MSGINFO */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_MSGINFO_DEFAULT << 16) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT (0x1UL << 20) /**< RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_SHIFT 20 /**< Shift value for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_MASK 0x100000UL /**< Bit mask for SEMAILBOX_RXINT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXINT_DEFAULT << 20) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY (0x1UL << 21) /**< RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_SHIFT 21 /**< Shift value for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_MASK 0x200000UL /**< Bit mask for SEMAILBOX_RXEMPTY */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXEMPTY_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR (0x1UL << 22) /**< RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_SHIFT 22 /**< Shift value for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_MASK 0x400000UL /**< Bit mask for SEMAILBOX_RXHDR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXHDR_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR (0x1UL << 23) /**< RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_SHIFT 23 /**< Shift value for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_MASK 0x800000UL /**< Bit mask for SEMAILBOX_RXERROR */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT_RXERROR_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXSTAT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXPROTECT */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_MASK 0xFFE00000UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED (0x1UL << 21) /**< UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_SHIFT 21 /**< Shift value for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_MASK 0x200000UL /**< Bit mask for SEMAILBOX_UNPROTECTED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_UNPROTECTED_DEFAULT << 21) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED (0x1UL << 22) /**< PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_SHIFT 22 /**< Shift value for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_MASK 0x400000UL /**< Bit mask for SEMAILBOX_PRIVILEGED */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_PRIVILEGED_DEFAULT << 22) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE (0x1UL << 23) /**< NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_SHIFT 23 /**< Shift value for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_MASK 0x800000UL /**< Bit mask for SEMAILBOX_NONSECURE */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_NONSECURE_DEFAULT << 23) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_SHIFT 24 /**< Shift value for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_MASK 0xFF000000UL /**< Bit mask for SEMAILBOX_USER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT_USER_DEFAULT << 24) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXPROTECT*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_TXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER_TXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_TXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_MASK 0xFFFFFFFFUL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_SHIFT 0 /**< Shift value for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_MASK 0xFFFFFFFFUL /**< Bit mask for SEMAILBOX_RXHEADER */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER_RXHEADER_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_RXHEADER*/
+
+/* Bit fields for SEMAILBOX SE_ESECURE_MAILBOX_CONFIG */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RESETVALUE 0x00000000UL /**< Default value for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_MASK 0x00000003UL /**< Mask for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN (0x1UL << 0) /**< TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_SHIFT 0 /**< Shift value for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_MASK 0x1UL /**< Bit mask for SEMAILBOX_TXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_TXINTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN (0x1UL << 1) /**< RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_SHIFT 1 /**< Shift value for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_MASK 0x2UL /**< Bit mask for SEMAILBOX_RXINTEN */
+#define _SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+#define SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT (_SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG_RXINTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SEMAILBOX_SE_ESECURE_MAILBOX_CONFIG*/
+
+/** @} End of group EFR32ZG23_SEMAILBOX_APBSE_BitFields */
+/** @} End of group EFR32ZG23_SEMAILBOX_APBSE */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_SEMAILBOX_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_smu.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_smu.h
new file mode 100644
index 000000000..dd1483d7a
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_smu.h
@@ -0,0 +1,1483 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 SMU register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_SMU_H
+#define EFR32ZG23_SMU_H
+#define SMU_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SMU SMU
+ * @{
+ * @brief EFR32ZG23 SMU Register Declaration.
+ *****************************************************************************/
+
+/** SMU Register Declaration. */
+typedef struct smu_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL; /**< M33 Control Settings */
+ uint32_t RESERVED1[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0; /**< Privileged Access */
+ __IOM uint32_t PPUPATD1; /**< Privileged Access */
+ uint32_t RESERVED2[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0; /**< Secure Access */
+ __IOM uint32_t PPUSATD1; /**< Secure Access */
+ uint32_t RESERVED3[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS; /**< Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0; /**< Privileged Attribute */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0; /**< Secure Attribute */
+ uint32_t RESERVED6[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS; /**< Fault Status */
+ __IM uint32_t BMPUFSADDR; /**< Fault Status Address */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0; /**< Region Types 0 */
+ __IOM uint32_t ESAURTYPES1; /**< Region Types 1 */
+ uint32_t RESERVED8[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB12; /**< Movable Region Boundary */
+ uint32_t RESERVED9[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB56; /**< Movable Region Boundary */
+ uint32_t RESERVED10[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_SET; /**< M33 Control Settings */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_SET; /**< Privileged Access */
+ __IOM uint32_t PPUPATD1_SET; /**< Privileged Access */
+ uint32_t RESERVED13[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_SET; /**< Secure Access */
+ __IOM uint32_t PPUSATD1_SET; /**< Secure Access */
+ uint32_t RESERVED14[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_SET; /**< Fault Status */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_SET; /**< Privileged Attribute */
+ uint32_t RESERVED16[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_SET; /**< Secure Attribute */
+ uint32_t RESERVED17[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_SET; /**< Fault Status */
+ __IM uint32_t BMPUFSADDR_SET; /**< Fault Status Address */
+ uint32_t RESERVED18[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_SET; /**< Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_SET; /**< Region Types 1 */
+ uint32_t RESERVED19[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_SET; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB12_SET; /**< Movable Region Boundary */
+ uint32_t RESERVED20[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_SET; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB56_SET; /**< Movable Region Boundary */
+ uint32_t RESERVED21[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_CLR; /**< M33 Control Settings */
+ uint32_t RESERVED23[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_CLR; /**< Privileged Access */
+ __IOM uint32_t PPUPATD1_CLR; /**< Privileged Access */
+ uint32_t RESERVED24[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_CLR; /**< Secure Access */
+ __IOM uint32_t PPUSATD1_CLR; /**< Secure Access */
+ uint32_t RESERVED25[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_CLR; /**< Fault Status */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_CLR; /**< Privileged Attribute */
+ uint32_t RESERVED27[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_CLR; /**< Secure Attribute */
+ uint32_t RESERVED28[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_CLR; /**< Fault Status */
+ __IM uint32_t BMPUFSADDR_CLR; /**< Fault Status Address */
+ uint32_t RESERVED29[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_CLR; /**< Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_CLR; /**< Region Types 1 */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_CLR; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB12_CLR; /**< Movable Region Boundary */
+ uint32_t RESERVED31[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_CLR; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB56_CLR; /**< Movable Region Boundary */
+ uint32_t RESERVED32[862U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED33[3U]; /**< Reserved for future use */
+ __IOM uint32_t M33CTRL_TGL; /**< M33 Control Settings */
+ uint32_t RESERVED34[7U]; /**< Reserved for future use */
+ __IOM uint32_t PPUPATD0_TGL; /**< Privileged Access */
+ __IOM uint32_t PPUPATD1_TGL; /**< Privileged Access */
+ uint32_t RESERVED35[6U]; /**< Reserved for future use */
+ __IOM uint32_t PPUSATD0_TGL; /**< Secure Access */
+ __IOM uint32_t PPUSATD1_TGL; /**< Secure Access */
+ uint32_t RESERVED36[54U]; /**< Reserved for future use */
+ __IM uint32_t PPUFS_TGL; /**< Fault Status */
+ uint32_t RESERVED37[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUPATD0_TGL; /**< Privileged Attribute */
+ uint32_t RESERVED38[7U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUSATD0_TGL; /**< Secure Attribute */
+ uint32_t RESERVED39[55U]; /**< Reserved for future use */
+ __IM uint32_t BMPUFS_TGL; /**< Fault Status */
+ __IM uint32_t BMPUFSADDR_TGL; /**< Fault Status Address */
+ uint32_t RESERVED40[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAURTYPES0_TGL; /**< Region Types 0 */
+ __IOM uint32_t ESAURTYPES1_TGL; /**< Region Types 1 */
+ uint32_t RESERVED41[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB01_TGL; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB12_TGL; /**< Movable Region Boundary */
+ uint32_t RESERVED42[2U]; /**< Reserved for future use */
+ __IOM uint32_t ESAUMRB45_TGL; /**< Movable Region Boundary */
+ __IOM uint32_t ESAUMRB56_TGL; /**< Movable Region Boundary */
+} SMU_TypeDef;
+/** @} End of group EFR32ZG23_SMU */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SMU
+ * @{
+ * @defgroup EFR32ZG23_SMU_BitFields SMU Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU IPVERSION */
+#define _SMU_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for SMU_IPVERSION */
+#define _SMU_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_IPVERSION */
+#define _SMU_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for SMU_IPVERSION */
+#define SMU_IPVERSION_IPVERSION_DEFAULT (_SMU_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IPVERSION */
+
+/* Bit fields for SMU STATUS */
+#define _SMU_STATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_STATUS */
+#define _SMU_STATUS_MASK 0x00000003UL /**< Mask for SMU_STATUS */
+#define SMU_STATUS_SMULOCK (0x1UL << 0) /**< SMU Lock */
+#define _SMU_STATUS_SMULOCK_SHIFT 0 /**< Shift value for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_MASK 0x1UL /**< Bit mask for SMU_SMULOCK */
+#define _SMU_STATUS_SMULOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_STATUS */
+#define _SMU_STATUS_SMULOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_DEFAULT (_SMU_STATUS_SMULOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_UNLOCKED (_SMU_STATUS_SMULOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_STATUS */
+#define SMU_STATUS_SMULOCK_LOCKED (_SMU_STATUS_SMULOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR (0x1UL << 1) /**< SMU Programming Error */
+#define _SMU_STATUS_SMUPRGERR_SHIFT 1 /**< Shift value for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_MASK 0x2UL /**< Bit mask for SMU_SMUPRGERR */
+#define _SMU_STATUS_SMUPRGERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_STATUS */
+#define SMU_STATUS_SMUPRGERR_DEFAULT (_SMU_STATUS_SMUPRGERR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_STATUS */
+
+/* Bit fields for SMU LOCK */
+#define _SMU_LOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_LOCK */
+#define _SMU_LOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_SHIFT 0 /**< Shift value for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMULOCKKEY */
+#define _SMU_LOCK_SMULOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_LOCK */
+#define _SMU_LOCK_SMULOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_DEFAULT (_SMU_LOCK_SMULOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_LOCK */
+#define SMU_LOCK_SMULOCKKEY_UNLOCK (_SMU_LOCK_SMULOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_LOCK */
+
+/* Bit fields for SMU IF */
+#define _SMU_IF_RESETVALUE 0x00000000UL /**< Default value for SMU_IF */
+#define _SMU_IF_MASK 0x00030005UL /**< Mask for SMU_IF */
+#define SMU_IF_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Flag */
+#define _SMU_IF_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IF_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUPRIV_DEFAULT (_SMU_IF_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Flag */
+#define _SMU_IF_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IF_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IF_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUINST_DEFAULT (_SMU_IF_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Flag */
+#define _SMU_IF_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IF_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_PPUSEC_DEFAULT (_SMU_IF_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Flag */
+#define _SMU_IF_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IF_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IF */
+#define SMU_IF_BMPUSEC_DEFAULT (_SMU_IF_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IF */
+
+/* Bit fields for SMU IEN */
+#define _SMU_IEN_RESETVALUE 0x00000000UL /**< Default value for SMU_IEN */
+#define _SMU_IEN_MASK 0x00030005UL /**< Mask for SMU_IEN */
+#define SMU_IEN_PPUPRIV (0x1UL << 0) /**< PPU Privilege Interrupt Enable */
+#define _SMU_IEN_PPUPRIV_SHIFT 0 /**< Shift value for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUPRIV */
+#define _SMU_IEN_PPUPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUPRIV_DEFAULT (_SMU_IEN_PPUPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST (0x1UL << 2) /**< PPU Instruction Interrupt Enable */
+#define _SMU_IEN_PPUINST_SHIFT 2 /**< Shift value for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_MASK 0x4UL /**< Bit mask for SMU_PPUINST */
+#define _SMU_IEN_PPUINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUINST_DEFAULT (_SMU_IEN_PPUINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC (0x1UL << 16) /**< PPU Security Interrupt Enable */
+#define _SMU_IEN_PPUSEC_SHIFT 16 /**< Shift value for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_MASK 0x10000UL /**< Bit mask for SMU_PPUSEC */
+#define _SMU_IEN_PPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_PPUSEC_DEFAULT (_SMU_IEN_PPUSEC_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC (0x1UL << 17) /**< BMPU Security Interrupt Enable */
+#define _SMU_IEN_BMPUSEC_SHIFT 17 /**< Shift value for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_MASK 0x20000UL /**< Bit mask for SMU_BMPUSEC */
+#define _SMU_IEN_BMPUSEC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_IEN */
+#define SMU_IEN_BMPUSEC_DEFAULT (_SMU_IEN_BMPUSEC_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_IEN */
+
+/* Bit fields for SMU M33CTRL */
+#define _SMU_M33CTRL_RESETVALUE 0x00000000UL /**< Default value for SMU_M33CTRL */
+#define _SMU_M33CTRL_MASK 0x0000001FUL /**< Mask for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR (0x1UL << 0) /**< New BitField */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_SHIFT 0 /**< Shift value for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_MASK 0x1UL /**< Bit mask for SMU_LOCKSVTAIRCR */
+#define _SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT (_SMU_M33CTRL_LOCKSVTAIRCR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR (0x1UL << 1) /**< New BitField */
+#define _SMU_M33CTRL_LOCKNSVTOR_SHIFT 1 /**< Shift value for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_MASK 0x2UL /**< Bit mask for SMU_LOCKNSVTOR */
+#define _SMU_M33CTRL_LOCKNSVTOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSVTOR_DEFAULT (_SMU_M33CTRL_LOCKNSVTOR_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU (0x1UL << 2) /**< New BitField */
+#define _SMU_M33CTRL_LOCKSMPU_SHIFT 2 /**< Shift value for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_MASK 0x4UL /**< Bit mask for SMU_LOCKSMPU */
+#define _SMU_M33CTRL_LOCKSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSMPU_DEFAULT (_SMU_M33CTRL_LOCKSMPU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU (0x1UL << 3) /**< New BitField */
+#define _SMU_M33CTRL_LOCKNSMPU_SHIFT 3 /**< Shift value for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_MASK 0x8UL /**< Bit mask for SMU_LOCKNSMPU */
+#define _SMU_M33CTRL_LOCKNSMPU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKNSMPU_DEFAULT (_SMU_M33CTRL_LOCKNSMPU_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU (0x1UL << 4) /**< New BitField */
+#define _SMU_M33CTRL_LOCKSAU_SHIFT 4 /**< Shift value for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_MASK 0x10UL /**< Bit mask for SMU_LOCKSAU */
+#define _SMU_M33CTRL_LOCKSAU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_M33CTRL */
+#define SMU_M33CTRL_LOCKSAU_DEFAULT (_SMU_M33CTRL_LOCKSAU_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_M33CTRL */
+
+/* Bit fields for SMU PPUPATD0 */
+#define _SMU_PPUPATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUPATD0 */
+#define _SMU_PPUPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUPATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EMU_DEFAULT (_SMU_PPUPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUPATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CMU_DEFAULT (_SMU_PPUPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0 (0x1UL << 3) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUPATD0_HFRCO0_SHIFT 3 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_MASK 0x8UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUPATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HFRCO0_DEFAULT (_SMU_PPUPATD0_HFRCO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO (0x1UL << 4) /**< FSRCO Privileged Access */
+#define _SMU_PPUPATD0_FSRCO_SHIFT 4 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_MASK 0x10UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUPATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_FSRCO_DEFAULT (_SMU_PPUPATD0_FSRCO_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0 (0x1UL << 5) /**< DPLL0 Privileged Access */
+#define _SMU_PPUPATD0_DPLL0_SHIFT 5 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_MASK 0x20UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUPATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DPLL0_DEFAULT (_SMU_PPUPATD0_DPLL0_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO (0x1UL << 6) /**< LFXO Privileged Access */
+#define _SMU_PPUPATD0_LFXO_SHIFT 6 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_MASK 0x40UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUPATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFXO_DEFAULT (_SMU_PPUPATD0_LFXO_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO (0x1UL << 7) /**< LFRCO Privileged Access */
+#define _SMU_PPUPATD0_LFRCO_SHIFT 7 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_MASK 0x80UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUPATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LFRCO_DEFAULT (_SMU_PPUPATD0_LFRCO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO (0x1UL << 8) /**< ULFRCO Privileged Access */
+#define _SMU_PPUPATD0_ULFRCO_SHIFT 8 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_MASK 0x100UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUPATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ULFRCO_DEFAULT (_SMU_PPUPATD0_ULFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC (0x1UL << 9) /**< MSC Privileged Access */
+#define _SMU_PPUPATD0_MSC_SHIFT 9 /**< Shift value for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_MASK 0x200UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUPATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_MSC_DEFAULT (_SMU_PPUPATD0_MSC_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0 (0x1UL << 10) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUPATD0_ICACHE0_SHIFT 10 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_MASK 0x400UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUPATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_ICACHE0_DEFAULT (_SMU_PPUPATD0_ICACHE0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS (0x1UL << 11) /**< PRS Privileged Access */
+#define _SMU_PPUPATD0_PRS_SHIFT 11 /**< Shift value for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_MASK 0x800UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUPATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_PRS_DEFAULT (_SMU_PPUPATD0_PRS_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO (0x1UL << 12) /**< GPIO Privileged Access */
+#define _SMU_PPUPATD0_GPIO_SHIFT 12 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_MASK 0x1000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUPATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPIO_DEFAULT (_SMU_PPUPATD0_GPIO_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA (0x1UL << 13) /**< LDMA Privileged Access */
+#define _SMU_PPUPATD0_LDMA_SHIFT 13 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_MASK 0x2000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMA_DEFAULT (_SMU_PPUPATD0_LDMA_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR (0x1UL << 14) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUPATD0_LDMAXBAR_SHIFT 14 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_MASK 0x4000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUPATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_LDMAXBAR_DEFAULT (_SMU_PPUPATD0_LDMAXBAR_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0 (0x1UL << 15) /**< TIMER0 Privileged Access */
+#define _SMU_PPUPATD0_TIMER0_SHIFT 15 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_MASK 0x8000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUPATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER0_DEFAULT (_SMU_PPUPATD0_TIMER0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1 (0x1UL << 16) /**< TIMER1 Privileged Access */
+#define _SMU_PPUPATD0_TIMER1_SHIFT 16 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_MASK 0x10000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUPATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER1_DEFAULT (_SMU_PPUPATD0_TIMER1_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2 (0x1UL << 17) /**< TIMER2 Privileged Access */
+#define _SMU_PPUPATD0_TIMER2_SHIFT 17 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_MASK 0x20000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUPATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER2_DEFAULT (_SMU_PPUPATD0_TIMER2_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3 (0x1UL << 18) /**< TIMER3 Privileged Access */
+#define _SMU_PPUPATD0_TIMER3_SHIFT 18 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_MASK 0x40000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUPATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER3_DEFAULT (_SMU_PPUPATD0_TIMER3_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4 (0x1UL << 19) /**< TIMER4 Privileged Access */
+#define _SMU_PPUPATD0_TIMER4_SHIFT 19 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_MASK 0x80000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUPATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_TIMER4_DEFAULT (_SMU_PPUPATD0_TIMER4_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0 (0x1UL << 20) /**< USART0 Privileged Access */
+#define _SMU_PPUPATD0_USART0_SHIFT 20 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_MASK 0x100000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUPATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_USART0_DEFAULT (_SMU_PPUPATD0_USART0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC (0x1UL << 21) /**< BURTC Privileged Access */
+#define _SMU_PPUPATD0_BURTC_SHIFT 21 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_MASK 0x200000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUPATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURTC_DEFAULT (_SMU_PPUPATD0_BURTC_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1 (0x1UL << 22) /**< I2C1 Privileged Access */
+#define _SMU_PPUPATD0_I2C1_SHIFT 22 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_MASK 0x400000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUPATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_I2C1_DEFAULT (_SMU_PPUPATD0_I2C1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL (0x1UL << 23) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_SHIFT 23 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_MASK 0x800000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUPATD0_CHIPTESTCTRL_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS (0x1UL << 24) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_SHIFT 24 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_MASK 0x1000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUPATD0_SYSCFGCFGNS_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG (0x1UL << 25) /**< SYSCFG Privileged Access */
+#define _SMU_PPUPATD0_SYSCFG_SHIFT 25 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_MASK 0x2000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUPATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_SYSCFG_DEFAULT (_SMU_PPUPATD0_SYSCFG_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM (0x1UL << 26) /**< BURAM Privileged Access */
+#define _SMU_PPUPATD0_BURAM_SHIFT 26 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_MASK 0x4000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUPATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_BURAM_DEFAULT (_SMU_PPUPATD0_BURAM_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC (0x1UL << 27) /**< GPCRC Privileged Access */
+#define _SMU_PPUPATD0_GPCRC_SHIFT 27 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_MASK 0x8000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUPATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_GPCRC_DEFAULT (_SMU_PPUPATD0_GPCRC_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC (0x1UL << 28) /**< DCDC Privileged Access */
+#define _SMU_PPUPATD0_DCDC_SHIFT 28 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_MASK 0x10000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUPATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_DCDC_DEFAULT (_SMU_PPUPATD0_DCDC_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HOSTMAILBOX (0x1UL << 29) /**< HOSTMAILBOX Privileged Access */
+#define _SMU_PPUPATD0_HOSTMAILBOX_SHIFT 29 /**< Shift value for SMU_HOSTMAILBOX */
+#define _SMU_PPUPATD0_HOSTMAILBOX_MASK 0x20000000UL /**< Bit mask for SMU_HOSTMAILBOX */
+#define _SMU_PPUPATD0_HOSTMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_HOSTMAILBOX_DEFAULT (_SMU_PPUPATD0_HOSTMAILBOX_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EUSART1 (0x1UL << 30) /**< EUSART1 Privileged Access */
+#define _SMU_PPUPATD0_EUSART1_SHIFT 30 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUPATD0_EUSART1_MASK 0x40000000UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUPATD0_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EUSART1_DEFAULT (_SMU_PPUPATD0_EUSART1_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EUSART2 (0x1UL << 31) /**< EUSART2 Privileged Access */
+#define _SMU_PPUPATD0_EUSART2_SHIFT 31 /**< Shift value for SMU_EUSART2 */
+#define _SMU_PPUPATD0_EUSART2_MASK 0x80000000UL /**< Bit mask for SMU_EUSART2 */
+#define _SMU_PPUPATD0_EUSART2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD0 */
+#define SMU_PPUPATD0_EUSART2_DEFAULT (_SMU_PPUPATD0_EUSART2_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUPATD0 */
+
+/* Bit fields for SMU PPUPATD1 */
+#define _SMU_PPUPATD1_RESETVALUE 0x01FFFFFFUL /**< Default value for SMU_PPUPATD1 */
+#define _SMU_PPUPATD1_MASK 0x01FFFFFFUL /**< Mask for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SYSRTC (0x1UL << 0) /**< SYSRTC Privileged Access */
+#define _SMU_PPUPATD1_SYSRTC_SHIFT 0 /**< Shift value for SMU_SYSRTC */
+#define _SMU_PPUPATD1_SYSRTC_MASK 0x1UL /**< Bit mask for SMU_SYSRTC */
+#define _SMU_PPUPATD1_SYSRTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SYSRTC_DEFAULT (_SMU_PPUPATD1_SYSRTC_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LCD (0x1UL << 1) /**< LCD Privileged Access */
+#define _SMU_PPUPATD1_LCD_SHIFT 1 /**< Shift value for SMU_LCD */
+#define _SMU_PPUPATD1_LCD_MASK 0x2UL /**< Bit mask for SMU_LCD */
+#define _SMU_PPUPATD1_LCD_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LCD_DEFAULT (_SMU_PPUPATD1_LCD_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_KEYSCAN (0x1UL << 2) /**< KEYSCAN Privileged Access */
+#define _SMU_PPUPATD1_KEYSCAN_SHIFT 2 /**< Shift value for SMU_KEYSCAN */
+#define _SMU_PPUPATD1_KEYSCAN_MASK 0x4UL /**< Bit mask for SMU_KEYSCAN */
+#define _SMU_PPUPATD1_KEYSCAN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_KEYSCAN_DEFAULT (_SMU_PPUPATD1_KEYSCAN_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUPATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_DMEM_DEFAULT (_SMU_PPUPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LCDRF (0x1UL << 4) /**< LCDRF Privileged Access */
+#define _SMU_PPUPATD1_LCDRF_SHIFT 4 /**< Shift value for SMU_LCDRF */
+#define _SMU_PPUPATD1_LCDRF_MASK 0x10UL /**< Bit mask for SMU_LCDRF */
+#define _SMU_PPUPATD1_LCDRF_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LCDRF_DEFAULT (_SMU_PPUPATD1_LCDRF_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PFMXPPRF (0x1UL << 5) /**< PFMXPPRF Privileged Access */
+#define _SMU_PPUPATD1_PFMXPPRF_SHIFT 5 /**< Shift value for SMU_PFMXPPRF */
+#define _SMU_PPUPATD1_PFMXPPRF_MASK 0x20UL /**< Bit mask for SMU_PFMXPPRF */
+#define _SMU_PPUPATD1_PFMXPPRF_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PFMXPPRF_DEFAULT (_SMU_PPUPATD1_PFMXPPRF_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES (0x1UL << 6) /**< RADIOAES Privileged Access */
+#define _SMU_PPUPATD1_RADIOAES_SHIFT 6 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_MASK 0x40UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUPATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_RADIOAES_DEFAULT (_SMU_PPUPATD1_RADIOAES_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU (0x1UL << 7) /**< SMU Privileged Access */
+#define _SMU_PPUPATD1_SMU_SHIFT 7 /**< Shift value for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_MASK 0x80UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUPATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMU_DEFAULT (_SMU_PPUPATD1_SMU_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS (0x1UL << 8) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUPATD1_SMUCFGNS_SHIFT 8 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_MASK 0x100UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUPATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SMUCFGNS_DEFAULT (_SMU_PPUPATD1_SMUCFGNS_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0 (0x1UL << 9) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUPATD1_LETIMER0_SHIFT 9 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_MASK 0x200UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUPATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LETIMER0_DEFAULT (_SMU_PPUPATD1_LETIMER0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0 (0x1UL << 10) /**< IADC0 Privileged Access */
+#define _SMU_PPUPATD1_IADC0_SHIFT 10 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_MASK 0x400UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUPATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_IADC0_DEFAULT (_SMU_PPUPATD1_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0 (0x1UL << 11) /**< ACMP0 Privileged Access */
+#define _SMU_PPUPATD1_ACMP0_SHIFT 11 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_MASK 0x800UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUPATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP0_DEFAULT (_SMU_PPUPATD1_ACMP0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP1 (0x1UL << 12) /**< ACMP1 Privileged Access */
+#define _SMU_PPUPATD1_ACMP1_SHIFT 12 /**< Shift value for SMU_ACMP1 */
+#define _SMU_PPUPATD1_ACMP1_MASK 0x1000UL /**< Bit mask for SMU_ACMP1 */
+#define _SMU_PPUPATD1_ACMP1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_ACMP1_DEFAULT (_SMU_PPUPATD1_ACMP1_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0 (0x1UL << 13) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUPATD1_AMUXCP0_SHIFT 13 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_MASK 0x2000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUPATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AMUXCP0_DEFAULT (_SMU_PPUPATD1_AMUXCP0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_VDAC0 (0x1UL << 14) /**< VDAC0 Privileged Access */
+#define _SMU_PPUPATD1_VDAC0_SHIFT 14 /**< Shift value for SMU_VDAC0 */
+#define _SMU_PPUPATD1_VDAC0_MASK 0x4000UL /**< Bit mask for SMU_VDAC0 */
+#define _SMU_PPUPATD1_VDAC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_VDAC0_DEFAULT (_SMU_PPUPATD1_VDAC0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PCNT (0x1UL << 15) /**< PCNT Privileged Access */
+#define _SMU_PPUPATD1_PCNT_SHIFT 15 /**< Shift value for SMU_PCNT */
+#define _SMU_PPUPATD1_PCNT_MASK 0x8000UL /**< Bit mask for SMU_PCNT */
+#define _SMU_PPUPATD1_PCNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_PCNT_DEFAULT (_SMU_PPUPATD1_PCNT_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LESENSE (0x1UL << 16) /**< LESENSE Privileged Access */
+#define _SMU_PPUPATD1_LESENSE_SHIFT 16 /**< Shift value for SMU_LESENSE */
+#define _SMU_PPUPATD1_LESENSE_MASK 0x10000UL /**< Bit mask for SMU_LESENSE */
+#define _SMU_PPUPATD1_LESENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_LESENSE_DEFAULT (_SMU_PPUPATD1_LESENSE_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_HFRCO1 (0x1UL << 17) /**< HFRCO1 Privileged Access */
+#define _SMU_PPUPATD1_HFRCO1_SHIFT 17 /**< Shift value for SMU_HFRCO1 */
+#define _SMU_PPUPATD1_HFRCO1_MASK 0x20000UL /**< Bit mask for SMU_HFRCO1 */
+#define _SMU_PPUPATD1_HFRCO1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_HFRCO1_DEFAULT (_SMU_PPUPATD1_HFRCO1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_HFXO0 (0x1UL << 18) /**< HFXO0 Privileged Access */
+#define _SMU_PPUPATD1_HFXO0_SHIFT 18 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUPATD1_HFXO0_MASK 0x40000UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUPATD1_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_HFXO0_DEFAULT (_SMU_PPUPATD1_HFXO0_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0 (0x1UL << 19) /**< I2C0 Privileged Access */
+#define _SMU_PPUPATD1_I2C0_SHIFT 19 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_MASK 0x80000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUPATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_I2C0_DEFAULT (_SMU_PPUPATD1_I2C0_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0 (0x1UL << 20) /**< WDOG0 Privileged Access */
+#define _SMU_PPUPATD1_WDOG0_SHIFT 20 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_MASK 0x100000UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUPATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG0_DEFAULT (_SMU_PPUPATD1_WDOG0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG1 (0x1UL << 21) /**< WDOG1 Privileged Access */
+#define _SMU_PPUPATD1_WDOG1_SHIFT 21 /**< Shift value for SMU_WDOG1 */
+#define _SMU_PPUPATD1_WDOG1_MASK 0x200000UL /**< Bit mask for SMU_WDOG1 */
+#define _SMU_PPUPATD1_WDOG1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_WDOG1_DEFAULT (_SMU_PPUPATD1_WDOG1_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0 (0x1UL << 22) /**< EUSART0 Privileged Access */
+#define _SMU_PPUPATD1_EUSART0_SHIFT 22 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_MASK 0x400000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUPATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_EUSART0_DEFAULT (_SMU_PPUPATD1_EUSART0_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX (0x1UL << 23) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUPATD1_SEMAILBOX_SHIFT 23 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_MASK 0x800000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUPATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_SEMAILBOX_DEFAULT (_SMU_PPUPATD1_SEMAILBOX_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO (0x1UL << 24) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUPATD1_AHBRADIO_SHIFT 24 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_MASK 0x1000000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUPATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUPATD1 */
+#define SMU_PPUPATD1_AHBRADIO_DEFAULT (_SMU_PPUPATD1_AHBRADIO_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUPATD1 */
+
+/* Bit fields for SMU PPUSATD0 */
+#define _SMU_PPUSATD0_RESETVALUE 0xFFFFFFFFUL /**< Default value for SMU_PPUSATD0 */
+#define _SMU_PPUSATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU (0x1UL << 1) /**< EMU Secure Access */
+#define _SMU_PPUSATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUSATD0_EMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EMU_DEFAULT (_SMU_PPUSATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU (0x1UL << 2) /**< CMU Secure Access */
+#define _SMU_PPUSATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUSATD0_CMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CMU_DEFAULT (_SMU_PPUSATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0 (0x1UL << 3) /**< HFRCO0 Secure Access */
+#define _SMU_PPUSATD0_HFRCO0_SHIFT 3 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_MASK 0x8UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUSATD0_HFRCO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HFRCO0_DEFAULT (_SMU_PPUSATD0_HFRCO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO (0x1UL << 4) /**< FSRCO Secure Access */
+#define _SMU_PPUSATD0_FSRCO_SHIFT 4 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_MASK 0x10UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUSATD0_FSRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_FSRCO_DEFAULT (_SMU_PPUSATD0_FSRCO_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0 (0x1UL << 5) /**< DPLL0 Secure Access */
+#define _SMU_PPUSATD0_DPLL0_SHIFT 5 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_MASK 0x20UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUSATD0_DPLL0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DPLL0_DEFAULT (_SMU_PPUSATD0_DPLL0_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO (0x1UL << 6) /**< LFXO Secure Access */
+#define _SMU_PPUSATD0_LFXO_SHIFT 6 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_MASK 0x40UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUSATD0_LFXO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFXO_DEFAULT (_SMU_PPUSATD0_LFXO_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO (0x1UL << 7) /**< LFRCO Secure Access */
+#define _SMU_PPUSATD0_LFRCO_SHIFT 7 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_MASK 0x80UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUSATD0_LFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LFRCO_DEFAULT (_SMU_PPUSATD0_LFRCO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO (0x1UL << 8) /**< ULFRCO Secure Access */
+#define _SMU_PPUSATD0_ULFRCO_SHIFT 8 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_MASK 0x100UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUSATD0_ULFRCO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ULFRCO_DEFAULT (_SMU_PPUSATD0_ULFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC (0x1UL << 9) /**< MSC Secure Access */
+#define _SMU_PPUSATD0_MSC_SHIFT 9 /**< Shift value for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_MASK 0x200UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUSATD0_MSC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_MSC_DEFAULT (_SMU_PPUSATD0_MSC_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0 (0x1UL << 10) /**< ICACHE0 Secure Access */
+#define _SMU_PPUSATD0_ICACHE0_SHIFT 10 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_MASK 0x400UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUSATD0_ICACHE0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_ICACHE0_DEFAULT (_SMU_PPUSATD0_ICACHE0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS (0x1UL << 11) /**< PRS Secure Access */
+#define _SMU_PPUSATD0_PRS_SHIFT 11 /**< Shift value for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_MASK 0x800UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUSATD0_PRS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_PRS_DEFAULT (_SMU_PPUSATD0_PRS_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO (0x1UL << 12) /**< GPIO Secure Access */
+#define _SMU_PPUSATD0_GPIO_SHIFT 12 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_MASK 0x1000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUSATD0_GPIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPIO_DEFAULT (_SMU_PPUSATD0_GPIO_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA (0x1UL << 13) /**< LDMA Secure Access */
+#define _SMU_PPUSATD0_LDMA_SHIFT 13 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_MASK 0x2000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMA_DEFAULT (_SMU_PPUSATD0_LDMA_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR (0x1UL << 14) /**< LDMAXBAR Secure Access */
+#define _SMU_PPUSATD0_LDMAXBAR_SHIFT 14 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_MASK 0x4000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUSATD0_LDMAXBAR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_LDMAXBAR_DEFAULT (_SMU_PPUSATD0_LDMAXBAR_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0 (0x1UL << 15) /**< TIMER0 Secure Access */
+#define _SMU_PPUSATD0_TIMER0_SHIFT 15 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_MASK 0x8000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUSATD0_TIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER0_DEFAULT (_SMU_PPUSATD0_TIMER0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1 (0x1UL << 16) /**< TIMER1 Secure Access */
+#define _SMU_PPUSATD0_TIMER1_SHIFT 16 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_MASK 0x10000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUSATD0_TIMER1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER1_DEFAULT (_SMU_PPUSATD0_TIMER1_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2 (0x1UL << 17) /**< TIMER2 Secure Access */
+#define _SMU_PPUSATD0_TIMER2_SHIFT 17 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_MASK 0x20000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUSATD0_TIMER2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER2_DEFAULT (_SMU_PPUSATD0_TIMER2_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3 (0x1UL << 18) /**< TIMER3 Secure Access */
+#define _SMU_PPUSATD0_TIMER3_SHIFT 18 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_MASK 0x40000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUSATD0_TIMER3_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER3_DEFAULT (_SMU_PPUSATD0_TIMER3_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4 (0x1UL << 19) /**< TIMER4 Secure Access */
+#define _SMU_PPUSATD0_TIMER4_SHIFT 19 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_MASK 0x80000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUSATD0_TIMER4_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_TIMER4_DEFAULT (_SMU_PPUSATD0_TIMER4_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0 (0x1UL << 20) /**< USART0 Secure Access */
+#define _SMU_PPUSATD0_USART0_SHIFT 20 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_MASK 0x100000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUSATD0_USART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_USART0_DEFAULT (_SMU_PPUSATD0_USART0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC (0x1UL << 21) /**< BURTC Secure Access */
+#define _SMU_PPUSATD0_BURTC_SHIFT 21 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_MASK 0x200000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUSATD0_BURTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURTC_DEFAULT (_SMU_PPUSATD0_BURTC_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1 (0x1UL << 22) /**< I2C1 Secure Access */
+#define _SMU_PPUSATD0_I2C1_SHIFT 22 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_MASK 0x400000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUSATD0_I2C1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_I2C1_DEFAULT (_SMU_PPUSATD0_I2C1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL (0x1UL << 23) /**< CHIPTESTCTRL Secure Access */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_SHIFT 23 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_MASK 0x800000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUSATD0_CHIPTESTCTRL_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS (0x1UL << 24) /**< SYSCFGCFGNS Secure Access */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_SHIFT 24 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_MASK 0x1000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUSATD0_SYSCFGCFGNS_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG (0x1UL << 25) /**< SYSCFG Secure Access */
+#define _SMU_PPUSATD0_SYSCFG_SHIFT 25 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_MASK 0x2000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUSATD0_SYSCFG_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_SYSCFG_DEFAULT (_SMU_PPUSATD0_SYSCFG_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM (0x1UL << 26) /**< BURAM Secure Access */
+#define _SMU_PPUSATD0_BURAM_SHIFT 26 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_MASK 0x4000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUSATD0_BURAM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_BURAM_DEFAULT (_SMU_PPUSATD0_BURAM_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC (0x1UL << 27) /**< GPCRC Secure Access */
+#define _SMU_PPUSATD0_GPCRC_SHIFT 27 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_MASK 0x8000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUSATD0_GPCRC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_GPCRC_DEFAULT (_SMU_PPUSATD0_GPCRC_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC (0x1UL << 28) /**< DCDC Secure Access */
+#define _SMU_PPUSATD0_DCDC_SHIFT 28 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_MASK 0x10000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUSATD0_DCDC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_DCDC_DEFAULT (_SMU_PPUSATD0_DCDC_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HOSTMAILBOX (0x1UL << 29) /**< HOSTMAILBOX Secure Access */
+#define _SMU_PPUSATD0_HOSTMAILBOX_SHIFT 29 /**< Shift value for SMU_HOSTMAILBOX */
+#define _SMU_PPUSATD0_HOSTMAILBOX_MASK 0x20000000UL /**< Bit mask for SMU_HOSTMAILBOX */
+#define _SMU_PPUSATD0_HOSTMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_HOSTMAILBOX_DEFAULT (_SMU_PPUSATD0_HOSTMAILBOX_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EUSART1 (0x1UL << 30) /**< EUSART1 Secure Access */
+#define _SMU_PPUSATD0_EUSART1_SHIFT 30 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUSATD0_EUSART1_MASK 0x40000000UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUSATD0_EUSART1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EUSART1_DEFAULT (_SMU_PPUSATD0_EUSART1_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EUSART2 (0x1UL << 31) /**< EUSART2 Secure Access */
+#define _SMU_PPUSATD0_EUSART2_SHIFT 31 /**< Shift value for SMU_EUSART2 */
+#define _SMU_PPUSATD0_EUSART2_MASK 0x80000000UL /**< Bit mask for SMU_EUSART2 */
+#define _SMU_PPUSATD0_EUSART2_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD0 */
+#define SMU_PPUSATD0_EUSART2_DEFAULT (_SMU_PPUSATD0_EUSART2_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUSATD0 */
+
+/* Bit fields for SMU PPUSATD1 */
+#define _SMU_PPUSATD1_RESETVALUE 0x01FFFFFFUL /**< Default value for SMU_PPUSATD1 */
+#define _SMU_PPUSATD1_MASK 0x01FFFFFFUL /**< Mask for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SYSRTC (0x1UL << 0) /**< SYSRTC Secure Access */
+#define _SMU_PPUSATD1_SYSRTC_SHIFT 0 /**< Shift value for SMU_SYSRTC */
+#define _SMU_PPUSATD1_SYSRTC_MASK 0x1UL /**< Bit mask for SMU_SYSRTC */
+#define _SMU_PPUSATD1_SYSRTC_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SYSRTC_DEFAULT (_SMU_PPUSATD1_SYSRTC_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LCD (0x1UL << 1) /**< LCD Secure Access */
+#define _SMU_PPUSATD1_LCD_SHIFT 1 /**< Shift value for SMU_LCD */
+#define _SMU_PPUSATD1_LCD_MASK 0x2UL /**< Bit mask for SMU_LCD */
+#define _SMU_PPUSATD1_LCD_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LCD_DEFAULT (_SMU_PPUSATD1_LCD_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_KEYSCAN (0x1UL << 2) /**< KEYSCAN Secure Access */
+#define _SMU_PPUSATD1_KEYSCAN_SHIFT 2 /**< Shift value for SMU_KEYSCAN */
+#define _SMU_PPUSATD1_KEYSCAN_MASK 0x4UL /**< Bit mask for SMU_KEYSCAN */
+#define _SMU_PPUSATD1_KEYSCAN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_KEYSCAN_DEFAULT (_SMU_PPUSATD1_KEYSCAN_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM (0x1UL << 3) /**< DMEM Secure Access */
+#define _SMU_PPUSATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUSATD1_DMEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_DMEM_DEFAULT (_SMU_PPUSATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LCDRF (0x1UL << 4) /**< LCDRF Secure Access */
+#define _SMU_PPUSATD1_LCDRF_SHIFT 4 /**< Shift value for SMU_LCDRF */
+#define _SMU_PPUSATD1_LCDRF_MASK 0x10UL /**< Bit mask for SMU_LCDRF */
+#define _SMU_PPUSATD1_LCDRF_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LCDRF_DEFAULT (_SMU_PPUSATD1_LCDRF_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PFMXPPRF (0x1UL << 5) /**< PFMXPPRF Secure Access */
+#define _SMU_PPUSATD1_PFMXPPRF_SHIFT 5 /**< Shift value for SMU_PFMXPPRF */
+#define _SMU_PPUSATD1_PFMXPPRF_MASK 0x20UL /**< Bit mask for SMU_PFMXPPRF */
+#define _SMU_PPUSATD1_PFMXPPRF_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PFMXPPRF_DEFAULT (_SMU_PPUSATD1_PFMXPPRF_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES (0x1UL << 6) /**< RADIOAES Secure Access */
+#define _SMU_PPUSATD1_RADIOAES_SHIFT 6 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_MASK 0x40UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUSATD1_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_RADIOAES_DEFAULT (_SMU_PPUSATD1_RADIOAES_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU (0x1UL << 7) /**< SMU Secure Access */
+#define _SMU_PPUSATD1_SMU_SHIFT 7 /**< Shift value for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_MASK 0x80UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUSATD1_SMU_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMU_DEFAULT (_SMU_PPUSATD1_SMU_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS (0x1UL << 8) /**< SMUCFGNS Secure Access */
+#define _SMU_PPUSATD1_SMUCFGNS_SHIFT 8 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_MASK 0x100UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUSATD1_SMUCFGNS_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SMUCFGNS_DEFAULT (_SMU_PPUSATD1_SMUCFGNS_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0 (0x1UL << 9) /**< LETIMER0 Secure Access */
+#define _SMU_PPUSATD1_LETIMER0_SHIFT 9 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_MASK 0x200UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUSATD1_LETIMER0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LETIMER0_DEFAULT (_SMU_PPUSATD1_LETIMER0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0 (0x1UL << 10) /**< IADC0 Secure Access */
+#define _SMU_PPUSATD1_IADC0_SHIFT 10 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_MASK 0x400UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUSATD1_IADC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_IADC0_DEFAULT (_SMU_PPUSATD1_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0 (0x1UL << 11) /**< ACMP0 Secure Access */
+#define _SMU_PPUSATD1_ACMP0_SHIFT 11 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_MASK 0x800UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUSATD1_ACMP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP0_DEFAULT (_SMU_PPUSATD1_ACMP0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP1 (0x1UL << 12) /**< ACMP1 Secure Access */
+#define _SMU_PPUSATD1_ACMP1_SHIFT 12 /**< Shift value for SMU_ACMP1 */
+#define _SMU_PPUSATD1_ACMP1_MASK 0x1000UL /**< Bit mask for SMU_ACMP1 */
+#define _SMU_PPUSATD1_ACMP1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_ACMP1_DEFAULT (_SMU_PPUSATD1_ACMP1_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0 (0x1UL << 13) /**< AMUXCP0 Secure Access */
+#define _SMU_PPUSATD1_AMUXCP0_SHIFT 13 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_MASK 0x2000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUSATD1_AMUXCP0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AMUXCP0_DEFAULT (_SMU_PPUSATD1_AMUXCP0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_VDAC0 (0x1UL << 14) /**< VDAC0 Secure Access */
+#define _SMU_PPUSATD1_VDAC0_SHIFT 14 /**< Shift value for SMU_VDAC0 */
+#define _SMU_PPUSATD1_VDAC0_MASK 0x4000UL /**< Bit mask for SMU_VDAC0 */
+#define _SMU_PPUSATD1_VDAC0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_VDAC0_DEFAULT (_SMU_PPUSATD1_VDAC0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PCNT (0x1UL << 15) /**< PCNT Secure Access */
+#define _SMU_PPUSATD1_PCNT_SHIFT 15 /**< Shift value for SMU_PCNT */
+#define _SMU_PPUSATD1_PCNT_MASK 0x8000UL /**< Bit mask for SMU_PCNT */
+#define _SMU_PPUSATD1_PCNT_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_PCNT_DEFAULT (_SMU_PPUSATD1_PCNT_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LESENSE (0x1UL << 16) /**< LESENSE Secure Access */
+#define _SMU_PPUSATD1_LESENSE_SHIFT 16 /**< Shift value for SMU_LESENSE */
+#define _SMU_PPUSATD1_LESENSE_MASK 0x10000UL /**< Bit mask for SMU_LESENSE */
+#define _SMU_PPUSATD1_LESENSE_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_LESENSE_DEFAULT (_SMU_PPUSATD1_LESENSE_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_HFRCO1 (0x1UL << 17) /**< HFRCO1 Secure Access */
+#define _SMU_PPUSATD1_HFRCO1_SHIFT 17 /**< Shift value for SMU_HFRCO1 */
+#define _SMU_PPUSATD1_HFRCO1_MASK 0x20000UL /**< Bit mask for SMU_HFRCO1 */
+#define _SMU_PPUSATD1_HFRCO1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_HFRCO1_DEFAULT (_SMU_PPUSATD1_HFRCO1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_HFXO0 (0x1UL << 18) /**< HFXO0 Secure Access */
+#define _SMU_PPUSATD1_HFXO0_SHIFT 18 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUSATD1_HFXO0_MASK 0x40000UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUSATD1_HFXO0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_HFXO0_DEFAULT (_SMU_PPUSATD1_HFXO0_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0 (0x1UL << 19) /**< I2C0 Secure Access */
+#define _SMU_PPUSATD1_I2C0_SHIFT 19 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_MASK 0x80000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUSATD1_I2C0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_I2C0_DEFAULT (_SMU_PPUSATD1_I2C0_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0 (0x1UL << 20) /**< WDOG0 Secure Access */
+#define _SMU_PPUSATD1_WDOG0_SHIFT 20 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_MASK 0x100000UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUSATD1_WDOG0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG0_DEFAULT (_SMU_PPUSATD1_WDOG0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG1 (0x1UL << 21) /**< WDOG1 Secure Access */
+#define _SMU_PPUSATD1_WDOG1_SHIFT 21 /**< Shift value for SMU_WDOG1 */
+#define _SMU_PPUSATD1_WDOG1_MASK 0x200000UL /**< Bit mask for SMU_WDOG1 */
+#define _SMU_PPUSATD1_WDOG1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_WDOG1_DEFAULT (_SMU_PPUSATD1_WDOG1_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0 (0x1UL << 22) /**< EUSART0 Secure Access */
+#define _SMU_PPUSATD1_EUSART0_SHIFT 22 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_MASK 0x400000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUSATD1_EUSART0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_EUSART0_DEFAULT (_SMU_PPUSATD1_EUSART0_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX (0x1UL << 23) /**< SEMAILBOX Secure Access */
+#define _SMU_PPUSATD1_SEMAILBOX_SHIFT 23 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_MASK 0x800000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUSATD1_SEMAILBOX_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_SEMAILBOX_DEFAULT (_SMU_PPUSATD1_SEMAILBOX_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO (0x1UL << 24) /**< AHBRADIO Secure Access */
+#define _SMU_PPUSATD1_AHBRADIO_SHIFT 24 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_MASK 0x1000000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUSATD1_AHBRADIO_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_PPUSATD1 */
+#define SMU_PPUSATD1_AHBRADIO_DEFAULT (_SMU_PPUSATD1_AHBRADIO_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUSATD1 */
+
+/* Bit fields for SMU PPUFS */
+#define _SMU_PPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUFS */
+#define _SMU_PPUFS_MASK 0x000000FFUL /**< Mask for SMU_PPUFS */
+#define _SMU_PPUFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUFS */
+#define SMU_PPUFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUFS */
+
+/* Bit fields for SMU BMPUPATD0 */
+#define _SMU_BMPUPATD0_RESETVALUE 0x0000003FUL /**< Default value for SMU_BMPUPATD0 */
+#define _SMU_BMPUPATD0_MASK 0x0000003FUL /**< Mask for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES (0x1UL << 0) /**< RADIO AES DMA privileged mode */
+#define _SMU_BMPUPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUPATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOAES_DEFAULT (_SMU_BMPUPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIO subsystem manager privileged mode */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA (0x1UL << 2) /**< MCU LDMA privileged mode */
+#define _SMU_BMPUPATD0_LDMA_SHIFT 2 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_MASK 0x4UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUPATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_LDMA_DEFAULT (_SMU_BMPUPATD0_LDMA_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RFECA0 (0x1UL << 3) /**< RFECA0 privileged mode */
+#define _SMU_BMPUPATD0_RFECA0_SHIFT 3 /**< Shift value for SMU_RFECA0 */
+#define _SMU_BMPUPATD0_RFECA0_MASK 0x8UL /**< Bit mask for SMU_RFECA0 */
+#define _SMU_BMPUPATD0_RFECA0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RFECA0_DEFAULT (_SMU_BMPUPATD0_RFECA0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RFECA1 (0x1UL << 4) /**< RFECA1 privileged mode */
+#define _SMU_BMPUPATD0_RFECA1_SHIFT 4 /**< Shift value for SMU_RFECA1 */
+#define _SMU_BMPUPATD0_RFECA1_MASK 0x10UL /**< Bit mask for SMU_RFECA1 */
+#define _SMU_BMPUPATD0_RFECA1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_RFECA1_DEFAULT (_SMU_BMPUPATD0_RFECA1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA (0x1UL << 5) /**< SEEXTDMA privileged mode */
+#define _SMU_BMPUPATD0_SEEXTDMA_SHIFT 5 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_MASK 0x20UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUPATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUPATD0 */
+#define SMU_BMPUPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUPATD0_SEEXTDMA_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_BMPUPATD0 */
+
+/* Bit fields for SMU BMPUSATD0 */
+#define _SMU_BMPUSATD0_RESETVALUE 0x0000003FUL /**< Default value for SMU_BMPUSATD0 */
+#define _SMU_BMPUSATD0_MASK 0x0000003FUL /**< Mask for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES (0x1UL << 0) /**< RADIOAES DMA secure mode */
+#define _SMU_BMPUSATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUSATD0_RADIOAES_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOAES_DEFAULT (_SMU_BMPUSATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIO subsystem manager secure mode */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUSATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA (0x1UL << 2) /**< MCU LDMA secure mode */
+#define _SMU_BMPUSATD0_LDMA_SHIFT 2 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_MASK 0x4UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUSATD0_LDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_LDMA_DEFAULT (_SMU_BMPUSATD0_LDMA_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RFECA0 (0x1UL << 3) /**< RFECA0 secure mode */
+#define _SMU_BMPUSATD0_RFECA0_SHIFT 3 /**< Shift value for SMU_RFECA0 */
+#define _SMU_BMPUSATD0_RFECA0_MASK 0x8UL /**< Bit mask for SMU_RFECA0 */
+#define _SMU_BMPUSATD0_RFECA0_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RFECA0_DEFAULT (_SMU_BMPUSATD0_RFECA0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RFECA1 (0x1UL << 4) /**< RFECA1 secure mode */
+#define _SMU_BMPUSATD0_RFECA1_SHIFT 4 /**< Shift value for SMU_RFECA1 */
+#define _SMU_BMPUSATD0_RFECA1_MASK 0x10UL /**< Bit mask for SMU_RFECA1 */
+#define _SMU_BMPUSATD0_RFECA1_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_RFECA1_DEFAULT (_SMU_BMPUSATD0_RFECA1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA (0x1UL << 5) /**< SEEXTDMA secure mode */
+#define _SMU_BMPUSATD0_SEEXTDMA_SHIFT 5 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_MASK 0x20UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUSATD0_SEEXTDMA_DEFAULT 0x00000001UL /**< Mode DEFAULT for SMU_BMPUSATD0 */
+#define SMU_BMPUSATD0_SEEXTDMA_DEFAULT (_SMU_BMPUSATD0_SEEXTDMA_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_BMPUSATD0 */
+
+/* Bit fields for SMU BMPUFS */
+#define _SMU_BMPUFS_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFS */
+#define _SMU_BMPUFS_MASK 0x000000FFUL /**< Mask for SMU_BMPUFS */
+#define _SMU_BMPUFS_BMPUFSMASTERID_SHIFT 0 /**< Shift value for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_MASK 0xFFUL /**< Bit mask for SMU_BMPUFSMASTERID */
+#define _SMU_BMPUFS_BMPUFSMASTERID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFS */
+#define SMU_BMPUFS_BMPUFSMASTERID_DEFAULT (_SMU_BMPUFS_BMPUFSMASTERID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFS */
+
+/* Bit fields for SMU BMPUFSADDR */
+#define _SMU_BMPUFSADDR_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_SHIFT 0 /**< Shift value for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SMU_BMPUFSADDR */
+#define _SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUFSADDR */
+#define SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT (_SMU_BMPUFSADDR_BMPUFSADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUFSADDR */
+
+/* Bit fields for SMU ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES0 */
+#define _SMU_ESAURTYPES0_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS (0x1UL << 12) /**< Region 3 Non-Secure */
+#define _SMU_ESAURTYPES0_ESAUR3NS_SHIFT 12 /**< Shift value for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR3NS */
+#define _SMU_ESAURTYPES0_ESAUR3NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES0 */
+#define SMU_ESAURTYPES0_ESAUR3NS_DEFAULT (_SMU_ESAURTYPES0_ESAUR3NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES0 */
+
+/* Bit fields for SMU ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_RESETVALUE 0x00000000UL /**< Default value for SMU_ESAURTYPES1 */
+#define _SMU_ESAURTYPES1_MASK 0x00001000UL /**< Mask for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS (0x1UL << 12) /**< Region 11 Non-Secure */
+#define _SMU_ESAURTYPES1_ESAUR11NS_SHIFT 12 /**< Shift value for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_MASK 0x1000UL /**< Bit mask for SMU_ESAUR11NS */
+#define _SMU_ESAURTYPES1_ESAUR11NS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_ESAURTYPES1 */
+#define SMU_ESAURTYPES1_ESAUR11NS_DEFAULT (_SMU_ESAURTYPES1_ESAUR11NS_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAURTYPES1 */
+
+/* Bit fields for SMU ESAUMRB01 */
+#define _SMU_ESAUMRB01_RESETVALUE 0x0A000000UL /**< Default value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_SHIFT 12 /**< Shift value for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB01 */
+#define _SMU_ESAUMRB01_ESAUMRB01_DEFAULT 0x0000A000UL /**< Mode DEFAULT for SMU_ESAUMRB01 */
+#define SMU_ESAUMRB01_ESAUMRB01_DEFAULT (_SMU_ESAUMRB01_ESAUMRB01_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB01 */
+
+/* Bit fields for SMU ESAUMRB12 */
+#define _SMU_ESAUMRB12_RESETVALUE 0x0C000000UL /**< Default value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_SHIFT 12 /**< Shift value for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB12 */
+#define _SMU_ESAUMRB12_ESAUMRB12_DEFAULT 0x0000C000UL /**< Mode DEFAULT for SMU_ESAUMRB12 */
+#define SMU_ESAUMRB12_ESAUMRB12_DEFAULT (_SMU_ESAUMRB12_ESAUMRB12_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB12 */
+
+/* Bit fields for SMU ESAUMRB45 */
+#define _SMU_ESAUMRB45_RESETVALUE 0x02000000UL /**< Default value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_SHIFT 12 /**< Shift value for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB45 */
+#define _SMU_ESAUMRB45_ESAUMRB45_DEFAULT 0x00002000UL /**< Mode DEFAULT for SMU_ESAUMRB45 */
+#define SMU_ESAUMRB45_ESAUMRB45_DEFAULT (_SMU_ESAUMRB45_ESAUMRB45_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB45 */
+
+/* Bit fields for SMU ESAUMRB56 */
+#define _SMU_ESAUMRB56_RESETVALUE 0x04000000UL /**< Default value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_MASK 0x0FFFF000UL /**< Mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_SHIFT 12 /**< Shift value for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_MASK 0xFFFF000UL /**< Bit mask for SMU_ESAUMRB56 */
+#define _SMU_ESAUMRB56_ESAUMRB56_DEFAULT 0x00004000UL /**< Mode DEFAULT for SMU_ESAUMRB56 */
+#define SMU_ESAUMRB56_ESAUMRB56_DEFAULT (_SMU_ESAUMRB56_ESAUMRB56_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_ESAUMRB56 */
+
+/** @} End of group EFR32ZG23_SMU_BitFields */
+/** @} End of group EFR32ZG23_SMU */
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SMU_CFGNS SMU_CFGNS
+ * @{
+ * @brief EFR32ZG23 SMU_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SMU_CFGNS Register Declaration. */
+typedef struct smu_cfgns_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS; /**< Status Register */
+ __IOM uint32_t NSLOCK; /**< Lock Register */
+ __IOM uint32_t NSIF; /**< Interrupt Flag Register */
+ __IOM uint32_t NSIEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED1[3U]; /**< Reserved for future use */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0; /**< Privileged Access */
+ __IOM uint32_t PPUNSPATD1; /**< Privileged Access */
+ uint32_t RESERVED3[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS; /**< Fault Status */
+ uint32_t RESERVED4[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0; /**< Privileged Attribute */
+ uint32_t RESERVED5[63U]; /**< Reserved for future use */
+ uint32_t RESERVED6[876U]; /**< Reserved for future use */
+ uint32_t RESERVED7[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_SET; /**< Status Register */
+ __IOM uint32_t NSLOCK_SET; /**< Lock Register */
+ __IOM uint32_t NSIF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t NSIEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED8[3U]; /**< Reserved for future use */
+ uint32_t RESERVED9[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_SET; /**< Privileged Access */
+ __IOM uint32_t PPUNSPATD1_SET; /**< Privileged Access */
+ uint32_t RESERVED10[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_SET; /**< Fault Status */
+ uint32_t RESERVED11[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_SET; /**< Privileged Attribute */
+ uint32_t RESERVED12[63U]; /**< Reserved for future use */
+ uint32_t RESERVED13[876U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_CLR; /**< Status Register */
+ __IOM uint32_t NSLOCK_CLR; /**< Lock Register */
+ __IOM uint32_t NSIF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t NSIEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED15[3U]; /**< Reserved for future use */
+ uint32_t RESERVED16[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_CLR; /**< Privileged Access */
+ __IOM uint32_t PPUNSPATD1_CLR; /**< Privileged Access */
+ uint32_t RESERVED17[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_CLR; /**< Fault Status */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_CLR; /**< Privileged Attribute */
+ uint32_t RESERVED19[63U]; /**< Reserved for future use */
+ uint32_t RESERVED20[876U]; /**< Reserved for future use */
+ uint32_t RESERVED21[1U]; /**< Reserved for future use */
+ __IM uint32_t NSSTATUS_TGL; /**< Status Register */
+ __IOM uint32_t NSLOCK_TGL; /**< Lock Register */
+ __IOM uint32_t NSIF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t NSIEN_TGL; /**< Interrupt Enable Register */
+ uint32_t RESERVED22[3U]; /**< Reserved for future use */
+ uint32_t RESERVED23[8U]; /**< Reserved for future use */
+ __IOM uint32_t PPUNSPATD0_TGL; /**< Privileged Access */
+ __IOM uint32_t PPUNSPATD1_TGL; /**< Privileged Access */
+ uint32_t RESERVED24[62U]; /**< Reserved for future use */
+ __IM uint32_t PPUNSFS_TGL; /**< Fault Status */
+ uint32_t RESERVED25[3U]; /**< Reserved for future use */
+ __IOM uint32_t BMPUNSPATD0_TGL; /**< Privileged Attribute */
+ uint32_t RESERVED26[63U]; /**< Reserved for future use */
+} SMU_CFGNS_TypeDef;
+/** @} End of group EFR32ZG23_SMU_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SMU_CFGNS
+ * @{
+ * @defgroup EFR32ZG23_SMU_CFGNS_BitFields SMU_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SMU NSSTATUS */
+#define _SMU_NSSTATUS_RESETVALUE 0x00000000UL /**< Default value for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_MASK 0x00000001UL /**< Mask for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK (0x1UL << 0) /**< SMUNS Lock */
+#define _SMU_NSSTATUS_SMUNSLOCK_SHIFT 0 /**< Shift value for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_MASK 0x1UL /**< Bit mask for SMU_SMUNSLOCK */
+#define _SMU_NSSTATUS_SMUNSLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SMU_NSSTATUS */
+#define _SMU_NSSTATUS_SMUNSLOCK_LOCKED 0x00000001UL /**< Mode LOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_DEFAULT (_SMU_NSSTATUS_SMUNSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_UNLOCKED (_SMU_NSSTATUS_SMUNSLOCK_UNLOCKED << 0) /**< Shifted mode UNLOCKED for SMU_NSSTATUS */
+#define SMU_NSSTATUS_SMUNSLOCK_LOCKED (_SMU_NSSTATUS_SMUNSLOCK_LOCKED << 0) /**< Shifted mode LOCKED for SMU_NSSTATUS */
+
+/* Bit fields for SMU NSLOCK */
+#define _SMU_NSLOCK_RESETVALUE 0x00000000UL /**< Default value for SMU_NSLOCK */
+#define _SMU_NSLOCK_MASK 0x00FFFFFFUL /**< Mask for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_SHIFT 0 /**< Shift value for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_MASK 0xFFFFFFUL /**< Bit mask for SMU_SMUNSLOCKKEY */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSLOCK */
+#define _SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK 0x00ACCE55UL /**< Mode UNLOCK for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT (_SMU_NSLOCK_SMUNSLOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSLOCK */
+#define SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK (_SMU_NSLOCK_SMUNSLOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SMU_NSLOCK */
+
+/* Bit fields for SMU NSIF */
+#define _SMU_NSIF_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIF */
+#define _SMU_NSIF_MASK 0x00000005UL /**< Mask for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Flag */
+#define _SMU_NSIF_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIF_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSPRIV_DEFAULT (_SMU_NSIF_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Flag */
+#define _SMU_NSIF_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIF_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIF */
+#define SMU_NSIF_PPUNSINST_DEFAULT (_SMU_NSIF_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIF */
+
+/* Bit fields for SMU NSIEN */
+#define _SMU_NSIEN_RESETVALUE 0x00000000UL /**< Default value for SMU_NSIEN */
+#define _SMU_NSIEN_MASK 0x00000005UL /**< Mask for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV (0x1UL << 0) /**< PPUNS Privilege Interrupt Enable */
+#define _SMU_NSIEN_PPUNSPRIV_SHIFT 0 /**< Shift value for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_MASK 0x1UL /**< Bit mask for SMU_PPUNSPRIV */
+#define _SMU_NSIEN_PPUNSPRIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSPRIV_DEFAULT (_SMU_NSIEN_PPUNSPRIV_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST (0x1UL << 2) /**< PPUNS Instruction Interrupt Enable */
+#define _SMU_NSIEN_PPUNSINST_SHIFT 2 /**< Shift value for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_MASK 0x4UL /**< Bit mask for SMU_PPUNSINST */
+#define _SMU_NSIEN_PPUNSINST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_NSIEN */
+#define SMU_NSIEN_PPUNSINST_DEFAULT (_SMU_NSIEN_PPUNSINST_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_NSIEN */
+
+/* Bit fields for SMU PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUNSPATD0 */
+#define _SMU_PPUNSPATD0_MASK 0xFFFFFFFFUL /**< Mask for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SCRATCHPAD (0x1UL << 0) /**< SCRATCHPAD Privileged Access */
+#define _SMU_PPUNSPATD0_SCRATCHPAD_SHIFT 0 /**< Shift value for SMU_SCRATCHPAD */
+#define _SMU_PPUNSPATD0_SCRATCHPAD_MASK 0x1UL /**< Bit mask for SMU_SCRATCHPAD */
+#define _SMU_PPUNSPATD0_SCRATCHPAD_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SCRATCHPAD_DEFAULT (_SMU_PPUNSPATD0_SCRATCHPAD_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU (0x1UL << 1) /**< EMU Privileged Access */
+#define _SMU_PPUNSPATD0_EMU_SHIFT 1 /**< Shift value for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_MASK 0x2UL /**< Bit mask for SMU_EMU */
+#define _SMU_PPUNSPATD0_EMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EMU_DEFAULT (_SMU_PPUNSPATD0_EMU_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU (0x1UL << 2) /**< CMU Privileged Access */
+#define _SMU_PPUNSPATD0_CMU_SHIFT 2 /**< Shift value for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_MASK 0x4UL /**< Bit mask for SMU_CMU */
+#define _SMU_PPUNSPATD0_CMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CMU_DEFAULT (_SMU_PPUNSPATD0_CMU_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0 (0x1UL << 3) /**< HFRCO0 Privileged Access */
+#define _SMU_PPUNSPATD0_HFRCO0_SHIFT 3 /**< Shift value for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_MASK 0x8UL /**< Bit mask for SMU_HFRCO0 */
+#define _SMU_PPUNSPATD0_HFRCO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HFRCO0_DEFAULT (_SMU_PPUNSPATD0_HFRCO0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO (0x1UL << 4) /**< FSRCO Privileged Access */
+#define _SMU_PPUNSPATD0_FSRCO_SHIFT 4 /**< Shift value for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_MASK 0x10UL /**< Bit mask for SMU_FSRCO */
+#define _SMU_PPUNSPATD0_FSRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_FSRCO_DEFAULT (_SMU_PPUNSPATD0_FSRCO_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0 (0x1UL << 5) /**< DPLL0 Privileged Access */
+#define _SMU_PPUNSPATD0_DPLL0_SHIFT 5 /**< Shift value for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_MASK 0x20UL /**< Bit mask for SMU_DPLL0 */
+#define _SMU_PPUNSPATD0_DPLL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DPLL0_DEFAULT (_SMU_PPUNSPATD0_DPLL0_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO (0x1UL << 6) /**< LFXO Privileged Access */
+#define _SMU_PPUNSPATD0_LFXO_SHIFT 6 /**< Shift value for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_MASK 0x40UL /**< Bit mask for SMU_LFXO */
+#define _SMU_PPUNSPATD0_LFXO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFXO_DEFAULT (_SMU_PPUNSPATD0_LFXO_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO (0x1UL << 7) /**< LFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_LFRCO_SHIFT 7 /**< Shift value for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_MASK 0x80UL /**< Bit mask for SMU_LFRCO */
+#define _SMU_PPUNSPATD0_LFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LFRCO_DEFAULT (_SMU_PPUNSPATD0_LFRCO_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO (0x1UL << 8) /**< ULFRCO Privileged Access */
+#define _SMU_PPUNSPATD0_ULFRCO_SHIFT 8 /**< Shift value for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_MASK 0x100UL /**< Bit mask for SMU_ULFRCO */
+#define _SMU_PPUNSPATD0_ULFRCO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ULFRCO_DEFAULT (_SMU_PPUNSPATD0_ULFRCO_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC (0x1UL << 9) /**< MSC Privileged Access */
+#define _SMU_PPUNSPATD0_MSC_SHIFT 9 /**< Shift value for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_MASK 0x200UL /**< Bit mask for SMU_MSC */
+#define _SMU_PPUNSPATD0_MSC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_MSC_DEFAULT (_SMU_PPUNSPATD0_MSC_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0 (0x1UL << 10) /**< ICACHE0 Privileged Access */
+#define _SMU_PPUNSPATD0_ICACHE0_SHIFT 10 /**< Shift value for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_MASK 0x400UL /**< Bit mask for SMU_ICACHE0 */
+#define _SMU_PPUNSPATD0_ICACHE0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_ICACHE0_DEFAULT (_SMU_PPUNSPATD0_ICACHE0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS (0x1UL << 11) /**< PRS Privileged Access */
+#define _SMU_PPUNSPATD0_PRS_SHIFT 11 /**< Shift value for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_MASK 0x800UL /**< Bit mask for SMU_PRS */
+#define _SMU_PPUNSPATD0_PRS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_PRS_DEFAULT (_SMU_PPUNSPATD0_PRS_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO (0x1UL << 12) /**< GPIO Privileged Access */
+#define _SMU_PPUNSPATD0_GPIO_SHIFT 12 /**< Shift value for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_MASK 0x1000UL /**< Bit mask for SMU_GPIO */
+#define _SMU_PPUNSPATD0_GPIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPIO_DEFAULT (_SMU_PPUNSPATD0_GPIO_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA (0x1UL << 13) /**< LDMA Privileged Access */
+#define _SMU_PPUNSPATD0_LDMA_SHIFT 13 /**< Shift value for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_MASK 0x2000UL /**< Bit mask for SMU_LDMA */
+#define _SMU_PPUNSPATD0_LDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMA_DEFAULT (_SMU_PPUNSPATD0_LDMA_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR (0x1UL << 14) /**< LDMAXBAR Privileged Access */
+#define _SMU_PPUNSPATD0_LDMAXBAR_SHIFT 14 /**< Shift value for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_MASK 0x4000UL /**< Bit mask for SMU_LDMAXBAR */
+#define _SMU_PPUNSPATD0_LDMAXBAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_LDMAXBAR_DEFAULT (_SMU_PPUNSPATD0_LDMAXBAR_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0 (0x1UL << 15) /**< TIMER0 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER0_SHIFT 15 /**< Shift value for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_MASK 0x8000UL /**< Bit mask for SMU_TIMER0 */
+#define _SMU_PPUNSPATD0_TIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER0_DEFAULT (_SMU_PPUNSPATD0_TIMER0_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1 (0x1UL << 16) /**< TIMER1 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER1_SHIFT 16 /**< Shift value for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_MASK 0x10000UL /**< Bit mask for SMU_TIMER1 */
+#define _SMU_PPUNSPATD0_TIMER1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER1_DEFAULT (_SMU_PPUNSPATD0_TIMER1_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2 (0x1UL << 17) /**< TIMER2 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER2_SHIFT 17 /**< Shift value for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_MASK 0x20000UL /**< Bit mask for SMU_TIMER2 */
+#define _SMU_PPUNSPATD0_TIMER2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER2_DEFAULT (_SMU_PPUNSPATD0_TIMER2_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3 (0x1UL << 18) /**< TIMER3 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER3_SHIFT 18 /**< Shift value for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_MASK 0x40000UL /**< Bit mask for SMU_TIMER3 */
+#define _SMU_PPUNSPATD0_TIMER3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER3_DEFAULT (_SMU_PPUNSPATD0_TIMER3_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4 (0x1UL << 19) /**< TIMER4 Privileged Access */
+#define _SMU_PPUNSPATD0_TIMER4_SHIFT 19 /**< Shift value for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_MASK 0x80000UL /**< Bit mask for SMU_TIMER4 */
+#define _SMU_PPUNSPATD0_TIMER4_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_TIMER4_DEFAULT (_SMU_PPUNSPATD0_TIMER4_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0 (0x1UL << 20) /**< USART0 Privileged Access */
+#define _SMU_PPUNSPATD0_USART0_SHIFT 20 /**< Shift value for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_MASK 0x100000UL /**< Bit mask for SMU_USART0 */
+#define _SMU_PPUNSPATD0_USART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_USART0_DEFAULT (_SMU_PPUNSPATD0_USART0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC (0x1UL << 21) /**< BURTC Privileged Access */
+#define _SMU_PPUNSPATD0_BURTC_SHIFT 21 /**< Shift value for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_MASK 0x200000UL /**< Bit mask for SMU_BURTC */
+#define _SMU_PPUNSPATD0_BURTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURTC_DEFAULT (_SMU_PPUNSPATD0_BURTC_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1 (0x1UL << 22) /**< I2C1 Privileged Access */
+#define _SMU_PPUNSPATD0_I2C1_SHIFT 22 /**< Shift value for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_MASK 0x400000UL /**< Bit mask for SMU_I2C1 */
+#define _SMU_PPUNSPATD0_I2C1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_I2C1_DEFAULT (_SMU_PPUNSPATD0_I2C1_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL (0x1UL << 23) /**< CHIPTESTCTRL Privileged Access */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_SHIFT 23 /**< Shift value for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_MASK 0x800000UL /**< Bit mask for SMU_CHIPTESTCTRL */
+#define _SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT (_SMU_PPUNSPATD0_CHIPTESTCTRL_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS (0x1UL << 24) /**< SYSCFGCFGNS Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_SHIFT 24 /**< Shift value for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_MASK 0x1000000UL /**< Bit mask for SMU_SYSCFGCFGNS */
+#define _SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT (_SMU_PPUNSPATD0_SYSCFGCFGNS_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG (0x1UL << 25) /**< SYSCFG Privileged Access */
+#define _SMU_PPUNSPATD0_SYSCFG_SHIFT 25 /**< Shift value for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_MASK 0x2000000UL /**< Bit mask for SMU_SYSCFG */
+#define _SMU_PPUNSPATD0_SYSCFG_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_SYSCFG_DEFAULT (_SMU_PPUNSPATD0_SYSCFG_DEFAULT << 25) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM (0x1UL << 26) /**< BURAM Privileged Access */
+#define _SMU_PPUNSPATD0_BURAM_SHIFT 26 /**< Shift value for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_MASK 0x4000000UL /**< Bit mask for SMU_BURAM */
+#define _SMU_PPUNSPATD0_BURAM_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_BURAM_DEFAULT (_SMU_PPUNSPATD0_BURAM_DEFAULT << 26) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC (0x1UL << 27) /**< GPCRC Privileged Access */
+#define _SMU_PPUNSPATD0_GPCRC_SHIFT 27 /**< Shift value for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_MASK 0x8000000UL /**< Bit mask for SMU_GPCRC */
+#define _SMU_PPUNSPATD0_GPCRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_GPCRC_DEFAULT (_SMU_PPUNSPATD0_GPCRC_DEFAULT << 27) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC (0x1UL << 28) /**< DCDC Privileged Access */
+#define _SMU_PPUNSPATD0_DCDC_SHIFT 28 /**< Shift value for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_MASK 0x10000000UL /**< Bit mask for SMU_DCDC */
+#define _SMU_PPUNSPATD0_DCDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_DCDC_DEFAULT (_SMU_PPUNSPATD0_DCDC_DEFAULT << 28) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HOSTMAILBOX (0x1UL << 29) /**< HOSTMAILBOX Privileged Access */
+#define _SMU_PPUNSPATD0_HOSTMAILBOX_SHIFT 29 /**< Shift value for SMU_HOSTMAILBOX */
+#define _SMU_PPUNSPATD0_HOSTMAILBOX_MASK 0x20000000UL /**< Bit mask for SMU_HOSTMAILBOX */
+#define _SMU_PPUNSPATD0_HOSTMAILBOX_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_HOSTMAILBOX_DEFAULT (_SMU_PPUNSPATD0_HOSTMAILBOX_DEFAULT << 29) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EUSART1 (0x1UL << 30) /**< EUSART1 Privileged Access */
+#define _SMU_PPUNSPATD0_EUSART1_SHIFT 30 /**< Shift value for SMU_EUSART1 */
+#define _SMU_PPUNSPATD0_EUSART1_MASK 0x40000000UL /**< Bit mask for SMU_EUSART1 */
+#define _SMU_PPUNSPATD0_EUSART1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EUSART1_DEFAULT (_SMU_PPUNSPATD0_EUSART1_DEFAULT << 30) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EUSART2 (0x1UL << 31) /**< EUSART2 Privileged Access */
+#define _SMU_PPUNSPATD0_EUSART2_SHIFT 31 /**< Shift value for SMU_EUSART2 */
+#define _SMU_PPUNSPATD0_EUSART2_MASK 0x80000000UL /**< Bit mask for SMU_EUSART2 */
+#define _SMU_PPUNSPATD0_EUSART2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD0 */
+#define SMU_PPUNSPATD0_EUSART2_DEFAULT (_SMU_PPUNSPATD0_EUSART2_DEFAULT << 31) /**< Shifted mode DEFAULT for SMU_PPUNSPATD0 */
+
+/* Bit fields for SMU PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUNSPATD1 */
+#define _SMU_PPUNSPATD1_MASK 0x01FFFFFFUL /**< Mask for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SYSRTC (0x1UL << 0) /**< SYSRTC Privileged Access */
+#define _SMU_PPUNSPATD1_SYSRTC_SHIFT 0 /**< Shift value for SMU_SYSRTC */
+#define _SMU_PPUNSPATD1_SYSRTC_MASK 0x1UL /**< Bit mask for SMU_SYSRTC */
+#define _SMU_PPUNSPATD1_SYSRTC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SYSRTC_DEFAULT (_SMU_PPUNSPATD1_SYSRTC_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LCD (0x1UL << 1) /**< LCD Privileged Access */
+#define _SMU_PPUNSPATD1_LCD_SHIFT 1 /**< Shift value for SMU_LCD */
+#define _SMU_PPUNSPATD1_LCD_MASK 0x2UL /**< Bit mask for SMU_LCD */
+#define _SMU_PPUNSPATD1_LCD_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LCD_DEFAULT (_SMU_PPUNSPATD1_LCD_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_KEYSCAN (0x1UL << 2) /**< KEYSCAN Privileged Access */
+#define _SMU_PPUNSPATD1_KEYSCAN_SHIFT 2 /**< Shift value for SMU_KEYSCAN */
+#define _SMU_PPUNSPATD1_KEYSCAN_MASK 0x4UL /**< Bit mask for SMU_KEYSCAN */
+#define _SMU_PPUNSPATD1_KEYSCAN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_KEYSCAN_DEFAULT (_SMU_PPUNSPATD1_KEYSCAN_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM (0x1UL << 3) /**< DMEM Privileged Access */
+#define _SMU_PPUNSPATD1_DMEM_SHIFT 3 /**< Shift value for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_MASK 0x8UL /**< Bit mask for SMU_DMEM */
+#define _SMU_PPUNSPATD1_DMEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_DMEM_DEFAULT (_SMU_PPUNSPATD1_DMEM_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LCDRF (0x1UL << 4) /**< LCDRF Privileged Access */
+#define _SMU_PPUNSPATD1_LCDRF_SHIFT 4 /**< Shift value for SMU_LCDRF */
+#define _SMU_PPUNSPATD1_LCDRF_MASK 0x10UL /**< Bit mask for SMU_LCDRF */
+#define _SMU_PPUNSPATD1_LCDRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LCDRF_DEFAULT (_SMU_PPUNSPATD1_LCDRF_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PFMXPPRF (0x1UL << 5) /**< PFMXPPRF Privileged Access */
+#define _SMU_PPUNSPATD1_PFMXPPRF_SHIFT 5 /**< Shift value for SMU_PFMXPPRF */
+#define _SMU_PPUNSPATD1_PFMXPPRF_MASK 0x20UL /**< Bit mask for SMU_PFMXPPRF */
+#define _SMU_PPUNSPATD1_PFMXPPRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PFMXPPRF_DEFAULT (_SMU_PPUNSPATD1_PFMXPPRF_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES (0x1UL << 6) /**< RADIOAES Privileged Access */
+#define _SMU_PPUNSPATD1_RADIOAES_SHIFT 6 /**< Shift value for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_MASK 0x40UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_PPUNSPATD1_RADIOAES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_RADIOAES_DEFAULT (_SMU_PPUNSPATD1_RADIOAES_DEFAULT << 6) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU (0x1UL << 7) /**< SMU Privileged Access */
+#define _SMU_PPUNSPATD1_SMU_SHIFT 7 /**< Shift value for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_MASK 0x80UL /**< Bit mask for SMU_SMU */
+#define _SMU_PPUNSPATD1_SMU_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMU_DEFAULT (_SMU_PPUNSPATD1_SMU_DEFAULT << 7) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS (0x1UL << 8) /**< SMUCFGNS Privileged Access */
+#define _SMU_PPUNSPATD1_SMUCFGNS_SHIFT 8 /**< Shift value for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_MASK 0x100UL /**< Bit mask for SMU_SMUCFGNS */
+#define _SMU_PPUNSPATD1_SMUCFGNS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SMUCFGNS_DEFAULT (_SMU_PPUNSPATD1_SMUCFGNS_DEFAULT << 8) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0 (0x1UL << 9) /**< LETIMER0 Privileged Access */
+#define _SMU_PPUNSPATD1_LETIMER0_SHIFT 9 /**< Shift value for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_MASK 0x200UL /**< Bit mask for SMU_LETIMER0 */
+#define _SMU_PPUNSPATD1_LETIMER0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LETIMER0_DEFAULT (_SMU_PPUNSPATD1_LETIMER0_DEFAULT << 9) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0 (0x1UL << 10) /**< IADC0 Privileged Access */
+#define _SMU_PPUNSPATD1_IADC0_SHIFT 10 /**< Shift value for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_MASK 0x400UL /**< Bit mask for SMU_IADC0 */
+#define _SMU_PPUNSPATD1_IADC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_IADC0_DEFAULT (_SMU_PPUNSPATD1_IADC0_DEFAULT << 10) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0 (0x1UL << 11) /**< ACMP0 Privileged Access */
+#define _SMU_PPUNSPATD1_ACMP0_SHIFT 11 /**< Shift value for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_MASK 0x800UL /**< Bit mask for SMU_ACMP0 */
+#define _SMU_PPUNSPATD1_ACMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP0_DEFAULT (_SMU_PPUNSPATD1_ACMP0_DEFAULT << 11) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP1 (0x1UL << 12) /**< ACMP1 Privileged Access */
+#define _SMU_PPUNSPATD1_ACMP1_SHIFT 12 /**< Shift value for SMU_ACMP1 */
+#define _SMU_PPUNSPATD1_ACMP1_MASK 0x1000UL /**< Bit mask for SMU_ACMP1 */
+#define _SMU_PPUNSPATD1_ACMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_ACMP1_DEFAULT (_SMU_PPUNSPATD1_ACMP1_DEFAULT << 12) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0 (0x1UL << 13) /**< AMUXCP0 Privileged Access */
+#define _SMU_PPUNSPATD1_AMUXCP0_SHIFT 13 /**< Shift value for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_MASK 0x2000UL /**< Bit mask for SMU_AMUXCP0 */
+#define _SMU_PPUNSPATD1_AMUXCP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AMUXCP0_DEFAULT (_SMU_PPUNSPATD1_AMUXCP0_DEFAULT << 13) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_VDAC0 (0x1UL << 14) /**< VDAC0 Privileged Access */
+#define _SMU_PPUNSPATD1_VDAC0_SHIFT 14 /**< Shift value for SMU_VDAC0 */
+#define _SMU_PPUNSPATD1_VDAC0_MASK 0x4000UL /**< Bit mask for SMU_VDAC0 */
+#define _SMU_PPUNSPATD1_VDAC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_VDAC0_DEFAULT (_SMU_PPUNSPATD1_VDAC0_DEFAULT << 14) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PCNT (0x1UL << 15) /**< PCNT Privileged Access */
+#define _SMU_PPUNSPATD1_PCNT_SHIFT 15 /**< Shift value for SMU_PCNT */
+#define _SMU_PPUNSPATD1_PCNT_MASK 0x8000UL /**< Bit mask for SMU_PCNT */
+#define _SMU_PPUNSPATD1_PCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_PCNT_DEFAULT (_SMU_PPUNSPATD1_PCNT_DEFAULT << 15) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LESENSE (0x1UL << 16) /**< LESENSE Privileged Access */
+#define _SMU_PPUNSPATD1_LESENSE_SHIFT 16 /**< Shift value for SMU_LESENSE */
+#define _SMU_PPUNSPATD1_LESENSE_MASK 0x10000UL /**< Bit mask for SMU_LESENSE */
+#define _SMU_PPUNSPATD1_LESENSE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_LESENSE_DEFAULT (_SMU_PPUNSPATD1_LESENSE_DEFAULT << 16) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_HFRCO1 (0x1UL << 17) /**< HFRCO1 Privileged Access */
+#define _SMU_PPUNSPATD1_HFRCO1_SHIFT 17 /**< Shift value for SMU_HFRCO1 */
+#define _SMU_PPUNSPATD1_HFRCO1_MASK 0x20000UL /**< Bit mask for SMU_HFRCO1 */
+#define _SMU_PPUNSPATD1_HFRCO1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_HFRCO1_DEFAULT (_SMU_PPUNSPATD1_HFRCO1_DEFAULT << 17) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_HFXO0 (0x1UL << 18) /**< HFXO0 Privileged Access */
+#define _SMU_PPUNSPATD1_HFXO0_SHIFT 18 /**< Shift value for SMU_HFXO0 */
+#define _SMU_PPUNSPATD1_HFXO0_MASK 0x40000UL /**< Bit mask for SMU_HFXO0 */
+#define _SMU_PPUNSPATD1_HFXO0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_HFXO0_DEFAULT (_SMU_PPUNSPATD1_HFXO0_DEFAULT << 18) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0 (0x1UL << 19) /**< I2C0 Privileged Access */
+#define _SMU_PPUNSPATD1_I2C0_SHIFT 19 /**< Shift value for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_MASK 0x80000UL /**< Bit mask for SMU_I2C0 */
+#define _SMU_PPUNSPATD1_I2C0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_I2C0_DEFAULT (_SMU_PPUNSPATD1_I2C0_DEFAULT << 19) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0 (0x1UL << 20) /**< WDOG0 Privileged Access */
+#define _SMU_PPUNSPATD1_WDOG0_SHIFT 20 /**< Shift value for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_MASK 0x100000UL /**< Bit mask for SMU_WDOG0 */
+#define _SMU_PPUNSPATD1_WDOG0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG0_DEFAULT (_SMU_PPUNSPATD1_WDOG0_DEFAULT << 20) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG1 (0x1UL << 21) /**< WDOG1 Privileged Access */
+#define _SMU_PPUNSPATD1_WDOG1_SHIFT 21 /**< Shift value for SMU_WDOG1 */
+#define _SMU_PPUNSPATD1_WDOG1_MASK 0x200000UL /**< Bit mask for SMU_WDOG1 */
+#define _SMU_PPUNSPATD1_WDOG1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_WDOG1_DEFAULT (_SMU_PPUNSPATD1_WDOG1_DEFAULT << 21) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0 (0x1UL << 22) /**< EUSART0 Privileged Access */
+#define _SMU_PPUNSPATD1_EUSART0_SHIFT 22 /**< Shift value for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_MASK 0x400000UL /**< Bit mask for SMU_EUSART0 */
+#define _SMU_PPUNSPATD1_EUSART0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_EUSART0_DEFAULT (_SMU_PPUNSPATD1_EUSART0_DEFAULT << 22) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX (0x1UL << 23) /**< SEMAILBOX Privileged Access */
+#define _SMU_PPUNSPATD1_SEMAILBOX_SHIFT 23 /**< Shift value for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_MASK 0x800000UL /**< Bit mask for SMU_SEMAILBOX */
+#define _SMU_PPUNSPATD1_SEMAILBOX_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_SEMAILBOX_DEFAULT (_SMU_PPUNSPATD1_SEMAILBOX_DEFAULT << 23) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO (0x1UL << 24) /**< AHBRADIO Privileged Access */
+#define _SMU_PPUNSPATD1_AHBRADIO_SHIFT 24 /**< Shift value for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_MASK 0x1000000UL /**< Bit mask for SMU_AHBRADIO */
+#define _SMU_PPUNSPATD1_AHBRADIO_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSPATD1 */
+#define SMU_PPUNSPATD1_AHBRADIO_DEFAULT (_SMU_PPUNSPATD1_AHBRADIO_DEFAULT << 24) /**< Shifted mode DEFAULT for SMU_PPUNSPATD1 */
+
+/* Bit fields for SMU PPUNSFS */
+#define _SMU_PPUNSFS_RESETVALUE 0x00000000UL /**< Default value for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_MASK 0x000000FFUL /**< Mask for SMU_PPUNSFS */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_SHIFT 0 /**< Shift value for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_MASK 0xFFUL /**< Bit mask for SMU_PPUFSPERIPHID */
+#define _SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_PPUNSFS */
+#define SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT (_SMU_PPUNSFS_PPUFSPERIPHID_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_PPUNSFS */
+
+/* Bit fields for SMU BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_RESETVALUE 0x00000000UL /**< Default value for SMU_BMPUNSPATD0 */
+#define _SMU_BMPUNSPATD0_MASK 0x0000003FUL /**< Mask for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES (0x1UL << 0) /**< RADIO AES DMA privileged mode */
+#define _SMU_BMPUNSPATD0_RADIOAES_SHIFT 0 /**< Shift value for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_MASK 0x1UL /**< Bit mask for SMU_RADIOAES */
+#define _SMU_BMPUNSPATD0_RADIOAES_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOAES_DEFAULT (_SMU_BMPUNSPATD0_RADIOAES_DEFAULT << 0) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM (0x1UL << 1) /**< RADIO subsystem manager privileged mode */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_SHIFT 1 /**< Shift value for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_MASK 0x2UL /**< Bit mask for SMU_RADIOSUBSYSTEM */
+#define _SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT (_SMU_BMPUNSPATD0_RADIOSUBSYSTEM_DEFAULT << 1) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA (0x1UL << 2) /**< MCU LDMA privileged mode */
+#define _SMU_BMPUNSPATD0_LDMA_SHIFT 2 /**< Shift value for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_MASK 0x4UL /**< Bit mask for SMU_LDMA */
+#define _SMU_BMPUNSPATD0_LDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_LDMA_DEFAULT (_SMU_BMPUNSPATD0_LDMA_DEFAULT << 2) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RFECA0 (0x1UL << 3) /**< RFECA0 privileged mode */
+#define _SMU_BMPUNSPATD0_RFECA0_SHIFT 3 /**< Shift value for SMU_RFECA0 */
+#define _SMU_BMPUNSPATD0_RFECA0_MASK 0x8UL /**< Bit mask for SMU_RFECA0 */
+#define _SMU_BMPUNSPATD0_RFECA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RFECA0_DEFAULT (_SMU_BMPUNSPATD0_RFECA0_DEFAULT << 3) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RFECA1 (0x1UL << 4) /**< RFECA1 privileged mode */
+#define _SMU_BMPUNSPATD0_RFECA1_SHIFT 4 /**< Shift value for SMU_RFECA1 */
+#define _SMU_BMPUNSPATD0_RFECA1_MASK 0x10UL /**< Bit mask for SMU_RFECA1 */
+#define _SMU_BMPUNSPATD0_RFECA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_RFECA1_DEFAULT (_SMU_BMPUNSPATD0_RFECA1_DEFAULT << 4) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA (0x1UL << 5) /**< SEEXTDMA privileged mode */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_SHIFT 5 /**< Shift value for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_MASK 0x20UL /**< Bit mask for SMU_SEEXTDMA */
+#define _SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SMU_BMPUNSPATD0 */
+#define SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT (_SMU_BMPUNSPATD0_SEEXTDMA_DEFAULT << 5) /**< Shifted mode DEFAULT for SMU_BMPUNSPATD0 */
+
+/** @} End of group EFR32ZG23_SMU_CFGNS_BitFields */
+/** @} End of group EFR32ZG23_SMU_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_SMU_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_syscfg.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_syscfg.h
new file mode 100644
index 000000000..dc990a512
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_syscfg.h
@@ -0,0 +1,729 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 SYSCFG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_SYSCFG_H
+#define EFR32ZG23_SYSCFG_H
+#define SYSCFG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SYSCFG SYSCFG
+ * @{
+ * @brief EFR32ZG23 SYSCFG Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG Register Declaration. */
+typedef struct syscfg_typedef{
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t IF; /**< Interrupt Flag */
+ __IOM uint32_t IEN; /**< Interrupt Enable */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV; /**< Part Family and Revision Values */
+ uint32_t RESERVED2[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC; /**< SysTick clock source */
+ uint32_t RESERVED3[54U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ uint32_t RESERVED5[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL; /**< Control */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED7[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF; /**< RAM Bias Configuration */
+ uint32_t RESERVED8[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL; /**< RADIO RAM Retention Control Register */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL; /**< RADIO RAM ECC Control Register */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED11[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION; /**< SE SW Version */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[635U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable */
+ uint32_t RESERVED15[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_SET; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_SET; /**< Part Family and Revision Values */
+ uint32_t RESERVED16[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_SET; /**< SysTick clock source */
+ uint32_t RESERVED17[54U]; /**< Reserved for future use */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+ uint32_t RESERVED19[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_SET; /**< Control */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_SET; /**< DMEM0 Retention Control */
+ uint32_t RESERVED21[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_SET; /**< RAM Bias Configuration */
+ uint32_t RESERVED22[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_SET; /**< RADIO RAM Retention Control Register */
+ uint32_t RESERVED23[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_SET; /**< RADIO RAM ECC Control Register */
+ uint32_t RESERVED24[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_SET; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_SET; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_SET; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_SET; /**< DMEM0 port remap selection */
+ uint32_t RESERVED25[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_SET; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_SET; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_SET; /**< SE SW Version */
+ uint32_t RESERVED26[1U]; /**< Reserved for future use */
+ uint32_t RESERVED27[635U]; /**< Reserved for future use */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable */
+ uint32_t RESERVED29[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_CLR; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_CLR; /**< Part Family and Revision Values */
+ uint32_t RESERVED30[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_CLR; /**< SysTick clock source */
+ uint32_t RESERVED31[54U]; /**< Reserved for future use */
+ uint32_t RESERVED32[1U]; /**< Reserved for future use */
+ uint32_t RESERVED33[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_CLR; /**< Control */
+ uint32_t RESERVED34[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_CLR; /**< DMEM0 Retention Control */
+ uint32_t RESERVED35[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_CLR; /**< RAM Bias Configuration */
+ uint32_t RESERVED36[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_CLR; /**< RADIO RAM Retention Control Register */
+ uint32_t RESERVED37[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_CLR; /**< RADIO RAM ECC Control Register */
+ uint32_t RESERVED38[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_CLR; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_CLR; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_CLR; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_CLR; /**< DMEM0 port remap selection */
+ uint32_t RESERVED39[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_CLR; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_CLR; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_CLR; /**< SE SW Version */
+ uint32_t RESERVED40[1U]; /**< Reserved for future use */
+ uint32_t RESERVED41[635U]; /**< Reserved for future use */
+ uint32_t RESERVED42[1U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable */
+ uint32_t RESERVED43[1U]; /**< Reserved for future use */
+ __IOM uint32_t CHIPREVHW_TGL; /**< Chip Revision, Hard-wired */
+ __IOM uint32_t CHIPREV_TGL; /**< Part Family and Revision Values */
+ uint32_t RESERVED44[2U]; /**< Reserved for future use */
+ __IOM uint32_t CFGSYSTIC_TGL; /**< SysTick clock source */
+ uint32_t RESERVED45[54U]; /**< Reserved for future use */
+ uint32_t RESERVED46[1U]; /**< Reserved for future use */
+ uint32_t RESERVED47[63U]; /**< Reserved for future use */
+ __IOM uint32_t CTRL_TGL; /**< Control */
+ uint32_t RESERVED48[1U]; /**< Reserved for future use */
+ __IOM uint32_t DMEM0RETNCTRL_TGL; /**< DMEM0 Retention Control */
+ uint32_t RESERVED49[64U]; /**< Reserved for future use */
+ __IOM uint32_t RAMBIASCONF_TGL; /**< RAM Bias Configuration */
+ uint32_t RESERVED50[60U]; /**< Reserved for future use */
+ __IOM uint32_t RADIORAMRETNCTRL_TGL; /**< RADIO RAM Retention Control Register */
+ uint32_t RESERVED51[1U]; /**< Reserved for future use */
+ __IOM uint32_t RADIOECCCTRL_TGL; /**< RADIO RAM ECC Control Register */
+ uint32_t RESERVED52[1U]; /**< Reserved for future use */
+ __IM uint32_t SEQRAMECCADDR_TGL; /**< SEQRAM ECC Address */
+ __IM uint32_t FRCRAMECCADDR_TGL; /**< FRCRAM ECC Address */
+ __IOM uint32_t ICACHERAMRETNCTRL_TGL; /**< HOST ICACHERAM Retention Control */
+ __IOM uint32_t DMEM0PORTMAPSEL_TGL; /**< DMEM0 port remap selection */
+ uint32_t RESERVED53[120U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTDATA1_TGL; /**< Data Register 1 */
+ __IM uint32_t ROOTLOCKSTATUS_TGL; /**< Lock Status */
+ __IOM uint32_t ROOTSESWVERSION_TGL; /**< SE SW Version */
+ uint32_t RESERVED54[1U]; /**< Reserved for future use */
+} SYSCFG_TypeDef;
+/** @} End of group EFR32ZG23_SYSCFG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SYSCFG
+ * @{
+ * @defgroup EFR32ZG23_SYSCFG_BitFields SYSCFG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG IPVERSION */
+#define _SYSCFG_IPVERSION_RESETVALUE 0x00000002UL /**< Default value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_IPVERSION */
+#define _SYSCFG_IPVERSION_IPVERSION_DEFAULT 0x00000002UL /**< Mode DEFAULT for SYSCFG_IPVERSION */
+#define SYSCFG_IPVERSION_IPVERSION_DEFAULT (_SYSCFG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IPVERSION */
+
+/* Bit fields for SYSCFG IF */
+#define _SYSCFG_IF_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IF */
+#define _SYSCFG_IF_MASK 0x33003F0FUL /**< Mask for SYSCFG_IF */
+#define SYSCFG_IF_SW0 (0x1UL << 0) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IF_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW0_DEFAULT (_SYSCFG_IF_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1 (0x1UL << 1) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IF_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW1_DEFAULT (_SYSCFG_IF_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2 (0x1UL << 2) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IF_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW2_DEFAULT (_SYSCFG_IF_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3 (0x1UL << 3) /**< Software Interrupt Flag */
+#define _SYSCFG_IF_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IF_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SW3_DEFAULT (_SYSCFG_IF_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC (0x1UL << 8) /**< FPU Invalid Operation interrupt flag */
+#define _SYSCFG_IF_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IF_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIOC_DEFAULT (_SYSCFG_IF_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC (0x1UL << 9) /**< FPU Divide by zero interrupt flag */
+#define _SYSCFG_IF_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IF_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPDZC_DEFAULT (_SYSCFG_IF_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC (0x1UL << 10) /**< FPU Underflow interrupt flag */
+#define _SYSCFG_IF_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IF_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPUFC_DEFAULT (_SYSCFG_IF_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC (0x1UL << 11) /**< FPU Overflow interrupt flag */
+#define _SYSCFG_IF_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IF_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPOFC_DEFAULT (_SYSCFG_IF_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC (0x1UL << 12) /**< FPU Input denormal interrupt flag */
+#define _SYSCFG_IF_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IF_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIDC_DEFAULT (_SYSCFG_IF_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC (0x1UL << 13) /**< FPU Inexact interrupt flag */
+#define _SYSCFG_IF_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IF_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FPIXC_DEFAULT (_SYSCFG_IF_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IF_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR1B_DEFAULT (_SYSCFG_IF_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-bit Interrupt Flag */
+#define _SYSCFG_IF_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IF_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_SEQRAMERR2B_DEFAULT (_SYSCFG_IF_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IF_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR1B_DEFAULT (_SYSCFG_IF_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-bit Interrupt Flag */
+#define _SYSCFG_IF_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IF_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IF */
+#define SYSCFG_IF_FRCRAMERR2B_DEFAULT (_SYSCFG_IF_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IF */
+
+/* Bit fields for SYSCFG IEN */
+#define _SYSCFG_IEN_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_IEN */
+#define _SYSCFG_IEN_MASK 0x33003F0FUL /**< Mask for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0 (0x1UL << 0) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW0_SHIFT 0 /**< Shift value for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_MASK 0x1UL /**< Bit mask for SYSCFG_SW0 */
+#define _SYSCFG_IEN_SW0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW0_DEFAULT (_SYSCFG_IEN_SW0_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1 (0x1UL << 1) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW1_SHIFT 1 /**< Shift value for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_MASK 0x2UL /**< Bit mask for SYSCFG_SW1 */
+#define _SYSCFG_IEN_SW1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW1_DEFAULT (_SYSCFG_IEN_SW1_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2 (0x1UL << 2) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW2_SHIFT 2 /**< Shift value for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_MASK 0x4UL /**< Bit mask for SYSCFG_SW2 */
+#define _SYSCFG_IEN_SW2_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW2_DEFAULT (_SYSCFG_IEN_SW2_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3 (0x1UL << 3) /**< Software Interrupt Enable */
+#define _SYSCFG_IEN_SW3_SHIFT 3 /**< Shift value for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_MASK 0x8UL /**< Bit mask for SYSCFG_SW3 */
+#define _SYSCFG_IEN_SW3_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SW3_DEFAULT (_SYSCFG_IEN_SW3_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC (0x1UL << 8) /**< FPU Invalid Operation Interrupt Enable */
+#define _SYSCFG_IEN_FPIOC_SHIFT 8 /**< Shift value for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_MASK 0x100UL /**< Bit mask for SYSCFG_FPIOC */
+#define _SYSCFG_IEN_FPIOC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIOC_DEFAULT (_SYSCFG_IEN_FPIOC_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC (0x1UL << 9) /**< FPU Divide by zero Interrupt Enable */
+#define _SYSCFG_IEN_FPDZC_SHIFT 9 /**< Shift value for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_MASK 0x200UL /**< Bit mask for SYSCFG_FPDZC */
+#define _SYSCFG_IEN_FPDZC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPDZC_DEFAULT (_SYSCFG_IEN_FPDZC_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC (0x1UL << 10) /**< FPU Underflow Interrupt Enable */
+#define _SYSCFG_IEN_FPUFC_SHIFT 10 /**< Shift value for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_MASK 0x400UL /**< Bit mask for SYSCFG_FPUFC */
+#define _SYSCFG_IEN_FPUFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPUFC_DEFAULT (_SYSCFG_IEN_FPUFC_DEFAULT << 10) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC (0x1UL << 11) /**< FPU Overflow Interrupt Enable */
+#define _SYSCFG_IEN_FPOFC_SHIFT 11 /**< Shift value for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_MASK 0x800UL /**< Bit mask for SYSCFG_FPOFC */
+#define _SYSCFG_IEN_FPOFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPOFC_DEFAULT (_SYSCFG_IEN_FPOFC_DEFAULT << 11) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC (0x1UL << 12) /**< FPU Input denormal Interrupt Enable */
+#define _SYSCFG_IEN_FPIDC_SHIFT 12 /**< Shift value for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_MASK 0x1000UL /**< Bit mask for SYSCFG_FPIDC */
+#define _SYSCFG_IEN_FPIDC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIDC_DEFAULT (_SYSCFG_IEN_FPIDC_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC (0x1UL << 13) /**< FPU Inexact Interrupt Enable */
+#define _SYSCFG_IEN_FPIXC_SHIFT 13 /**< Shift value for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_MASK 0x2000UL /**< Bit mask for SYSCFG_FPIXC */
+#define _SYSCFG_IEN_FPIXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FPIXC_DEFAULT (_SYSCFG_IEN_FPIXC_DEFAULT << 13) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B (0x1UL << 24) /**< SEQRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR1B_SHIFT 24 /**< Shift value for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_MASK 0x1000000UL /**< Bit mask for SYSCFG_SEQRAMERR1B */
+#define _SYSCFG_IEN_SEQRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR1B_DEFAULT (_SYSCFG_IEN_SEQRAMERR1B_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B (0x1UL << 25) /**< SEQRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_SEQRAMERR2B_SHIFT 25 /**< Shift value for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_MASK 0x2000000UL /**< Bit mask for SYSCFG_SEQRAMERR2B */
+#define _SYSCFG_IEN_SEQRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_SEQRAMERR2B_DEFAULT (_SYSCFG_IEN_SEQRAMERR2B_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B (0x1UL << 28) /**< FRCRAM Error 1-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR1B_SHIFT 28 /**< Shift value for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_MASK 0x10000000UL /**< Bit mask for SYSCFG_FRCRAMERR1B */
+#define _SYSCFG_IEN_FRCRAMERR1B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR1B_DEFAULT (_SYSCFG_IEN_FRCRAMERR1B_DEFAULT << 28) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B (0x1UL << 29) /**< FRCRAM Error 2-bit Interrupt Enable */
+#define _SYSCFG_IEN_FRCRAMERR2B_SHIFT 29 /**< Shift value for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_MASK 0x20000000UL /**< Bit mask for SYSCFG_FRCRAMERR2B */
+#define _SYSCFG_IEN_FRCRAMERR2B_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_IEN */
+#define SYSCFG_IEN_FRCRAMERR2B_DEFAULT (_SYSCFG_IEN_FRCRAMERR2B_DEFAULT << 29) /**< Shifted mode DEFAULT for SYSCFG_IEN */
+
+/* Bit fields for SYSCFG CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_RESETVALUE 0x00000E01UL /**< Default value for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MASK 0xFF0FFFFFUL /**< Mask for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MAJOR_SHIFT 0 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_MASK 0x3FUL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREVHW_MAJOR_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MAJOR_DEFAULT (_SYSCFG_CHIPREVHW_MAJOR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_FAMILY_SHIFT 6 /**< Shift value for SYSCFG_FAMILY */
+#define _SYSCFG_CHIPREVHW_FAMILY_MASK 0xFC0UL /**< Bit mask for SYSCFG_FAMILY */
+#define _SYSCFG_CHIPREVHW_FAMILY_DEFAULT 0x00000038UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_FAMILY_DEFAULT (_SYSCFG_CHIPREVHW_FAMILY_DEFAULT << 6) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+#define _SYSCFG_CHIPREVHW_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_MASK 0xFF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREVHW_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREVHW */
+#define SYSCFG_CHIPREVHW_MINOR_DEFAULT (_SYSCFG_CHIPREVHW_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREVHW */
+
+/* Bit fields for SYSCFG CHIPREV */
+#define _SYSCFG_CHIPREV_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MASK 0x000FFFFFUL /**< Mask for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MAJOR_SHIFT 0 /**< Shift value for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_MASK 0x3FUL /**< Bit mask for SYSCFG_MAJOR */
+#define _SYSCFG_CHIPREV_MAJOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MAJOR_DEFAULT (_SYSCFG_CHIPREV_MAJOR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_FAMILY_SHIFT 6 /**< Shift value for SYSCFG_FAMILY */
+#define _SYSCFG_CHIPREV_FAMILY_MASK 0xFC0UL /**< Bit mask for SYSCFG_FAMILY */
+#define _SYSCFG_CHIPREV_FAMILY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_FAMILY_PG23 0x0000001AUL /**< Mode PG23 for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_FAMILY_FG23 0x00000038UL /**< Mode FG23 for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_FAMILY_ZG23 0x00000039UL /**< Mode ZG23 for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_FAMILY_SG23 0x0000003AUL /**< Mode SG23 for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_FAMILY_DEFAULT (_SYSCFG_CHIPREV_FAMILY_DEFAULT << 6) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_FAMILY_PG23 (_SYSCFG_CHIPREV_FAMILY_PG23 << 6) /**< Shifted mode PG23 for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_FAMILY_FG23 (_SYSCFG_CHIPREV_FAMILY_FG23 << 6) /**< Shifted mode FG23 for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_FAMILY_ZG23 (_SYSCFG_CHIPREV_FAMILY_ZG23 << 6) /**< Shifted mode ZG23 for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_FAMILY_SG23 (_SYSCFG_CHIPREV_FAMILY_SG23 << 6) /**< Shifted mode SG23 for SYSCFG_CHIPREV */
+#define _SYSCFG_CHIPREV_MINOR_SHIFT 12 /**< Shift value for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_MASK 0xFF000UL /**< Bit mask for SYSCFG_MINOR */
+#define _SYSCFG_CHIPREV_MINOR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CHIPREV */
+#define SYSCFG_CHIPREV_MINOR_DEFAULT (_SYSCFG_CHIPREV_MINOR_DEFAULT << 12) /**< Shifted mode DEFAULT for SYSCFG_CHIPREV */
+
+/* Bit fields for SYSCFG CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_CFGSYSTIC */
+#define _SYSCFG_CFGSYSTIC_MASK 0x00000001UL /**< Mask for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN (0x1UL << 0) /**< SysTick External Clock Enable */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_SHIFT 0 /**< Shift value for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_MASK 0x1UL /**< Bit mask for SYSCFG_SYSTICEXTCLKEN */
+#define _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGSYSTIC */
+#define SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT (_SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGSYSTIC */
+
+/* Bit fields for SYSCFG CTRL */
+#define _SYSCFG_CTRL_RESETVALUE 0x00000023UL /**< Default value for SYSCFG_CTRL */
+#define _SYSCFG_CTRL_MASK 0x00000023UL /**< Mask for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN (0x1UL << 0) /**< Invalid Address Bus Fault Response Enabl */
+#define _SYSCFG_CTRL_ADDRFAULTEN_SHIFT 0 /**< Shift value for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_MASK 0x1UL /**< Bit mask for SYSCFG_ADDRFAULTEN */
+#define _SYSCFG_CTRL_ADDRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_ADDRFAULTEN_DEFAULT (_SYSCFG_CTRL_ADDRFAULTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN (0x1UL << 1) /**< Disabled Clkbus Bus Fault Enable */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_SHIFT 1 /**< Shift value for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_MASK 0x2UL /**< Bit mask for SYSCFG_CLKDISFAULTEN */
+#define _SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT (_SYSCFG_CTRL_CLKDISFAULTEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN (0x1UL << 5) /**< Two bit ECC error bus fault response ena */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_SHIFT 5 /**< Shift value for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_MASK 0x20UL /**< Bit mask for SYSCFG_RAMECCERRFAULTEN */
+#define _SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CTRL */
+#define SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT (_SYSCFG_CTRL_RAMECCERRFAULTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for SYSCFG_CTRL */
+
+/* Bit fields for SYSCFG DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_MASK 0x00000007UL /**< Mask for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_MASK 0x7UL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3 0x00000004UL /**< Mode BLK3 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO3 0x00000006UL /**< Mode BLK2TO3 for SYSCFG_DMEM0RETNCTRL */
+#define _SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO3 0x00000007UL /**< Mode BLK1TO3 for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK3 << 0) /**< Shifted mode BLK3 for SYSCFG_DMEM0RETNCTRL */
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO3 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK2TO3 << 0) /**< Shifted mode BLK2TO3 for SYSCFG_DMEM0RETNCTRL*/
+#define SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO3 (_SYSCFG_DMEM0RETNCTRL_RAMRETNCTRL_BLK1TO3 << 0) /**< Shifted mode BLK1TO3 for SYSCFG_DMEM0RETNCTRL*/
+
+/* Bit fields for SYSCFG RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RESETVALUE 0x00000002UL /**< Default value for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_MASK 0x0000000FUL /**< Mask for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_MASK 0xFUL /**< Bit mask for SYSCFG_RAMBIASCTRL */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT 0x00000002UL /**< Mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_No 0x00000000UL /**< Mode No for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 0x00000001UL /**< Mode VSB100 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 0x00000002UL /**< Mode VSB200 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 0x00000004UL /**< Mode VSB300 for SYSCFG_RAMBIASCONF */
+#define _SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 0x00000008UL /**< Mode VSB400 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_No (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_No << 0) /**< Shifted mode No for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB100 << 0) /**< Shifted mode VSB100 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB200 << 0) /**< Shifted mode VSB200 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB300 << 0) /**< Shifted mode VSB300 for SYSCFG_RAMBIASCONF */
+#define SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 (_SYSCFG_RAMBIASCONF_RAMBIASCTRL_VSB400 << 0) /**< Shifted mode VSB400 for SYSCFG_RAMBIASCONF */
+
+/* Bit fields for SYSCFG RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_MASK 0x00000103UL /**< Mask for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_MASK 0x3UL /**< Bit mask for SYSCFG_SEQRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 0x00000001UL /**< Mode BLK0 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 0x00000002UL /**< Mode BLK1 for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF 0x00000003UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK0 << 0) /**< Shifted mode BLK0 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_BLK1 << 0) /**< Shifted mode BLK1 for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_SEQRAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL (0x1UL << 8) /**< FRCRAM Retention Control */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_RADIORAMRETNCTRL */
+#define _SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_RADIORAMRETNCTRL */
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLON << 8) /**< Shifted mode ALLON for SYSCFG_RADIORAMRETNCTRL*/
+#define SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF (_SYSCFG_RADIORAMRETNCTRL_FRCRAMRETNCTRL_ALLOFF << 8) /**< Shifted mode ALLOFF for SYSCFG_RADIORAMRETNCTRL*/
+
+/* Bit fields for SYSCFG RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_RADIOECCCTRL */
+#define _SYSCFG_RADIOECCCTRL_MASK 0x00000303UL /**< Mask for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN (0x1UL << 0) /**< SEQRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_MASK 0x1UL /**< Bit mask for SYSCFG_SEQRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN (0x1UL << 1) /**< SEQRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_SHIFT 1 /**< Shift value for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_MASK 0x2UL /**< Bit mask for SYSCFG_SEQRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_SEQRAMECCEWEN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN (0x1UL << 8) /**< FRCRAM ECC Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_SHIFT 8 /**< Shift value for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_MASK 0x100UL /**< Bit mask for SYSCFG_FRCRAMECCEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEN_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN (0x1UL << 9) /**< FRCRAM ECC Error Writeback Enable */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_SHIFT 9 /**< Shift value for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_MASK 0x200UL /**< Bit mask for SYSCFG_FRCRAMECCEWEN */
+#define _SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_RADIOECCCTRL */
+#define SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT (_SYSCFG_RADIOECCCTRL_FRCRAMECCEWEN_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSCFG_RADIOECCCTRL*/
+
+/* Bit fields for SYSCFG SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SEQRAMECCADDR */
+#define _SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_SEQRAMECCADDR */
+#define SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT (_SYSCFG_SEQRAMECCADDR_SEQRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_SEQRAMECCADDR*/
+
+/* Bit fields for SYSCFG FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_SHIFT 0 /**< Shift value for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_FRCRAMECCADDR */
+#define _SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_FRCRAMECCADDR */
+#define SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT (_SYSCFG_FRCRAMECCADDR_FRCRAMECCADDR_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_FRCRAMECCADDR*/
+
+/* Bit fields for SYSCFG ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_MASK 0x00000001UL /**< Mask for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL (0x1UL << 0) /**< ICACHERAM Retention control */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_SHIFT 0 /**< Shift value for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_MASK 0x1UL /**< Bit mask for SYSCFG_RAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON 0x00000000UL /**< Mode ALLON for SYSCFG_ICACHERAMRETNCTRL */
+#define _SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF 0x00000001UL /**< Mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL */
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLON << 0) /**< Shifted mode ALLON for SYSCFG_ICACHERAMRETNCTRL*/
+#define SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF (_SYSCFG_ICACHERAMRETNCTRL_RAMRETNCTRL_ALLOFF << 0) /**< Shifted mode ALLOFF for SYSCFG_ICACHERAMRETNCTRL*/
+
+/* Bit fields for SYSCFG DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_RESETVALUE 0x00000013UL /**< Default value for SYSCFG_DMEM0PORTMAPSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_MASK 0x0000001FUL /**< Mask for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL (0x1UL << 0) /**< LDMA portmap selection */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_SHIFT 0 /**< Shift value for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_MASK 0x1UL /**< Bit mask for SYSCFG_LDMAPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL (0x1UL << 1) /**< SRWAES portmap selection */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_SHIFT 1 /**< Shift value for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_MASK 0x2UL /**< Bit mask for SYSCFG_SRWAESPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL (0x1UL << 2) /**< AHBSRW portmap selection */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_SHIFT 2 /**< Shift value for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_MASK 0x4UL /**< Bit mask for SYSCFG_AHBSRWPORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL (0x1UL << 3) /**< SRWECA0 portmap selection */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_SHIFT 3 /**< Shift value for SYSCFG_SRWECA0PORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_MASK 0x8UL /**< Bit mask for SYSCFG_SRWECA0PORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+#define SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL (0x1UL << 4) /**< SRWECA1 portmap selection */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_SHIFT 4 /**< Shift value for SYSCFG_SRWECA1PORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_MASK 0x10UL /**< Bit mask for SYSCFG_SRWECA1PORTSEL */
+#define _SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL */
+#define SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_DEFAULT (_SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for SYSCFG_DMEM0PORTMAPSEL*/
+
+/* Bit fields for SYSCFG ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA0 */
+#define _SYSCFG_ROOTDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA0 */
+#define SYSCFG_ROOTDATA0_DATA_DEFAULT (_SYSCFG_ROOTDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA0 */
+
+/* Bit fields for SYSCFG ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTDATA1 */
+#define _SYSCFG_ROOTDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTDATA1 */
+#define SYSCFG_ROOTDATA1_DATA_DEFAULT (_SYSCFG_ROOTDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTDATA1 */
+
+/* Bit fields for SYSCFG ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_RESETVALUE 0x007F0107UL /**< Default value for SYSCFG_ROOTLOCKSTATUS */
+#define _SYSCFG_ROOTLOCKSTATUS_MASK 0x807F0107UL /**< Mask for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK (0x1UL << 0) /**< Bus Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_SHIFT 0 /**< Shift value for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_MASK 0x1UL /**< Bit mask for SYSCFG_BUSLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_BUSLOCK_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK (0x1UL << 1) /**< Register Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_SHIFT 1 /**< Shift value for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_MASK 0x2UL /**< Bit mask for SYSCFG_REGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_REGLOCK_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK (0x1UL << 2) /**< Manufacture Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_SHIFT 2 /**< Shift value for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_MASK 0x4UL /**< Bit mask for SYSCFG_MFRLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_MFRLOCK_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK (0x1UL << 8) /**< Root Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_SHIFT 8 /**< Shift value for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_MASK 0x100UL /**< Bit mask for SYSCFG_ROOTDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_ROOTDBGLOCK_DEFAULT << 8) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK (0x1UL << 16) /**< User Debug Access Port Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_SHIFT 16 /**< Shift value for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_MASK 0x10000UL /**< Bit mask for SYSCFG_USERDBGAPLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGAPLOCK_DEFAULT << 16) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK (0x1UL << 17) /**< User Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_SHIFT 17 /**< Shift value for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_MASK 0x20000UL /**< Bit mask for SYSCFG_USERDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERDBGLOCK_DEFAULT << 17) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK (0x1UL << 18) /**< User Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_SHIFT 18 /**< Shift value for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_MASK 0x40000UL /**< Bit mask for SYSCFG_USERNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERNIDLOCK_DEFAULT << 18) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK (0x1UL << 19) /**< User Secure Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_SHIFT 19 /**< Shift value for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_MASK 0x80000UL /**< Bit mask for SYSCFG_USERSPIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPIDLOCK_DEFAULT << 19) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK (0x1UL << 20) /**< User Secure Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_SHIFT 20 /**< Shift value for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_MASK 0x100000UL /**< Bit mask for SYSCFG_USERSPNIDLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_USERSPNIDLOCK_DEFAULT << 20) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK (0x1UL << 21) /**< Radio Invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_SHIFT 21 /**< Shift value for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_MASK 0x200000UL /**< Bit mask for SYSCFG_RADIOIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIOIDBGLOCK_DEFAULT << 21) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK (0x1UL << 22) /**< Radio Non-invasive Debug Lock */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_SHIFT 22 /**< Shift value for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_MASK 0x400000UL /**< Bit mask for SYSCFG_RADIONIDBGLOCK */
+#define _SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_RADIONIDBGLOCK_DEFAULT << 22) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED (0x1UL << 31) /**< E-Fuse Unlocked */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_SHIFT 31 /**< Shift value for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_MASK 0x80000000UL /**< Bit mask for SYSCFG_EFUSEUNLOCKED */
+#define _SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTLOCKSTATUS */
+#define SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT (_SYSCFG_ROOTLOCKSTATUS_EFUSEUNLOCKED_DEFAULT << 31) /**< Shifted mode DEFAULT for SYSCFG_ROOTLOCKSTATUS*/
+
+/* Bit fields for SYSCFG ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTSESWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_SHIFT 0 /**< Shift value for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_SWVERSION */
+#define _SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTSESWVERSION */
+#define SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT (_SYSCFG_ROOTSESWVERSION_SWVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTSESWVERSION*/
+
+/** @} End of group EFR32ZG23_SYSCFG_BitFields */
+/** @} End of group EFR32ZG23_SYSCFG */
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SYSCFG_CFGNS SYSCFG_CFGNS
+ * @{
+ * @brief EFR32ZG23 SYSCFG_CFGNS Register Declaration.
+ *****************************************************************************/
+
+/** SYSCFG_CFGNS Register Declaration. */
+typedef struct syscfg_cfgns_typedef{
+ uint32_t RESERVED0[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB; /**< Configure Non-Secure Sys-Tick cal. */
+ uint32_t RESERVED1[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1; /**< Data Register 1 */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ uint32_t RESERVED3[637U]; /**< Reserved for future use */
+ uint32_t RESERVED4[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_SET; /**< Configure Non-Secure Sys-Tick cal. */
+ uint32_t RESERVED5[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_SET; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_SET; /**< Data Register 1 */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[637U]; /**< Reserved for future use */
+ uint32_t RESERVED8[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_CLR; /**< Configure Non-Secure Sys-Tick cal. */
+ uint32_t RESERVED9[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_CLR; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_CLR; /**< Data Register 1 */
+ uint32_t RESERVED10[1U]; /**< Reserved for future use */
+ uint32_t RESERVED11[637U]; /**< Reserved for future use */
+ uint32_t RESERVED12[7U]; /**< Reserved for future use */
+ __IOM uint32_t CFGNSTCALIB_TGL; /**< Configure Non-Secure Sys-Tick cal. */
+ uint32_t RESERVED13[376U]; /**< Reserved for future use */
+ __IOM uint32_t ROOTNSDATA0_TGL; /**< Data Register 0 */
+ __IOM uint32_t ROOTNSDATA1_TGL; /**< Data Register 1 */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+} SYSCFG_CFGNS_TypeDef;
+/** @} End of group EFR32ZG23_SYSCFG_CFGNS */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SYSCFG_CFGNS
+ * @{
+ * @defgroup EFR32ZG23_SYSCFG_CFGNS_BitFields SYSCFG_CFGNS Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSCFG CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_RESETVALUE 0x01004A37UL /**< Default value for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_MASK 0x03FFFFFFUL /**< Mask for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_TENMS_SHIFT 0 /**< Shift value for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_MASK 0xFFFFFFUL /**< Bit mask for SYSCFG_TENMS */
+#define _SYSCFG_CFGNSTCALIB_TENMS_DEFAULT 0x00004A37UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_TENMS_DEFAULT (_SYSCFG_CFGNSTCALIB_TENMS_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW (0x1UL << 24) /**< Skew */
+#define _SYSCFG_CFGNSTCALIB_SKEW_SHIFT 24 /**< Shift value for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_MASK 0x1000000UL /**< Bit mask for SYSCFG_SKEW */
+#define _SYSCFG_CFGNSTCALIB_SKEW_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_SKEW_DEFAULT (_SYSCFG_CFGNSTCALIB_SKEW_DEFAULT << 24) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF (0x1UL << 25) /**< No Reference */
+#define _SYSCFG_CFGNSTCALIB_NOREF_SHIFT 25 /**< Shift value for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_MASK 0x2000000UL /**< Bit mask for SYSCFG_NOREF */
+#define _SYSCFG_CFGNSTCALIB_NOREF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_REF 0x00000000UL /**< Mode REF for SYSCFG_CFGNSTCALIB */
+#define _SYSCFG_CFGNSTCALIB_NOREF_NOREF 0x00000001UL /**< Mode NOREF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_DEFAULT (_SYSCFG_CFGNSTCALIB_NOREF_DEFAULT << 25) /**< Shifted mode DEFAULT for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_REF (_SYSCFG_CFGNSTCALIB_NOREF_REF << 25) /**< Shifted mode REF for SYSCFG_CFGNSTCALIB */
+#define SYSCFG_CFGNSTCALIB_NOREF_NOREF (_SYSCFG_CFGNSTCALIB_NOREF_NOREF << 25) /**< Shifted mode NOREF for SYSCFG_CFGNSTCALIB */
+
+/* Bit fields for SYSCFG ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA0 */
+#define _SYSCFG_ROOTNSDATA0_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA0_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+#define SYSCFG_ROOTNSDATA0_DATA_DEFAULT (_SYSCFG_ROOTNSDATA0_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA0 */
+
+/* Bit fields for SYSCFG ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_RESETVALUE 0x00000000UL /**< Default value for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_MASK 0xFFFFFFFFUL /**< Mask for SYSCFG_ROOTNSDATA1 */
+#define _SYSCFG_ROOTNSDATA1_DATA_SHIFT 0 /**< Shift value for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_MASK 0xFFFFFFFFUL /**< Bit mask for SYSCFG_DATA */
+#define _SYSCFG_ROOTNSDATA1_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+#define SYSCFG_ROOTNSDATA1_DATA_DEFAULT (_SYSCFG_ROOTNSDATA1_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSCFG_ROOTNSDATA1 */
+
+/** @} End of group EFR32ZG23_SYSCFG_CFGNS_BitFields */
+/** @} End of group EFR32ZG23_SYSCFG_CFGNS */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_SYSCFG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_sysrtc.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_sysrtc.h
new file mode 100644
index 000000000..b0126007d
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_sysrtc.h
@@ -0,0 +1,421 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 SYSRTC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_SYSRTC_H
+#define EFR32ZG23_SYSRTC_H
+#define SYSRTC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_SYSRTC SYSRTC
+ * @{
+ * @brief EFR32ZG23 SYSRTC Register Declaration.
+ *****************************************************************************/
+
+/** SYSRTC Register Declaration. */
+typedef struct sysrtc_typedef{
+ __IM uint32_t IPVERSION; /**< IP VERSION */
+ __IOM uint32_t EN; /**< Module Enable Register */
+ __IOM uint32_t SWRST; /**< Software Reset Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK; /**< Configuration Lock Register */
+ uint32_t RESERVED0[3U]; /**< Reserved for future use */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ uint32_t RESERVED2[3U]; /**< Reserved for future use */
+ __IOM uint32_t GRP0_IF; /**< Group Interrupt Flags */
+ __IOM uint32_t GRP0_IEN; /**< Group Interrupt Enables */
+ __IOM uint32_t GRP0_CTRL; /**< Group Control Register */
+ __IOM uint32_t GRP0_CMP0VALUE; /**< Compare 0 Value Register */
+ __IOM uint32_t GRP0_CMP1VALUE; /**< Compare 1 Value Register */
+ __IM uint32_t GRP0_CAP0VALUE; /**< Capture 0 Value Register */
+ __IM uint32_t GRP0_SYNCBUSY; /**< Synchronization busy Register */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ uint32_t RESERVED5[7U]; /**< Reserved for future use */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP VERSION */
+ __IOM uint32_t EN_SET; /**< Module Enable Register */
+ __IOM uint32_t SWRST_SET; /**< Software Reset Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_SET; /**< Configuration Lock Register */
+ uint32_t RESERVED8[3U]; /**< Reserved for future use */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ uint32_t RESERVED10[3U]; /**< Reserved for future use */
+ __IOM uint32_t GRP0_IF_SET; /**< Group Interrupt Flags */
+ __IOM uint32_t GRP0_IEN_SET; /**< Group Interrupt Enables */
+ __IOM uint32_t GRP0_CTRL_SET; /**< Group Control Register */
+ __IOM uint32_t GRP0_CMP0VALUE_SET; /**< Compare 0 Value Register */
+ __IOM uint32_t GRP0_CMP1VALUE_SET; /**< Compare 1 Value Register */
+ __IM uint32_t GRP0_CAP0VALUE_SET; /**< Capture 0 Value Register */
+ __IM uint32_t GRP0_SYNCBUSY_SET; /**< Synchronization busy Register */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ uint32_t RESERVED13[7U]; /**< Reserved for future use */
+ uint32_t RESERVED14[1U]; /**< Reserved for future use */
+ uint32_t RESERVED15[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP VERSION */
+ __IOM uint32_t EN_CLR; /**< Module Enable Register */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_CLR; /**< Configuration Lock Register */
+ uint32_t RESERVED16[3U]; /**< Reserved for future use */
+ uint32_t RESERVED17[1U]; /**< Reserved for future use */
+ uint32_t RESERVED18[3U]; /**< Reserved for future use */
+ __IOM uint32_t GRP0_IF_CLR; /**< Group Interrupt Flags */
+ __IOM uint32_t GRP0_IEN_CLR; /**< Group Interrupt Enables */
+ __IOM uint32_t GRP0_CTRL_CLR; /**< Group Control Register */
+ __IOM uint32_t GRP0_CMP0VALUE_CLR; /**< Compare 0 Value Register */
+ __IOM uint32_t GRP0_CMP1VALUE_CLR; /**< Compare 1 Value Register */
+ __IM uint32_t GRP0_CAP0VALUE_CLR; /**< Capture 0 Value Register */
+ __IM uint32_t GRP0_SYNCBUSY_CLR; /**< Synchronization busy Register */
+ uint32_t RESERVED19[1U]; /**< Reserved for future use */
+ uint32_t RESERVED20[1U]; /**< Reserved for future use */
+ uint32_t RESERVED21[7U]; /**< Reserved for future use */
+ uint32_t RESERVED22[1U]; /**< Reserved for future use */
+ uint32_t RESERVED23[991U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP VERSION */
+ __IOM uint32_t EN_TGL; /**< Module Enable Register */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+ __IOM uint32_t LOCK_TGL; /**< Configuration Lock Register */
+ uint32_t RESERVED24[3U]; /**< Reserved for future use */
+ uint32_t RESERVED25[1U]; /**< Reserved for future use */
+ uint32_t RESERVED26[3U]; /**< Reserved for future use */
+ __IOM uint32_t GRP0_IF_TGL; /**< Group Interrupt Flags */
+ __IOM uint32_t GRP0_IEN_TGL; /**< Group Interrupt Enables */
+ __IOM uint32_t GRP0_CTRL_TGL; /**< Group Control Register */
+ __IOM uint32_t GRP0_CMP0VALUE_TGL; /**< Compare 0 Value Register */
+ __IOM uint32_t GRP0_CMP1VALUE_TGL; /**< Compare 1 Value Register */
+ __IM uint32_t GRP0_CAP0VALUE_TGL; /**< Capture 0 Value Register */
+ __IM uint32_t GRP0_SYNCBUSY_TGL; /**< Synchronization busy Register */
+ uint32_t RESERVED27[1U]; /**< Reserved for future use */
+ uint32_t RESERVED28[1U]; /**< Reserved for future use */
+ uint32_t RESERVED29[7U]; /**< Reserved for future use */
+ uint32_t RESERVED30[1U]; /**< Reserved for future use */
+} SYSRTC_TypeDef;
+/** @} End of group EFR32ZG23_SYSRTC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_SYSRTC
+ * @{
+ * @defgroup EFR32ZG23_SYSRTC_BitFields SYSRTC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for SYSRTC IPVERSION */
+#define _SYSRTC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for SYSRTC_IPVERSION */
+#define _SYSRTC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for SYSRTC_IPVERSION */
+#define _SYSRTC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for SYSRTC_IPVERSION */
+#define _SYSRTC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for SYSRTC_IPVERSION */
+#define _SYSRTC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for SYSRTC_IPVERSION */
+#define SYSRTC_IPVERSION_IPVERSION_DEFAULT (_SYSRTC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_IPVERSION */
+
+/* Bit fields for SYSRTC EN */
+#define _SYSRTC_EN_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_EN */
+#define _SYSRTC_EN_MASK 0x00000003UL /**< Mask for SYSRTC_EN */
+#define SYSRTC_EN_EN (0x1UL << 0) /**< SYSRTC Enable */
+#define _SYSRTC_EN_EN_SHIFT 0 /**< Shift value for SYSRTC_EN */
+#define _SYSRTC_EN_EN_MASK 0x1UL /**< Bit mask for SYSRTC_EN */
+#define _SYSRTC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_EN */
+#define SYSRTC_EN_EN_DEFAULT (_SYSRTC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_EN */
+#define SYSRTC_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _SYSRTC_EN_DISABLING_SHIFT 1 /**< Shift value for SYSRTC_DISABLING */
+#define _SYSRTC_EN_DISABLING_MASK 0x2UL /**< Bit mask for SYSRTC_DISABLING */
+#define _SYSRTC_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_EN */
+#define SYSRTC_EN_DISABLING_DEFAULT (_SYSRTC_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_EN */
+
+/* Bit fields for SYSRTC SWRST */
+#define _SYSRTC_SWRST_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_SWRST */
+#define _SYSRTC_SWRST_MASK 0x00000003UL /**< Mask for SYSRTC_SWRST */
+#define SYSRTC_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _SYSRTC_SWRST_SWRST_SHIFT 0 /**< Shift value for SYSRTC_SWRST */
+#define _SYSRTC_SWRST_SWRST_MASK 0x1UL /**< Bit mask for SYSRTC_SWRST */
+#define _SYSRTC_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_SWRST */
+#define SYSRTC_SWRST_SWRST_DEFAULT (_SYSRTC_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_SWRST */
+#define SYSRTC_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _SYSRTC_SWRST_RESETTING_SHIFT 1 /**< Shift value for SYSRTC_RESETTING */
+#define _SYSRTC_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for SYSRTC_RESETTING */
+#define _SYSRTC_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_SWRST */
+#define SYSRTC_SWRST_RESETTING_DEFAULT (_SYSRTC_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_SWRST */
+
+/* Bit fields for SYSRTC CFG */
+#define _SYSRTC_CFG_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_CFG */
+#define _SYSRTC_CFG_MASK 0x00000001UL /**< Mask for SYSRTC_CFG */
+#define SYSRTC_CFG_DEBUGRUN (0x1UL << 0) /**< Debug Mode Run Enable */
+#define _SYSRTC_CFG_DEBUGRUN_SHIFT 0 /**< Shift value for SYSRTC_DEBUGRUN */
+#define _SYSRTC_CFG_DEBUGRUN_MASK 0x1UL /**< Bit mask for SYSRTC_DEBUGRUN */
+#define _SYSRTC_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_CFG */
+#define _SYSRTC_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for SYSRTC_CFG */
+#define _SYSRTC_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for SYSRTC_CFG */
+#define SYSRTC_CFG_DEBUGRUN_DEFAULT (_SYSRTC_CFG_DEBUGRUN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_CFG */
+#define SYSRTC_CFG_DEBUGRUN_DISABLE (_SYSRTC_CFG_DEBUGRUN_DISABLE << 0) /**< Shifted mode DISABLE for SYSRTC_CFG */
+#define SYSRTC_CFG_DEBUGRUN_ENABLE (_SYSRTC_CFG_DEBUGRUN_ENABLE << 0) /**< Shifted mode ENABLE for SYSRTC_CFG */
+
+/* Bit fields for SYSRTC CMD */
+#define _SYSRTC_CMD_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_CMD */
+#define _SYSRTC_CMD_MASK 0x00000003UL /**< Mask for SYSRTC_CMD */
+#define SYSRTC_CMD_START (0x1UL << 0) /**< Start SYSRTC */
+#define _SYSRTC_CMD_START_SHIFT 0 /**< Shift value for SYSRTC_START */
+#define _SYSRTC_CMD_START_MASK 0x1UL /**< Bit mask for SYSRTC_START */
+#define _SYSRTC_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_CMD */
+#define SYSRTC_CMD_START_DEFAULT (_SYSRTC_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_CMD */
+#define SYSRTC_CMD_STOP (0x1UL << 1) /**< Stop SYSRTC */
+#define _SYSRTC_CMD_STOP_SHIFT 1 /**< Shift value for SYSRTC_STOP */
+#define _SYSRTC_CMD_STOP_MASK 0x2UL /**< Bit mask for SYSRTC_STOP */
+#define _SYSRTC_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_CMD */
+#define SYSRTC_CMD_STOP_DEFAULT (_SYSRTC_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_CMD */
+
+/* Bit fields for SYSRTC STATUS */
+#define _SYSRTC_STATUS_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_STATUS */
+#define _SYSRTC_STATUS_MASK 0x00000007UL /**< Mask for SYSRTC_STATUS */
+#define SYSRTC_STATUS_RUNNING (0x1UL << 0) /**< SYSRTC running status */
+#define _SYSRTC_STATUS_RUNNING_SHIFT 0 /**< Shift value for SYSRTC_RUNNING */
+#define _SYSRTC_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for SYSRTC_RUNNING */
+#define _SYSRTC_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_STATUS */
+#define SYSRTC_STATUS_RUNNING_DEFAULT (_SYSRTC_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_STATUS */
+#define SYSRTC_STATUS_LOCKSTATUS (0x1UL << 1) /**< Lock Status */
+#define _SYSRTC_STATUS_LOCKSTATUS_SHIFT 1 /**< Shift value for SYSRTC_LOCKSTATUS */
+#define _SYSRTC_STATUS_LOCKSTATUS_MASK 0x2UL /**< Bit mask for SYSRTC_LOCKSTATUS */
+#define _SYSRTC_STATUS_LOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_STATUS */
+#define _SYSRTC_STATUS_LOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for SYSRTC_STATUS */
+#define _SYSRTC_STATUS_LOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for SYSRTC_STATUS */
+#define SYSRTC_STATUS_LOCKSTATUS_DEFAULT (_SYSRTC_STATUS_LOCKSTATUS_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_STATUS */
+#define SYSRTC_STATUS_LOCKSTATUS_UNLOCKED (_SYSRTC_STATUS_LOCKSTATUS_UNLOCKED << 1) /**< Shifted mode UNLOCKED for SYSRTC_STATUS */
+#define SYSRTC_STATUS_LOCKSTATUS_LOCKED (_SYSRTC_STATUS_LOCKSTATUS_LOCKED << 1) /**< Shifted mode LOCKED for SYSRTC_STATUS */
+
+/* Bit fields for SYSRTC CNT */
+#define _SYSRTC_CNT_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_CNT */
+#define _SYSRTC_CNT_MASK 0xFFFFFFFFUL /**< Mask for SYSRTC_CNT */
+#define _SYSRTC_CNT_CNT_SHIFT 0 /**< Shift value for SYSRTC_CNT */
+#define _SYSRTC_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for SYSRTC_CNT */
+#define _SYSRTC_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_CNT */
+#define SYSRTC_CNT_CNT_DEFAULT (_SYSRTC_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_CNT */
+
+/* Bit fields for SYSRTC SYNCBUSY */
+#define _SYSRTC_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_SYNCBUSY */
+#define _SYSRTC_SYNCBUSY_MASK 0x0000000FUL /**< Mask for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_START (0x1UL << 0) /**< Sync busy for START bitfield */
+#define _SYSRTC_SYNCBUSY_START_SHIFT 0 /**< Shift value for SYSRTC_START */
+#define _SYSRTC_SYNCBUSY_START_MASK 0x1UL /**< Bit mask for SYSRTC_START */
+#define _SYSRTC_SYNCBUSY_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_START_DEFAULT (_SYSRTC_SYNCBUSY_START_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_STOP (0x1UL << 1) /**< Sync busy for STOP bitfield */
+#define _SYSRTC_SYNCBUSY_STOP_SHIFT 1 /**< Shift value for SYSRTC_STOP */
+#define _SYSRTC_SYNCBUSY_STOP_MASK 0x2UL /**< Bit mask for SYSRTC_STOP */
+#define _SYSRTC_SYNCBUSY_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_STOP_DEFAULT (_SYSRTC_SYNCBUSY_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_CNT (0x1UL << 2) /**< Sync busy for CNT bitfield */
+#define _SYSRTC_SYNCBUSY_CNT_SHIFT 2 /**< Shift value for SYSRTC_CNT */
+#define _SYSRTC_SYNCBUSY_CNT_MASK 0x4UL /**< Bit mask for SYSRTC_CNT */
+#define _SYSRTC_SYNCBUSY_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_SYNCBUSY */
+#define SYSRTC_SYNCBUSY_CNT_DEFAULT (_SYSRTC_SYNCBUSY_CNT_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSRTC_SYNCBUSY */
+
+/* Bit fields for SYSRTC LOCK */
+#define _SYSRTC_LOCK_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_LOCK */
+#define _SYSRTC_LOCK_MASK 0x0000FFFFUL /**< Mask for SYSRTC_LOCK */
+#define _SYSRTC_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for SYSRTC_LOCKKEY */
+#define _SYSRTC_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for SYSRTC_LOCKKEY */
+#define _SYSRTC_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_LOCK */
+#define _SYSRTC_LOCK_LOCKKEY_UNLOCK 0x00004776UL /**< Mode UNLOCK for SYSRTC_LOCK */
+#define SYSRTC_LOCK_LOCKKEY_DEFAULT (_SYSRTC_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_LOCK */
+#define SYSRTC_LOCK_LOCKKEY_UNLOCK (_SYSRTC_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for SYSRTC_LOCK */
+
+/* Bit fields for SYSRTC GRP0_IF */
+#define _SYSRTC_GRP0_IF_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_IF */
+#define _SYSRTC_GRP0_IF_MASK 0x0000000FUL /**< Mask for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_OVF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _SYSRTC_GRP0_IF_OVF_SHIFT 0 /**< Shift value for SYSRTC_OVF */
+#define _SYSRTC_GRP0_IF_OVF_MASK 0x1UL /**< Bit mask for SYSRTC_OVF */
+#define _SYSRTC_GRP0_IF_OVF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_OVF_DEFAULT (_SYSRTC_GRP0_IF_OVF_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CMP0 (0x1UL << 1) /**< Compare 0 Interrupt Flag */
+#define _SYSRTC_GRP0_IF_CMP0_SHIFT 1 /**< Shift value for SYSRTC_CMP0 */
+#define _SYSRTC_GRP0_IF_CMP0_MASK 0x2UL /**< Bit mask for SYSRTC_CMP0 */
+#define _SYSRTC_GRP0_IF_CMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CMP0_DEFAULT (_SYSRTC_GRP0_IF_CMP0_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CMP1 (0x1UL << 2) /**< Compare 1 Interrupt Flag */
+#define _SYSRTC_GRP0_IF_CMP1_SHIFT 2 /**< Shift value for SYSRTC_CMP1 */
+#define _SYSRTC_GRP0_IF_CMP1_MASK 0x4UL /**< Bit mask for SYSRTC_CMP1 */
+#define _SYSRTC_GRP0_IF_CMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CMP1_DEFAULT (_SYSRTC_GRP0_IF_CMP1_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CAP0 (0x1UL << 3) /**< Capture 0 Interrupt Flag */
+#define _SYSRTC_GRP0_IF_CAP0_SHIFT 3 /**< Shift value for SYSRTC_CAP0 */
+#define _SYSRTC_GRP0_IF_CAP0_MASK 0x8UL /**< Bit mask for SYSRTC_CAP0 */
+#define _SYSRTC_GRP0_IF_CAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IF */
+#define SYSRTC_GRP0_IF_CAP0_DEFAULT (_SYSRTC_GRP0_IF_CAP0_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IF */
+
+/* Bit fields for SYSRTC GRP0_IEN */
+#define _SYSRTC_GRP0_IEN_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_IEN */
+#define _SYSRTC_GRP0_IEN_MASK 0x0000000FUL /**< Mask for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_OVF (0x1UL << 0) /**< Overflow Interrupt Enable */
+#define _SYSRTC_GRP0_IEN_OVF_SHIFT 0 /**< Shift value for SYSRTC_OVF */
+#define _SYSRTC_GRP0_IEN_OVF_MASK 0x1UL /**< Bit mask for SYSRTC_OVF */
+#define _SYSRTC_GRP0_IEN_OVF_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_OVF_DEFAULT (_SYSRTC_GRP0_IEN_OVF_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CMP0 (0x1UL << 1) /**< Compare 0 Interrupt Enable */
+#define _SYSRTC_GRP0_IEN_CMP0_SHIFT 1 /**< Shift value for SYSRTC_CMP0 */
+#define _SYSRTC_GRP0_IEN_CMP0_MASK 0x2UL /**< Bit mask for SYSRTC_CMP0 */
+#define _SYSRTC_GRP0_IEN_CMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CMP0_DEFAULT (_SYSRTC_GRP0_IEN_CMP0_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CMP1 (0x1UL << 2) /**< Compare 1 Interrupt Enable */
+#define _SYSRTC_GRP0_IEN_CMP1_SHIFT 2 /**< Shift value for SYSRTC_CMP1 */
+#define _SYSRTC_GRP0_IEN_CMP1_MASK 0x4UL /**< Bit mask for SYSRTC_CMP1 */
+#define _SYSRTC_GRP0_IEN_CMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CMP1_DEFAULT (_SYSRTC_GRP0_IEN_CMP1_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CAP0 (0x1UL << 3) /**< Capture 0 Interrupt Enable */
+#define _SYSRTC_GRP0_IEN_CAP0_SHIFT 3 /**< Shift value for SYSRTC_CAP0 */
+#define _SYSRTC_GRP0_IEN_CAP0_MASK 0x8UL /**< Bit mask for SYSRTC_CAP0 */
+#define _SYSRTC_GRP0_IEN_CAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_IEN */
+#define SYSRTC_GRP0_IEN_CAP0_DEFAULT (_SYSRTC_GRP0_IEN_CAP0_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSRTC_GRP0_IEN */
+
+/* Bit fields for SYSRTC GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_MASK 0x000007FFUL /**< Mask for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0EN (0x1UL << 0) /**< Compare 0 Enable */
+#define _SYSRTC_GRP0_CTRL_CMP0EN_SHIFT 0 /**< Shift value for SYSRTC_CMP0EN */
+#define _SYSRTC_GRP0_CTRL_CMP0EN_MASK 0x1UL /**< Bit mask for SYSRTC_CMP0EN */
+#define _SYSRTC_GRP0_CTRL_CMP0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0EN_DEFAULT (_SYSRTC_GRP0_CTRL_CMP0EN_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1EN (0x1UL << 1) /**< Compare 1 Enable */
+#define _SYSRTC_GRP0_CTRL_CMP1EN_SHIFT 1 /**< Shift value for SYSRTC_CMP1EN */
+#define _SYSRTC_GRP0_CTRL_CMP1EN_MASK 0x2UL /**< Bit mask for SYSRTC_CMP1EN */
+#define _SYSRTC_GRP0_CTRL_CMP1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1EN_DEFAULT (_SYSRTC_GRP0_CTRL_CMP1EN_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EN (0x1UL << 2) /**< Capture 0 Enable */
+#define _SYSRTC_GRP0_CTRL_CAP0EN_SHIFT 2 /**< Shift value for SYSRTC_CAP0EN */
+#define _SYSRTC_GRP0_CTRL_CAP0EN_MASK 0x4UL /**< Bit mask for SYSRTC_CAP0EN */
+#define _SYSRTC_GRP0_CTRL_CAP0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EN_DEFAULT (_SYSRTC_GRP0_CTRL_CAP0EN_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_SHIFT 3 /**< Shift value for SYSRTC_CMP0CMOA */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_MASK 0x38UL /**< Bit mask for SYSRTC_CMP0CMOA */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_CLEAR 0x00000000UL /**< Mode CLEAR for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_SET 0x00000001UL /**< Mode SET for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_PULSE 0x00000002UL /**< Mode PULSE for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_TOGGLE 0x00000003UL /**< Mode TOGGLE for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP0CMOA_CMPIF 0x00000004UL /**< Mode CMPIF for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_DEFAULT (_SYSRTC_GRP0_CTRL_CMP0CMOA_DEFAULT << 3) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_CLEAR (_SYSRTC_GRP0_CTRL_CMP0CMOA_CLEAR << 3) /**< Shifted mode CLEAR for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_SET (_SYSRTC_GRP0_CTRL_CMP0CMOA_SET << 3) /**< Shifted mode SET for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_PULSE (_SYSRTC_GRP0_CTRL_CMP0CMOA_PULSE << 3) /**< Shifted mode PULSE for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_TOGGLE (_SYSRTC_GRP0_CTRL_CMP0CMOA_TOGGLE << 3) /**< Shifted mode TOGGLE for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP0CMOA_CMPIF (_SYSRTC_GRP0_CTRL_CMP0CMOA_CMPIF << 3) /**< Shifted mode CMPIF for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_SHIFT 6 /**< Shift value for SYSRTC_CMP1CMOA */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_MASK 0x1C0UL /**< Bit mask for SYSRTC_CMP1CMOA */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_CLEAR 0x00000000UL /**< Mode CLEAR for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_SET 0x00000001UL /**< Mode SET for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_PULSE 0x00000002UL /**< Mode PULSE for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_TOGGLE 0x00000003UL /**< Mode TOGGLE for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CMP1CMOA_CMPIF 0x00000004UL /**< Mode CMPIF for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_DEFAULT (_SYSRTC_GRP0_CTRL_CMP1CMOA_DEFAULT << 6) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_CLEAR (_SYSRTC_GRP0_CTRL_CMP1CMOA_CLEAR << 6) /**< Shifted mode CLEAR for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_SET (_SYSRTC_GRP0_CTRL_CMP1CMOA_SET << 6) /**< Shifted mode SET for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_PULSE (_SYSRTC_GRP0_CTRL_CMP1CMOA_PULSE << 6) /**< Shifted mode PULSE for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_TOGGLE (_SYSRTC_GRP0_CTRL_CMP1CMOA_TOGGLE << 6) /**< Shifted mode TOGGLE for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CMP1CMOA_CMPIF (_SYSRTC_GRP0_CTRL_CMP1CMOA_CMPIF << 6) /**< Shifted mode CMPIF for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_SHIFT 9 /**< Shift value for SYSRTC_CAP0EDGE */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_MASK 0x600UL /**< Bit mask for SYSRTC_CAP0EDGE */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_RISING 0x00000000UL /**< Mode RISING for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_FALLING 0x00000001UL /**< Mode FALLING for SYSRTC_GRP0_CTRL */
+#define _SYSRTC_GRP0_CTRL_CAP0EDGE_BOTH 0x00000002UL /**< Mode BOTH for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EDGE_DEFAULT (_SYSRTC_GRP0_CTRL_CAP0EDGE_DEFAULT << 9) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EDGE_RISING (_SYSRTC_GRP0_CTRL_CAP0EDGE_RISING << 9) /**< Shifted mode RISING for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EDGE_FALLING (_SYSRTC_GRP0_CTRL_CAP0EDGE_FALLING << 9) /**< Shifted mode FALLING for SYSRTC_GRP0_CTRL */
+#define SYSRTC_GRP0_CTRL_CAP0EDGE_BOTH (_SYSRTC_GRP0_CTRL_CAP0EDGE_BOTH << 9) /**< Shifted mode BOTH for SYSRTC_GRP0_CTRL */
+
+/* Bit fields for SYSRTC GRP0_CMP0VALUE */
+#define _SYSRTC_GRP0_CMP0VALUE_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_CMP0VALUE */
+#define _SYSRTC_GRP0_CMP0VALUE_MASK 0xFFFFFFFFUL /**< Mask for SYSRTC_GRP0_CMP0VALUE */
+#define _SYSRTC_GRP0_CMP0VALUE_CMP0VALUE_SHIFT 0 /**< Shift value for SYSRTC_CMP0VALUE */
+#define _SYSRTC_GRP0_CMP0VALUE_CMP0VALUE_MASK 0xFFFFFFFFUL /**< Bit mask for SYSRTC_CMP0VALUE */
+#define _SYSRTC_GRP0_CMP0VALUE_CMP0VALUE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CMP0VALUE */
+#define SYSRTC_GRP0_CMP0VALUE_CMP0VALUE_DEFAULT (_SYSRTC_GRP0_CMP0VALUE_CMP0VALUE_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CMP0VALUE*/
+
+/* Bit fields for SYSRTC GRP0_CMP1VALUE */
+#define _SYSRTC_GRP0_CMP1VALUE_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_CMP1VALUE */
+#define _SYSRTC_GRP0_CMP1VALUE_MASK 0xFFFFFFFFUL /**< Mask for SYSRTC_GRP0_CMP1VALUE */
+#define _SYSRTC_GRP0_CMP1VALUE_CMP1VALUE_SHIFT 0 /**< Shift value for SYSRTC_CMP1VALUE */
+#define _SYSRTC_GRP0_CMP1VALUE_CMP1VALUE_MASK 0xFFFFFFFFUL /**< Bit mask for SYSRTC_CMP1VALUE */
+#define _SYSRTC_GRP0_CMP1VALUE_CMP1VALUE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CMP1VALUE */
+#define SYSRTC_GRP0_CMP1VALUE_CMP1VALUE_DEFAULT (_SYSRTC_GRP0_CMP1VALUE_CMP1VALUE_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CMP1VALUE*/
+
+/* Bit fields for SYSRTC GRP0_CAP0VALUE */
+#define _SYSRTC_GRP0_CAP0VALUE_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_CAP0VALUE */
+#define _SYSRTC_GRP0_CAP0VALUE_MASK 0xFFFFFFFFUL /**< Mask for SYSRTC_GRP0_CAP0VALUE */
+#define _SYSRTC_GRP0_CAP0VALUE_CAP0VALUE_SHIFT 0 /**< Shift value for SYSRTC_CAP0VALUE */
+#define _SYSRTC_GRP0_CAP0VALUE_CAP0VALUE_MASK 0xFFFFFFFFUL /**< Bit mask for SYSRTC_CAP0VALUE */
+#define _SYSRTC_GRP0_CAP0VALUE_CAP0VALUE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_CAP0VALUE */
+#define SYSRTC_GRP0_CAP0VALUE_CAP0VALUE_DEFAULT (_SYSRTC_GRP0_CAP0VALUE_CAP0VALUE_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_CAP0VALUE*/
+
+/* Bit fields for SYSRTC GRP0_SYNCBUSY */
+#define _SYSRTC_GRP0_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for SYSRTC_GRP0_SYNCBUSY */
+#define _SYSRTC_GRP0_SYNCBUSY_MASK 0x00000007UL /**< Mask for SYSRTC_GRP0_SYNCBUSY */
+#define SYSRTC_GRP0_SYNCBUSY_CTRL (0x1UL << 0) /**< Sync busy for CTRL register */
+#define _SYSRTC_GRP0_SYNCBUSY_CTRL_SHIFT 0 /**< Shift value for SYSRTC_CTRL */
+#define _SYSRTC_GRP0_SYNCBUSY_CTRL_MASK 0x1UL /**< Bit mask for SYSRTC_CTRL */
+#define _SYSRTC_GRP0_SYNCBUSY_CTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_SYNCBUSY */
+#define SYSRTC_GRP0_SYNCBUSY_CTRL_DEFAULT (_SYSRTC_GRP0_SYNCBUSY_CTRL_DEFAULT << 0) /**< Shifted mode DEFAULT for SYSRTC_GRP0_SYNCBUSY*/
+#define SYSRTC_GRP0_SYNCBUSY_CMP0VALUE (0x1UL << 1) /**< Sync busy for CMP0VALUE register */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP0VALUE_SHIFT 1 /**< Shift value for SYSRTC_CMP0VALUE */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP0VALUE_MASK 0x2UL /**< Bit mask for SYSRTC_CMP0VALUE */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP0VALUE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_SYNCBUSY */
+#define SYSRTC_GRP0_SYNCBUSY_CMP0VALUE_DEFAULT (_SYSRTC_GRP0_SYNCBUSY_CMP0VALUE_DEFAULT << 1) /**< Shifted mode DEFAULT for SYSRTC_GRP0_SYNCBUSY*/
+#define SYSRTC_GRP0_SYNCBUSY_CMP1VALUE (0x1UL << 2) /**< Sync busy for CMP1VALUE register */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP1VALUE_SHIFT 2 /**< Shift value for SYSRTC_CMP1VALUE */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP1VALUE_MASK 0x4UL /**< Bit mask for SYSRTC_CMP1VALUE */
+#define _SYSRTC_GRP0_SYNCBUSY_CMP1VALUE_DEFAULT 0x00000000UL /**< Mode DEFAULT for SYSRTC_GRP0_SYNCBUSY */
+#define SYSRTC_GRP0_SYNCBUSY_CMP1VALUE_DEFAULT (_SYSRTC_GRP0_SYNCBUSY_CMP1VALUE_DEFAULT << 2) /**< Shifted mode DEFAULT for SYSRTC_GRP0_SYNCBUSY*/
+
+/** @} End of group EFR32ZG23_SYSRTC_BitFields */
+/** @} End of group EFR32ZG23_SYSRTC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_SYSRTC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_timer.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_timer.h
new file mode 100644
index 000000000..e0d479e97
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_timer.h
@@ -0,0 +1,1020 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 TIMER register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_TIMER_H
+#define EFR32ZG23_TIMER_H
+#define TIMER_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_TIMER TIMER
+ * @{
+ * @brief EFR32ZG23 TIMER Register Declaration.
+ *****************************************************************************/
+
+/** TIMER CC Register Group Declaration. */
+typedef struct timer_cc_typedef{
+ __IOM uint32_t CFG; /**< CC Channel Configuration Register */
+ __IOM uint32_t CTRL; /**< CC Channel Control Register */
+ __IOM uint32_t OC; /**< OC Channel Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t OCB; /**< OC Channel Value Buffer Register */
+ __IM uint32_t ICF; /**< IC Channel Value Register */
+ __IM uint32_t ICOF; /**< IC Channel Value Overflow Register */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+} TIMER_CC_TypeDef;
+
+/** TIMER Register Declaration. */
+typedef struct timer_typedef{
+ __IM uint32_t IPVERSION; /**< IP version ID */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT; /**< Counter Value Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN; /**< module en */
+ uint32_t RESERVED1[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED2[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED3[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version ID */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_SET; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_SET; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_SET; /**< Counter Value Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_SET; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_SET; /**< module en */
+ uint32_t RESERVED5[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_SET[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED6[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_SET; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_SET; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_SET; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_SET; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_SET; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_SET; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_SET; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_SET; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED7[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version ID */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_CLR; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_CLR; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_CLR; /**< Counter Value Register */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_CLR; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_CLR; /**< module en */
+ uint32_t RESERVED9[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_CLR[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED10[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_CLR; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_CLR; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_CLR; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_CLR; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_CLR; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_CLR; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_CLR; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_CLR; /**< DTI Configuration Lock Register */
+ uint32_t RESERVED11[960U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version ID */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t TOP_TGL; /**< Counter Top Value Register */
+ __IOM uint32_t TOPB_TGL; /**< Counter Top Value Buffer Register */
+ __IOM uint32_t CNT_TGL; /**< Counter Value Register */
+ uint32_t RESERVED12[1U]; /**< Reserved for future use */
+ __IOM uint32_t LOCK_TGL; /**< TIMER Configuration Lock Register */
+ __IOM uint32_t EN_TGL; /**< module en */
+ uint32_t RESERVED13[11U]; /**< Reserved for future use */
+ TIMER_CC_TypeDef CC_TGL[3U]; /**< Compare/Capture Channel */
+ uint32_t RESERVED14[8U]; /**< Reserved for future use */
+ __IOM uint32_t DTCFG_TGL; /**< DTI Configuration Register */
+ __IOM uint32_t DTTIMECFG_TGL; /**< DTI Time Configuration Register */
+ __IOM uint32_t DTFCFG_TGL; /**< DTI Fault Configuration Register */
+ __IOM uint32_t DTCTRL_TGL; /**< DTI Control Register */
+ __IOM uint32_t DTOGEN_TGL; /**< DTI Output Generation Enable Register */
+ __IM uint32_t DTFAULT_TGL; /**< DTI Fault Register */
+ __IOM uint32_t DTFAULTC_TGL; /**< DTI Fault Clear Register */
+ __IOM uint32_t DTLOCK_TGL; /**< DTI Configuration Lock Register */
+} TIMER_TypeDef;
+/** @} End of group EFR32ZG23_TIMER */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_TIMER
+ * @{
+ * @defgroup EFR32ZG23_TIMER_BitFields TIMER Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for TIMER IPVERSION */
+#define _TIMER_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_IPVERSION */
+#define _TIMER_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for TIMER_IPVERSION */
+#define TIMER_IPVERSION_IPVERSION_DEFAULT (_TIMER_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IPVERSION */
+
+/* Bit fields for TIMER CFG */
+#define _TIMER_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CFG */
+#define _TIMER_CFG_MASK 0x0FFF1FFBUL /**< Mask for TIMER_CFG */
+#define _TIMER_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_MODE_UP 0x00000000UL /**< Mode UP for TIMER_CFG */
+#define _TIMER_CFG_MODE_DOWN 0x00000001UL /**< Mode DOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_UPDOWN 0x00000002UL /**< Mode UPDOWN for TIMER_CFG */
+#define _TIMER_CFG_MODE_QDEC 0x00000003UL /**< Mode QDEC for TIMER_CFG */
+#define TIMER_CFG_MODE_DEFAULT (_TIMER_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_MODE_UP (_TIMER_CFG_MODE_UP << 0) /**< Shifted mode UP for TIMER_CFG */
+#define TIMER_CFG_MODE_DOWN (_TIMER_CFG_MODE_DOWN << 0) /**< Shifted mode DOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_UPDOWN (_TIMER_CFG_MODE_UPDOWN << 0) /**< Shifted mode UPDOWN for TIMER_CFG */
+#define TIMER_CFG_MODE_QDEC (_TIMER_CFG_MODE_QDEC << 0) /**< Shifted mode QDEC for TIMER_CFG */
+#define TIMER_CFG_SYNC (0x1UL << 3) /**< Timer Start/Stop/Reload Synchronization */
+#define _TIMER_CFG_SYNC_SHIFT 3 /**< Shift value for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_MASK 0x8UL /**< Bit mask for TIMER_SYNC */
+#define _TIMER_CFG_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_DEFAULT (_TIMER_CFG_SYNC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_SYNC_DISABLE (_TIMER_CFG_SYNC_DISABLE << 3) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_SYNC_ENABLE (_TIMER_CFG_SYNC_ENABLE << 3) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_OSMEN (0x1UL << 4) /**< One-shot Mode Enable */
+#define _TIMER_CFG_OSMEN_SHIFT 4 /**< Shift value for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_MASK 0x10UL /**< Bit mask for TIMER_OSMEN */
+#define _TIMER_CFG_OSMEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_OSMEN_DEFAULT (_TIMER_CFG_OSMEN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM (0x1UL << 5) /**< Quadrature Decoder Mode Selection */
+#define _TIMER_CFG_QDM_SHIFT 5 /**< Shift value for TIMER_QDM */
+#define _TIMER_CFG_QDM_MASK 0x20UL /**< Bit mask for TIMER_QDM */
+#define _TIMER_CFG_QDM_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_QDM_X2 0x00000000UL /**< Mode X2 for TIMER_CFG */
+#define _TIMER_CFG_QDM_X4 0x00000001UL /**< Mode X4 for TIMER_CFG */
+#define TIMER_CFG_QDM_DEFAULT (_TIMER_CFG_QDM_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_QDM_X2 (_TIMER_CFG_QDM_X2 << 5) /**< Shifted mode X2 for TIMER_CFG */
+#define TIMER_CFG_QDM_X4 (_TIMER_CFG_QDM_X4 << 5) /**< Shifted mode X4 for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN (0x1UL << 6) /**< Debug Mode Run Enable */
+#define _TIMER_CFG_DEBUGRUN_SHIFT 6 /**< Shift value for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_MASK 0x40UL /**< Bit mask for TIMER_DEBUGRUN */
+#define _TIMER_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_HALT 0x00000000UL /**< Mode HALT for TIMER_CFG */
+#define _TIMER_CFG_DEBUGRUN_RUN 0x00000001UL /**< Mode RUN for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_DEFAULT (_TIMER_CFG_DEBUGRUN_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_HALT (_TIMER_CFG_DEBUGRUN_HALT << 6) /**< Shifted mode HALT for TIMER_CFG */
+#define TIMER_CFG_DEBUGRUN_RUN (_TIMER_CFG_DEBUGRUN_RUN << 6) /**< Shifted mode RUN for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT (0x1UL << 7) /**< DMA Request Clear on Active */
+#define _TIMER_CFG_DMACLRACT_SHIFT 7 /**< Shift value for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_MASK 0x80UL /**< Bit mask for TIMER_DMACLRACT */
+#define _TIMER_CFG_DMACLRACT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DMACLRACT_DEFAULT (_TIMER_CFG_DMACLRACT_DEFAULT << 7) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_SHIFT 8 /**< Shift value for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_MASK 0x300UL /**< Bit mask for TIMER_CLKSEL */
+#define _TIMER_CFG_CLKSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_PRESCEM01GRPACLK 0x00000000UL /**< Mode PRESCEM01GRPACLK for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_CC1 0x00000001UL /**< Mode CC1 for TIMER_CFG */
+#define _TIMER_CFG_CLKSEL_TIMEROUF 0x00000002UL /**< Mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_DEFAULT (_TIMER_CFG_CLKSEL_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_PRESCEM01GRPACLK (_TIMER_CFG_CLKSEL_PRESCEM01GRPACLK << 8) /**< Shifted mode PRESCEM01GRPACLK for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_CC1 (_TIMER_CFG_CLKSEL_CC1 << 8) /**< Shifted mode CC1 for TIMER_CFG */
+#define TIMER_CFG_CLKSEL_TIMEROUF (_TIMER_CFG_CLKSEL_TIMEROUF << 8) /**< Shifted mode TIMEROUF for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN (0x1UL << 10) /**< PWM output retimed enable */
+#define _TIMER_CFG_RETIMEEN_SHIFT 10 /**< Shift value for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_MASK 0x400UL /**< Bit mask for TIMER_RETIMEEN */
+#define _TIMER_CFG_RETIMEEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CFG */
+#define _TIMER_CFG_RETIMEEN_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DEFAULT (_TIMER_CFG_RETIMEEN_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_DISABLE (_TIMER_CFG_RETIMEEN_DISABLE << 10) /**< Shifted mode DISABLE for TIMER_CFG */
+#define TIMER_CFG_RETIMEEN_ENABLE (_TIMER_CFG_RETIMEEN_ENABLE << 10) /**< Shifted mode ENABLE for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT (0x1UL << 11) /**< Disable Timer Start/Stop/Reload output */
+#define _TIMER_CFG_DISSYNCOUT_SHIFT 11 /**< Shift value for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_MASK 0x800UL /**< Bit mask for TIMER_DISSYNCOUT */
+#define _TIMER_CFG_DISSYNCOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_EN 0x00000000UL /**< Mode EN for TIMER_CFG */
+#define _TIMER_CFG_DISSYNCOUT_DIS 0x00000001UL /**< Mode DIS for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DEFAULT (_TIMER_CFG_DISSYNCOUT_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_EN (_TIMER_CFG_DISSYNCOUT_EN << 11) /**< Shifted mode EN for TIMER_CFG */
+#define TIMER_CFG_DISSYNCOUT_DIS (_TIMER_CFG_DISSYNCOUT_DIS << 11) /**< Shifted mode DIS for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL (0x1UL << 12) /**< PWM output retime select */
+#define _TIMER_CFG_RETIMESEL_SHIFT 12 /**< Shift value for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_MASK 0x1000UL /**< Bit mask for TIMER_RETIMESEL */
+#define _TIMER_CFG_RETIMESEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RETIMESEL_DEFAULT (_TIMER_CFG_RETIMESEL_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI (0x1UL << 16) /**< Always Track Inputs */
+#define _TIMER_CFG_ATI_SHIFT 16 /**< Shift value for TIMER_ATI */
+#define _TIMER_CFG_ATI_MASK 0x10000UL /**< Bit mask for TIMER_ATI */
+#define _TIMER_CFG_ATI_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_ATI_DEFAULT (_TIMER_CFG_ATI_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST (0x1UL << 17) /**< Reload-Start Sets COIST */
+#define _TIMER_CFG_RSSCOIST_SHIFT 17 /**< Shift value for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_MASK 0x20000UL /**< Bit mask for TIMER_RSSCOIST */
+#define _TIMER_CFG_RSSCOIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_RSSCOIST_DEFAULT (_TIMER_CFG_RSSCOIST_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_SHIFT 18 /**< Shift value for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_MASK 0xFFC0000UL /**< Bit mask for TIMER_PRESC */
+#define _TIMER_CFG_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1 0x00000000UL /**< Mode DIV1 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV2 0x00000001UL /**< Mode DIV2 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV4 0x00000003UL /**< Mode DIV4 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV8 0x00000007UL /**< Mode DIV8 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV16 0x0000000FUL /**< Mode DIV16 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV32 0x0000001FUL /**< Mode DIV32 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV64 0x0000003FUL /**< Mode DIV64 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV128 0x0000007FUL /**< Mode DIV128 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV256 0x000000FFUL /**< Mode DIV256 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV512 0x000001FFUL /**< Mode DIV512 for TIMER_CFG */
+#define _TIMER_CFG_PRESC_DIV1024 0x000003FFUL /**< Mode DIV1024 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DEFAULT (_TIMER_CFG_PRESC_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1 (_TIMER_CFG_PRESC_DIV1 << 18) /**< Shifted mode DIV1 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV2 (_TIMER_CFG_PRESC_DIV2 << 18) /**< Shifted mode DIV2 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV4 (_TIMER_CFG_PRESC_DIV4 << 18) /**< Shifted mode DIV4 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV8 (_TIMER_CFG_PRESC_DIV8 << 18) /**< Shifted mode DIV8 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV16 (_TIMER_CFG_PRESC_DIV16 << 18) /**< Shifted mode DIV16 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV32 (_TIMER_CFG_PRESC_DIV32 << 18) /**< Shifted mode DIV32 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV64 (_TIMER_CFG_PRESC_DIV64 << 18) /**< Shifted mode DIV64 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV128 (_TIMER_CFG_PRESC_DIV128 << 18) /**< Shifted mode DIV128 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV256 (_TIMER_CFG_PRESC_DIV256 << 18) /**< Shifted mode DIV256 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV512 (_TIMER_CFG_PRESC_DIV512 << 18) /**< Shifted mode DIV512 for TIMER_CFG */
+#define TIMER_CFG_PRESC_DIV1024 (_TIMER_CFG_PRESC_DIV1024 << 18) /**< Shifted mode DIV1024 for TIMER_CFG */
+
+/* Bit fields for TIMER CTRL */
+#define _TIMER_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CTRL */
+#define _TIMER_CTRL_MASK 0x0000001FUL /**< Mask for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_SHIFT 0 /**< Shift value for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_MASK 0x3UL /**< Bit mask for TIMER_RISEA */
+#define _TIMER_CTRL_RISEA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_RISEA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_DEFAULT (_TIMER_CTRL_RISEA_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_NONE (_TIMER_CTRL_RISEA_NONE << 0) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_START (_TIMER_CTRL_RISEA_START << 0) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_STOP (_TIMER_CTRL_RISEA_STOP << 0) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_RISEA_RELOADSTART (_TIMER_CTRL_RISEA_RELOADSTART << 0) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_SHIFT 2 /**< Shift value for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_MASK 0xCUL /**< Bit mask for TIMER_FALLA */
+#define _TIMER_CTRL_FALLA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_NONE 0x00000000UL /**< Mode NONE for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_START 0x00000001UL /**< Mode START for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_STOP 0x00000002UL /**< Mode STOP for TIMER_CTRL */
+#define _TIMER_CTRL_FALLA_RELOADSTART 0x00000003UL /**< Mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_DEFAULT (_TIMER_CTRL_FALLA_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_NONE (_TIMER_CTRL_FALLA_NONE << 2) /**< Shifted mode NONE for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_START (_TIMER_CTRL_FALLA_START << 2) /**< Shifted mode START for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_STOP (_TIMER_CTRL_FALLA_STOP << 2) /**< Shifted mode STOP for TIMER_CTRL */
+#define TIMER_CTRL_FALLA_RELOADSTART (_TIMER_CTRL_FALLA_RELOADSTART << 2) /**< Shifted mode RELOADSTART for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT (0x1UL << 4) /**< 2x Count Mode */
+#define _TIMER_CTRL_X2CNT_SHIFT 4 /**< Shift value for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_MASK 0x10UL /**< Bit mask for TIMER_X2CNT */
+#define _TIMER_CTRL_X2CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CTRL */
+#define TIMER_CTRL_X2CNT_DEFAULT (_TIMER_CTRL_X2CNT_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CTRL */
+
+/* Bit fields for TIMER CMD */
+#define _TIMER_CMD_RESETVALUE 0x00000000UL /**< Default value for TIMER_CMD */
+#define _TIMER_CMD_MASK 0x00000003UL /**< Mask for TIMER_CMD */
+#define TIMER_CMD_START (0x1UL << 0) /**< Start Timer */
+#define _TIMER_CMD_START_SHIFT 0 /**< Shift value for TIMER_START */
+#define _TIMER_CMD_START_MASK 0x1UL /**< Bit mask for TIMER_START */
+#define _TIMER_CMD_START_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_START_DEFAULT (_TIMER_CMD_START_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP (0x1UL << 1) /**< Stop Timer */
+#define _TIMER_CMD_STOP_SHIFT 1 /**< Shift value for TIMER_STOP */
+#define _TIMER_CMD_STOP_MASK 0x2UL /**< Bit mask for TIMER_STOP */
+#define _TIMER_CMD_STOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CMD */
+#define TIMER_CMD_STOP_DEFAULT (_TIMER_CMD_STOP_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_CMD */
+
+/* Bit fields for TIMER STATUS */
+#define _TIMER_STATUS_RESETVALUE 0x00000000UL /**< Default value for TIMER_STATUS */
+#define _TIMER_STATUS_MASK 0x07070777UL /**< Mask for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING (0x1UL << 0) /**< Running */
+#define _TIMER_STATUS_RUNNING_SHIFT 0 /**< Shift value for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_MASK 0x1UL /**< Bit mask for TIMER_RUNNING */
+#define _TIMER_STATUS_RUNNING_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_RUNNING_DEFAULT (_TIMER_STATUS_RUNNING_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR (0x1UL << 1) /**< Direction */
+#define _TIMER_STATUS_DIR_SHIFT 1 /**< Shift value for TIMER_DIR */
+#define _TIMER_STATUS_DIR_MASK 0x2UL /**< Bit mask for TIMER_DIR */
+#define _TIMER_STATUS_DIR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_UP 0x00000000UL /**< Mode UP for TIMER_STATUS */
+#define _TIMER_STATUS_DIR_DOWN 0x00000001UL /**< Mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DEFAULT (_TIMER_STATUS_DIR_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DIR_UP (_TIMER_STATUS_DIR_UP << 1) /**< Shifted mode UP for TIMER_STATUS */
+#define TIMER_STATUS_DIR_DOWN (_TIMER_STATUS_DIR_DOWN << 1) /**< Shifted mode DOWN for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV (0x1UL << 2) /**< TOP Buffer Valid */
+#define _TIMER_STATUS_TOPBV_SHIFT 2 /**< Shift value for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_MASK 0x4UL /**< Bit mask for TIMER_TOPBV */
+#define _TIMER_STATUS_TOPBV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TOPBV_DEFAULT (_TIMER_STATUS_TOPBV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS (0x1UL << 4) /**< Timer lock status */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_SHIFT 4 /**< Shift value for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_MASK 0x10UL /**< Bit mask for TIMER_TIMERLOCKSTATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_TIMERLOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT (_TIMER_STATUS_TIMERLOCKSTATUS_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_UNLOCKED << 4) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_TIMERLOCKSTATUS_LOCKED (_TIMER_STATUS_TIMERLOCKSTATUS_LOCKED << 4) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS (0x1UL << 5) /**< DTI lock status */
+#define _TIMER_STATUS_DTILOCKSTATUS_SHIFT 5 /**< Shift value for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_MASK 0x20UL /**< Bit mask for TIMER_DTILOCKSTATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for TIMER_STATUS */
+#define _TIMER_STATUS_DTILOCKSTATUS_LOCKED 0x00000001UL /**< Mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_DEFAULT (_TIMER_STATUS_DTILOCKSTATUS_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_UNLOCKED (_TIMER_STATUS_DTILOCKSTATUS_UNLOCKED << 5) /**< Shifted mode UNLOCKED for TIMER_STATUS */
+#define TIMER_STATUS_DTILOCKSTATUS_LOCKED (_TIMER_STATUS_DTILOCKSTATUS_LOCKED << 5) /**< Shifted mode LOCKED for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY (0x1UL << 6) /**< Sync Busy */
+#define _TIMER_STATUS_SYNCBUSY_SHIFT 6 /**< Shift value for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_MASK 0x40UL /**< Bit mask for TIMER_SYNCBUSY */
+#define _TIMER_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_SYNCBUSY_DEFAULT (_TIMER_STATUS_SYNCBUSY_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0 (0x1UL << 8) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV0_SHIFT 8 /**< Shift value for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_MASK 0x100UL /**< Bit mask for TIMER_OCBV0 */
+#define _TIMER_STATUS_OCBV0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV0_DEFAULT (_TIMER_STATUS_OCBV0_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1 (0x1UL << 9) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV1_SHIFT 9 /**< Shift value for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_MASK 0x200UL /**< Bit mask for TIMER_OCBV1 */
+#define _TIMER_STATUS_OCBV1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV1_DEFAULT (_TIMER_STATUS_OCBV1_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2 (0x1UL << 10) /**< Output Compare Buffer Valid */
+#define _TIMER_STATUS_OCBV2_SHIFT 10 /**< Shift value for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_MASK 0x400UL /**< Bit mask for TIMER_OCBV2 */
+#define _TIMER_STATUS_OCBV2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_OCBV2_DEFAULT (_TIMER_STATUS_OCBV2_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0 (0x1UL << 16) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY0_SHIFT 16 /**< Shift value for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_MASK 0x10000UL /**< Bit mask for TIMER_ICFEMPTY0 */
+#define _TIMER_STATUS_ICFEMPTY0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY0_DEFAULT (_TIMER_STATUS_ICFEMPTY0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1 (0x1UL << 17) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY1_SHIFT 17 /**< Shift value for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_MASK 0x20000UL /**< Bit mask for TIMER_ICFEMPTY1 */
+#define _TIMER_STATUS_ICFEMPTY1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY1_DEFAULT (_TIMER_STATUS_ICFEMPTY1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2 (0x1UL << 18) /**< Input capture fifo empty */
+#define _TIMER_STATUS_ICFEMPTY2_SHIFT 18 /**< Shift value for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_MASK 0x40000UL /**< Bit mask for TIMER_ICFEMPTY2 */
+#define _TIMER_STATUS_ICFEMPTY2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_ICFEMPTY2_DEFAULT (_TIMER_STATUS_ICFEMPTY2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0 (0x1UL << 24) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL0_SHIFT 24 /**< Shift value for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_MASK 0x1000000UL /**< Bit mask for TIMER_CCPOL0 */
+#define _TIMER_STATUS_CCPOL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL0_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_DEFAULT (_TIMER_STATUS_CCPOL0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_LOWRISE (_TIMER_STATUS_CCPOL0_LOWRISE << 24) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL0_HIGHFALL (_TIMER_STATUS_CCPOL0_HIGHFALL << 24) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1 (0x1UL << 25) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL1_SHIFT 25 /**< Shift value for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_MASK 0x2000000UL /**< Bit mask for TIMER_CCPOL1 */
+#define _TIMER_STATUS_CCPOL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL1_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_DEFAULT (_TIMER_STATUS_CCPOL1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_LOWRISE (_TIMER_STATUS_CCPOL1_LOWRISE << 25) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL1_HIGHFALL (_TIMER_STATUS_CCPOL1_HIGHFALL << 25) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2 (0x1UL << 26) /**< Compare/Capture Polarity */
+#define _TIMER_STATUS_CCPOL2_SHIFT 26 /**< Shift value for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_MASK 0x4000000UL /**< Bit mask for TIMER_CCPOL2 */
+#define _TIMER_STATUS_CCPOL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_LOWRISE 0x00000000UL /**< Mode LOWRISE for TIMER_STATUS */
+#define _TIMER_STATUS_CCPOL2_HIGHFALL 0x00000001UL /**< Mode HIGHFALL for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_DEFAULT (_TIMER_STATUS_CCPOL2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_LOWRISE (_TIMER_STATUS_CCPOL2_LOWRISE << 26) /**< Shifted mode LOWRISE for TIMER_STATUS */
+#define TIMER_STATUS_CCPOL2_HIGHFALL (_TIMER_STATUS_CCPOL2_HIGHFALL << 26) /**< Shifted mode HIGHFALL for TIMER_STATUS */
+
+/* Bit fields for TIMER IF */
+#define _TIMER_IF_RESETVALUE 0x00000000UL /**< Default value for TIMER_IF */
+#define _TIMER_IF_MASK 0x07770077UL /**< Mask for TIMER_IF */
+#define TIMER_IF_OF (0x1UL << 0) /**< Overflow Interrupt Flag */
+#define _TIMER_IF_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IF_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IF_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_OF_DEFAULT (_TIMER_IF_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF (0x1UL << 1) /**< Underflow Interrupt Flag */
+#define _TIMER_IF_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IF_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IF_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_UF_DEFAULT (_TIMER_IF_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Flag */
+#define _TIMER_IF_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IF_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_DIRCHG_DEFAULT (_TIMER_IF_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0 (0x1UL << 4) /**< Capture Compare Channel 0 Interrupt Flag */
+#define _TIMER_IF_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IF_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IF_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC0_DEFAULT (_TIMER_IF_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1 (0x1UL << 5) /**< Capture Compare Channel 1 Interrupt Flag */
+#define _TIMER_IF_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IF_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IF_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC1_DEFAULT (_TIMER_IF_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2 (0x1UL << 6) /**< Capture Compare Channel 2 Interrupt Flag */
+#define _TIMER_IF_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IF_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IF_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_CC2_DEFAULT (_TIMER_IF_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0 (0x1UL << 16) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IF_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL0_DEFAULT (_TIMER_IF_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1 (0x1UL << 17) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IF_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL1_DEFAULT (_TIMER_IF_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2 (0x1UL << 18) /**< Input Capture Watermark Level Full */
+#define _TIMER_IF_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IF_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFWLFULL2_DEFAULT (_TIMER_IF_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0 (0x1UL << 20) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IF_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF0_DEFAULT (_TIMER_IF_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1 (0x1UL << 21) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IF_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF1_DEFAULT (_TIMER_IF_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2 (0x1UL << 22) /**< Input Capture FIFO overflow */
+#define _TIMER_IF_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IF_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFOF2_DEFAULT (_TIMER_IF_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0 (0x1UL << 24) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IF_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF0_DEFAULT (_TIMER_IF_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1 (0x1UL << 25) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IF_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF1_DEFAULT (_TIMER_IF_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2 (0x1UL << 26) /**< Input capture FIFO underflow */
+#define _TIMER_IF_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IF_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IF */
+#define TIMER_IF_ICFUF2_DEFAULT (_TIMER_IF_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IF */
+
+/* Bit fields for TIMER IEN */
+#define _TIMER_IEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_IEN */
+#define _TIMER_IEN_MASK 0x07770077UL /**< Mask for TIMER_IEN */
+#define TIMER_IEN_OF (0x1UL << 0) /**< Overflow Interrupt Enable */
+#define _TIMER_IEN_OF_SHIFT 0 /**< Shift value for TIMER_OF */
+#define _TIMER_IEN_OF_MASK 0x1UL /**< Bit mask for TIMER_OF */
+#define _TIMER_IEN_OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_OF_DEFAULT (_TIMER_IEN_OF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF (0x1UL << 1) /**< Underflow Interrupt Enable */
+#define _TIMER_IEN_UF_SHIFT 1 /**< Shift value for TIMER_UF */
+#define _TIMER_IEN_UF_MASK 0x2UL /**< Bit mask for TIMER_UF */
+#define _TIMER_IEN_UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_UF_DEFAULT (_TIMER_IEN_UF_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG (0x1UL << 2) /**< Direction Change Detect Interrupt Enable */
+#define _TIMER_IEN_DIRCHG_SHIFT 2 /**< Shift value for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_MASK 0x4UL /**< Bit mask for TIMER_DIRCHG */
+#define _TIMER_IEN_DIRCHG_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_DIRCHG_DEFAULT (_TIMER_IEN_DIRCHG_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0 (0x1UL << 4) /**< CC0 Interrupt Enable */
+#define _TIMER_IEN_CC0_SHIFT 4 /**< Shift value for TIMER_CC0 */
+#define _TIMER_IEN_CC0_MASK 0x10UL /**< Bit mask for TIMER_CC0 */
+#define _TIMER_IEN_CC0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC0_DEFAULT (_TIMER_IEN_CC0_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1 (0x1UL << 5) /**< CC1 Interrupt Enable */
+#define _TIMER_IEN_CC1_SHIFT 5 /**< Shift value for TIMER_CC1 */
+#define _TIMER_IEN_CC1_MASK 0x20UL /**< Bit mask for TIMER_CC1 */
+#define _TIMER_IEN_CC1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC1_DEFAULT (_TIMER_IEN_CC1_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2 (0x1UL << 6) /**< CC2 Interrupt Enable */
+#define _TIMER_IEN_CC2_SHIFT 6 /**< Shift value for TIMER_CC2 */
+#define _TIMER_IEN_CC2_MASK 0x40UL /**< Bit mask for TIMER_CC2 */
+#define _TIMER_IEN_CC2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_CC2_DEFAULT (_TIMER_IEN_CC2_DEFAULT << 6) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0 (0x1UL << 16) /**< ICFWLFULL0 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL0_SHIFT 16 /**< Shift value for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_MASK 0x10000UL /**< Bit mask for TIMER_ICFWLFULL0 */
+#define _TIMER_IEN_ICFWLFULL0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL0_DEFAULT (_TIMER_IEN_ICFWLFULL0_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1 (0x1UL << 17) /**< ICFWLFULL1 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL1_SHIFT 17 /**< Shift value for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_MASK 0x20000UL /**< Bit mask for TIMER_ICFWLFULL1 */
+#define _TIMER_IEN_ICFWLFULL1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL1_DEFAULT (_TIMER_IEN_ICFWLFULL1_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2 (0x1UL << 18) /**< ICFWLFULL2 Interrupt Enable */
+#define _TIMER_IEN_ICFWLFULL2_SHIFT 18 /**< Shift value for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_MASK 0x40000UL /**< Bit mask for TIMER_ICFWLFULL2 */
+#define _TIMER_IEN_ICFWLFULL2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFWLFULL2_DEFAULT (_TIMER_IEN_ICFWLFULL2_DEFAULT << 18) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0 (0x1UL << 20) /**< ICFOF0 Interrupt Enable */
+#define _TIMER_IEN_ICFOF0_SHIFT 20 /**< Shift value for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_MASK 0x100000UL /**< Bit mask for TIMER_ICFOF0 */
+#define _TIMER_IEN_ICFOF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF0_DEFAULT (_TIMER_IEN_ICFOF0_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1 (0x1UL << 21) /**< ICFOF1 Interrupt Enable */
+#define _TIMER_IEN_ICFOF1_SHIFT 21 /**< Shift value for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_MASK 0x200000UL /**< Bit mask for TIMER_ICFOF1 */
+#define _TIMER_IEN_ICFOF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF1_DEFAULT (_TIMER_IEN_ICFOF1_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2 (0x1UL << 22) /**< ICFOF2 Interrupt Enable */
+#define _TIMER_IEN_ICFOF2_SHIFT 22 /**< Shift value for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_MASK 0x400000UL /**< Bit mask for TIMER_ICFOF2 */
+#define _TIMER_IEN_ICFOF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFOF2_DEFAULT (_TIMER_IEN_ICFOF2_DEFAULT << 22) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0 (0x1UL << 24) /**< ICFUF0 Interrupt Enable */
+#define _TIMER_IEN_ICFUF0_SHIFT 24 /**< Shift value for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_MASK 0x1000000UL /**< Bit mask for TIMER_ICFUF0 */
+#define _TIMER_IEN_ICFUF0_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF0_DEFAULT (_TIMER_IEN_ICFUF0_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1 (0x1UL << 25) /**< ICFUF1 Interrupt Enable */
+#define _TIMER_IEN_ICFUF1_SHIFT 25 /**< Shift value for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_MASK 0x2000000UL /**< Bit mask for TIMER_ICFUF1 */
+#define _TIMER_IEN_ICFUF1_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF1_DEFAULT (_TIMER_IEN_ICFUF1_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2 (0x1UL << 26) /**< ICFUF2 Interrupt Enable */
+#define _TIMER_IEN_ICFUF2_SHIFT 26 /**< Shift value for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_MASK 0x4000000UL /**< Bit mask for TIMER_ICFUF2 */
+#define _TIMER_IEN_ICFUF2_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_IEN */
+#define TIMER_IEN_ICFUF2_DEFAULT (_TIMER_IEN_ICFUF2_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_IEN */
+
+/* Bit fields for TIMER TOP */
+#define _TIMER_TOP_RESETVALUE 0x0000FFFFUL /**< Default value for TIMER_TOP */
+#define _TIMER_TOP_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_SHIFT 0 /**< Shift value for TIMER_TOP */
+#define _TIMER_TOP_TOP_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOP */
+#define _TIMER_TOP_TOP_DEFAULT 0x0000FFFFUL /**< Mode DEFAULT for TIMER_TOP */
+#define TIMER_TOP_TOP_DEFAULT (_TIMER_TOP_TOP_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOP */
+
+/* Bit fields for TIMER TOPB */
+#define _TIMER_TOPB_RESETVALUE 0x00000000UL /**< Default value for TIMER_TOPB */
+#define _TIMER_TOPB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_SHIFT 0 /**< Shift value for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_TOPB */
+#define _TIMER_TOPB_TOPB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_TOPB */
+#define TIMER_TOPB_TOPB_DEFAULT (_TIMER_TOPB_TOPB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_TOPB */
+
+/* Bit fields for TIMER CNT */
+#define _TIMER_CNT_RESETVALUE 0x00000000UL /**< Default value for TIMER_CNT */
+#define _TIMER_CNT_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_SHIFT 0 /**< Shift value for TIMER_CNT */
+#define _TIMER_CNT_CNT_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_CNT */
+#define _TIMER_CNT_CNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CNT */
+#define TIMER_CNT_CNT_DEFAULT (_TIMER_CNT_CNT_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CNT */
+
+/* Bit fields for TIMER LOCK */
+#define _TIMER_LOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_LOCK */
+#define _TIMER_LOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_LOCKKEY */
+#define _TIMER_LOCK_LOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_LOCK */
+#define _TIMER_LOCK_LOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_DEFAULT (_TIMER_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_LOCK */
+#define TIMER_LOCK_LOCKKEY_UNLOCK (_TIMER_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_LOCK */
+
+/* Bit fields for TIMER EN */
+#define _TIMER_EN_RESETVALUE 0x00000000UL /**< Default value for TIMER_EN */
+#define _TIMER_EN_MASK 0x00000003UL /**< Mask for TIMER_EN */
+#define TIMER_EN_EN (0x1UL << 0) /**< Timer Module Enable */
+#define _TIMER_EN_EN_SHIFT 0 /**< Shift value for TIMER_EN */
+#define _TIMER_EN_EN_MASK 0x1UL /**< Bit mask for TIMER_EN */
+#define _TIMER_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_EN */
+#define TIMER_EN_EN_DEFAULT (_TIMER_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_EN */
+#define TIMER_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _TIMER_EN_DISABLING_SHIFT 1 /**< Shift value for TIMER_DISABLING */
+#define _TIMER_EN_DISABLING_MASK 0x2UL /**< Bit mask for TIMER_DISABLING */
+#define _TIMER_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_EN */
+#define TIMER_EN_DISABLING_DEFAULT (_TIMER_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_EN */
+
+/* Bit fields for TIMER CC_CFG */
+#define _TIMER_CC_CFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MASK 0x003E0013UL /**< Mask for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_SHIFT 0 /**< Shift value for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_MASK 0x3UL /**< Bit mask for TIMER_MODE */
+#define _TIMER_CC_CFG_MODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OFF 0x00000000UL /**< Mode OFF for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_INPUTCAPTURE 0x00000001UL /**< Mode INPUTCAPTURE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_OUTPUTCOMPARE 0x00000002UL /**< Mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_MODE_PWM 0x00000003UL /**< Mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_DEFAULT (_TIMER_CC_CFG_MODE_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OFF (_TIMER_CC_CFG_MODE_OFF << 0) /**< Shifted mode OFF for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_INPUTCAPTURE (_TIMER_CC_CFG_MODE_INPUTCAPTURE << 0) /**< Shifted mode INPUTCAPTURE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_OUTPUTCOMPARE (_TIMER_CC_CFG_MODE_OUTPUTCOMPARE << 0) /**< Shifted mode OUTPUTCOMPARE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_MODE_PWM (_TIMER_CC_CFG_MODE_PWM << 0) /**< Shifted mode PWM for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST (0x1UL << 4) /**< Compare Output Initial State */
+#define _TIMER_CC_CFG_COIST_SHIFT 4 /**< Shift value for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_MASK 0x10UL /**< Bit mask for TIMER_COIST */
+#define _TIMER_CC_CFG_COIST_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_COIST_DEFAULT (_TIMER_CC_CFG_COIST_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_SHIFT 17 /**< Shift value for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_MASK 0x60000UL /**< Bit mask for TIMER_INSEL */
+#define _TIMER_CC_CFG_INSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PIN 0x00000000UL /**< Mode PIN for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSSYNC 0x00000001UL /**< Mode PRSSYNC for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCLEVEL 0x00000002UL /**< Mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_INSEL_PRSASYNCPULSE 0x00000003UL /**< Mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_DEFAULT (_TIMER_CC_CFG_INSEL_DEFAULT << 17) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PIN (_TIMER_CC_CFG_INSEL_PIN << 17) /**< Shifted mode PIN for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSSYNC (_TIMER_CC_CFG_INSEL_PRSSYNC << 17) /**< Shifted mode PRSSYNC for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCLEVEL (_TIMER_CC_CFG_INSEL_PRSASYNCLEVEL << 17) /**< Shifted mode PRSASYNCLEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_INSEL_PRSASYNCPULSE (_TIMER_CC_CFG_INSEL_PRSASYNCPULSE << 17) /**< Shifted mode PRSASYNCPULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF (0x1UL << 19) /**< PRS Configuration */
+#define _TIMER_CC_CFG_PRSCONF_SHIFT 19 /**< Shift value for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_MASK 0x80000UL /**< Bit mask for TIMER_PRSCONF */
+#define _TIMER_CC_CFG_PRSCONF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_PULSE 0x00000000UL /**< Mode PULSE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_PRSCONF_LEVEL 0x00000001UL /**< Mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_DEFAULT (_TIMER_CC_CFG_PRSCONF_DEFAULT << 19) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_PULSE (_TIMER_CC_CFG_PRSCONF_PULSE << 19) /**< Shifted mode PULSE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_PRSCONF_LEVEL (_TIMER_CC_CFG_PRSCONF_LEVEL << 19) /**< Shifted mode LEVEL for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT (0x1UL << 20) /**< Digital Filter */
+#define _TIMER_CC_CFG_FILT_SHIFT 20 /**< Shift value for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_MASK 0x100000UL /**< Bit mask for TIMER_FILT */
+#define _TIMER_CC_CFG_FILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_DISABLE 0x00000000UL /**< Mode DISABLE for TIMER_CC_CFG */
+#define _TIMER_CC_CFG_FILT_ENABLE 0x00000001UL /**< Mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DEFAULT (_TIMER_CC_CFG_FILT_DEFAULT << 20) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_DISABLE (_TIMER_CC_CFG_FILT_DISABLE << 20) /**< Shifted mode DISABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_FILT_ENABLE (_TIMER_CC_CFG_FILT_ENABLE << 20) /**< Shifted mode ENABLE for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL (0x1UL << 21) /**< Input Capture FIFO watermark level */
+#define _TIMER_CC_CFG_ICFWL_SHIFT 21 /**< Shift value for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_MASK 0x200000UL /**< Bit mask for TIMER_ICFWL */
+#define _TIMER_CC_CFG_ICFWL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CFG */
+#define TIMER_CC_CFG_ICFWL_DEFAULT (_TIMER_CC_CFG_ICFWL_DEFAULT << 21) /**< Shifted mode DEFAULT for TIMER_CC_CFG */
+
+/* Bit fields for TIMER CC_CTRL */
+#define _TIMER_CC_CTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_MASK 0x0F003F04UL /**< Mask for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV (0x1UL << 2) /**< Output Invert */
+#define _TIMER_CC_CTRL_OUTINV_SHIFT 2 /**< Shift value for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_MASK 0x4UL /**< Bit mask for TIMER_OUTINV */
+#define _TIMER_CC_CTRL_OUTINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_OUTINV_DEFAULT (_TIMER_CC_CTRL_OUTINV_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SHIFT 8 /**< Shift value for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_MASK 0x300UL /**< Bit mask for TIMER_CMOA */
+#define _TIMER_CC_CTRL_CMOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CMOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_DEFAULT (_TIMER_CC_CTRL_CMOA_DEFAULT << 8) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_NONE (_TIMER_CC_CTRL_CMOA_NONE << 8) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_TOGGLE (_TIMER_CC_CTRL_CMOA_TOGGLE << 8) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_CLEAR (_TIMER_CC_CTRL_CMOA_CLEAR << 8) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CMOA_SET (_TIMER_CC_CTRL_CMOA_SET << 8) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SHIFT 10 /**< Shift value for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_MASK 0xC00UL /**< Bit mask for TIMER_COFOA */
+#define _TIMER_CC_CTRL_COFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_COFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_DEFAULT (_TIMER_CC_CTRL_COFOA_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_NONE (_TIMER_CC_CTRL_COFOA_NONE << 10) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_TOGGLE (_TIMER_CC_CTRL_COFOA_TOGGLE << 10) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_CLEAR (_TIMER_CC_CTRL_COFOA_CLEAR << 10) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_COFOA_SET (_TIMER_CC_CTRL_COFOA_SET << 10) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SHIFT 12 /**< Shift value for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_MASK 0x3000UL /**< Bit mask for TIMER_CUFOA */
+#define _TIMER_CC_CTRL_CUFOA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_NONE 0x00000000UL /**< Mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_TOGGLE 0x00000001UL /**< Mode TOGGLE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_CUFOA_SET 0x00000003UL /**< Mode SET for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_DEFAULT (_TIMER_CC_CTRL_CUFOA_DEFAULT << 12) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_NONE (_TIMER_CC_CTRL_CUFOA_NONE << 12) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_TOGGLE (_TIMER_CC_CTRL_CUFOA_TOGGLE << 12) /**< Shifted mode TOGGLE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_CLEAR (_TIMER_CC_CTRL_CUFOA_CLEAR << 12) /**< Shifted mode CLEAR for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_CUFOA_SET (_TIMER_CC_CTRL_CUFOA_SET << 12) /**< Shifted mode SET for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_SHIFT 24 /**< Shift value for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_MASK 0x3000000UL /**< Bit mask for TIMER_ICEDGE */
+#define _TIMER_CC_CTRL_ICEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_RISING 0x00000000UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_FALLING 0x00000001UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_BOTH 0x00000002UL /**< Mode BOTH for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEDGE_NONE 0x00000003UL /**< Mode NONE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_DEFAULT (_TIMER_CC_CTRL_ICEDGE_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_RISING (_TIMER_CC_CTRL_ICEDGE_RISING << 24) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_FALLING (_TIMER_CC_CTRL_ICEDGE_FALLING << 24) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_BOTH (_TIMER_CC_CTRL_ICEDGE_BOTH << 24) /**< Shifted mode BOTH for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEDGE_NONE (_TIMER_CC_CTRL_ICEDGE_NONE << 24) /**< Shifted mode NONE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_SHIFT 26 /**< Shift value for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_MASK 0xC000000UL /**< Bit mask for TIMER_ICEVCTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE 0x00000000UL /**< Mode EVERYEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE 0x00000001UL /**< Mode EVERYSECONDEDGE for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_RISING 0x00000002UL /**< Mode RISING for TIMER_CC_CTRL */
+#define _TIMER_CC_CTRL_ICEVCTRL_FALLING 0x00000003UL /**< Mode FALLING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_DEFAULT (_TIMER_CC_CTRL_ICEVCTRL_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYEDGE << 26) /**< Shifted mode EVERYEDGE for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE (_TIMER_CC_CTRL_ICEVCTRL_EVERYSECONDEDGE << 26) /**< Shifted mode EVERYSECONDEDGE for TIMER_CC_CTRL*/
+#define TIMER_CC_CTRL_ICEVCTRL_RISING (_TIMER_CC_CTRL_ICEVCTRL_RISING << 26) /**< Shifted mode RISING for TIMER_CC_CTRL */
+#define TIMER_CC_CTRL_ICEVCTRL_FALLING (_TIMER_CC_CTRL_ICEVCTRL_FALLING << 26) /**< Shifted mode FALLING for TIMER_CC_CTRL */
+
+/* Bit fields for TIMER CC_OC */
+#define _TIMER_CC_OC_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OC */
+#define _TIMER_CC_OC_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OC */
+#define _TIMER_CC_OC_OC_SHIFT 0 /**< Shift value for TIMER_OC */
+#define _TIMER_CC_OC_OC_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OC */
+#define _TIMER_CC_OC_OC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OC */
+#define TIMER_CC_OC_OC_DEFAULT (_TIMER_CC_OC_OC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OC */
+
+/* Bit fields for TIMER CC_OCB */
+#define _TIMER_CC_OCB_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_OCB */
+#define _TIMER_CC_OCB_OCB_SHIFT 0 /**< Shift value for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_OCB */
+#define _TIMER_CC_OCB_OCB_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_OCB */
+#define TIMER_CC_OCB_OCB_DEFAULT (_TIMER_CC_OCB_OCB_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_OCB */
+
+/* Bit fields for TIMER CC_ICF */
+#define _TIMER_CC_ICF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICF */
+#define _TIMER_CC_ICF_ICF_SHIFT 0 /**< Shift value for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICF */
+#define _TIMER_CC_ICF_ICF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICF */
+#define TIMER_CC_ICF_ICF_DEFAULT (_TIMER_CC_ICF_ICF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICF */
+
+/* Bit fields for TIMER CC_ICOF */
+#define _TIMER_CC_ICOF_RESETVALUE 0x00000000UL /**< Default value for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_MASK 0xFFFFFFFFUL /**< Mask for TIMER_CC_ICOF */
+#define _TIMER_CC_ICOF_ICOF_SHIFT 0 /**< Shift value for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_MASK 0xFFFFFFFFUL /**< Bit mask for TIMER_ICOF */
+#define _TIMER_CC_ICOF_ICOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_CC_ICOF */
+#define TIMER_CC_ICOF_ICOF_DEFAULT (_TIMER_CC_ICOF_ICOF_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_CC_ICOF */
+
+/* Bit fields for TIMER DTCFG */
+#define _TIMER_DTCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCFG */
+#define _TIMER_DTCFG_MASK 0x00000E03UL /**< Mask for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN (0x1UL << 0) /**< DTI Enable */
+#define _TIMER_DTCFG_DTEN_SHIFT 0 /**< Shift value for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_MASK 0x1UL /**< Bit mask for TIMER_DTEN */
+#define _TIMER_DTCFG_DTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTEN_DEFAULT (_TIMER_DTCFG_DTEN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS (0x1UL << 1) /**< DTI Automatic Start-up Functionality */
+#define _TIMER_DTCFG_DTDAS_SHIFT 1 /**< Shift value for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_MASK 0x2UL /**< Bit mask for TIMER_DTDAS */
+#define _TIMER_DTCFG_DTDAS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_NORESTART 0x00000000UL /**< Mode NORESTART for TIMER_DTCFG */
+#define _TIMER_DTCFG_DTDAS_RESTART 0x00000001UL /**< Mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_DEFAULT (_TIMER_DTCFG_DTDAS_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_NORESTART (_TIMER_DTCFG_DTDAS_NORESTART << 1) /**< Shifted mode NORESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTDAS_RESTART (_TIMER_DTCFG_DTDAS_RESTART << 1) /**< Shifted mode RESTART for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR (0x1UL << 9) /**< DTI Always Run */
+#define _TIMER_DTCFG_DTAR_SHIFT 9 /**< Shift value for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_MASK 0x200UL /**< Bit mask for TIMER_DTAR */
+#define _TIMER_DTCFG_DTAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTAR_DEFAULT (_TIMER_DTCFG_DTAR_DEFAULT << 9) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS (0x1UL << 10) /**< DTI Fault Action on Timer Stop */
+#define _TIMER_DTCFG_DTFATS_SHIFT 10 /**< Shift value for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_MASK 0x400UL /**< Bit mask for TIMER_DTFATS */
+#define _TIMER_DTCFG_DTFATS_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTFATS_DEFAULT (_TIMER_DTCFG_DTFATS_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN (0x1UL << 11) /**< DTI PRS Source Enable */
+#define _TIMER_DTCFG_DTPRSEN_SHIFT 11 /**< Shift value for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_MASK 0x800UL /**< Bit mask for TIMER_DTPRSEN */
+#define _TIMER_DTCFG_DTPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCFG */
+#define TIMER_DTCFG_DTPRSEN_DEFAULT (_TIMER_DTCFG_DTPRSEN_DEFAULT << 11) /**< Shifted mode DEFAULT for TIMER_DTCFG */
+
+/* Bit fields for TIMER DTTIMECFG */
+#define _TIMER_DTTIMECFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_MASK 0x003FFFFFUL /**< Mask for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTPRESC_SHIFT 0 /**< Shift value for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_MASK 0x3FFUL /**< Bit mask for TIMER_DTPRESC */
+#define _TIMER_DTTIMECFG_DTPRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTPRESC_DEFAULT (_TIMER_DTTIMECFG_DTPRESC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTRISET_SHIFT 10 /**< Shift value for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_MASK 0xFC00UL /**< Bit mask for TIMER_DTRISET */
+#define _TIMER_DTTIMECFG_DTRISET_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTRISET_DEFAULT (_TIMER_DTTIMECFG_DTRISET_DEFAULT << 10) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+#define _TIMER_DTTIMECFG_DTFALLT_SHIFT 16 /**< Shift value for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_MASK 0x3F0000UL /**< Bit mask for TIMER_DTFALLT */
+#define _TIMER_DTTIMECFG_DTFALLT_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTTIMECFG */
+#define TIMER_DTTIMECFG_DTFALLT_DEFAULT (_TIMER_DTTIMECFG_DTFALLT_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTTIMECFG */
+
+/* Bit fields for TIMER DTFCFG */
+#define _TIMER_DTFCFG_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_MASK 0x1F030000UL /**< Mask for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_SHIFT 16 /**< Shift value for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_MASK 0x30000UL /**< Bit mask for TIMER_DTFA */
+#define _TIMER_DTFCFG_DTFA_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_NONE 0x00000000UL /**< Mode NONE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_INACTIVE 0x00000001UL /**< Mode INACTIVE for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_CLEAR 0x00000002UL /**< Mode CLEAR for TIMER_DTFCFG */
+#define _TIMER_DTFCFG_DTFA_TRISTATE 0x00000003UL /**< Mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_DEFAULT (_TIMER_DTFCFG_DTFA_DEFAULT << 16) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_NONE (_TIMER_DTFCFG_DTFA_NONE << 16) /**< Shifted mode NONE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_INACTIVE (_TIMER_DTFCFG_DTFA_INACTIVE << 16) /**< Shifted mode INACTIVE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_CLEAR (_TIMER_DTFCFG_DTFA_CLEAR << 16) /**< Shifted mode CLEAR for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTFA_TRISTATE (_TIMER_DTFCFG_DTFA_TRISTATE << 16) /**< Shifted mode TRISTATE for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN (0x1UL << 24) /**< DTI PRS 0 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS0FEN_SHIFT 24 /**< Shift value for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_MASK 0x1000000UL /**< Bit mask for TIMER_DTPRS0FEN */
+#define _TIMER_DTFCFG_DTPRS0FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS0FEN_DEFAULT (_TIMER_DTFCFG_DTPRS0FEN_DEFAULT << 24) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN (0x1UL << 25) /**< DTI PRS 1 Fault Enable */
+#define _TIMER_DTFCFG_DTPRS1FEN_SHIFT 25 /**< Shift value for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_MASK 0x2000000UL /**< Bit mask for TIMER_DTPRS1FEN */
+#define _TIMER_DTFCFG_DTPRS1FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTPRS1FEN_DEFAULT (_TIMER_DTFCFG_DTPRS1FEN_DEFAULT << 25) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN (0x1UL << 26) /**< DTI Debugger Fault Enable */
+#define _TIMER_DTFCFG_DTDBGFEN_SHIFT 26 /**< Shift value for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_MASK 0x4000000UL /**< Bit mask for TIMER_DTDBGFEN */
+#define _TIMER_DTFCFG_DTDBGFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTDBGFEN_DEFAULT (_TIMER_DTFCFG_DTDBGFEN_DEFAULT << 26) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN (0x1UL << 27) /**< DTI Lockup Fault Enable */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_SHIFT 27 /**< Shift value for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_MASK 0x8000000UL /**< Bit mask for TIMER_DTLOCKUPFEN */
+#define _TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT (_TIMER_DTFCFG_DTLOCKUPFEN_DEFAULT << 27) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN (0x1UL << 28) /**< DTI EM23 Fault Enable */
+#define _TIMER_DTFCFG_DTEM23FEN_SHIFT 28 /**< Shift value for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_MASK 0x10000000UL /**< Bit mask for TIMER_DTEM23FEN */
+#define _TIMER_DTFCFG_DTEM23FEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFCFG */
+#define TIMER_DTFCFG_DTEM23FEN_DEFAULT (_TIMER_DTFCFG_DTEM23FEN_DEFAULT << 28) /**< Shifted mode DEFAULT for TIMER_DTFCFG */
+
+/* Bit fields for TIMER DTCTRL */
+#define _TIMER_DTCTRL_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTCTRL */
+#define _TIMER_DTCTRL_MASK 0x00000003UL /**< Mask for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV (0x1UL << 0) /**< DTI Complementary Output Invert. */
+#define _TIMER_DTCTRL_DTCINV_SHIFT 0 /**< Shift value for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_MASK 0x1UL /**< Bit mask for TIMER_DTCINV */
+#define _TIMER_DTCTRL_DTCINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTCINV_DEFAULT (_TIMER_DTCTRL_DTCINV_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL (0x1UL << 1) /**< DTI Inactive Polarity */
+#define _TIMER_DTCTRL_DTIPOL_SHIFT 1 /**< Shift value for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_MASK 0x2UL /**< Bit mask for TIMER_DTIPOL */
+#define _TIMER_DTCTRL_DTIPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTCTRL */
+#define TIMER_DTCTRL_DTIPOL_DEFAULT (_TIMER_DTCTRL_DTIPOL_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTCTRL */
+
+/* Bit fields for TIMER DTOGEN */
+#define _TIMER_DTOGEN_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTOGEN */
+#define _TIMER_DTOGEN_MASK 0x0000003FUL /**< Mask for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN (0x1UL << 0) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC0EN_SHIFT 0 /**< Shift value for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_MASK 0x1UL /**< Bit mask for TIMER_DTOGCC0EN */
+#define _TIMER_DTOGEN_DTOGCC0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC0EN_DEFAULT (_TIMER_DTOGEN_DTOGCC0EN_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN (0x1UL << 1) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC1EN_SHIFT 1 /**< Shift value for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_MASK 0x2UL /**< Bit mask for TIMER_DTOGCC1EN */
+#define _TIMER_DTOGEN_DTOGCC1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC1EN_DEFAULT (_TIMER_DTOGEN_DTOGCC1EN_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN (0x1UL << 2) /**< DTI CCn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCC2EN_SHIFT 2 /**< Shift value for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_MASK 0x4UL /**< Bit mask for TIMER_DTOGCC2EN */
+#define _TIMER_DTOGEN_DTOGCC2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCC2EN_DEFAULT (_TIMER_DTOGEN_DTOGCC2EN_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN (0x1UL << 3) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_SHIFT 3 /**< Shift value for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_MASK 0x8UL /**< Bit mask for TIMER_DTOGCDTI0EN */
+#define _TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI0EN_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN (0x1UL << 4) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_SHIFT 4 /**< Shift value for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_MASK 0x10UL /**< Bit mask for TIMER_DTOGCDTI1EN */
+#define _TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI1EN_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN (0x1UL << 5) /**< DTI CDTIn Output Generation Enable */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_SHIFT 5 /**< Shift value for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_MASK 0x20UL /**< Bit mask for TIMER_DTOGCDTI2EN */
+#define _TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTOGEN */
+#define TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT (_TIMER_DTOGEN_DTOGCDTI2EN_DEFAULT << 5) /**< Shifted mode DEFAULT for TIMER_DTOGEN */
+
+/* Bit fields for TIMER DTFAULT */
+#define _TIMER_DTFAULT_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULT */
+#define _TIMER_DTFAULT_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F (0x1UL << 0) /**< DTI PRS 0 Fault */
+#define _TIMER_DTFAULT_DTPRS0F_SHIFT 0 /**< Shift value for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0F */
+#define _TIMER_DTFAULT_DTPRS0F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS0F_DEFAULT (_TIMER_DTFAULT_DTPRS0F_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F (0x1UL << 1) /**< DTI PRS 1 Fault */
+#define _TIMER_DTFAULT_DTPRS1F_SHIFT 1 /**< Shift value for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1F */
+#define _TIMER_DTFAULT_DTPRS1F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTPRS1F_DEFAULT (_TIMER_DTFAULT_DTPRS1F_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF (0x1UL << 2) /**< DTI Debugger Fault */
+#define _TIMER_DTFAULT_DTDBGF_SHIFT 2 /**< Shift value for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_MASK 0x4UL /**< Bit mask for TIMER_DTDBGF */
+#define _TIMER_DTFAULT_DTDBGF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTDBGF_DEFAULT (_TIMER_DTFAULT_DTDBGF_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF (0x1UL << 3) /**< DTI Lockup Fault */
+#define _TIMER_DTFAULT_DTLOCKUPF_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPF */
+#define _TIMER_DTFAULT_DTLOCKUPF_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTLOCKUPF_DEFAULT (_TIMER_DTFAULT_DTLOCKUPF_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F (0x1UL << 4) /**< DTI EM23 Entry Fault */
+#define _TIMER_DTFAULT_DTEM23F_SHIFT 4 /**< Shift value for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_MASK 0x10UL /**< Bit mask for TIMER_DTEM23F */
+#define _TIMER_DTFAULT_DTEM23F_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULT */
+#define TIMER_DTFAULT_DTEM23F_DEFAULT (_TIMER_DTFAULT_DTEM23F_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULT */
+
+/* Bit fields for TIMER DTFAULTC */
+#define _TIMER_DTFAULTC_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTFAULTC */
+#define _TIMER_DTFAULTC_MASK 0x0000001FUL /**< Mask for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC (0x1UL << 0) /**< DTI PRS0 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS0FC_SHIFT 0 /**< Shift value for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_MASK 0x1UL /**< Bit mask for TIMER_DTPRS0FC */
+#define _TIMER_DTFAULTC_DTPRS0FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS0FC_DEFAULT (_TIMER_DTFAULTC_DTPRS0FC_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC (0x1UL << 1) /**< DTI PRS1 Fault Clear */
+#define _TIMER_DTFAULTC_DTPRS1FC_SHIFT 1 /**< Shift value for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_MASK 0x2UL /**< Bit mask for TIMER_DTPRS1FC */
+#define _TIMER_DTFAULTC_DTPRS1FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTPRS1FC_DEFAULT (_TIMER_DTFAULTC_DTPRS1FC_DEFAULT << 1) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC (0x1UL << 2) /**< DTI Debugger Fault Clear */
+#define _TIMER_DTFAULTC_DTDBGFC_SHIFT 2 /**< Shift value for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_MASK 0x4UL /**< Bit mask for TIMER_DTDBGFC */
+#define _TIMER_DTFAULTC_DTDBGFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTDBGFC_DEFAULT (_TIMER_DTFAULTC_DTDBGFC_DEFAULT << 2) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC (0x1UL << 3) /**< DTI Lockup Fault Clear */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_SHIFT 3 /**< Shift value for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_MASK 0x8UL /**< Bit mask for TIMER_DTLOCKUPFC */
+#define _TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT (_TIMER_DTFAULTC_DTLOCKUPFC_DEFAULT << 3) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC (0x1UL << 4) /**< DTI EM23 Fault Clear */
+#define _TIMER_DTFAULTC_DTEM23FC_SHIFT 4 /**< Shift value for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_MASK 0x10UL /**< Bit mask for TIMER_DTEM23FC */
+#define _TIMER_DTFAULTC_DTEM23FC_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTFAULTC */
+#define TIMER_DTFAULTC_DTEM23FC_DEFAULT (_TIMER_DTFAULTC_DTEM23FC_DEFAULT << 4) /**< Shifted mode DEFAULT for TIMER_DTFAULTC */
+
+/* Bit fields for TIMER DTLOCK */
+#define _TIMER_DTLOCK_RESETVALUE 0x00000000UL /**< Default value for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_MASK 0x0000FFFFUL /**< Mask for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_SHIFT 0 /**< Shift value for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_MASK 0xFFFFUL /**< Bit mask for TIMER_DTILOCKKEY */
+#define _TIMER_DTLOCK_DTILOCKKEY_DEFAULT 0x00000000UL /**< Mode DEFAULT for TIMER_DTLOCK */
+#define _TIMER_DTLOCK_DTILOCKKEY_UNLOCK 0x0000CE80UL /**< Mode UNLOCK for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_DEFAULT (_TIMER_DTLOCK_DTILOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for TIMER_DTLOCK */
+#define TIMER_DTLOCK_DTILOCKKEY_UNLOCK (_TIMER_DTLOCK_DTILOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for TIMER_DTLOCK */
+
+/** @} End of group EFR32ZG23_TIMER_BitFields */
+/** @} End of group EFR32ZG23_TIMER */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_TIMER_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ulfrco.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ulfrco.h
new file mode 100644
index 000000000..b63839088
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_ulfrco.h
@@ -0,0 +1,147 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 ULFRCO register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_ULFRCO_H
+#define EFR32ZG23_ULFRCO_H
+#define ULFRCO_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_ULFRCO ULFRCO
+ * @{
+ * @brief EFR32ZG23 ULFRCO Register Declaration.
+ *****************************************************************************/
+
+/** ULFRCO Register Declaration. */
+typedef struct ulfrco_typedef{
+ __IM uint32_t IPVERSION; /**< IP version */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ uint32_t RESERVED1[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ uint32_t RESERVED2[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP version */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ uint32_t RESERVED4[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ uint32_t RESERVED5[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP version */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ uint32_t RESERVED7[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ uint32_t RESERVED8[1017U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP version */
+ uint32_t RESERVED9[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ uint32_t RESERVED10[2U]; /**< Reserved for future use */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+} ULFRCO_TypeDef;
+/** @} End of group EFR32ZG23_ULFRCO */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_ULFRCO
+ * @{
+ * @defgroup EFR32ZG23_ULFRCO_BitFields ULFRCO Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for ULFRCO IPVERSION */
+#define _ULFRCO_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for ULFRCO_IPVERSION */
+#define _ULFRCO_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for ULFRCO_IPVERSION */
+#define ULFRCO_IPVERSION_IPVERSION_DEFAULT (_ULFRCO_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IPVERSION */
+
+/* Bit fields for ULFRCO STATUS */
+#define _ULFRCO_STATUS_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_STATUS */
+#define _ULFRCO_STATUS_MASK 0x00010001UL /**< Mask for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY (0x1UL << 0) /**< Ready Status */
+#define _ULFRCO_STATUS_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_STATUS_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_RDY_DEFAULT (_ULFRCO_STATUS_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS (0x1UL << 16) /**< Enable Status */
+#define _ULFRCO_STATUS_ENS_SHIFT 16 /**< Shift value for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_MASK 0x10000UL /**< Bit mask for ULFRCO_ENS */
+#define _ULFRCO_STATUS_ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_STATUS */
+#define ULFRCO_STATUS_ENS_DEFAULT (_ULFRCO_STATUS_ENS_DEFAULT << 16) /**< Shifted mode DEFAULT for ULFRCO_STATUS */
+
+/* Bit fields for ULFRCO IF */
+#define _ULFRCO_IF_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IF */
+#define _ULFRCO_IF_MASK 0x00000007UL /**< Mask for ULFRCO_IF */
+#define ULFRCO_IF_RDY (0x1UL << 0) /**< Ready Interrupt Flag */
+#define _ULFRCO_IF_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IF_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_RDY_DEFAULT (_ULFRCO_IF_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE (0x1UL << 1) /**< Positive Edge Interrupt Flag */
+#define _ULFRCO_IF_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IF_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_POSEDGE_DEFAULT (_ULFRCO_IF_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE (0x1UL << 2) /**< Negative Edge Interrupt Flag */
+#define _ULFRCO_IF_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IF_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IF */
+#define ULFRCO_IF_NEGEDGE_DEFAULT (_ULFRCO_IF_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IF */
+
+/* Bit fields for ULFRCO IEN */
+#define _ULFRCO_IEN_RESETVALUE 0x00000000UL /**< Default value for ULFRCO_IEN */
+#define _ULFRCO_IEN_MASK 0x00000007UL /**< Mask for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY (0x1UL << 0) /**< Enable Ready Interrupt */
+#define _ULFRCO_IEN_RDY_SHIFT 0 /**< Shift value for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_MASK 0x1UL /**< Bit mask for ULFRCO_RDY */
+#define _ULFRCO_IEN_RDY_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_RDY_DEFAULT (_ULFRCO_IEN_RDY_DEFAULT << 0) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE (0x1UL << 1) /**< Enable Positive Edge Interrupt */
+#define _ULFRCO_IEN_POSEDGE_SHIFT 1 /**< Shift value for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_MASK 0x2UL /**< Bit mask for ULFRCO_POSEDGE */
+#define _ULFRCO_IEN_POSEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_POSEDGE_DEFAULT (_ULFRCO_IEN_POSEDGE_DEFAULT << 1) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE (0x1UL << 2) /**< Enable Negative Edge Interrupt */
+#define _ULFRCO_IEN_NEGEDGE_SHIFT 2 /**< Shift value for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_MASK 0x4UL /**< Bit mask for ULFRCO_NEGEDGE */
+#define _ULFRCO_IEN_NEGEDGE_DEFAULT 0x00000000UL /**< Mode DEFAULT for ULFRCO_IEN */
+#define ULFRCO_IEN_NEGEDGE_DEFAULT (_ULFRCO_IEN_NEGEDGE_DEFAULT << 2) /**< Shifted mode DEFAULT for ULFRCO_IEN */
+
+/** @} End of group EFR32ZG23_ULFRCO_BitFields */
+/** @} End of group EFR32ZG23_ULFRCO */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_ULFRCO_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_usart.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_usart.h
new file mode 100644
index 000000000..eee5ca287
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_usart.h
@@ -0,0 +1,1431 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 USART register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_USART_H
+#define EFR32ZG23_USART_H
+#define USART_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_USART USART
+ * @{
+ * @brief EFR32ZG23 USART Register Declaration.
+ *****************************************************************************/
+
+/** USART Register Declaration. */
+typedef struct usart_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< USART Enable */
+ __IOM uint32_t CTRL; /**< Control Register */
+ __IOM uint32_t FRAME; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IM uint32_t STATUS; /**< USART Status Register */
+ __IOM uint32_t CLKDIV; /**< Clock Control Register */
+ __IM uint32_t RXDATAX; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL; /**< I2S Control Register */
+ __IOM uint32_t TIMING; /**< Timing Register */
+ __IOM uint32_t CTRLX; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2; /**< Timer Compare 2 */
+ uint32_t RESERVED0[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< USART Enable */
+ __IOM uint32_t CTRL_SET; /**< Control Register */
+ __IOM uint32_t FRAME_SET; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_SET; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IM uint32_t STATUS_SET; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_SET; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_SET; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_SET; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_SET; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_SET; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_SET; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_SET; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_SET; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_SET; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_SET; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_SET; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_SET; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_SET; /**< I2S Control Register */
+ __IOM uint32_t TIMING_SET; /**< Timing Register */
+ __IOM uint32_t CTRLX_SET; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_SET; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_SET; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_SET; /**< Timer Compare 2 */
+ uint32_t RESERVED1[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< USART Enable */
+ __IOM uint32_t CTRL_CLR; /**< Control Register */
+ __IOM uint32_t FRAME_CLR; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_CLR; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IM uint32_t STATUS_CLR; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_CLR; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_CLR; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_CLR; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_CLR; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_CLR; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_CLR; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_CLR; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_CLR; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_CLR; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_CLR; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_CLR; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_CLR; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_CLR; /**< I2S Control Register */
+ __IOM uint32_t TIMING_CLR; /**< Timing Register */
+ __IOM uint32_t CTRLX_CLR; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_CLR; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_CLR; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_CLR; /**< Timer Compare 2 */
+ uint32_t RESERVED2[997U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< USART Enable */
+ __IOM uint32_t CTRL_TGL; /**< Control Register */
+ __IOM uint32_t FRAME_TGL; /**< USART Frame Format Register */
+ __IOM uint32_t TRIGCTRL_TGL; /**< USART Trigger Control register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IM uint32_t STATUS_TGL; /**< USART Status Register */
+ __IOM uint32_t CLKDIV_TGL; /**< Clock Control Register */
+ __IM uint32_t RXDATAX_TGL; /**< RX Buffer Data Extended Register */
+ __IM uint32_t RXDATA_TGL; /**< RX Buffer Data Register */
+ __IM uint32_t RXDOUBLEX_TGL; /**< RX Buffer Double Data Extended Register */
+ __IM uint32_t RXDOUBLE_TGL; /**< RX FIFO Double Data Register */
+ __IM uint32_t RXDATAXP_TGL; /**< RX Buffer Data Extended Peek Register */
+ __IM uint32_t RXDOUBLEXP_TGL; /**< RX Buffer Double Data Extended Peek R... */
+ __IOM uint32_t TXDATAX_TGL; /**< TX Buffer Data Extended Register */
+ __IOM uint32_t TXDATA_TGL; /**< TX Buffer Data Register */
+ __IOM uint32_t TXDOUBLEX_TGL; /**< TX Buffer Double Data Extended Register */
+ __IOM uint32_t TXDOUBLE_TGL; /**< TX Buffer Double Data Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t IRCTRL_TGL; /**< IrDA Control Register */
+ __IOM uint32_t I2SCTRL_TGL; /**< I2S Control Register */
+ __IOM uint32_t TIMING_TGL; /**< Timing Register */
+ __IOM uint32_t CTRLX_TGL; /**< Control Register Extended */
+ __IOM uint32_t TIMECMP0_TGL; /**< Timer Compare 0 */
+ __IOM uint32_t TIMECMP1_TGL; /**< Timer Compare 1 */
+ __IOM uint32_t TIMECMP2_TGL; /**< Timer Compare 2 */
+} USART_TypeDef;
+/** @} End of group EFR32ZG23_USART */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_USART
+ * @{
+ * @defgroup EFR32ZG23_USART_BitFields USART Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for USART IPVERSION */
+#define _USART_IPVERSION_RESETVALUE 0x00000000UL /**< Default value for USART_IPVERSION */
+#define _USART_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for USART_IPVERSION */
+#define _USART_IPVERSION_IPVERSION_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IPVERSION */
+#define USART_IPVERSION_IPVERSION_DEFAULT (_USART_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IPVERSION */
+
+/* Bit fields for USART EN */
+#define _USART_EN_RESETVALUE 0x00000000UL /**< Default value for USART_EN */
+#define _USART_EN_MASK 0x00000001UL /**< Mask for USART_EN */
+#define USART_EN_EN (0x1UL << 0) /**< USART Enable */
+#define _USART_EN_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_EN_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_EN */
+#define USART_EN_EN_DEFAULT (_USART_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_EN */
+
+/* Bit fields for USART CTRL */
+#define _USART_CTRL_RESETVALUE 0x00000000UL /**< Default value for USART_CTRL */
+#define _USART_CTRL_MASK 0xF3FFFF7FUL /**< Mask for USART_CTRL */
+#define USART_CTRL_SYNC (0x1UL << 0) /**< USART Synchronous Mode */
+#define _USART_CTRL_SYNC_SHIFT 0 /**< Shift value for USART_SYNC */
+#define _USART_CTRL_SYNC_MASK 0x1UL /**< Bit mask for USART_SYNC */
+#define _USART_CTRL_SYNC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_SYNC_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_SYNC_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_SYNC_DEFAULT (_USART_CTRL_SYNC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SYNC_DISABLE (_USART_CTRL_SYNC_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_SYNC_ENABLE (_USART_CTRL_SYNC_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK (0x1UL << 1) /**< Loopback Enable */
+#define _USART_CTRL_LOOPBK_SHIFT 1 /**< Shift value for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_MASK 0x2UL /**< Bit mask for USART_LOOPBK */
+#define _USART_CTRL_LOOPBK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_LOOPBK_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_LOOPBK_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_DEFAULT (_USART_CTRL_LOOPBK_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_LOOPBK_DISABLE (_USART_CTRL_LOOPBK_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_LOOPBK_ENABLE (_USART_CTRL_LOOPBK_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN (0x1UL << 2) /**< Collision Check Enable */
+#define _USART_CTRL_CCEN_SHIFT 2 /**< Shift value for USART_CCEN */
+#define _USART_CTRL_CCEN_MASK 0x4UL /**< Bit mask for USART_CCEN */
+#define _USART_CTRL_CCEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CCEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CCEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CCEN_DEFAULT (_USART_CTRL_CCEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CCEN_DISABLE (_USART_CTRL_CCEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CCEN_ENABLE (_USART_CTRL_CCEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM (0x1UL << 3) /**< Multi-Processor Mode */
+#define _USART_CTRL_MPM_SHIFT 3 /**< Shift value for USART_MPM */
+#define _USART_CTRL_MPM_MASK 0x8UL /**< Bit mask for USART_MPM */
+#define _USART_CTRL_MPM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MPM_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MPM_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPM_DEFAULT (_USART_CTRL_MPM_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPM_DISABLE (_USART_CTRL_MPM_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MPM_ENABLE (_USART_CTRL_MPM_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_MPAB (0x1UL << 4) /**< Multi-Processor Address-Bit */
+#define _USART_CTRL_MPAB_SHIFT 4 /**< Shift value for USART_MPAB */
+#define _USART_CTRL_MPAB_MASK 0x10UL /**< Bit mask for USART_MPAB */
+#define _USART_CTRL_MPAB_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MPAB_DEFAULT (_USART_CTRL_MPAB_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_SHIFT 5 /**< Shift value for USART_OVS */
+#define _USART_CTRL_OVS_MASK 0x60UL /**< Bit mask for USART_OVS */
+#define _USART_CTRL_OVS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_OVS_X16 0x00000000UL /**< Mode X16 for USART_CTRL */
+#define _USART_CTRL_OVS_X8 0x00000001UL /**< Mode X8 for USART_CTRL */
+#define _USART_CTRL_OVS_X6 0x00000002UL /**< Mode X6 for USART_CTRL */
+#define _USART_CTRL_OVS_X4 0x00000003UL /**< Mode X4 for USART_CTRL */
+#define USART_CTRL_OVS_DEFAULT (_USART_CTRL_OVS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_OVS_X16 (_USART_CTRL_OVS_X16 << 5) /**< Shifted mode X16 for USART_CTRL */
+#define USART_CTRL_OVS_X8 (_USART_CTRL_OVS_X8 << 5) /**< Shifted mode X8 for USART_CTRL */
+#define USART_CTRL_OVS_X6 (_USART_CTRL_OVS_X6 << 5) /**< Shifted mode X6 for USART_CTRL */
+#define USART_CTRL_OVS_X4 (_USART_CTRL_OVS_X4 << 5) /**< Shifted mode X4 for USART_CTRL */
+#define USART_CTRL_CLKPOL (0x1UL << 8) /**< Clock Polarity */
+#define _USART_CTRL_CLKPOL_SHIFT 8 /**< Shift value for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_MASK 0x100UL /**< Bit mask for USART_CLKPOL */
+#define _USART_CTRL_CLKPOL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLELOW 0x00000000UL /**< Mode IDLELOW for USART_CTRL */
+#define _USART_CTRL_CLKPOL_IDLEHIGH 0x00000001UL /**< Mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPOL_DEFAULT (_USART_CTRL_CLKPOL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLELOW (_USART_CTRL_CLKPOL_IDLELOW << 8) /**< Shifted mode IDLELOW for USART_CTRL */
+#define USART_CTRL_CLKPOL_IDLEHIGH (_USART_CTRL_CLKPOL_IDLEHIGH << 8) /**< Shifted mode IDLEHIGH for USART_CTRL */
+#define USART_CTRL_CLKPHA (0x1UL << 9) /**< Clock Edge For Setup/Sample */
+#define _USART_CTRL_CLKPHA_SHIFT 9 /**< Shift value for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_MASK 0x200UL /**< Bit mask for USART_CLKPHA */
+#define _USART_CTRL_CLKPHA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLELEADING 0x00000000UL /**< Mode SAMPLELEADING for USART_CTRL */
+#define _USART_CTRL_CLKPHA_SAMPLETRAILING 0x00000001UL /**< Mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_CLKPHA_DEFAULT (_USART_CTRL_CLKPHA_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLELEADING (_USART_CTRL_CLKPHA_SAMPLELEADING << 9) /**< Shifted mode SAMPLELEADING for USART_CTRL */
+#define USART_CTRL_CLKPHA_SAMPLETRAILING (_USART_CTRL_CLKPHA_SAMPLETRAILING << 9) /**< Shifted mode SAMPLETRAILING for USART_CTRL */
+#define USART_CTRL_MSBF (0x1UL << 10) /**< Most Significant Bit First */
+#define _USART_CTRL_MSBF_SHIFT 10 /**< Shift value for USART_MSBF */
+#define _USART_CTRL_MSBF_MASK 0x400UL /**< Bit mask for USART_MSBF */
+#define _USART_CTRL_MSBF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_MSBF_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_MSBF_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_MSBF_DEFAULT (_USART_CTRL_MSBF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MSBF_DISABLE (_USART_CTRL_MSBF_DISABLE << 10) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_MSBF_ENABLE (_USART_CTRL_MSBF_ENABLE << 10) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSMA (0x1UL << 11) /**< Action On Chip Select In Main Mode */
+#define _USART_CTRL_CSMA_SHIFT 11 /**< Shift value for USART_CSMA */
+#define _USART_CTRL_CSMA_MASK 0x800UL /**< Bit mask for USART_CSMA */
+#define _USART_CTRL_CSMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSMA_NOACTION 0x00000000UL /**< Mode NOACTION for USART_CTRL */
+#define _USART_CTRL_CSMA_GOTOSLAVEMODE 0x00000001UL /**< Mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_CSMA_DEFAULT (_USART_CTRL_CSMA_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSMA_NOACTION (_USART_CTRL_CSMA_NOACTION << 11) /**< Shifted mode NOACTION for USART_CTRL */
+#define USART_CTRL_CSMA_GOTOSLAVEMODE (_USART_CTRL_CSMA_GOTOSLAVEMODE << 11) /**< Shifted mode GOTOSLAVEMODE for USART_CTRL */
+#define USART_CTRL_TXBIL (0x1UL << 12) /**< TX Buffer Interrupt Level */
+#define _USART_CTRL_TXBIL_SHIFT 12 /**< Shift value for USART_TXBIL */
+#define _USART_CTRL_TXBIL_MASK 0x1000UL /**< Bit mask for USART_TXBIL */
+#define _USART_CTRL_TXBIL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXBIL_EMPTY 0x00000000UL /**< Mode EMPTY for USART_CTRL */
+#define _USART_CTRL_TXBIL_HALFFULL 0x00000001UL /**< Mode HALFFULL for USART_CTRL */
+#define USART_CTRL_TXBIL_DEFAULT (_USART_CTRL_TXBIL_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXBIL_EMPTY (_USART_CTRL_TXBIL_EMPTY << 12) /**< Shifted mode EMPTY for USART_CTRL */
+#define USART_CTRL_TXBIL_HALFFULL (_USART_CTRL_TXBIL_HALFFULL << 12) /**< Shifted mode HALFFULL for USART_CTRL */
+#define USART_CTRL_RXINV (0x1UL << 13) /**< Receiver Input Invert */
+#define _USART_CTRL_RXINV_SHIFT 13 /**< Shift value for USART_RXINV */
+#define _USART_CTRL_RXINV_MASK 0x2000UL /**< Bit mask for USART_RXINV */
+#define _USART_CTRL_RXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_RXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_RXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_RXINV_DEFAULT (_USART_CTRL_RXINV_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_RXINV_DISABLE (_USART_CTRL_RXINV_DISABLE << 13) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_RXINV_ENABLE (_USART_CTRL_RXINV_ENABLE << 13) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV (0x1UL << 14) /**< Transmitter output Invert */
+#define _USART_CTRL_TXINV_SHIFT 14 /**< Shift value for USART_TXINV */
+#define _USART_CTRL_TXINV_MASK 0x4000UL /**< Bit mask for USART_TXINV */
+#define _USART_CTRL_TXINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_TXINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_TXINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_TXINV_DEFAULT (_USART_CTRL_TXINV_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_TXINV_DISABLE (_USART_CTRL_TXINV_DISABLE << 14) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_TXINV_ENABLE (_USART_CTRL_TXINV_ENABLE << 14) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV (0x1UL << 15) /**< Chip Select Invert */
+#define _USART_CTRL_CSINV_SHIFT 15 /**< Shift value for USART_CSINV */
+#define _USART_CTRL_CSINV_MASK 0x8000UL /**< Bit mask for USART_CSINV */
+#define _USART_CTRL_CSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_CSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_CSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_CSINV_DEFAULT (_USART_CTRL_CSINV_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_CSINV_DISABLE (_USART_CTRL_CSINV_DISABLE << 15) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_CSINV_ENABLE (_USART_CTRL_CSINV_ENABLE << 15) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOCS (0x1UL << 16) /**< Automatic Chip Select */
+#define _USART_CTRL_AUTOCS_SHIFT 16 /**< Shift value for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_MASK 0x10000UL /**< Bit mask for USART_AUTOCS */
+#define _USART_CTRL_AUTOCS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOCS_DEFAULT (_USART_CTRL_AUTOCS_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI (0x1UL << 17) /**< Automatic TX Tristate */
+#define _USART_CTRL_AUTOTRI_SHIFT 17 /**< Shift value for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_MASK 0x20000UL /**< Bit mask for USART_AUTOTRI */
+#define _USART_CTRL_AUTOTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_AUTOTRI_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DEFAULT (_USART_CTRL_AUTOTRI_DEFAULT << 17) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTRI_DISABLE (_USART_CTRL_AUTOTRI_DISABLE << 17) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_AUTOTRI_ENABLE (_USART_CTRL_AUTOTRI_ENABLE << 17) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SCMODE (0x1UL << 18) /**< SmartCard Mode */
+#define _USART_CTRL_SCMODE_SHIFT 18 /**< Shift value for USART_SCMODE */
+#define _USART_CTRL_SCMODE_MASK 0x40000UL /**< Bit mask for USART_SCMODE */
+#define _USART_CTRL_SCMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCMODE_DEFAULT (_USART_CTRL_SCMODE_DEFAULT << 18) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS (0x1UL << 19) /**< SmartCard Retransmit */
+#define _USART_CTRL_SCRETRANS_SHIFT 19 /**< Shift value for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_MASK 0x80000UL /**< Bit mask for USART_SCRETRANS */
+#define _USART_CTRL_SCRETRANS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SCRETRANS_DEFAULT (_USART_CTRL_SCRETRANS_DEFAULT << 19) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF (0x1UL << 20) /**< Skip Parity Error Frames */
+#define _USART_CTRL_SKIPPERRF_SHIFT 20 /**< Shift value for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_MASK 0x100000UL /**< Bit mask for USART_SKIPPERRF */
+#define _USART_CTRL_SKIPPERRF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SKIPPERRF_DEFAULT (_USART_CTRL_SKIPPERRF_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV (0x1UL << 21) /**< Bit 8 Default Value */
+#define _USART_CTRL_BIT8DV_SHIFT 21 /**< Shift value for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_MASK 0x200000UL /**< Bit mask for USART_BIT8DV */
+#define _USART_CTRL_BIT8DV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BIT8DV_DEFAULT (_USART_CTRL_BIT8DV_DEFAULT << 21) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA (0x1UL << 22) /**< Halt DMA On Error */
+#define _USART_CTRL_ERRSDMA_SHIFT 22 /**< Shift value for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_MASK 0x400000UL /**< Bit mask for USART_ERRSDMA */
+#define _USART_CTRL_ERRSDMA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSDMA_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DEFAULT (_USART_CTRL_ERRSDMA_DEFAULT << 22) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSDMA_DISABLE (_USART_CTRL_ERRSDMA_DISABLE << 22) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSDMA_ENABLE (_USART_CTRL_ERRSDMA_ENABLE << 22) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX (0x1UL << 23) /**< Disable RX On Error */
+#define _USART_CTRL_ERRSRX_SHIFT 23 /**< Shift value for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_MASK 0x800000UL /**< Bit mask for USART_ERRSRX */
+#define _USART_CTRL_ERRSRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSRX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSRX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_DEFAULT (_USART_CTRL_ERRSRX_DEFAULT << 23) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSRX_DISABLE (_USART_CTRL_ERRSRX_DISABLE << 23) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSRX_ENABLE (_USART_CTRL_ERRSRX_ENABLE << 23) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX (0x1UL << 24) /**< Disable TX On Error */
+#define _USART_CTRL_ERRSTX_SHIFT 24 /**< Shift value for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_MASK 0x1000000UL /**< Bit mask for USART_ERRSTX */
+#define _USART_CTRL_ERRSTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_ERRSTX_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_ERRSTX_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_DEFAULT (_USART_CTRL_ERRSTX_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_ERRSTX_DISABLE (_USART_CTRL_ERRSTX_DISABLE << 24) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_ERRSTX_ENABLE (_USART_CTRL_ERRSTX_ENABLE << 24) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_SSSEARLY (0x1UL << 25) /**< Synchronous Secondary Setup Early */
+#define _USART_CTRL_SSSEARLY_SHIFT 25 /**< Shift value for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_MASK 0x2000000UL /**< Bit mask for USART_SSSEARLY */
+#define _USART_CTRL_SSSEARLY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SSSEARLY_DEFAULT (_USART_CTRL_SSSEARLY_DEFAULT << 25) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP (0x1UL << 28) /**< Byteswap In Double Accesses */
+#define _USART_CTRL_BYTESWAP_SHIFT 28 /**< Shift value for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_MASK 0x10000000UL /**< Bit mask for USART_BYTESWAP */
+#define _USART_CTRL_BYTESWAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRL */
+#define _USART_CTRL_BYTESWAP_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DEFAULT (_USART_CTRL_BYTESWAP_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_BYTESWAP_DISABLE (_USART_CTRL_BYTESWAP_DISABLE << 28) /**< Shifted mode DISABLE for USART_CTRL */
+#define USART_CTRL_BYTESWAP_ENABLE (_USART_CTRL_BYTESWAP_ENABLE << 28) /**< Shifted mode ENABLE for USART_CTRL */
+#define USART_CTRL_AUTOTX (0x1UL << 29) /**< Always Transmit When RX Not Full */
+#define _USART_CTRL_AUTOTX_SHIFT 29 /**< Shift value for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_MASK 0x20000000UL /**< Bit mask for USART_AUTOTX */
+#define _USART_CTRL_AUTOTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_AUTOTX_DEFAULT (_USART_CTRL_AUTOTX_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS (0x1UL << 30) /**< Majority Vote Disable */
+#define _USART_CTRL_MVDIS_SHIFT 30 /**< Shift value for USART_MVDIS */
+#define _USART_CTRL_MVDIS_MASK 0x40000000UL /**< Bit mask for USART_MVDIS */
+#define _USART_CTRL_MVDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_MVDIS_DEFAULT (_USART_CTRL_MVDIS_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY (0x1UL << 31) /**< Synchronous Main Sample Delay */
+#define _USART_CTRL_SMSDELAY_SHIFT 31 /**< Shift value for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_MASK 0x80000000UL /**< Bit mask for USART_SMSDELAY */
+#define _USART_CTRL_SMSDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRL */
+#define USART_CTRL_SMSDELAY_DEFAULT (_USART_CTRL_SMSDELAY_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CTRL */
+
+/* Bit fields for USART FRAME */
+#define _USART_FRAME_RESETVALUE 0x00001005UL /**< Default value for USART_FRAME */
+#define _USART_FRAME_MASK 0x0000330FUL /**< Mask for USART_FRAME */
+#define _USART_FRAME_DATABITS_SHIFT 0 /**< Shift value for USART_DATABITS */
+#define _USART_FRAME_DATABITS_MASK 0xFUL /**< Bit mask for USART_DATABITS */
+#define _USART_FRAME_DATABITS_DEFAULT 0x00000005UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOUR 0x00000001UL /**< Mode FOUR for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIVE 0x00000002UL /**< Mode FIVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIX 0x00000003UL /**< Mode SIX for USART_FRAME */
+#define _USART_FRAME_DATABITS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_EIGHT 0x00000005UL /**< Mode EIGHT for USART_FRAME */
+#define _USART_FRAME_DATABITS_NINE 0x00000006UL /**< Mode NINE for USART_FRAME */
+#define _USART_FRAME_DATABITS_TEN 0x00000007UL /**< Mode TEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_ELEVEN 0x00000008UL /**< Mode ELEVEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_TWELVE 0x00000009UL /**< Mode TWELVE for USART_FRAME */
+#define _USART_FRAME_DATABITS_THIRTEEN 0x0000000AUL /**< Mode THIRTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FOURTEEN 0x0000000BUL /**< Mode FOURTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_FIFTEEN 0x0000000CUL /**< Mode FIFTEEN for USART_FRAME */
+#define _USART_FRAME_DATABITS_SIXTEEN 0x0000000DUL /**< Mode SIXTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_DEFAULT (_USART_FRAME_DATABITS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_DATABITS_FOUR (_USART_FRAME_DATABITS_FOUR << 0) /**< Shifted mode FOUR for USART_FRAME */
+#define USART_FRAME_DATABITS_FIVE (_USART_FRAME_DATABITS_FIVE << 0) /**< Shifted mode FIVE for USART_FRAME */
+#define USART_FRAME_DATABITS_SIX (_USART_FRAME_DATABITS_SIX << 0) /**< Shifted mode SIX for USART_FRAME */
+#define USART_FRAME_DATABITS_SEVEN (_USART_FRAME_DATABITS_SEVEN << 0) /**< Shifted mode SEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_EIGHT (_USART_FRAME_DATABITS_EIGHT << 0) /**< Shifted mode EIGHT for USART_FRAME */
+#define USART_FRAME_DATABITS_NINE (_USART_FRAME_DATABITS_NINE << 0) /**< Shifted mode NINE for USART_FRAME */
+#define USART_FRAME_DATABITS_TEN (_USART_FRAME_DATABITS_TEN << 0) /**< Shifted mode TEN for USART_FRAME */
+#define USART_FRAME_DATABITS_ELEVEN (_USART_FRAME_DATABITS_ELEVEN << 0) /**< Shifted mode ELEVEN for USART_FRAME */
+#define USART_FRAME_DATABITS_TWELVE (_USART_FRAME_DATABITS_TWELVE << 0) /**< Shifted mode TWELVE for USART_FRAME */
+#define USART_FRAME_DATABITS_THIRTEEN (_USART_FRAME_DATABITS_THIRTEEN << 0) /**< Shifted mode THIRTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FOURTEEN (_USART_FRAME_DATABITS_FOURTEEN << 0) /**< Shifted mode FOURTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_FIFTEEN (_USART_FRAME_DATABITS_FIFTEEN << 0) /**< Shifted mode FIFTEEN for USART_FRAME */
+#define USART_FRAME_DATABITS_SIXTEEN (_USART_FRAME_DATABITS_SIXTEEN << 0) /**< Shifted mode SIXTEEN for USART_FRAME */
+#define _USART_FRAME_PARITY_SHIFT 8 /**< Shift value for USART_PARITY */
+#define _USART_FRAME_PARITY_MASK 0x300UL /**< Bit mask for USART_PARITY */
+#define _USART_FRAME_PARITY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_PARITY_NONE 0x00000000UL /**< Mode NONE for USART_FRAME */
+#define _USART_FRAME_PARITY_EVEN 0x00000002UL /**< Mode EVEN for USART_FRAME */
+#define _USART_FRAME_PARITY_ODD 0x00000003UL /**< Mode ODD for USART_FRAME */
+#define USART_FRAME_PARITY_DEFAULT (_USART_FRAME_PARITY_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_PARITY_NONE (_USART_FRAME_PARITY_NONE << 8) /**< Shifted mode NONE for USART_FRAME */
+#define USART_FRAME_PARITY_EVEN (_USART_FRAME_PARITY_EVEN << 8) /**< Shifted mode EVEN for USART_FRAME */
+#define USART_FRAME_PARITY_ODD (_USART_FRAME_PARITY_ODD << 8) /**< Shifted mode ODD for USART_FRAME */
+#define _USART_FRAME_STOPBITS_SHIFT 12 /**< Shift value for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_MASK 0x3000UL /**< Bit mask for USART_STOPBITS */
+#define _USART_FRAME_STOPBITS_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_FRAME */
+#define _USART_FRAME_STOPBITS_HALF 0x00000000UL /**< Mode HALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONE 0x00000001UL /**< Mode ONE for USART_FRAME */
+#define _USART_FRAME_STOPBITS_ONEANDAHALF 0x00000002UL /**< Mode ONEANDAHALF for USART_FRAME */
+#define _USART_FRAME_STOPBITS_TWO 0x00000003UL /**< Mode TWO for USART_FRAME */
+#define USART_FRAME_STOPBITS_DEFAULT (_USART_FRAME_STOPBITS_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_FRAME */
+#define USART_FRAME_STOPBITS_HALF (_USART_FRAME_STOPBITS_HALF << 12) /**< Shifted mode HALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONE (_USART_FRAME_STOPBITS_ONE << 12) /**< Shifted mode ONE for USART_FRAME */
+#define USART_FRAME_STOPBITS_ONEANDAHALF (_USART_FRAME_STOPBITS_ONEANDAHALF << 12) /**< Shifted mode ONEANDAHALF for USART_FRAME */
+#define USART_FRAME_STOPBITS_TWO (_USART_FRAME_STOPBITS_TWO << 12) /**< Shifted mode TWO for USART_FRAME */
+
+/* Bit fields for USART TRIGCTRL */
+#define _USART_TRIGCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_TRIGCTRL */
+#define _USART_TRIGCTRL_MASK 0x00001FF0UL /**< Mask for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN (0x1UL << 4) /**< Receive Trigger Enable */
+#define _USART_TRIGCTRL_RXTEN_SHIFT 4 /**< Shift value for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_MASK 0x10UL /**< Bit mask for USART_RXTEN */
+#define _USART_TRIGCTRL_RXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXTEN_DEFAULT (_USART_TRIGCTRL_RXTEN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN (0x1UL << 5) /**< Transmit Trigger Enable */
+#define _USART_TRIGCTRL_TXTEN_SHIFT 5 /**< Shift value for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_MASK 0x20UL /**< Bit mask for USART_TXTEN */
+#define _USART_TRIGCTRL_TXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXTEN_DEFAULT (_USART_TRIGCTRL_TXTEN_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN (0x1UL << 6) /**< AUTOTX Trigger Enable */
+#define _USART_TRIGCTRL_AUTOTXTEN_SHIFT 6 /**< Shift value for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_MASK 0x40UL /**< Bit mask for USART_AUTOTXTEN */
+#define _USART_TRIGCTRL_AUTOTXTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_AUTOTXTEN_DEFAULT (_USART_TRIGCTRL_AUTOTXTEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN (0x1UL << 7) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX0EN_SHIFT 7 /**< Shift value for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_MASK 0x80UL /**< Bit mask for USART_TXARX0EN */
+#define _USART_TRIGCTRL_TXARX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX0EN_DEFAULT (_USART_TRIGCTRL_TXARX0EN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN (0x1UL << 8) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX1EN_SHIFT 8 /**< Shift value for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_MASK 0x100UL /**< Bit mask for USART_TXARX1EN */
+#define _USART_TRIGCTRL_TXARX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX1EN_DEFAULT (_USART_TRIGCTRL_TXARX1EN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN (0x1UL << 9) /**< Enable Transmit Trigger after RX End of */
+#define _USART_TRIGCTRL_TXARX2EN_SHIFT 9 /**< Shift value for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_MASK 0x200UL /**< Bit mask for USART_TXARX2EN */
+#define _USART_TRIGCTRL_TXARX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_TXARX2EN_DEFAULT (_USART_TRIGCTRL_TXARX2EN_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN (0x1UL << 10) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX0EN_SHIFT 10 /**< Shift value for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_MASK 0x400UL /**< Bit mask for USART_RXATX0EN */
+#define _USART_TRIGCTRL_RXATX0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX0EN_DEFAULT (_USART_TRIGCTRL_RXATX0EN_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN (0x1UL << 11) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX1EN_SHIFT 11 /**< Shift value for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_MASK 0x800UL /**< Bit mask for USART_RXATX1EN */
+#define _USART_TRIGCTRL_RXATX1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX1EN_DEFAULT (_USART_TRIGCTRL_RXATX1EN_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN (0x1UL << 12) /**< Enable Receive Trigger after TX end of f */
+#define _USART_TRIGCTRL_RXATX2EN_SHIFT 12 /**< Shift value for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_MASK 0x1000UL /**< Bit mask for USART_RXATX2EN */
+#define _USART_TRIGCTRL_RXATX2EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TRIGCTRL */
+#define USART_TRIGCTRL_RXATX2EN_DEFAULT (_USART_TRIGCTRL_RXATX2EN_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TRIGCTRL */
+
+/* Bit fields for USART CMD */
+#define _USART_CMD_RESETVALUE 0x00000000UL /**< Default value for USART_CMD */
+#define _USART_CMD_MASK 0x00000FFFUL /**< Mask for USART_CMD */
+#define USART_CMD_RXEN (0x1UL << 0) /**< Receiver Enable */
+#define _USART_CMD_RXEN_SHIFT 0 /**< Shift value for USART_RXEN */
+#define _USART_CMD_RXEN_MASK 0x1UL /**< Bit mask for USART_RXEN */
+#define _USART_CMD_RXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXEN_DEFAULT (_USART_CMD_RXEN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS (0x1UL << 1) /**< Receiver Disable */
+#define _USART_CMD_RXDIS_SHIFT 1 /**< Shift value for USART_RXDIS */
+#define _USART_CMD_RXDIS_MASK 0x2UL /**< Bit mask for USART_RXDIS */
+#define _USART_CMD_RXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXDIS_DEFAULT (_USART_CMD_RXDIS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN (0x1UL << 2) /**< Transmitter Enable */
+#define _USART_CMD_TXEN_SHIFT 2 /**< Shift value for USART_TXEN */
+#define _USART_CMD_TXEN_MASK 0x4UL /**< Bit mask for USART_TXEN */
+#define _USART_CMD_TXEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXEN_DEFAULT (_USART_CMD_TXEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS (0x1UL << 3) /**< Transmitter Disable */
+#define _USART_CMD_TXDIS_SHIFT 3 /**< Shift value for USART_TXDIS */
+#define _USART_CMD_TXDIS_MASK 0x8UL /**< Bit mask for USART_TXDIS */
+#define _USART_CMD_TXDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXDIS_DEFAULT (_USART_CMD_TXDIS_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN (0x1UL << 4) /**< Main Mode Enable */
+#define _USART_CMD_MASTEREN_SHIFT 4 /**< Shift value for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_MASK 0x10UL /**< Bit mask for USART_MASTEREN */
+#define _USART_CMD_MASTEREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTEREN_DEFAULT (_USART_CMD_MASTEREN_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS (0x1UL << 5) /**< Main Mode Disable */
+#define _USART_CMD_MASTERDIS_SHIFT 5 /**< Shift value for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_MASK 0x20UL /**< Bit mask for USART_MASTERDIS */
+#define _USART_CMD_MASTERDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_MASTERDIS_DEFAULT (_USART_CMD_MASTERDIS_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN (0x1UL << 6) /**< Receiver Block Enable */
+#define _USART_CMD_RXBLOCKEN_SHIFT 6 /**< Shift value for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_MASK 0x40UL /**< Bit mask for USART_RXBLOCKEN */
+#define _USART_CMD_RXBLOCKEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKEN_DEFAULT (_USART_CMD_RXBLOCKEN_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS (0x1UL << 7) /**< Receiver Block Disable */
+#define _USART_CMD_RXBLOCKDIS_SHIFT 7 /**< Shift value for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_MASK 0x80UL /**< Bit mask for USART_RXBLOCKDIS */
+#define _USART_CMD_RXBLOCKDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_RXBLOCKDIS_DEFAULT (_USART_CMD_RXBLOCKDIS_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN (0x1UL << 8) /**< Transmitter Tristate Enable */
+#define _USART_CMD_TXTRIEN_SHIFT 8 /**< Shift value for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_MASK 0x100UL /**< Bit mask for USART_TXTRIEN */
+#define _USART_CMD_TXTRIEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIEN_DEFAULT (_USART_CMD_TXTRIEN_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS (0x1UL << 9) /**< Transmitter Tristate Disable */
+#define _USART_CMD_TXTRIDIS_SHIFT 9 /**< Shift value for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_MASK 0x200UL /**< Bit mask for USART_TXTRIDIS */
+#define _USART_CMD_TXTRIDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_TXTRIDIS_DEFAULT (_USART_CMD_TXTRIDIS_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX (0x1UL << 10) /**< Clear TX */
+#define _USART_CMD_CLEARTX_SHIFT 10 /**< Shift value for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_MASK 0x400UL /**< Bit mask for USART_CLEARTX */
+#define _USART_CMD_CLEARTX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARTX_DEFAULT (_USART_CMD_CLEARTX_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX (0x1UL << 11) /**< Clear RX */
+#define _USART_CMD_CLEARRX_SHIFT 11 /**< Shift value for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_MASK 0x800UL /**< Bit mask for USART_CLEARRX */
+#define _USART_CMD_CLEARRX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CMD */
+#define USART_CMD_CLEARRX_DEFAULT (_USART_CMD_CLEARRX_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_CMD */
+
+/* Bit fields for USART STATUS */
+#define _USART_STATUS_RESETVALUE 0x00002040UL /**< Default value for USART_STATUS */
+#define _USART_STATUS_MASK 0x00037FFFUL /**< Mask for USART_STATUS */
+#define USART_STATUS_RXENS (0x1UL << 0) /**< Receiver Enable Status */
+#define _USART_STATUS_RXENS_SHIFT 0 /**< Shift value for USART_RXENS */
+#define _USART_STATUS_RXENS_MASK 0x1UL /**< Bit mask for USART_RXENS */
+#define _USART_STATUS_RXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXENS_DEFAULT (_USART_STATUS_RXENS_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS (0x1UL << 1) /**< Transmitter Enable Status */
+#define _USART_STATUS_TXENS_SHIFT 1 /**< Shift value for USART_TXENS */
+#define _USART_STATUS_TXENS_MASK 0x2UL /**< Bit mask for USART_TXENS */
+#define _USART_STATUS_TXENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXENS_DEFAULT (_USART_STATUS_TXENS_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER (0x1UL << 2) /**< SPI Main Mode */
+#define _USART_STATUS_MASTER_SHIFT 2 /**< Shift value for USART_MASTER */
+#define _USART_STATUS_MASTER_MASK 0x4UL /**< Bit mask for USART_MASTER */
+#define _USART_STATUS_MASTER_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_MASTER_DEFAULT (_USART_STATUS_MASTER_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK (0x1UL << 3) /**< Block Incoming Data */
+#define _USART_STATUS_RXBLOCK_SHIFT 3 /**< Shift value for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_MASK 0x8UL /**< Bit mask for USART_RXBLOCK */
+#define _USART_STATUS_RXBLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXBLOCK_DEFAULT (_USART_STATUS_RXBLOCK_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI (0x1UL << 4) /**< Transmitter Tristated */
+#define _USART_STATUS_TXTRI_SHIFT 4 /**< Shift value for USART_TXTRI */
+#define _USART_STATUS_TXTRI_MASK 0x10UL /**< Bit mask for USART_TXTRI */
+#define _USART_STATUS_TXTRI_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXTRI_DEFAULT (_USART_STATUS_TXTRI_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC (0x1UL << 5) /**< TX Complete */
+#define _USART_STATUS_TXC_SHIFT 5 /**< Shift value for USART_TXC */
+#define _USART_STATUS_TXC_MASK 0x20UL /**< Bit mask for USART_TXC */
+#define _USART_STATUS_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXC_DEFAULT (_USART_STATUS_TXC_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL (0x1UL << 6) /**< TX Buffer Level */
+#define _USART_STATUS_TXBL_SHIFT 6 /**< Shift value for USART_TXBL */
+#define _USART_STATUS_TXBL_MASK 0x40UL /**< Bit mask for USART_TXBL */
+#define _USART_STATUS_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBL_DEFAULT (_USART_STATUS_TXBL_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV (0x1UL << 7) /**< RX Data Valid */
+#define _USART_STATUS_RXDATAV_SHIFT 7 /**< Shift value for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_MASK 0x80UL /**< Bit mask for USART_RXDATAV */
+#define _USART_STATUS_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAV_DEFAULT (_USART_STATUS_RXDATAV_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL (0x1UL << 8) /**< RX FIFO Full */
+#define _USART_STATUS_RXFULL_SHIFT 8 /**< Shift value for USART_RXFULL */
+#define _USART_STATUS_RXFULL_MASK 0x100UL /**< Bit mask for USART_RXFULL */
+#define _USART_STATUS_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULL_DEFAULT (_USART_STATUS_RXFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT (0x1UL << 9) /**< TX Buffer Expects Double Right Data */
+#define _USART_STATUS_TXBDRIGHT_SHIFT 9 /**< Shift value for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_MASK 0x200UL /**< Bit mask for USART_TXBDRIGHT */
+#define _USART_STATUS_TXBDRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBDRIGHT_DEFAULT (_USART_STATUS_TXBDRIGHT_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT (0x1UL << 10) /**< TX Buffer Expects Single Right Data */
+#define _USART_STATUS_TXBSRIGHT_SHIFT 10 /**< Shift value for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_MASK 0x400UL /**< Bit mask for USART_TXBSRIGHT */
+#define _USART_STATUS_TXBSRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBSRIGHT_DEFAULT (_USART_STATUS_TXBSRIGHT_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT (0x1UL << 11) /**< RX Data Right */
+#define _USART_STATUS_RXDATAVRIGHT_SHIFT 11 /**< Shift value for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_MASK 0x800UL /**< Bit mask for USART_RXDATAVRIGHT */
+#define _USART_STATUS_RXDATAVRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXDATAVRIGHT_DEFAULT (_USART_STATUS_RXDATAVRIGHT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT (0x1UL << 12) /**< RX Full of Right Data */
+#define _USART_STATUS_RXFULLRIGHT_SHIFT 12 /**< Shift value for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_MASK 0x1000UL /**< Bit mask for USART_RXFULLRIGHT */
+#define _USART_STATUS_RXFULLRIGHT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_RXFULLRIGHT_DEFAULT (_USART_STATUS_RXFULLRIGHT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE (0x1UL << 13) /**< TX Idle */
+#define _USART_STATUS_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_STATUS_TXIDLE_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXIDLE_DEFAULT (_USART_STATUS_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED (0x1UL << 14) /**< The USART Timer restarted itself */
+#define _USART_STATUS_TIMERRESTARTED_SHIFT 14 /**< Shift value for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_MASK 0x4000UL /**< Bit mask for USART_TIMERRESTARTED */
+#define _USART_STATUS_TIMERRESTARTED_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TIMERRESTARTED_DEFAULT (_USART_STATUS_TIMERRESTARTED_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_STATUS */
+#define _USART_STATUS_TXBUFCNT_SHIFT 16 /**< Shift value for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_MASK 0x30000UL /**< Bit mask for USART_TXBUFCNT */
+#define _USART_STATUS_TXBUFCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_STATUS */
+#define USART_STATUS_TXBUFCNT_DEFAULT (_USART_STATUS_TXBUFCNT_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_STATUS */
+
+/* Bit fields for USART CLKDIV */
+#define _USART_CLKDIV_RESETVALUE 0x00000000UL /**< Default value for USART_CLKDIV */
+#define _USART_CLKDIV_MASK 0x807FFFF8UL /**< Mask for USART_CLKDIV */
+#define _USART_CLKDIV_DIV_SHIFT 3 /**< Shift value for USART_DIV */
+#define _USART_CLKDIV_DIV_MASK 0x7FFFF8UL /**< Bit mask for USART_DIV */
+#define _USART_CLKDIV_DIV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_DIV_DEFAULT (_USART_CLKDIV_DIV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN (0x1UL << 31) /**< AUTOBAUD detection enable */
+#define _USART_CLKDIV_AUTOBAUDEN_SHIFT 31 /**< Shift value for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_MASK 0x80000000UL /**< Bit mask for USART_AUTOBAUDEN */
+#define _USART_CLKDIV_AUTOBAUDEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CLKDIV */
+#define USART_CLKDIV_AUTOBAUDEN_DEFAULT (_USART_CLKDIV_AUTOBAUDEN_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_CLKDIV */
+
+/* Bit fields for USART RXDATAX */
+#define _USART_RXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAX */
+#define _USART_RXDATAX_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAX */
+#define _USART_RXDATAX_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_MASK 0x1FFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATAX_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_RXDATA_DEFAULT (_USART_RXDATAX_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR (0x1UL << 14) /**< Data Parity Error */
+#define _USART_RXDATAX_PERR_SHIFT 14 /**< Shift value for USART_PERR */
+#define _USART_RXDATAX_PERR_MASK 0x4000UL /**< Bit mask for USART_PERR */
+#define _USART_RXDATAX_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_PERR_DEFAULT (_USART_RXDATAX_PERR_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR (0x1UL << 15) /**< Data Framing Error */
+#define _USART_RXDATAX_FERR_SHIFT 15 /**< Shift value for USART_FERR */
+#define _USART_RXDATAX_FERR_MASK 0x8000UL /**< Bit mask for USART_FERR */
+#define _USART_RXDATAX_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAX */
+#define USART_RXDATAX_FERR_DEFAULT (_USART_RXDATAX_FERR_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAX */
+
+/* Bit fields for USART RXDATA */
+#define _USART_RXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATA */
+#define _USART_RXDATA_MASK 0x000000FFUL /**< Mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_SHIFT 0 /**< Shift value for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_MASK 0xFFUL /**< Bit mask for USART_RXDATA */
+#define _USART_RXDATA_RXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATA */
+#define USART_RXDATA_RXDATA_DEFAULT (_USART_RXDATA_RXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATA */
+
+/* Bit fields for USART RXDOUBLEX */
+#define _USART_RXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_MASK 0x1FFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLEX_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA0_DEFAULT (_USART_RXDOUBLEX_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0 (0x1UL << 14) /**< Data Parity Error 0 */
+#define _USART_RXDOUBLEX_PERR0_SHIFT 14 /**< Shift value for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_MASK 0x4000UL /**< Bit mask for USART_PERR0 */
+#define _USART_RXDOUBLEX_PERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR0_DEFAULT (_USART_RXDOUBLEX_PERR0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0 (0x1UL << 15) /**< Data Framing Error 0 */
+#define _USART_RXDOUBLEX_FERR0_SHIFT 15 /**< Shift value for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_MASK 0x8000UL /**< Bit mask for USART_FERR0 */
+#define _USART_RXDOUBLEX_FERR0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR0_DEFAULT (_USART_RXDOUBLEX_FERR0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define _USART_RXDOUBLEX_RXDATA1_SHIFT 16 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLEX_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_RXDATA1_DEFAULT (_USART_RXDOUBLEX_RXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1 (0x1UL << 30) /**< Data Parity Error 1 */
+#define _USART_RXDOUBLEX_PERR1_SHIFT 30 /**< Shift value for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_MASK 0x40000000UL /**< Bit mask for USART_PERR1 */
+#define _USART_RXDOUBLEX_PERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_PERR1_DEFAULT (_USART_RXDOUBLEX_PERR1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1 (0x1UL << 31) /**< Data Framing Error 1 */
+#define _USART_RXDOUBLEX_FERR1_SHIFT 31 /**< Shift value for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_MASK 0x80000000UL /**< Bit mask for USART_FERR1 */
+#define _USART_RXDOUBLEX_FERR1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEX */
+#define USART_RXDOUBLEX_FERR1_DEFAULT (_USART_RXDOUBLEX_FERR1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEX */
+
+/* Bit fields for USART RXDOUBLE */
+#define _USART_RXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA0_SHIFT 0 /**< Shift value for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_MASK 0xFFUL /**< Bit mask for USART_RXDATA0 */
+#define _USART_RXDOUBLE_RXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA0_DEFAULT (_USART_RXDOUBLE_RXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+#define _USART_RXDOUBLE_RXDATA1_SHIFT 8 /**< Shift value for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_MASK 0xFF00UL /**< Bit mask for USART_RXDATA1 */
+#define _USART_RXDOUBLE_RXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLE */
+#define USART_RXDOUBLE_RXDATA1_DEFAULT (_USART_RXDOUBLE_RXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_RXDOUBLE */
+
+/* Bit fields for USART RXDATAXP */
+#define _USART_RXDATAXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDATAXP */
+#define _USART_RXDATAXP_MASK 0x0000C1FFUL /**< Mask for USART_RXDATAXP */
+#define _USART_RXDATAXP_RXDATAP_SHIFT 0 /**< Shift value for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP */
+#define _USART_RXDATAXP_RXDATAP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_RXDATAP_DEFAULT (_USART_RXDATAXP_RXDATAP_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP (0x1UL << 14) /**< Data Parity Error Peek */
+#define _USART_RXDATAXP_PERRP_SHIFT 14 /**< Shift value for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_MASK 0x4000UL /**< Bit mask for USART_PERRP */
+#define _USART_RXDATAXP_PERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_PERRP_DEFAULT (_USART_RXDATAXP_PERRP_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP (0x1UL << 15) /**< Data Framing Error Peek */
+#define _USART_RXDATAXP_FERRP_SHIFT 15 /**< Shift value for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_MASK 0x8000UL /**< Bit mask for USART_FERRP */
+#define _USART_RXDATAXP_FERRP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDATAXP */
+#define USART_RXDATAXP_FERRP_DEFAULT (_USART_RXDATAXP_FERRP_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDATAXP */
+
+/* Bit fields for USART RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RESETVALUE 0x00000000UL /**< Default value for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_MASK 0xC1FFC1FFUL /**< Mask for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP0_SHIFT 0 /**< Shift value for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_MASK 0x1FFUL /**< Bit mask for USART_RXDATAP0 */
+#define _USART_RXDOUBLEXP_RXDATAP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP0_DEFAULT (_USART_RXDOUBLEXP_RXDATAP0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0 (0x1UL << 14) /**< Data Parity Error 0 Peek */
+#define _USART_RXDOUBLEXP_PERRP0_SHIFT 14 /**< Shift value for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_MASK 0x4000UL /**< Bit mask for USART_PERRP0 */
+#define _USART_RXDOUBLEXP_PERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP0_DEFAULT (_USART_RXDOUBLEXP_PERRP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0 (0x1UL << 15) /**< Data Framing Error 0 Peek */
+#define _USART_RXDOUBLEXP_FERRP0_SHIFT 15 /**< Shift value for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_MASK 0x8000UL /**< Bit mask for USART_FERRP0 */
+#define _USART_RXDOUBLEXP_FERRP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP0_DEFAULT (_USART_RXDOUBLEXP_FERRP0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define _USART_RXDOUBLEXP_RXDATAP1_SHIFT 16 /**< Shift value for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_MASK 0x1FF0000UL /**< Bit mask for USART_RXDATAP1 */
+#define _USART_RXDOUBLEXP_RXDATAP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_RXDATAP1_DEFAULT (_USART_RXDOUBLEXP_RXDATAP1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1 (0x1UL << 30) /**< Data Parity Error 1 Peek */
+#define _USART_RXDOUBLEXP_PERRP1_SHIFT 30 /**< Shift value for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_MASK 0x40000000UL /**< Bit mask for USART_PERRP1 */
+#define _USART_RXDOUBLEXP_PERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_PERRP1_DEFAULT (_USART_RXDOUBLEXP_PERRP1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1 (0x1UL << 31) /**< Data Framing Error 1 Peek */
+#define _USART_RXDOUBLEXP_FERRP1_SHIFT 31 /**< Shift value for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_MASK 0x80000000UL /**< Bit mask for USART_FERRP1 */
+#define _USART_RXDOUBLEXP_FERRP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_RXDOUBLEXP */
+#define USART_RXDOUBLEXP_FERRP1_DEFAULT (_USART_RXDOUBLEXP_FERRP1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_RXDOUBLEXP */
+
+/* Bit fields for USART TXDATAX */
+#define _USART_TXDATAX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATAX */
+#define _USART_TXDATAX_MASK 0x0000F9FFUL /**< Mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_SHIFT 0 /**< Shift value for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_MASK 0x1FFUL /**< Bit mask for USART_TXDATAX */
+#define _USART_TXDATAX_TXDATAX_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDATAX_DEFAULT (_USART_TXDATAX_TXDATAX_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDATAX_UBRXAT_SHIFT 11 /**< Shift value for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_MASK 0x800UL /**< Bit mask for USART_UBRXAT */
+#define _USART_TXDATAX_UBRXAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_UBRXAT_DEFAULT (_USART_TXDATAX_UBRXAT_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDATAX_TXTRIAT_SHIFT 12 /**< Shift value for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT */
+#define _USART_TXDATAX_TXTRIAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXTRIAT_DEFAULT (_USART_TXDATAX_TXTRIAT_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDATAX_TXBREAK_SHIFT 13 /**< Shift value for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_MASK 0x2000UL /**< Bit mask for USART_TXBREAK */
+#define _USART_TXDATAX_TXBREAK_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXBREAK_DEFAULT (_USART_TXDATAX_TXBREAK_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDATAX_TXDISAT_SHIFT 14 /**< Shift value for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_MASK 0x4000UL /**< Bit mask for USART_TXDISAT */
+#define _USART_TXDATAX_TXDISAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_TXDISAT_DEFAULT (_USART_TXDATAX_TXDISAT_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDATAX_RXENAT_SHIFT 15 /**< Shift value for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_MASK 0x8000UL /**< Bit mask for USART_RXENAT */
+#define _USART_TXDATAX_RXENAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATAX */
+#define USART_TXDATAX_RXENAT_DEFAULT (_USART_TXDATAX_RXENAT_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDATAX */
+
+/* Bit fields for USART TXDATA */
+#define _USART_TXDATA_RESETVALUE 0x00000000UL /**< Default value for USART_TXDATA */
+#define _USART_TXDATA_MASK 0x000000FFUL /**< Mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_SHIFT 0 /**< Shift value for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_MASK 0xFFUL /**< Bit mask for USART_TXDATA */
+#define _USART_TXDATA_TXDATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDATA */
+#define USART_TXDATA_TXDATA_DEFAULT (_USART_TXDATA_TXDATA_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDATA */
+
+/* Bit fields for USART TXDOUBLEX */
+#define _USART_TXDOUBLEX_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_MASK 0xF9FFF9FFUL /**< Mask for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_MASK 0x1FFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLEX_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA0_DEFAULT (_USART_TXDOUBLEX_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0 (0x1UL << 11) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT0_SHIFT 11 /**< Shift value for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_MASK 0x800UL /**< Bit mask for USART_UBRXAT0 */
+#define _USART_TXDOUBLEX_UBRXAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT0_DEFAULT (_USART_TXDOUBLEX_UBRXAT0_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0 (0x1UL << 12) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT0_SHIFT 12 /**< Shift value for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_MASK 0x1000UL /**< Bit mask for USART_TXTRIAT0 */
+#define _USART_TXDOUBLEX_TXTRIAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT0_DEFAULT (_USART_TXDOUBLEX_TXTRIAT0_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0 (0x1UL << 13) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK0_SHIFT 13 /**< Shift value for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_MASK 0x2000UL /**< Bit mask for USART_TXBREAK0 */
+#define _USART_TXDOUBLEX_TXBREAK0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK0_DEFAULT (_USART_TXDOUBLEX_TXBREAK0_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0 (0x1UL << 14) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT0_SHIFT 14 /**< Shift value for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_MASK 0x4000UL /**< Bit mask for USART_TXDISAT0 */
+#define _USART_TXDOUBLEX_TXDISAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT0_DEFAULT (_USART_TXDOUBLEX_TXDISAT0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0 (0x1UL << 15) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT0_SHIFT 15 /**< Shift value for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_MASK 0x8000UL /**< Bit mask for USART_RXENAT0 */
+#define _USART_TXDOUBLEX_RXENAT0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT0_DEFAULT (_USART_TXDOUBLEX_RXENAT0_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define _USART_TXDOUBLEX_TXDATA1_SHIFT 16 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_MASK 0x1FF0000UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLEX_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDATA1_DEFAULT (_USART_TXDOUBLEX_TXDATA1_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1 (0x1UL << 27) /**< Unblock RX After Transmission */
+#define _USART_TXDOUBLEX_UBRXAT1_SHIFT 27 /**< Shift value for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_MASK 0x8000000UL /**< Bit mask for USART_UBRXAT1 */
+#define _USART_TXDOUBLEX_UBRXAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_UBRXAT1_DEFAULT (_USART_TXDOUBLEX_UBRXAT1_DEFAULT << 27) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1 (0x1UL << 28) /**< Set TXTRI After Transmission */
+#define _USART_TXDOUBLEX_TXTRIAT1_SHIFT 28 /**< Shift value for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_MASK 0x10000000UL /**< Bit mask for USART_TXTRIAT1 */
+#define _USART_TXDOUBLEX_TXTRIAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXTRIAT1_DEFAULT (_USART_TXDOUBLEX_TXTRIAT1_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1 (0x1UL << 29) /**< Transmit Data As Break */
+#define _USART_TXDOUBLEX_TXBREAK1_SHIFT 29 /**< Shift value for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_MASK 0x20000000UL /**< Bit mask for USART_TXBREAK1 */
+#define _USART_TXDOUBLEX_TXBREAK1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXBREAK1_DEFAULT (_USART_TXDOUBLEX_TXBREAK1_DEFAULT << 29) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1 (0x1UL << 30) /**< Clear TXEN After Transmission */
+#define _USART_TXDOUBLEX_TXDISAT1_SHIFT 30 /**< Shift value for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_MASK 0x40000000UL /**< Bit mask for USART_TXDISAT1 */
+#define _USART_TXDOUBLEX_TXDISAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_TXDISAT1_DEFAULT (_USART_TXDOUBLEX_TXDISAT1_DEFAULT << 30) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1 (0x1UL << 31) /**< Enable RX After Transmission */
+#define _USART_TXDOUBLEX_RXENAT1_SHIFT 31 /**< Shift value for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_MASK 0x80000000UL /**< Bit mask for USART_RXENAT1 */
+#define _USART_TXDOUBLEX_RXENAT1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLEX */
+#define USART_TXDOUBLEX_RXENAT1_DEFAULT (_USART_TXDOUBLEX_RXENAT1_DEFAULT << 31) /**< Shifted mode DEFAULT for USART_TXDOUBLEX */
+
+/* Bit fields for USART TXDOUBLE */
+#define _USART_TXDOUBLE_RESETVALUE 0x00000000UL /**< Default value for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_MASK 0x0000FFFFUL /**< Mask for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA0_SHIFT 0 /**< Shift value for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_MASK 0xFFUL /**< Bit mask for USART_TXDATA0 */
+#define _USART_TXDOUBLE_TXDATA0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA0_DEFAULT (_USART_TXDOUBLE_TXDATA0_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+#define _USART_TXDOUBLE_TXDATA1_SHIFT 8 /**< Shift value for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_MASK 0xFF00UL /**< Bit mask for USART_TXDATA1 */
+#define _USART_TXDOUBLE_TXDATA1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TXDOUBLE */
+#define USART_TXDOUBLE_TXDATA1_DEFAULT (_USART_TXDOUBLE_TXDATA1_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_TXDOUBLE */
+
+/* Bit fields for USART IF */
+#define _USART_IF_RESETVALUE 0x00000002UL /**< Default value for USART_IF */
+#define _USART_IF_MASK 0x0001FFFFUL /**< Mask for USART_IF */
+#define USART_IF_TXC (0x1UL << 0) /**< TX Complete Interrupt Flag */
+#define _USART_IF_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IF_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IF_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXC_DEFAULT (_USART_IF_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Flag */
+#define _USART_IF_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IF_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IF_TXBL_DEFAULT 0x00000001UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXBL_DEFAULT (_USART_IF_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Flag */
+#define _USART_IF_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IF_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IF_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXDATAV_DEFAULT (_USART_IF_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Flag */
+#define _USART_IF_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IF_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IF_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXFULL_DEFAULT (_USART_IF_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Flag */
+#define _USART_IF_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IF_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IF_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXOF_DEFAULT (_USART_IF_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Flag */
+#define _USART_IF_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IF_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IF_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_RXUF_DEFAULT (_USART_IF_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Flag */
+#define _USART_IF_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IF_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IF_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXOF_DEFAULT (_USART_IF_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Flag */
+#define _USART_IF_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IF_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IF_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXUF_DEFAULT (_USART_IF_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_PERR (0x1UL << 8) /**< Parity Error Interrupt Flag */
+#define _USART_IF_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IF_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IF_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_PERR_DEFAULT (_USART_IF_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_FERR (0x1UL << 9) /**< Framing Error Interrupt Flag */
+#define _USART_IF_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IF_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IF_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_FERR_DEFAULT (_USART_IF_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IF_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IF_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IF_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_MPAF_DEFAULT (_USART_IF_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IF_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IF_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IF_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_SSM_DEFAULT (_USART_IF_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Flag */
+#define _USART_IF_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IF_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IF_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_CCF_DEFAULT (_USART_IF_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Flag */
+#define _USART_IF_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IF_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IF_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TXIDLE_DEFAULT (_USART_IF_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Flag */
+#define _USART_IF_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IF_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IF_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP0_DEFAULT (_USART_IF_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Flag */
+#define _USART_IF_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IF_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IF_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP1_DEFAULT (_USART_IF_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Flag */
+#define _USART_IF_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IF_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IF_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IF */
+#define USART_IF_TCMP2_DEFAULT (_USART_IF_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IF */
+
+/* Bit fields for USART IEN */
+#define _USART_IEN_RESETVALUE 0x00000000UL /**< Default value for USART_IEN */
+#define _USART_IEN_MASK 0x0001FFFFUL /**< Mask for USART_IEN */
+#define USART_IEN_TXC (0x1UL << 0) /**< TX Complete Interrupt Enable */
+#define _USART_IEN_TXC_SHIFT 0 /**< Shift value for USART_TXC */
+#define _USART_IEN_TXC_MASK 0x1UL /**< Bit mask for USART_TXC */
+#define _USART_IEN_TXC_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXC_DEFAULT (_USART_IEN_TXC_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL (0x1UL << 1) /**< TX Buffer Level Interrupt Enable */
+#define _USART_IEN_TXBL_SHIFT 1 /**< Shift value for USART_TXBL */
+#define _USART_IEN_TXBL_MASK 0x2UL /**< Bit mask for USART_TXBL */
+#define _USART_IEN_TXBL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXBL_DEFAULT (_USART_IEN_TXBL_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV (0x1UL << 2) /**< RX Data Valid Interrupt Enable */
+#define _USART_IEN_RXDATAV_SHIFT 2 /**< Shift value for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_MASK 0x4UL /**< Bit mask for USART_RXDATAV */
+#define _USART_IEN_RXDATAV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXDATAV_DEFAULT (_USART_IEN_RXDATAV_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL (0x1UL << 3) /**< RX Buffer Full Interrupt Enable */
+#define _USART_IEN_RXFULL_SHIFT 3 /**< Shift value for USART_RXFULL */
+#define _USART_IEN_RXFULL_MASK 0x8UL /**< Bit mask for USART_RXFULL */
+#define _USART_IEN_RXFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXFULL_DEFAULT (_USART_IEN_RXFULL_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF (0x1UL << 4) /**< RX Overflow Interrupt Enable */
+#define _USART_IEN_RXOF_SHIFT 4 /**< Shift value for USART_RXOF */
+#define _USART_IEN_RXOF_MASK 0x10UL /**< Bit mask for USART_RXOF */
+#define _USART_IEN_RXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXOF_DEFAULT (_USART_IEN_RXOF_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF (0x1UL << 5) /**< RX Underflow Interrupt Enable */
+#define _USART_IEN_RXUF_SHIFT 5 /**< Shift value for USART_RXUF */
+#define _USART_IEN_RXUF_MASK 0x20UL /**< Bit mask for USART_RXUF */
+#define _USART_IEN_RXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_RXUF_DEFAULT (_USART_IEN_RXUF_DEFAULT << 5) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF (0x1UL << 6) /**< TX Overflow Interrupt Enable */
+#define _USART_IEN_TXOF_SHIFT 6 /**< Shift value for USART_TXOF */
+#define _USART_IEN_TXOF_MASK 0x40UL /**< Bit mask for USART_TXOF */
+#define _USART_IEN_TXOF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXOF_DEFAULT (_USART_IEN_TXOF_DEFAULT << 6) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF (0x1UL << 7) /**< TX Underflow Interrupt Enable */
+#define _USART_IEN_TXUF_SHIFT 7 /**< Shift value for USART_TXUF */
+#define _USART_IEN_TXUF_MASK 0x80UL /**< Bit mask for USART_TXUF */
+#define _USART_IEN_TXUF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXUF_DEFAULT (_USART_IEN_TXUF_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR (0x1UL << 8) /**< Parity Error Interrupt Enable */
+#define _USART_IEN_PERR_SHIFT 8 /**< Shift value for USART_PERR */
+#define _USART_IEN_PERR_MASK 0x100UL /**< Bit mask for USART_PERR */
+#define _USART_IEN_PERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_PERR_DEFAULT (_USART_IEN_PERR_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR (0x1UL << 9) /**< Framing Error Interrupt Enable */
+#define _USART_IEN_FERR_SHIFT 9 /**< Shift value for USART_FERR */
+#define _USART_IEN_FERR_MASK 0x200UL /**< Bit mask for USART_FERR */
+#define _USART_IEN_FERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_FERR_DEFAULT (_USART_IEN_FERR_DEFAULT << 9) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF (0x1UL << 10) /**< Multi-Processor Address Frame Interrupt */
+#define _USART_IEN_MPAF_SHIFT 10 /**< Shift value for USART_MPAF */
+#define _USART_IEN_MPAF_MASK 0x400UL /**< Bit mask for USART_MPAF */
+#define _USART_IEN_MPAF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_MPAF_DEFAULT (_USART_IEN_MPAF_DEFAULT << 10) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM (0x1UL << 11) /**< Chip-Select In Main Mode Interrupt Flag */
+#define _USART_IEN_SSM_SHIFT 11 /**< Shift value for USART_SSM */
+#define _USART_IEN_SSM_MASK 0x800UL /**< Bit mask for USART_SSM */
+#define _USART_IEN_SSM_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_SSM_DEFAULT (_USART_IEN_SSM_DEFAULT << 11) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF (0x1UL << 12) /**< Collision Check Fail Interrupt Enable */
+#define _USART_IEN_CCF_SHIFT 12 /**< Shift value for USART_CCF */
+#define _USART_IEN_CCF_MASK 0x1000UL /**< Bit mask for USART_CCF */
+#define _USART_IEN_CCF_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_CCF_DEFAULT (_USART_IEN_CCF_DEFAULT << 12) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE (0x1UL << 13) /**< TX Idle Interrupt Enable */
+#define _USART_IEN_TXIDLE_SHIFT 13 /**< Shift value for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_MASK 0x2000UL /**< Bit mask for USART_TXIDLE */
+#define _USART_IEN_TXIDLE_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TXIDLE_DEFAULT (_USART_IEN_TXIDLE_DEFAULT << 13) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0 (0x1UL << 14) /**< Timer comparator 0 Interrupt Enable */
+#define _USART_IEN_TCMP0_SHIFT 14 /**< Shift value for USART_TCMP0 */
+#define _USART_IEN_TCMP0_MASK 0x4000UL /**< Bit mask for USART_TCMP0 */
+#define _USART_IEN_TCMP0_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP0_DEFAULT (_USART_IEN_TCMP0_DEFAULT << 14) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1 (0x1UL << 15) /**< Timer comparator 1 Interrupt Enable */
+#define _USART_IEN_TCMP1_SHIFT 15 /**< Shift value for USART_TCMP1 */
+#define _USART_IEN_TCMP1_MASK 0x8000UL /**< Bit mask for USART_TCMP1 */
+#define _USART_IEN_TCMP1_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP1_DEFAULT (_USART_IEN_TCMP1_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2 (0x1UL << 16) /**< Timer comparator 2 Interrupt Enable */
+#define _USART_IEN_TCMP2_SHIFT 16 /**< Shift value for USART_TCMP2 */
+#define _USART_IEN_TCMP2_MASK 0x10000UL /**< Bit mask for USART_TCMP2 */
+#define _USART_IEN_TCMP2_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IEN */
+#define USART_IEN_TCMP2_DEFAULT (_USART_IEN_TCMP2_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_IEN */
+
+/* Bit fields for USART IRCTRL */
+#define _USART_IRCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_IRCTRL */
+#define _USART_IRCTRL_MASK 0x0000008FUL /**< Mask for USART_IRCTRL */
+#define USART_IRCTRL_IREN (0x1UL << 0) /**< Enable IrDA Module */
+#define _USART_IRCTRL_IREN_SHIFT 0 /**< Shift value for USART_IREN */
+#define _USART_IRCTRL_IREN_MASK 0x1UL /**< Bit mask for USART_IREN */
+#define _USART_IRCTRL_IREN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IREN_DEFAULT (_USART_IRCTRL_IREN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_SHIFT 1 /**< Shift value for USART_IRPW */
+#define _USART_IRCTRL_IRPW_MASK 0x6UL /**< Bit mask for USART_IRPW */
+#define _USART_IRCTRL_IRPW_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_ONE 0x00000000UL /**< Mode ONE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_TWO 0x00000001UL /**< Mode TWO for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_THREE 0x00000002UL /**< Mode THREE for USART_IRCTRL */
+#define _USART_IRCTRL_IRPW_FOUR 0x00000003UL /**< Mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_DEFAULT (_USART_IRCTRL_IRPW_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_ONE (_USART_IRCTRL_IRPW_ONE << 1) /**< Shifted mode ONE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_TWO (_USART_IRCTRL_IRPW_TWO << 1) /**< Shifted mode TWO for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_THREE (_USART_IRCTRL_IRPW_THREE << 1) /**< Shifted mode THREE for USART_IRCTRL */
+#define USART_IRCTRL_IRPW_FOUR (_USART_IRCTRL_IRPW_FOUR << 1) /**< Shifted mode FOUR for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT (0x1UL << 3) /**< IrDA RX Filter */
+#define _USART_IRCTRL_IRFILT_SHIFT 3 /**< Shift value for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_MASK 0x8UL /**< Bit mask for USART_IRFILT */
+#define _USART_IRCTRL_IRFILT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_IRCTRL */
+#define _USART_IRCTRL_IRFILT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DEFAULT (_USART_IRCTRL_IRFILT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_DISABLE (_USART_IRCTRL_IRFILT_DISABLE << 3) /**< Shifted mode DISABLE for USART_IRCTRL */
+#define USART_IRCTRL_IRFILT_ENABLE (_USART_IRCTRL_IRFILT_ENABLE << 3) /**< Shifted mode ENABLE for USART_IRCTRL */
+
+/* Bit fields for USART I2SCTRL */
+#define _USART_I2SCTRL_RESETVALUE 0x00000000UL /**< Default value for USART_I2SCTRL */
+#define _USART_I2SCTRL_MASK 0x0000071FUL /**< Mask for USART_I2SCTRL */
+#define USART_I2SCTRL_EN (0x1UL << 0) /**< Enable I2S Mode */
+#define _USART_I2SCTRL_EN_SHIFT 0 /**< Shift value for USART_EN */
+#define _USART_I2SCTRL_EN_MASK 0x1UL /**< Bit mask for USART_EN */
+#define _USART_I2SCTRL_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_EN_DEFAULT (_USART_I2SCTRL_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO (0x1UL << 1) /**< Stero or Mono */
+#define _USART_I2SCTRL_MONO_SHIFT 1 /**< Shift value for USART_MONO */
+#define _USART_I2SCTRL_MONO_MASK 0x2UL /**< Bit mask for USART_MONO */
+#define _USART_I2SCTRL_MONO_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_MONO_DEFAULT (_USART_I2SCTRL_MONO_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY (0x1UL << 2) /**< Justification of I2S Data */
+#define _USART_I2SCTRL_JUSTIFY_SHIFT 2 /**< Shift value for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_MASK 0x4UL /**< Bit mask for USART_JUSTIFY */
+#define _USART_I2SCTRL_JUSTIFY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_LEFT 0x00000000UL /**< Mode LEFT for USART_I2SCTRL */
+#define _USART_I2SCTRL_JUSTIFY_RIGHT 0x00000001UL /**< Mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_DEFAULT (_USART_I2SCTRL_JUSTIFY_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_LEFT (_USART_I2SCTRL_JUSTIFY_LEFT << 2) /**< Shifted mode LEFT for USART_I2SCTRL */
+#define USART_I2SCTRL_JUSTIFY_RIGHT (_USART_I2SCTRL_JUSTIFY_RIGHT << 2) /**< Shifted mode RIGHT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT (0x1UL << 3) /**< Separate DMA Request For Left/Right Data */
+#define _USART_I2SCTRL_DMASPLIT_SHIFT 3 /**< Shift value for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_MASK 0x8UL /**< Bit mask for USART_DMASPLIT */
+#define _USART_I2SCTRL_DMASPLIT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DMASPLIT_DEFAULT (_USART_I2SCTRL_DMASPLIT_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY (0x1UL << 4) /**< Delay on I2S data */
+#define _USART_I2SCTRL_DELAY_SHIFT 4 /**< Shift value for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_MASK 0x10UL /**< Bit mask for USART_DELAY */
+#define _USART_I2SCTRL_DELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_DELAY_DEFAULT (_USART_I2SCTRL_DELAY_DEFAULT << 4) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_SHIFT 8 /**< Shift value for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_MASK 0x700UL /**< Bit mask for USART_FORMAT */
+#define _USART_I2SCTRL_FORMAT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D32 0x00000000UL /**< Mode W32D32 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24M 0x00000001UL /**< Mode W32D24M for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D24 0x00000002UL /**< Mode W32D24 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D16 0x00000003UL /**< Mode W32D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W32D8 0x00000004UL /**< Mode W32D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D16 0x00000005UL /**< Mode W16D16 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W16D8 0x00000006UL /**< Mode W16D8 for USART_I2SCTRL */
+#define _USART_I2SCTRL_FORMAT_W8D8 0x00000007UL /**< Mode W8D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_DEFAULT (_USART_I2SCTRL_FORMAT_DEFAULT << 8) /**< Shifted mode DEFAULT for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D32 (_USART_I2SCTRL_FORMAT_W32D32 << 8) /**< Shifted mode W32D32 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24M (_USART_I2SCTRL_FORMAT_W32D24M << 8) /**< Shifted mode W32D24M for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D24 (_USART_I2SCTRL_FORMAT_W32D24 << 8) /**< Shifted mode W32D24 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D16 (_USART_I2SCTRL_FORMAT_W32D16 << 8) /**< Shifted mode W32D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W32D8 (_USART_I2SCTRL_FORMAT_W32D8 << 8) /**< Shifted mode W32D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D16 (_USART_I2SCTRL_FORMAT_W16D16 << 8) /**< Shifted mode W16D16 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W16D8 (_USART_I2SCTRL_FORMAT_W16D8 << 8) /**< Shifted mode W16D8 for USART_I2SCTRL */
+#define USART_I2SCTRL_FORMAT_W8D8 (_USART_I2SCTRL_FORMAT_W8D8 << 8) /**< Shifted mode W8D8 for USART_I2SCTRL */
+
+/* Bit fields for USART TIMING */
+#define _USART_TIMING_RESETVALUE 0x00000000UL /**< Default value for USART_TIMING */
+#define _USART_TIMING_MASK 0x77770000UL /**< Mask for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SHIFT 16 /**< Shift value for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_MASK 0x70000UL /**< Bit mask for USART_TXDELAY */
+#define _USART_TIMING_TXDELAY_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_TXDELAY_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_TXDELAY_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_TXDELAY_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_TXDELAY_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_TXDELAY_DEFAULT (_USART_TIMING_TXDELAY_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_TXDELAY_DISABLE (_USART_TIMING_TXDELAY_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMING */
+#define USART_TIMING_TXDELAY_ONE (_USART_TIMING_TXDELAY_ONE << 16) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_TXDELAY_TWO (_USART_TIMING_TXDELAY_TWO << 16) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_TXDELAY_THREE (_USART_TIMING_TXDELAY_THREE << 16) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_TXDELAY_SEVEN (_USART_TIMING_TXDELAY_SEVEN << 16) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP0 (_USART_TIMING_TXDELAY_TCMP0 << 16) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP1 (_USART_TIMING_TXDELAY_TCMP1 << 16) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_TXDELAY_TCMP2 (_USART_TIMING_TXDELAY_TCMP2 << 16) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SHIFT 20 /**< Shift value for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_MASK 0x700000UL /**< Bit mask for USART_CSSETUP */
+#define _USART_TIMING_CSSETUP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSSETUP_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSSETUP_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSSETUP_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSSETUP_DEFAULT (_USART_TIMING_CSSETUP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSSETUP_ZERO (_USART_TIMING_CSSETUP_ZERO << 20) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSSETUP_ONE (_USART_TIMING_CSSETUP_ONE << 20) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSSETUP_TWO (_USART_TIMING_CSSETUP_TWO << 20) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSSETUP_THREE (_USART_TIMING_CSSETUP_THREE << 20) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSSETUP_SEVEN (_USART_TIMING_CSSETUP_SEVEN << 20) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP0 (_USART_TIMING_CSSETUP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP1 (_USART_TIMING_CSSETUP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSSETUP_TCMP2 (_USART_TIMING_CSSETUP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_ICS_SHIFT 24 /**< Shift value for USART_ICS */
+#define _USART_TIMING_ICS_MASK 0x7000000UL /**< Bit mask for USART_ICS */
+#define _USART_TIMING_ICS_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_ICS_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_ICS_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_ICS_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_ICS_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_ICS_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_ICS_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_ICS_DEFAULT (_USART_TIMING_ICS_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_ICS_ZERO (_USART_TIMING_ICS_ZERO << 24) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_ICS_ONE (_USART_TIMING_ICS_ONE << 24) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_ICS_TWO (_USART_TIMING_ICS_TWO << 24) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_ICS_THREE (_USART_TIMING_ICS_THREE << 24) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_ICS_SEVEN (_USART_TIMING_ICS_SEVEN << 24) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_ICS_TCMP0 (_USART_TIMING_ICS_TCMP0 << 24) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP1 (_USART_TIMING_ICS_TCMP1 << 24) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_ICS_TCMP2 (_USART_TIMING_ICS_TCMP2 << 24) /**< Shifted mode TCMP2 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SHIFT 28 /**< Shift value for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_MASK 0x70000000UL /**< Bit mask for USART_CSHOLD */
+#define _USART_TIMING_CSHOLD_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ZERO 0x00000000UL /**< Mode ZERO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_ONE 0x00000001UL /**< Mode ONE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TWO 0x00000002UL /**< Mode TWO for USART_TIMING */
+#define _USART_TIMING_CSHOLD_THREE 0x00000003UL /**< Mode THREE for USART_TIMING */
+#define _USART_TIMING_CSHOLD_SEVEN 0x00000004UL /**< Mode SEVEN for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP0 0x00000005UL /**< Mode TCMP0 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP1 0x00000006UL /**< Mode TCMP1 for USART_TIMING */
+#define _USART_TIMING_CSHOLD_TCMP2 0x00000007UL /**< Mode TCMP2 for USART_TIMING */
+#define USART_TIMING_CSHOLD_DEFAULT (_USART_TIMING_CSHOLD_DEFAULT << 28) /**< Shifted mode DEFAULT for USART_TIMING */
+#define USART_TIMING_CSHOLD_ZERO (_USART_TIMING_CSHOLD_ZERO << 28) /**< Shifted mode ZERO for USART_TIMING */
+#define USART_TIMING_CSHOLD_ONE (_USART_TIMING_CSHOLD_ONE << 28) /**< Shifted mode ONE for USART_TIMING */
+#define USART_TIMING_CSHOLD_TWO (_USART_TIMING_CSHOLD_TWO << 28) /**< Shifted mode TWO for USART_TIMING */
+#define USART_TIMING_CSHOLD_THREE (_USART_TIMING_CSHOLD_THREE << 28) /**< Shifted mode THREE for USART_TIMING */
+#define USART_TIMING_CSHOLD_SEVEN (_USART_TIMING_CSHOLD_SEVEN << 28) /**< Shifted mode SEVEN for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP0 (_USART_TIMING_CSHOLD_TCMP0 << 28) /**< Shifted mode TCMP0 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP1 (_USART_TIMING_CSHOLD_TCMP1 << 28) /**< Shifted mode TCMP1 for USART_TIMING */
+#define USART_TIMING_CSHOLD_TCMP2 (_USART_TIMING_CSHOLD_TCMP2 << 28) /**< Shifted mode TCMP2 for USART_TIMING */
+
+/* Bit fields for USART CTRLX */
+#define _USART_CTRLX_RESETVALUE 0x00000000UL /**< Default value for USART_CTRLX */
+#define _USART_CTRLX_MASK 0x8000808FUL /**< Mask for USART_CTRLX */
+#define USART_CTRLX_DBGHALT (0x1UL << 0) /**< Debug halt */
+#define _USART_CTRLX_DBGHALT_SHIFT 0 /**< Shift value for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_MASK 0x1UL /**< Bit mask for USART_DBGHALT */
+#define _USART_CTRLX_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_DBGHALT_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DEFAULT (_USART_CTRLX_DBGHALT_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_DISABLE (_USART_CTRLX_DBGHALT_DISABLE << 0) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_DBGHALT_ENABLE (_USART_CTRLX_DBGHALT_ENABLE << 0) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV (0x1UL << 1) /**< CTS Pin Inversion */
+#define _USART_CTRLX_CTSINV_SHIFT 1 /**< Shift value for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_MASK 0x2UL /**< Bit mask for USART_CTSINV */
+#define _USART_CTRLX_CTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DEFAULT (_USART_CTRLX_CTSINV_DEFAULT << 1) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSINV_DISABLE (_USART_CTRLX_CTSINV_DISABLE << 1) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSINV_ENABLE (_USART_CTRLX_CTSINV_ENABLE << 1) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN (0x1UL << 2) /**< CTS Function enabled */
+#define _USART_CTRLX_CTSEN_SHIFT 2 /**< Shift value for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_MASK 0x4UL /**< Bit mask for USART_CTSEN */
+#define _USART_CTRLX_CTSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_CTSEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DEFAULT (_USART_CTRLX_CTSEN_DEFAULT << 2) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CTSEN_DISABLE (_USART_CTRLX_CTSEN_DISABLE << 2) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_CTSEN_ENABLE (_USART_CTRLX_CTSEN_ENABLE << 2) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV (0x1UL << 3) /**< RTS Pin Inversion */
+#define _USART_CTRLX_RTSINV_SHIFT 3 /**< Shift value for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_MASK 0x8UL /**< Bit mask for USART_RTSINV */
+#define _USART_CTRLX_RTSINV_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_DISABLE 0x00000000UL /**< Mode DISABLE for USART_CTRLX */
+#define _USART_CTRLX_RTSINV_ENABLE 0x00000001UL /**< Mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DEFAULT (_USART_CTRLX_RTSINV_DEFAULT << 3) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RTSINV_DISABLE (_USART_CTRLX_RTSINV_DISABLE << 3) /**< Shifted mode DISABLE for USART_CTRLX */
+#define USART_CTRLX_RTSINV_ENABLE (_USART_CTRLX_RTSINV_ENABLE << 3) /**< Shifted mode ENABLE for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN (0x1UL << 7) /**< PRS RX Enable */
+#define _USART_CTRLX_RXPRSEN_SHIFT 7 /**< Shift value for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_MASK 0x80UL /**< Bit mask for USART_RXPRSEN */
+#define _USART_CTRLX_RXPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_RXPRSEN_DEFAULT (_USART_CTRLX_RXPRSEN_DEFAULT << 7) /**< Shifted mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN (0x1UL << 15) /**< PRS CLK Enable */
+#define _USART_CTRLX_CLKPRSEN_SHIFT 15 /**< Shift value for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_MASK 0x8000UL /**< Bit mask for USART_CLKPRSEN */
+#define _USART_CTRLX_CLKPRSEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_CTRLX */
+#define USART_CTRLX_CLKPRSEN_DEFAULT (_USART_CTRLX_CLKPRSEN_DEFAULT << 15) /**< Shifted mode DEFAULT for USART_CTRLX */
+
+/* Bit fields for USART TIMECMP0 */
+#define _USART_TIMECMP0_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP0 */
+#define _USART_TIMECMP0_MASK 0x017700FFUL /**< Mask for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP0_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TCMPVAL_DEFAULT (_USART_TIMECMP0_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP0_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DEFAULT (_USART_TIMECMP0_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_DISABLE (_USART_TIMECMP0_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXEOF (_USART_TIMECMP0_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_TXC (_USART_TIMECMP0_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXACT (_USART_TIMECMP0_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTART_RXEOF (_USART_TIMECMP0_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP0_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TCMP0 0x00000000UL /**< Mode TCMP0 for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_DEFAULT (_USART_TIMECMP0_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TCMP0 (_USART_TIMECMP0_TSTOP_TCMP0 << 20) /**< Shifted mode TCMP0 for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_TXST (_USART_TIMECMP0_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACT (_USART_TIMECMP0_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP0 */
+#define USART_TIMECMP0_TSTOP_RXACTN (_USART_TIMECMP0_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP0 */
+#define _USART_TIMECMP0_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP0_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP0 */
+#define _USART_TIMECMP0_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DEFAULT (_USART_TIMECMP0_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_DISABLE (_USART_TIMECMP0_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP0 */
+#define USART_TIMECMP0_RESTARTEN_ENABLE (_USART_TIMECMP0_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP0 */
+
+/* Bit fields for USART TIMECMP1 */
+#define _USART_TIMECMP1_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP1 */
+#define _USART_TIMECMP1_MASK 0x017700FFUL /**< Mask for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP1_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TCMPVAL_DEFAULT (_USART_TIMECMP1_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP1_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DEFAULT (_USART_TIMECMP1_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_DISABLE (_USART_TIMECMP1_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXEOF (_USART_TIMECMP1_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_TXC (_USART_TIMECMP1_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXACT (_USART_TIMECMP1_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTART_RXEOF (_USART_TIMECMP1_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP1_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TCMP1 0x00000000UL /**< Mode TCMP1 for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_DEFAULT (_USART_TIMECMP1_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TCMP1 (_USART_TIMECMP1_TSTOP_TCMP1 << 20) /**< Shifted mode TCMP1 for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_TXST (_USART_TIMECMP1_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACT (_USART_TIMECMP1_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP1 */
+#define USART_TIMECMP1_TSTOP_RXACTN (_USART_TIMECMP1_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP1 */
+#define _USART_TIMECMP1_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP1_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP1 */
+#define _USART_TIMECMP1_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DEFAULT (_USART_TIMECMP1_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_DISABLE (_USART_TIMECMP1_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP1 */
+#define USART_TIMECMP1_RESTARTEN_ENABLE (_USART_TIMECMP1_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP1 */
+
+/* Bit fields for USART TIMECMP2 */
+#define _USART_TIMECMP2_RESETVALUE 0x00000000UL /**< Default value for USART_TIMECMP2 */
+#define _USART_TIMECMP2_MASK 0x017700FFUL /**< Mask for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TCMPVAL_SHIFT 0 /**< Shift value for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_MASK 0xFFUL /**< Bit mask for USART_TCMPVAL */
+#define _USART_TIMECMP2_TCMPVAL_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TCMPVAL_DEFAULT (_USART_TIMECMP2_TCMPVAL_DEFAULT << 0) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_SHIFT 16 /**< Shift value for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_MASK 0x70000UL /**< Bit mask for USART_TSTART */
+#define _USART_TIMECMP2_TSTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXEOF 0x00000001UL /**< Mode TXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_TXC 0x00000002UL /**< Mode TXC for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXACT 0x00000003UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTART_RXEOF 0x00000004UL /**< Mode RXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DEFAULT (_USART_TIMECMP2_TSTART_DEFAULT << 16) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_DISABLE (_USART_TIMECMP2_TSTART_DISABLE << 16) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXEOF (_USART_TIMECMP2_TSTART_TXEOF << 16) /**< Shifted mode TXEOF for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_TXC (_USART_TIMECMP2_TSTART_TXC << 16) /**< Shifted mode TXC for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXACT (_USART_TIMECMP2_TSTART_RXACT << 16) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTART_RXEOF (_USART_TIMECMP2_TSTART_RXEOF << 16) /**< Shifted mode RXEOF for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_SHIFT 20 /**< Shift value for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_MASK 0x700000UL /**< Bit mask for USART_TSTOP */
+#define _USART_TIMECMP2_TSTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TCMP2 0x00000000UL /**< Mode TCMP2 for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_TXST 0x00000001UL /**< Mode TXST for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACT 0x00000002UL /**< Mode RXACT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_TSTOP_RXACTN 0x00000003UL /**< Mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_DEFAULT (_USART_TIMECMP2_TSTOP_DEFAULT << 20) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TCMP2 (_USART_TIMECMP2_TSTOP_TCMP2 << 20) /**< Shifted mode TCMP2 for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_TXST (_USART_TIMECMP2_TSTOP_TXST << 20) /**< Shifted mode TXST for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACT (_USART_TIMECMP2_TSTOP_RXACT << 20) /**< Shifted mode RXACT for USART_TIMECMP2 */
+#define USART_TIMECMP2_TSTOP_RXACTN (_USART_TIMECMP2_TSTOP_RXACTN << 20) /**< Shifted mode RXACTN for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN (0x1UL << 24) /**< Restart Timer on TCMP2 */
+#define _USART_TIMECMP2_RESTARTEN_SHIFT 24 /**< Shift value for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_MASK 0x1000000UL /**< Bit mask for USART_RESTARTEN */
+#define _USART_TIMECMP2_RESTARTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_DISABLE 0x00000000UL /**< Mode DISABLE for USART_TIMECMP2 */
+#define _USART_TIMECMP2_RESTARTEN_ENABLE 0x00000001UL /**< Mode ENABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DEFAULT (_USART_TIMECMP2_RESTARTEN_DEFAULT << 24) /**< Shifted mode DEFAULT for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_DISABLE (_USART_TIMECMP2_RESTARTEN_DISABLE << 24) /**< Shifted mode DISABLE for USART_TIMECMP2 */
+#define USART_TIMECMP2_RESTARTEN_ENABLE (_USART_TIMECMP2_RESTARTEN_ENABLE << 24) /**< Shifted mode ENABLE for USART_TIMECMP2 */
+
+/** @} End of group EFR32ZG23_USART_BitFields */
+/** @} End of group EFR32ZG23_USART */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_USART_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_vdac.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_vdac.h
new file mode 100644
index 000000000..a384e3d68
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_vdac.h
@@ -0,0 +1,759 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 VDAC register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_VDAC_H
+#define EFR32ZG23_VDAC_H
+#define VDAC_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_VDAC VDAC
+ * @{
+ * @brief EFR32ZG23 VDAC Register Declaration.
+ *****************************************************************************/
+
+/** VDAC Register Declaration. */
+typedef struct vdac_typedef{
+ __IM uint32_t IPVERSION; /**< IPVERSION */
+ __IOM uint32_t EN; /**< Module Enable */
+ __IOM uint32_t SWRST; /**< Software Reset Register */
+ __IOM uint32_t CFG; /**< Config Register */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t CH0CFG; /**< Channel 0 Config Register */
+ __IOM uint32_t CH1CFG; /**< Channel 1 Config Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t CH0F; /**< Channel 0 Data Write Fifo */
+ __IOM uint32_t CH1F; /**< Channel 1 Data Write Fifo */
+ __IOM uint32_t OUTCTRL; /**< DAC Output Control */
+ __IOM uint32_t OUTTIMERCFG; /**< DAC Out Timer Config Register */
+ uint32_t RESERVED0[50U]; /**< Reserved for future use */
+ uint32_t RESERVED1[1U]; /**< Reserved for future use */
+ uint32_t RESERVED2[63U]; /**< Reserved for future use */
+ uint32_t RESERVED3[1U]; /**< Reserved for future use */
+ uint32_t RESERVED4[895U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IPVERSION */
+ __IOM uint32_t EN_SET; /**< Module Enable */
+ __IOM uint32_t SWRST_SET; /**< Software Reset Register */
+ __IOM uint32_t CFG_SET; /**< Config Register */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t CH0CFG_SET; /**< Channel 0 Config Register */
+ __IOM uint32_t CH1CFG_SET; /**< Channel 1 Config Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t CH0F_SET; /**< Channel 0 Data Write Fifo */
+ __IOM uint32_t CH1F_SET; /**< Channel 1 Data Write Fifo */
+ __IOM uint32_t OUTCTRL_SET; /**< DAC Output Control */
+ __IOM uint32_t OUTTIMERCFG_SET; /**< DAC Out Timer Config Register */
+ uint32_t RESERVED5[50U]; /**< Reserved for future use */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ uint32_t RESERVED7[63U]; /**< Reserved for future use */
+ uint32_t RESERVED8[1U]; /**< Reserved for future use */
+ uint32_t RESERVED9[895U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IPVERSION */
+ __IOM uint32_t EN_CLR; /**< Module Enable */
+ __IOM uint32_t SWRST_CLR; /**< Software Reset Register */
+ __IOM uint32_t CFG_CLR; /**< Config Register */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t CH0CFG_CLR; /**< Channel 0 Config Register */
+ __IOM uint32_t CH1CFG_CLR; /**< Channel 1 Config Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t CH0F_CLR; /**< Channel 0 Data Write Fifo */
+ __IOM uint32_t CH1F_CLR; /**< Channel 1 Data Write Fifo */
+ __IOM uint32_t OUTCTRL_CLR; /**< DAC Output Control */
+ __IOM uint32_t OUTTIMERCFG_CLR; /**< DAC Out Timer Config Register */
+ uint32_t RESERVED10[50U]; /**< Reserved for future use */
+ uint32_t RESERVED11[1U]; /**< Reserved for future use */
+ uint32_t RESERVED12[63U]; /**< Reserved for future use */
+ uint32_t RESERVED13[1U]; /**< Reserved for future use */
+ uint32_t RESERVED14[895U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IPVERSION */
+ __IOM uint32_t EN_TGL; /**< Module Enable */
+ __IOM uint32_t SWRST_TGL; /**< Software Reset Register */
+ __IOM uint32_t CFG_TGL; /**< Config Register */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t CH0CFG_TGL; /**< Channel 0 Config Register */
+ __IOM uint32_t CH1CFG_TGL; /**< Channel 1 Config Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t CH0F_TGL; /**< Channel 0 Data Write Fifo */
+ __IOM uint32_t CH1F_TGL; /**< Channel 1 Data Write Fifo */
+ __IOM uint32_t OUTCTRL_TGL; /**< DAC Output Control */
+ __IOM uint32_t OUTTIMERCFG_TGL; /**< DAC Out Timer Config Register */
+ uint32_t RESERVED15[50U]; /**< Reserved for future use */
+ uint32_t RESERVED16[1U]; /**< Reserved for future use */
+ uint32_t RESERVED17[63U]; /**< Reserved for future use */
+ uint32_t RESERVED18[1U]; /**< Reserved for future use */
+} VDAC_TypeDef;
+/** @} End of group EFR32ZG23_VDAC */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_VDAC
+ * @{
+ * @defgroup EFR32ZG23_VDAC_BitFields VDAC Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for VDAC IPVERSION */
+#define _VDAC_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for VDAC_IPVERSION */
+#define _VDAC_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for VDAC_IPVERSION */
+#define _VDAC_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for VDAC_IPVERSION */
+#define _VDAC_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for VDAC_IPVERSION */
+#define _VDAC_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for VDAC_IPVERSION */
+#define VDAC_IPVERSION_IPVERSION_DEFAULT (_VDAC_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_IPVERSION */
+
+/* Bit fields for VDAC EN */
+#define _VDAC_EN_RESETVALUE 0x00000000UL /**< Default value for VDAC_EN */
+#define _VDAC_EN_MASK 0x00000003UL /**< Mask for VDAC_EN */
+#define VDAC_EN_EN (0x1UL << 0) /**< VDAC Module Enable */
+#define _VDAC_EN_EN_SHIFT 0 /**< Shift value for VDAC_EN */
+#define _VDAC_EN_EN_MASK 0x1UL /**< Bit mask for VDAC_EN */
+#define _VDAC_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_EN */
+#define _VDAC_EN_EN_DISABLE 0x00000000UL /**< Mode DISABLE for VDAC_EN */
+#define _VDAC_EN_EN_ENABLE 0x00000001UL /**< Mode ENABLE for VDAC_EN */
+#define VDAC_EN_EN_DEFAULT (_VDAC_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_EN */
+#define VDAC_EN_EN_DISABLE (_VDAC_EN_EN_DISABLE << 0) /**< Shifted mode DISABLE for VDAC_EN */
+#define VDAC_EN_EN_ENABLE (_VDAC_EN_EN_ENABLE << 0) /**< Shifted mode ENABLE for VDAC_EN */
+#define VDAC_EN_DISABLING (0x1UL << 1) /**< Disablement busy status */
+#define _VDAC_EN_DISABLING_SHIFT 1 /**< Shift value for VDAC_DISABLING */
+#define _VDAC_EN_DISABLING_MASK 0x2UL /**< Bit mask for VDAC_DISABLING */
+#define _VDAC_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_EN */
+#define VDAC_EN_DISABLING_DEFAULT (_VDAC_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_EN */
+
+/* Bit fields for VDAC SWRST */
+#define _VDAC_SWRST_RESETVALUE 0x00000000UL /**< Default value for VDAC_SWRST */
+#define _VDAC_SWRST_MASK 0x00000003UL /**< Mask for VDAC_SWRST */
+#define VDAC_SWRST_SWRST (0x1UL << 0) /**< Software reset command */
+#define _VDAC_SWRST_SWRST_SHIFT 0 /**< Shift value for VDAC_SWRST */
+#define _VDAC_SWRST_SWRST_MASK 0x1UL /**< Bit mask for VDAC_SWRST */
+#define _VDAC_SWRST_SWRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_SWRST */
+#define VDAC_SWRST_SWRST_DEFAULT (_VDAC_SWRST_SWRST_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_SWRST */
+#define VDAC_SWRST_RESETTING (0x1UL << 1) /**< Software reset busy status */
+#define _VDAC_SWRST_RESETTING_SHIFT 1 /**< Shift value for VDAC_RESETTING */
+#define _VDAC_SWRST_RESETTING_MASK 0x2UL /**< Bit mask for VDAC_RESETTING */
+#define _VDAC_SWRST_RESETTING_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_SWRST */
+#define VDAC_SWRST_RESETTING_DEFAULT (_VDAC_SWRST_RESETTING_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_SWRST */
+
+/* Bit fields for VDAC CFG */
+#define _VDAC_CFG_RESETVALUE 0x20000000UL /**< Default value for VDAC_CFG */
+#define _VDAC_CFG_MASK 0x7F773FBFUL /**< Mask for VDAC_CFG */
+#define VDAC_CFG_DIFF (0x1UL << 0) /**< Differential Mode */
+#define _VDAC_CFG_DIFF_SHIFT 0 /**< Shift value for VDAC_DIFF */
+#define _VDAC_CFG_DIFF_MASK 0x1UL /**< Bit mask for VDAC_DIFF */
+#define _VDAC_CFG_DIFF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_DIFF_SINGLEENDED 0x00000000UL /**< Mode SINGLEENDED for VDAC_CFG */
+#define _VDAC_CFG_DIFF_DIFFERENTIAL 0x00000001UL /**< Mode DIFFERENTIAL for VDAC_CFG */
+#define VDAC_CFG_DIFF_DEFAULT (_VDAC_CFG_DIFF_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_DIFF_SINGLEENDED (_VDAC_CFG_DIFF_SINGLEENDED << 0) /**< Shifted mode SINGLEENDED for VDAC_CFG */
+#define VDAC_CFG_DIFF_DIFFERENTIAL (_VDAC_CFG_DIFF_DIFFERENTIAL << 0) /**< Shifted mode DIFFERENTIAL for VDAC_CFG */
+#define VDAC_CFG_SINEMODE (0x1UL << 1) /**< Sine Mode */
+#define _VDAC_CFG_SINEMODE_SHIFT 1 /**< Shift value for VDAC_SINEMODE */
+#define _VDAC_CFG_SINEMODE_MASK 0x2UL /**< Bit mask for VDAC_SINEMODE */
+#define _VDAC_CFG_SINEMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_SINEMODE_DISSINEMODE 0x00000000UL /**< Mode DISSINEMODE for VDAC_CFG */
+#define _VDAC_CFG_SINEMODE_ENSINEMODE 0x00000001UL /**< Mode ENSINEMODE for VDAC_CFG */
+#define VDAC_CFG_SINEMODE_DEFAULT (_VDAC_CFG_SINEMODE_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_SINEMODE_DISSINEMODE (_VDAC_CFG_SINEMODE_DISSINEMODE << 1) /**< Shifted mode DISSINEMODE for VDAC_CFG */
+#define VDAC_CFG_SINEMODE_ENSINEMODE (_VDAC_CFG_SINEMODE_ENSINEMODE << 1) /**< Shifted mode ENSINEMODE for VDAC_CFG */
+#define VDAC_CFG_SINERESET (0x1UL << 2) /**< Sine Wave Reset When inactive */
+#define _VDAC_CFG_SINERESET_SHIFT 2 /**< Shift value for VDAC_SINERESET */
+#define _VDAC_CFG_SINERESET_MASK 0x4UL /**< Bit mask for VDAC_SINERESET */
+#define _VDAC_CFG_SINERESET_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_SINERESET_DEFAULT (_VDAC_CFG_SINERESET_DEFAULT << 2) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_CH0PRESCRST (0x1UL << 3) /**< Channel 0 Start Reset Prescaler */
+#define _VDAC_CFG_CH0PRESCRST_SHIFT 3 /**< Shift value for VDAC_CH0PRESCRST */
+#define _VDAC_CFG_CH0PRESCRST_MASK 0x8UL /**< Bit mask for VDAC_CH0PRESCRST */
+#define _VDAC_CFG_CH0PRESCRST_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_CH0PRESCRST_NORESETPRESC 0x00000000UL /**< Mode NORESETPRESC for VDAC_CFG */
+#define _VDAC_CFG_CH0PRESCRST_RESETPRESC 0x00000001UL /**< Mode RESETPRESC for VDAC_CFG */
+#define VDAC_CFG_CH0PRESCRST_DEFAULT (_VDAC_CFG_CH0PRESCRST_DEFAULT << 3) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_CH0PRESCRST_NORESETPRESC (_VDAC_CFG_CH0PRESCRST_NORESETPRESC << 3) /**< Shifted mode NORESETPRESC for VDAC_CFG */
+#define VDAC_CFG_CH0PRESCRST_RESETPRESC (_VDAC_CFG_CH0PRESCRST_RESETPRESC << 3) /**< Shifted mode RESETPRESC for VDAC_CFG */
+#define _VDAC_CFG_REFRSEL_SHIFT 4 /**< Shift value for VDAC_REFRSEL */
+#define _VDAC_CFG_REFRSEL_MASK 0x30UL /**< Bit mask for VDAC_REFRSEL */
+#define _VDAC_CFG_REFRSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_REFRSEL_V125 0x00000000UL /**< Mode V125 for VDAC_CFG */
+#define _VDAC_CFG_REFRSEL_V25 0x00000001UL /**< Mode V25 for VDAC_CFG */
+#define _VDAC_CFG_REFRSEL_VDD 0x00000002UL /**< Mode VDD for VDAC_CFG */
+#define _VDAC_CFG_REFRSEL_EXT 0x00000003UL /**< Mode EXT for VDAC_CFG */
+#define VDAC_CFG_REFRSEL_DEFAULT (_VDAC_CFG_REFRSEL_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_REFRSEL_V125 (_VDAC_CFG_REFRSEL_V125 << 4) /**< Shifted mode V125 for VDAC_CFG */
+#define VDAC_CFG_REFRSEL_V25 (_VDAC_CFG_REFRSEL_V25 << 4) /**< Shifted mode V25 for VDAC_CFG */
+#define VDAC_CFG_REFRSEL_VDD (_VDAC_CFG_REFRSEL_VDD << 4) /**< Shifted mode VDD for VDAC_CFG */
+#define VDAC_CFG_REFRSEL_EXT (_VDAC_CFG_REFRSEL_EXT << 4) /**< Shifted mode EXT for VDAC_CFG */
+#define _VDAC_CFG_PRESC_SHIFT 7 /**< Shift value for VDAC_PRESC */
+#define _VDAC_CFG_PRESC_MASK 0x3F80UL /**< Bit mask for VDAC_PRESC */
+#define _VDAC_CFG_PRESC_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_PRESC_DEFAULT (_VDAC_CFG_PRESC_DEFAULT << 7) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_SHIFT 16 /**< Shift value for VDAC_TIMEROVRFLOWPERIOD */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_MASK 0x70000UL /**< Bit mask for VDAC_TIMEROVRFLOWPERIOD */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES2 0x00000000UL /**< Mode CYCLES2 for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES4 0x00000001UL /**< Mode CYCLES4 for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES8 0x00000002UL /**< Mode CYCLES8 for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES16 0x00000003UL /**< Mode CYCLES16 for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES32 0x00000004UL /**< Mode CYCLES32 for VDAC_CFG */
+#define _VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES64 0x00000005UL /**< Mode CYCLES64 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_DEFAULT (_VDAC_CFG_TIMEROVRFLOWPERIOD_DEFAULT << 16) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES2 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES2 << 16) /**< Shifted mode CYCLES2 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES4 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES4 << 16) /**< Shifted mode CYCLES4 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES8 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES8 << 16) /**< Shifted mode CYCLES8 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES16 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES16 << 16) /**< Shifted mode CYCLES16 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES32 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES32 << 16) /**< Shifted mode CYCLES32 for VDAC_CFG */
+#define VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES64 (_VDAC_CFG_TIMEROVRFLOWPERIOD_CYCLES64 << 16) /**< Shifted mode CYCLES64 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_SHIFT 20 /**< Shift value for VDAC_REFRESHPERIOD */
+#define _VDAC_CFG_REFRESHPERIOD_MASK 0x700000UL /**< Bit mask for VDAC_REFRESHPERIOD */
+#define _VDAC_CFG_REFRESHPERIOD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES2 0x00000000UL /**< Mode CYCLES2 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES4 0x00000001UL /**< Mode CYCLES4 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES8 0x00000002UL /**< Mode CYCLES8 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES16 0x00000003UL /**< Mode CYCLES16 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES32 0x00000004UL /**< Mode CYCLES32 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES64 0x00000005UL /**< Mode CYCLES64 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES128 0x00000006UL /**< Mode CYCLES128 for VDAC_CFG */
+#define _VDAC_CFG_REFRESHPERIOD_CYCLES256 0x00000007UL /**< Mode CYCLES256 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_DEFAULT (_VDAC_CFG_REFRESHPERIOD_DEFAULT << 20) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES2 (_VDAC_CFG_REFRESHPERIOD_CYCLES2 << 20) /**< Shifted mode CYCLES2 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES4 (_VDAC_CFG_REFRESHPERIOD_CYCLES4 << 20) /**< Shifted mode CYCLES4 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES8 (_VDAC_CFG_REFRESHPERIOD_CYCLES8 << 20) /**< Shifted mode CYCLES8 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES16 (_VDAC_CFG_REFRESHPERIOD_CYCLES16 << 20) /**< Shifted mode CYCLES16 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES32 (_VDAC_CFG_REFRESHPERIOD_CYCLES32 << 20) /**< Shifted mode CYCLES32 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES64 (_VDAC_CFG_REFRESHPERIOD_CYCLES64 << 20) /**< Shifted mode CYCLES64 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES128 (_VDAC_CFG_REFRESHPERIOD_CYCLES128 << 20) /**< Shifted mode CYCLES128 for VDAC_CFG */
+#define VDAC_CFG_REFRESHPERIOD_CYCLES256 (_VDAC_CFG_REFRESHPERIOD_CYCLES256 << 20) /**< Shifted mode CYCLES256 for VDAC_CFG */
+#define VDAC_CFG_BIASKEEPWARM (0x1UL << 24) /**< Bias Keepwarm Mode Enable */
+#define _VDAC_CFG_BIASKEEPWARM_SHIFT 24 /**< Shift value for VDAC_BIASKEEPWARM */
+#define _VDAC_CFG_BIASKEEPWARM_MASK 0x1000000UL /**< Bit mask for VDAC_BIASKEEPWARM */
+#define _VDAC_CFG_BIASKEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_BIASKEEPWARM_DEFAULT (_VDAC_CFG_BIASKEEPWARM_DEFAULT << 24) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_DMAWU (0x1UL << 25) /**< VDAC DMA Wakeup */
+#define _VDAC_CFG_DMAWU_SHIFT 25 /**< Shift value for VDAC_DMAWU */
+#define _VDAC_CFG_DMAWU_MASK 0x2000000UL /**< Bit mask for VDAC_DMAWU */
+#define _VDAC_CFG_DMAWU_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_DMAWU_DEFAULT (_VDAC_CFG_DMAWU_DEFAULT << 25) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_ONDEMANDCLK (0x1UL << 26) /**< Always allow clk_dac */
+#define _VDAC_CFG_ONDEMANDCLK_SHIFT 26 /**< Shift value for VDAC_ONDEMANDCLK */
+#define _VDAC_CFG_ONDEMANDCLK_MASK 0x4000000UL /**< Bit mask for VDAC_ONDEMANDCLK */
+#define _VDAC_CFG_ONDEMANDCLK_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_ONDEMANDCLK_DEFAULT (_VDAC_CFG_ONDEMANDCLK_DEFAULT << 26) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_DBGHALT (0x1UL << 27) /**< Debug Halt */
+#define _VDAC_CFG_DBGHALT_SHIFT 27 /**< Shift value for VDAC_DBGHALT */
+#define _VDAC_CFG_DBGHALT_MASK 0x8000000UL /**< Bit mask for VDAC_DBGHALT */
+#define _VDAC_CFG_DBGHALT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CFG */
+#define _VDAC_CFG_DBGHALT_NORMAL 0x00000000UL /**< Mode NORMAL for VDAC_CFG */
+#define _VDAC_CFG_DBGHALT_HALT 0x00000001UL /**< Mode HALT for VDAC_CFG */
+#define VDAC_CFG_DBGHALT_DEFAULT (_VDAC_CFG_DBGHALT_DEFAULT << 27) /**< Shifted mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_DBGHALT_NORMAL (_VDAC_CFG_DBGHALT_NORMAL << 27) /**< Shifted mode NORMAL for VDAC_CFG */
+#define VDAC_CFG_DBGHALT_HALT (_VDAC_CFG_DBGHALT_HALT << 27) /**< Shifted mode HALT for VDAC_CFG */
+#define _VDAC_CFG_WARMUPTIME_SHIFT 28 /**< Shift value for VDAC_WARMUPTIME */
+#define _VDAC_CFG_WARMUPTIME_MASK 0x70000000UL /**< Bit mask for VDAC_WARMUPTIME */
+#define _VDAC_CFG_WARMUPTIME_DEFAULT 0x00000002UL /**< Mode DEFAULT for VDAC_CFG */
+#define VDAC_CFG_WARMUPTIME_DEFAULT (_VDAC_CFG_WARMUPTIME_DEFAULT << 28) /**< Shifted mode DEFAULT for VDAC_CFG */
+
+/* Bit fields for VDAC STATUS */
+#define _VDAC_STATUS_RESETVALUE 0x00000000UL /**< Default value for VDAC_STATUS */
+#define _VDAC_STATUS_MASK 0xFCDBF333UL /**< Mask for VDAC_STATUS */
+#define VDAC_STATUS_CH0ENS (0x1UL << 0) /**< Channel 0 Enabled Status */
+#define _VDAC_STATUS_CH0ENS_SHIFT 0 /**< Shift value for VDAC_CH0ENS */
+#define _VDAC_STATUS_CH0ENS_MASK 0x1UL /**< Bit mask for VDAC_CH0ENS */
+#define _VDAC_STATUS_CH0ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0ENS_DEFAULT (_VDAC_STATUS_CH0ENS_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1ENS (0x1UL << 1) /**< Channel 1 Enabled Status */
+#define _VDAC_STATUS_CH1ENS_SHIFT 1 /**< Shift value for VDAC_CH1ENS */
+#define _VDAC_STATUS_CH1ENS_MASK 0x2UL /**< Bit mask for VDAC_CH1ENS */
+#define _VDAC_STATUS_CH1ENS_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1ENS_DEFAULT (_VDAC_STATUS_CH1ENS_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0WARM (0x1UL << 4) /**< Channel 0 Warmed Status */
+#define _VDAC_STATUS_CH0WARM_SHIFT 4 /**< Shift value for VDAC_CH0WARM */
+#define _VDAC_STATUS_CH0WARM_MASK 0x10UL /**< Bit mask for VDAC_CH0WARM */
+#define _VDAC_STATUS_CH0WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0WARM_DEFAULT (_VDAC_STATUS_CH0WARM_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1WARM (0x1UL << 5) /**< Channel 1 Warmed Status */
+#define _VDAC_STATUS_CH1WARM_SHIFT 5 /**< Shift value for VDAC_CH1WARM */
+#define _VDAC_STATUS_CH1WARM_MASK 0x20UL /**< Bit mask for VDAC_CH1WARM */
+#define _VDAC_STATUS_CH1WARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1WARM_DEFAULT (_VDAC_STATUS_CH1WARM_DEFAULT << 5) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOFULL (0x1UL << 8) /**< Channel 0 FIFO Full Status */
+#define _VDAC_STATUS_CH0FIFOFULL_SHIFT 8 /**< Shift value for VDAC_CH0FIFOFULL */
+#define _VDAC_STATUS_CH0FIFOFULL_MASK 0x100UL /**< Bit mask for VDAC_CH0FIFOFULL */
+#define _VDAC_STATUS_CH0FIFOFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOFULL_DEFAULT (_VDAC_STATUS_CH0FIFOFULL_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOFULL (0x1UL << 9) /**< Channel 1 FIFO Full Status */
+#define _VDAC_STATUS_CH1FIFOFULL_SHIFT 9 /**< Shift value for VDAC_CH1FIFOFULL */
+#define _VDAC_STATUS_CH1FIFOFULL_MASK 0x200UL /**< Bit mask for VDAC_CH1FIFOFULL */
+#define _VDAC_STATUS_CH1FIFOFULL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOFULL_DEFAULT (_VDAC_STATUS_CH1FIFOFULL_DEFAULT << 9) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define _VDAC_STATUS_CH0FIFOCNT_SHIFT 12 /**< Shift value for VDAC_CH0FIFOCNT */
+#define _VDAC_STATUS_CH0FIFOCNT_MASK 0x7000UL /**< Bit mask for VDAC_CH0FIFOCNT */
+#define _VDAC_STATUS_CH0FIFOCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOCNT_DEFAULT (_VDAC_STATUS_CH0FIFOCNT_DEFAULT << 12) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define _VDAC_STATUS_CH1FIFOCNT_SHIFT 15 /**< Shift value for VDAC_CH1FIFOCNT */
+#define _VDAC_STATUS_CH1FIFOCNT_MASK 0x38000UL /**< Bit mask for VDAC_CH1FIFOCNT */
+#define _VDAC_STATUS_CH1FIFOCNT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOCNT_DEFAULT (_VDAC_STATUS_CH1FIFOCNT_DEFAULT << 15) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0CURRENTSTATE (0x1UL << 19) /**< Channel 0 Current Status */
+#define _VDAC_STATUS_CH0CURRENTSTATE_SHIFT 19 /**< Shift value for VDAC_CH0CURRENTSTATE */
+#define _VDAC_STATUS_CH0CURRENTSTATE_MASK 0x80000UL /**< Bit mask for VDAC_CH0CURRENTSTATE */
+#define _VDAC_STATUS_CH0CURRENTSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0CURRENTSTATE_DEFAULT (_VDAC_STATUS_CH0CURRENTSTATE_DEFAULT << 19) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1CURRENTSTATE (0x1UL << 20) /**< Channel 1 Current Status */
+#define _VDAC_STATUS_CH1CURRENTSTATE_SHIFT 20 /**< Shift value for VDAC_CH1CURRENTSTATE */
+#define _VDAC_STATUS_CH1CURRENTSTATE_MASK 0x100000UL /**< Bit mask for VDAC_CH1CURRENTSTATE */
+#define _VDAC_STATUS_CH1CURRENTSTATE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1CURRENTSTATE_DEFAULT (_VDAC_STATUS_CH1CURRENTSTATE_DEFAULT << 20) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOEMPTY (0x1UL << 22) /**< Channel 0 FIFO Empty Status */
+#define _VDAC_STATUS_CH0FIFOEMPTY_SHIFT 22 /**< Shift value for VDAC_CH0FIFOEMPTY */
+#define _VDAC_STATUS_CH0FIFOEMPTY_MASK 0x400000UL /**< Bit mask for VDAC_CH0FIFOEMPTY */
+#define _VDAC_STATUS_CH0FIFOEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOEMPTY_DEFAULT (_VDAC_STATUS_CH0FIFOEMPTY_DEFAULT << 22) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOEMPTY (0x1UL << 23) /**< Channel 1 FIFO Empty Status */
+#define _VDAC_STATUS_CH1FIFOEMPTY_SHIFT 23 /**< Shift value for VDAC_CH1FIFOEMPTY */
+#define _VDAC_STATUS_CH1FIFOEMPTY_MASK 0x800000UL /**< Bit mask for VDAC_CH1FIFOEMPTY */
+#define _VDAC_STATUS_CH1FIFOEMPTY_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOEMPTY_DEFAULT (_VDAC_STATUS_CH1FIFOEMPTY_DEFAULT << 23) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOFLBUSY (0x1UL << 26) /**< CH0 FIFO Flush Sync Busy */
+#define _VDAC_STATUS_CH0FIFOFLBUSY_SHIFT 26 /**< Shift value for VDAC_CH0FIFOFLBUSY */
+#define _VDAC_STATUS_CH0FIFOFLBUSY_MASK 0x4000000UL /**< Bit mask for VDAC_CH0FIFOFLBUSY */
+#define _VDAC_STATUS_CH0FIFOFLBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH0FIFOFLBUSY_DEFAULT (_VDAC_STATUS_CH0FIFOFLBUSY_DEFAULT << 26) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOFLBUSY (0x1UL << 27) /**< CH1 FIFO Flush Sync Busy */
+#define _VDAC_STATUS_CH1FIFOFLBUSY_SHIFT 27 /**< Shift value for VDAC_CH1FIFOFLBUSY */
+#define _VDAC_STATUS_CH1FIFOFLBUSY_MASK 0x8000000UL /**< Bit mask for VDAC_CH1FIFOFLBUSY */
+#define _VDAC_STATUS_CH1FIFOFLBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_CH1FIFOFLBUSY_DEFAULT (_VDAC_STATUS_CH1FIFOFLBUSY_DEFAULT << 27) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_ABUSINPUTCONFLICT (0x1UL << 28) /**< ABUS Input Conflict Status */
+#define _VDAC_STATUS_ABUSINPUTCONFLICT_SHIFT 28 /**< Shift value for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_STATUS_ABUSINPUTCONFLICT_MASK 0x10000000UL /**< Bit mask for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_STATUS_ABUSINPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_ABUSINPUTCONFLICT_DEFAULT (_VDAC_STATUS_ABUSINPUTCONFLICT_DEFAULT << 28) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_SINEACTIVE (0x1UL << 29) /**< Sine Wave Output Status on Channel */
+#define _VDAC_STATUS_SINEACTIVE_SHIFT 29 /**< Shift value for VDAC_SINEACTIVE */
+#define _VDAC_STATUS_SINEACTIVE_MASK 0x20000000UL /**< Bit mask for VDAC_SINEACTIVE */
+#define _VDAC_STATUS_SINEACTIVE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_SINEACTIVE_DEFAULT (_VDAC_STATUS_SINEACTIVE_DEFAULT << 29) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_ABUSALLOCERR (0x1UL << 30) /**< ABUS Allocation Error Status */
+#define _VDAC_STATUS_ABUSALLOCERR_SHIFT 30 /**< Shift value for VDAC_ABUSALLOCERR */
+#define _VDAC_STATUS_ABUSALLOCERR_MASK 0x40000000UL /**< Bit mask for VDAC_ABUSALLOCERR */
+#define _VDAC_STATUS_ABUSALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_ABUSALLOCERR_DEFAULT (_VDAC_STATUS_ABUSALLOCERR_DEFAULT << 30) /**< Shifted mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_SYNCBUSY (0x1UL << 31) /**< Sync Busy Combined */
+#define _VDAC_STATUS_SYNCBUSY_SHIFT 31 /**< Shift value for VDAC_SYNCBUSY */
+#define _VDAC_STATUS_SYNCBUSY_MASK 0x80000000UL /**< Bit mask for VDAC_SYNCBUSY */
+#define _VDAC_STATUS_SYNCBUSY_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_STATUS */
+#define VDAC_STATUS_SYNCBUSY_DEFAULT (_VDAC_STATUS_SYNCBUSY_DEFAULT << 31) /**< Shifted mode DEFAULT for VDAC_STATUS */
+
+/* Bit fields for VDAC CH0CFG */
+#define _VDAC_CH0CFG_RESETVALUE 0x00000010UL /**< Default value for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_MASK 0x00015B75UL /**< Mask for VDAC_CH0CFG */
+#define VDAC_CH0CFG_CONVMODE (0x1UL << 0) /**< Channel 0 Conversion Mode */
+#define _VDAC_CH0CFG_CONVMODE_SHIFT 0 /**< Shift value for VDAC_CONVMODE */
+#define _VDAC_CH0CFG_CONVMODE_MASK 0x1UL /**< Bit mask for VDAC_CONVMODE */
+#define _VDAC_CH0CFG_CONVMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_CONVMODE_CONTINUOUS 0x00000000UL /**< Mode CONTINUOUS for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_CONVMODE_SAMPLEOFF 0x00000001UL /**< Mode SAMPLEOFF for VDAC_CH0CFG */
+#define VDAC_CH0CFG_CONVMODE_DEFAULT (_VDAC_CH0CFG_CONVMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_CONVMODE_CONTINUOUS (_VDAC_CH0CFG_CONVMODE_CONTINUOUS << 0) /**< Shifted mode CONTINUOUS for VDAC_CH0CFG */
+#define VDAC_CH0CFG_CONVMODE_SAMPLEOFF (_VDAC_CH0CFG_CONVMODE_SAMPLEOFF << 0) /**< Shifted mode SAMPLEOFF for VDAC_CH0CFG */
+#define VDAC_CH0CFG_POWERMODE (0x1UL << 2) /**< Channel 0 Power Mode */
+#define _VDAC_CH0CFG_POWERMODE_SHIFT 2 /**< Shift value for VDAC_POWERMODE */
+#define _VDAC_CH0CFG_POWERMODE_MASK 0x4UL /**< Bit mask for VDAC_POWERMODE */
+#define _VDAC_CH0CFG_POWERMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_POWERMODE_HIGHPOWER 0x00000000UL /**< Mode HIGHPOWER for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_POWERMODE_LOWPOWER 0x00000001UL /**< Mode LOWPOWER for VDAC_CH0CFG */
+#define VDAC_CH0CFG_POWERMODE_DEFAULT (_VDAC_CH0CFG_POWERMODE_DEFAULT << 2) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_POWERMODE_HIGHPOWER (_VDAC_CH0CFG_POWERMODE_HIGHPOWER << 2) /**< Shifted mode HIGHPOWER for VDAC_CH0CFG */
+#define VDAC_CH0CFG_POWERMODE_LOWPOWER (_VDAC_CH0CFG_POWERMODE_LOWPOWER << 2) /**< Shifted mode LOWPOWER for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_SHIFT 4 /**< Shift value for VDAC_TRIGMODE */
+#define _VDAC_CH0CFG_TRIGMODE_MASK 0x70UL /**< Bit mask for VDAC_TRIGMODE */
+#define _VDAC_CH0CFG_TRIGMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_NONE 0x00000000UL /**< Mode NONE for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_SW 0x00000001UL /**< Mode SW for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_SYNCPRS 0x00000002UL /**< Mode SYNCPRS for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_LESENSE 0x00000003UL /**< Mode LESENSE for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_INTERNALTIMER 0x00000004UL /**< Mode INTERNALTIMER for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_TRIGMODE_ASYNCPRS 0x00000005UL /**< Mode ASYNCPRS for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_DEFAULT (_VDAC_CH0CFG_TRIGMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_NONE (_VDAC_CH0CFG_TRIGMODE_NONE << 4) /**< Shifted mode NONE for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_SW (_VDAC_CH0CFG_TRIGMODE_SW << 4) /**< Shifted mode SW for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_SYNCPRS (_VDAC_CH0CFG_TRIGMODE_SYNCPRS << 4) /**< Shifted mode SYNCPRS for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_LESENSE (_VDAC_CH0CFG_TRIGMODE_LESENSE << 4) /**< Shifted mode LESENSE for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_INTERNALTIMER (_VDAC_CH0CFG_TRIGMODE_INTERNALTIMER << 4) /**< Shifted mode INTERNALTIMER for VDAC_CH0CFG */
+#define VDAC_CH0CFG_TRIGMODE_ASYNCPRS (_VDAC_CH0CFG_TRIGMODE_ASYNCPRS << 4) /**< Shifted mode ASYNCPRS for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_REFRESHSOURCE_SHIFT 8 /**< Shift value for VDAC_REFRESHSOURCE */
+#define _VDAC_CH0CFG_REFRESHSOURCE_MASK 0x300UL /**< Bit mask for VDAC_REFRESHSOURCE */
+#define _VDAC_CH0CFG_REFRESHSOURCE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_REFRESHSOURCE_NONE 0x00000000UL /**< Mode NONE for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_REFRESHSOURCE_REFRESHTIMER 0x00000001UL /**< Mode REFRESHTIMER for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_REFRESHSOURCE_SYNCPRS 0x00000002UL /**< Mode SYNCPRS for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_REFRESHSOURCE_ASYNCPRS 0x00000003UL /**< Mode ASYNCPRS for VDAC_CH0CFG */
+#define VDAC_CH0CFG_REFRESHSOURCE_DEFAULT (_VDAC_CH0CFG_REFRESHSOURCE_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_REFRESHSOURCE_NONE (_VDAC_CH0CFG_REFRESHSOURCE_NONE << 8) /**< Shifted mode NONE for VDAC_CH0CFG */
+#define VDAC_CH0CFG_REFRESHSOURCE_REFRESHTIMER (_VDAC_CH0CFG_REFRESHSOURCE_REFRESHTIMER << 8) /**< Shifted mode REFRESHTIMER for VDAC_CH0CFG */
+#define VDAC_CH0CFG_REFRESHSOURCE_SYNCPRS (_VDAC_CH0CFG_REFRESHSOURCE_SYNCPRS << 8) /**< Shifted mode SYNCPRS for VDAC_CH0CFG */
+#define VDAC_CH0CFG_REFRESHSOURCE_ASYNCPRS (_VDAC_CH0CFG_REFRESHSOURCE_ASYNCPRS << 8) /**< Shifted mode ASYNCPRS for VDAC_CH0CFG */
+#define _VDAC_CH0CFG_FIFODVL_SHIFT 11 /**< Shift value for VDAC_FIFODVL */
+#define _VDAC_CH0CFG_FIFODVL_MASK 0x1800UL /**< Bit mask for VDAC_FIFODVL */
+#define _VDAC_CH0CFG_FIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_FIFODVL_DEFAULT (_VDAC_CH0CFG_FIFODVL_DEFAULT << 11) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_HIGHCAPLOADEN (0x1UL << 14) /**< Channel 0 High Cap Load Mode Enable */
+#define _VDAC_CH0CFG_HIGHCAPLOADEN_SHIFT 14 /**< Shift value for VDAC_HIGHCAPLOADEN */
+#define _VDAC_CH0CFG_HIGHCAPLOADEN_MASK 0x4000UL /**< Bit mask for VDAC_HIGHCAPLOADEN */
+#define _VDAC_CH0CFG_HIGHCAPLOADEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_HIGHCAPLOADEN_DEFAULT (_VDAC_CH0CFG_HIGHCAPLOADEN_DEFAULT << 14) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_KEEPWARM (0x1UL << 16) /**< Channel 0 Keepwarm Mode Enable */
+#define _VDAC_CH0CFG_KEEPWARM_SHIFT 16 /**< Shift value for VDAC_KEEPWARM */
+#define _VDAC_CH0CFG_KEEPWARM_MASK 0x10000UL /**< Bit mask for VDAC_KEEPWARM */
+#define _VDAC_CH0CFG_KEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0CFG */
+#define VDAC_CH0CFG_KEEPWARM_DEFAULT (_VDAC_CH0CFG_KEEPWARM_DEFAULT << 16) /**< Shifted mode DEFAULT for VDAC_CH0CFG */
+
+/* Bit fields for VDAC CH1CFG */
+#define _VDAC_CH1CFG_RESETVALUE 0x00000010UL /**< Default value for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_MASK 0x00015B75UL /**< Mask for VDAC_CH1CFG */
+#define VDAC_CH1CFG_CONVMODE (0x1UL << 0) /**< Channel 1 Conversion Mode */
+#define _VDAC_CH1CFG_CONVMODE_SHIFT 0 /**< Shift value for VDAC_CONVMODE */
+#define _VDAC_CH1CFG_CONVMODE_MASK 0x1UL /**< Bit mask for VDAC_CONVMODE */
+#define _VDAC_CH1CFG_CONVMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_CONVMODE_CONTINUOUS 0x00000000UL /**< Mode CONTINUOUS for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_CONVMODE_SAMPLEOFF 0x00000001UL /**< Mode SAMPLEOFF for VDAC_CH1CFG */
+#define VDAC_CH1CFG_CONVMODE_DEFAULT (_VDAC_CH1CFG_CONVMODE_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_CONVMODE_CONTINUOUS (_VDAC_CH1CFG_CONVMODE_CONTINUOUS << 0) /**< Shifted mode CONTINUOUS for VDAC_CH1CFG */
+#define VDAC_CH1CFG_CONVMODE_SAMPLEOFF (_VDAC_CH1CFG_CONVMODE_SAMPLEOFF << 0) /**< Shifted mode SAMPLEOFF for VDAC_CH1CFG */
+#define VDAC_CH1CFG_POWERMODE (0x1UL << 2) /**< Channel 1 Power Mode */
+#define _VDAC_CH1CFG_POWERMODE_SHIFT 2 /**< Shift value for VDAC_POWERMODE */
+#define _VDAC_CH1CFG_POWERMODE_MASK 0x4UL /**< Bit mask for VDAC_POWERMODE */
+#define _VDAC_CH1CFG_POWERMODE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_POWERMODE_HIGHPOWER 0x00000000UL /**< Mode HIGHPOWER for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_POWERMODE_LOWPOWER 0x00000001UL /**< Mode LOWPOWER for VDAC_CH1CFG */
+#define VDAC_CH1CFG_POWERMODE_DEFAULT (_VDAC_CH1CFG_POWERMODE_DEFAULT << 2) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_POWERMODE_HIGHPOWER (_VDAC_CH1CFG_POWERMODE_HIGHPOWER << 2) /**< Shifted mode HIGHPOWER for VDAC_CH1CFG */
+#define VDAC_CH1CFG_POWERMODE_LOWPOWER (_VDAC_CH1CFG_POWERMODE_LOWPOWER << 2) /**< Shifted mode LOWPOWER for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_SHIFT 4 /**< Shift value for VDAC_TRIGMODE */
+#define _VDAC_CH1CFG_TRIGMODE_MASK 0x70UL /**< Bit mask for VDAC_TRIGMODE */
+#define _VDAC_CH1CFG_TRIGMODE_DEFAULT 0x00000001UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_NONE 0x00000000UL /**< Mode NONE for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_SW 0x00000001UL /**< Mode SW for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_SYNCPRS 0x00000002UL /**< Mode SYNCPRS for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_INTERNALTIMER 0x00000004UL /**< Mode INTERNALTIMER for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_TRIGMODE_ASYNCPRS 0x00000005UL /**< Mode ASYNCPRS for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_DEFAULT (_VDAC_CH1CFG_TRIGMODE_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_NONE (_VDAC_CH1CFG_TRIGMODE_NONE << 4) /**< Shifted mode NONE for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_SW (_VDAC_CH1CFG_TRIGMODE_SW << 4) /**< Shifted mode SW for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_SYNCPRS (_VDAC_CH1CFG_TRIGMODE_SYNCPRS << 4) /**< Shifted mode SYNCPRS for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_INTERNALTIMER (_VDAC_CH1CFG_TRIGMODE_INTERNALTIMER << 4) /**< Shifted mode INTERNALTIMER for VDAC_CH1CFG */
+#define VDAC_CH1CFG_TRIGMODE_ASYNCPRS (_VDAC_CH1CFG_TRIGMODE_ASYNCPRS << 4) /**< Shifted mode ASYNCPRS for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_REFRESHSOURCE_SHIFT 8 /**< Shift value for VDAC_REFRESHSOURCE */
+#define _VDAC_CH1CFG_REFRESHSOURCE_MASK 0x300UL /**< Bit mask for VDAC_REFRESHSOURCE */
+#define _VDAC_CH1CFG_REFRESHSOURCE_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_REFRESHSOURCE_NONE 0x00000000UL /**< Mode NONE for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_REFRESHSOURCE_REFRESHTIMER 0x00000001UL /**< Mode REFRESHTIMER for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_REFRESHSOURCE_SYNCPRS 0x00000002UL /**< Mode SYNCPRS for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_REFRESHSOURCE_ASYNCPRS 0x00000003UL /**< Mode ASYNCPRS for VDAC_CH1CFG */
+#define VDAC_CH1CFG_REFRESHSOURCE_DEFAULT (_VDAC_CH1CFG_REFRESHSOURCE_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_REFRESHSOURCE_NONE (_VDAC_CH1CFG_REFRESHSOURCE_NONE << 8) /**< Shifted mode NONE for VDAC_CH1CFG */
+#define VDAC_CH1CFG_REFRESHSOURCE_REFRESHTIMER (_VDAC_CH1CFG_REFRESHSOURCE_REFRESHTIMER << 8) /**< Shifted mode REFRESHTIMER for VDAC_CH1CFG */
+#define VDAC_CH1CFG_REFRESHSOURCE_SYNCPRS (_VDAC_CH1CFG_REFRESHSOURCE_SYNCPRS << 8) /**< Shifted mode SYNCPRS for VDAC_CH1CFG */
+#define VDAC_CH1CFG_REFRESHSOURCE_ASYNCPRS (_VDAC_CH1CFG_REFRESHSOURCE_ASYNCPRS << 8) /**< Shifted mode ASYNCPRS for VDAC_CH1CFG */
+#define _VDAC_CH1CFG_FIFODVL_SHIFT 11 /**< Shift value for VDAC_FIFODVL */
+#define _VDAC_CH1CFG_FIFODVL_MASK 0x1800UL /**< Bit mask for VDAC_FIFODVL */
+#define _VDAC_CH1CFG_FIFODVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_FIFODVL_DEFAULT (_VDAC_CH1CFG_FIFODVL_DEFAULT << 11) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_HIGHCAPLOADEN (0x1UL << 14) /**< Channel 1 High Cap Load Mode Enable */
+#define _VDAC_CH1CFG_HIGHCAPLOADEN_SHIFT 14 /**< Shift value for VDAC_HIGHCAPLOADEN */
+#define _VDAC_CH1CFG_HIGHCAPLOADEN_MASK 0x4000UL /**< Bit mask for VDAC_HIGHCAPLOADEN */
+#define _VDAC_CH1CFG_HIGHCAPLOADEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_HIGHCAPLOADEN_DEFAULT (_VDAC_CH1CFG_HIGHCAPLOADEN_DEFAULT << 14) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_KEEPWARM (0x1UL << 16) /**< Channel 1 Keepwarm Mode Enable */
+#define _VDAC_CH1CFG_KEEPWARM_SHIFT 16 /**< Shift value for VDAC_KEEPWARM */
+#define _VDAC_CH1CFG_KEEPWARM_MASK 0x10000UL /**< Bit mask for VDAC_KEEPWARM */
+#define _VDAC_CH1CFG_KEEPWARM_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1CFG */
+#define VDAC_CH1CFG_KEEPWARM_DEFAULT (_VDAC_CH1CFG_KEEPWARM_DEFAULT << 16) /**< Shifted mode DEFAULT for VDAC_CH1CFG */
+
+/* Bit fields for VDAC CMD */
+#define _VDAC_CMD_RESETVALUE 0x00000000UL /**< Default value for VDAC_CMD */
+#define _VDAC_CMD_MASK 0x00000F33UL /**< Mask for VDAC_CMD */
+#define VDAC_CMD_CH0EN (0x1UL << 0) /**< DAC Channel 0 Enable */
+#define _VDAC_CMD_CH0EN_SHIFT 0 /**< Shift value for VDAC_CH0EN */
+#define _VDAC_CMD_CH0EN_MASK 0x1UL /**< Bit mask for VDAC_CH0EN */
+#define _VDAC_CMD_CH0EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH0EN_DEFAULT (_VDAC_CMD_CH0EN_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH0DIS (0x1UL << 1) /**< DAC Channel 0 Disable */
+#define _VDAC_CMD_CH0DIS_SHIFT 1 /**< Shift value for VDAC_CH0DIS */
+#define _VDAC_CMD_CH0DIS_MASK 0x2UL /**< Bit mask for VDAC_CH0DIS */
+#define _VDAC_CMD_CH0DIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH0DIS_DEFAULT (_VDAC_CMD_CH0DIS_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1EN (0x1UL << 4) /**< DAC Channel 1 Enable */
+#define _VDAC_CMD_CH1EN_SHIFT 4 /**< Shift value for VDAC_CH1EN */
+#define _VDAC_CMD_CH1EN_MASK 0x10UL /**< Bit mask for VDAC_CH1EN */
+#define _VDAC_CMD_CH1EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1EN_DEFAULT (_VDAC_CMD_CH1EN_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1DIS (0x1UL << 5) /**< DAC Channel 1 Disable */
+#define _VDAC_CMD_CH1DIS_SHIFT 5 /**< Shift value for VDAC_CH1DIS */
+#define _VDAC_CMD_CH1DIS_MASK 0x20UL /**< Bit mask for VDAC_CH1DIS */
+#define _VDAC_CMD_CH1DIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1DIS_DEFAULT (_VDAC_CMD_CH1DIS_DEFAULT << 5) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH0FIFOFLUSH (0x1UL << 8) /**< CH0 WFIFO Flush */
+#define _VDAC_CMD_CH0FIFOFLUSH_SHIFT 8 /**< Shift value for VDAC_CH0FIFOFLUSH */
+#define _VDAC_CMD_CH0FIFOFLUSH_MASK 0x100UL /**< Bit mask for VDAC_CH0FIFOFLUSH */
+#define _VDAC_CMD_CH0FIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH0FIFOFLUSH_DEFAULT (_VDAC_CMD_CH0FIFOFLUSH_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1FIFOFLUSH (0x1UL << 9) /**< CH1 WFIFO Flush */
+#define _VDAC_CMD_CH1FIFOFLUSH_SHIFT 9 /**< Shift value for VDAC_CH1FIFOFLUSH */
+#define _VDAC_CMD_CH1FIFOFLUSH_MASK 0x200UL /**< Bit mask for VDAC_CH1FIFOFLUSH */
+#define _VDAC_CMD_CH1FIFOFLUSH_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_CH1FIFOFLUSH_DEFAULT (_VDAC_CMD_CH1FIFOFLUSH_DEFAULT << 9) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_SINEMODESTART (0x1UL << 10) /**< Start Sine Wave Generation */
+#define _VDAC_CMD_SINEMODESTART_SHIFT 10 /**< Shift value for VDAC_SINEMODESTART */
+#define _VDAC_CMD_SINEMODESTART_MASK 0x400UL /**< Bit mask for VDAC_SINEMODESTART */
+#define _VDAC_CMD_SINEMODESTART_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_SINEMODESTART_DEFAULT (_VDAC_CMD_SINEMODESTART_DEFAULT << 10) /**< Shifted mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_SINEMODESTOP (0x1UL << 11) /**< Stop Sine Wave Generation */
+#define _VDAC_CMD_SINEMODESTOP_SHIFT 11 /**< Shift value for VDAC_SINEMODESTOP */
+#define _VDAC_CMD_SINEMODESTOP_MASK 0x800UL /**< Bit mask for VDAC_SINEMODESTOP */
+#define _VDAC_CMD_SINEMODESTOP_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CMD */
+#define VDAC_CMD_SINEMODESTOP_DEFAULT (_VDAC_CMD_SINEMODESTOP_DEFAULT << 11) /**< Shifted mode DEFAULT for VDAC_CMD */
+
+/* Bit fields for VDAC IF */
+#define _VDAC_IF_RESETVALUE 0x00000000UL /**< Default value for VDAC_IF */
+#define _VDAC_IF_MASK 0x04340333UL /**< Mask for VDAC_IF */
+#define VDAC_IF_CH0CD (0x1UL << 0) /**< CH0 Conversion Done Interrupt Flag */
+#define _VDAC_IF_CH0CD_SHIFT 0 /**< Shift value for VDAC_CH0CD */
+#define _VDAC_IF_CH0CD_MASK 0x1UL /**< Bit mask for VDAC_CH0CD */
+#define _VDAC_IF_CH0CD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0CD_DEFAULT (_VDAC_IF_CH0CD_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1CD (0x1UL << 1) /**< CH1 Conversion Done Interrupt Flag */
+#define _VDAC_IF_CH1CD_SHIFT 1 /**< Shift value for VDAC_CH1CD */
+#define _VDAC_IF_CH1CD_MASK 0x2UL /**< Bit mask for VDAC_CH1CD */
+#define _VDAC_IF_CH1CD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1CD_DEFAULT (_VDAC_IF_CH1CD_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0OF (0x1UL << 4) /**< CH0 Data Overflow Interrupt Flag */
+#define _VDAC_IF_CH0OF_SHIFT 4 /**< Shift value for VDAC_CH0OF */
+#define _VDAC_IF_CH0OF_MASK 0x10UL /**< Bit mask for VDAC_CH0OF */
+#define _VDAC_IF_CH0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0OF_DEFAULT (_VDAC_IF_CH0OF_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1OF (0x1UL << 5) /**< CH1 Data Overflow Interrupt Flag */
+#define _VDAC_IF_CH1OF_SHIFT 5 /**< Shift value for VDAC_CH1OF */
+#define _VDAC_IF_CH1OF_MASK 0x20UL /**< Bit mask for VDAC_CH1OF */
+#define _VDAC_IF_CH1OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1OF_DEFAULT (_VDAC_IF_CH1OF_DEFAULT << 5) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0UF (0x1UL << 8) /**< CH0 Data Underflow Interrupt Flag */
+#define _VDAC_IF_CH0UF_SHIFT 8 /**< Shift value for VDAC_CH0UF */
+#define _VDAC_IF_CH0UF_MASK 0x100UL /**< Bit mask for VDAC_CH0UF */
+#define _VDAC_IF_CH0UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0UF_DEFAULT (_VDAC_IF_CH0UF_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1UF (0x1UL << 9) /**< CH1 Data Underflow Interrupt Flag */
+#define _VDAC_IF_CH1UF_SHIFT 9 /**< Shift value for VDAC_CH1UF */
+#define _VDAC_IF_CH1UF_MASK 0x200UL /**< Bit mask for VDAC_CH1UF */
+#define _VDAC_IF_CH1UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1UF_DEFAULT (_VDAC_IF_CH1UF_DEFAULT << 9) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_ABUSALLOCERR (0x1UL << 18) /**< ABUS Port Allocation Error Flag */
+#define _VDAC_IF_ABUSALLOCERR_SHIFT 18 /**< Shift value for VDAC_ABUSALLOCERR */
+#define _VDAC_IF_ABUSALLOCERR_MASK 0x40000UL /**< Bit mask for VDAC_ABUSALLOCERR */
+#define _VDAC_IF_ABUSALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_ABUSALLOCERR_DEFAULT (_VDAC_IF_ABUSALLOCERR_DEFAULT << 18) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0DVL (0x1UL << 20) /**< CH0 Data Valid Level Interrupt Flag */
+#define _VDAC_IF_CH0DVL_SHIFT 20 /**< Shift value for VDAC_CH0DVL */
+#define _VDAC_IF_CH0DVL_MASK 0x100000UL /**< Bit mask for VDAC_CH0DVL */
+#define _VDAC_IF_CH0DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH0DVL_DEFAULT (_VDAC_IF_CH0DVL_DEFAULT << 20) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1DVL (0x1UL << 21) /**< CH1 Data Valid Level Interrupt Flag */
+#define _VDAC_IF_CH1DVL_SHIFT 21 /**< Shift value for VDAC_CH1DVL */
+#define _VDAC_IF_CH1DVL_MASK 0x200000UL /**< Bit mask for VDAC_CH1DVL */
+#define _VDAC_IF_CH1DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_CH1DVL_DEFAULT (_VDAC_IF_CH1DVL_DEFAULT << 21) /**< Shifted mode DEFAULT for VDAC_IF */
+#define VDAC_IF_ABUSINPUTCONFLICT (0x1UL << 26) /**< ABUS Input Conflict Error Flag */
+#define _VDAC_IF_ABUSINPUTCONFLICT_SHIFT 26 /**< Shift value for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_IF_ABUSINPUTCONFLICT_MASK 0x4000000UL /**< Bit mask for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_IF_ABUSINPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IF */
+#define VDAC_IF_ABUSINPUTCONFLICT_DEFAULT (_VDAC_IF_ABUSINPUTCONFLICT_DEFAULT << 26) /**< Shifted mode DEFAULT for VDAC_IF */
+
+/* Bit fields for VDAC IEN */
+#define _VDAC_IEN_RESETVALUE 0x00000000UL /**< Default value for VDAC_IEN */
+#define _VDAC_IEN_MASK 0x04340333UL /**< Mask for VDAC_IEN */
+#define VDAC_IEN_CH0CD (0x1UL << 0) /**< CH0 Conversion Done Interrupt Flag */
+#define _VDAC_IEN_CH0CD_SHIFT 0 /**< Shift value for VDAC_CH0CD */
+#define _VDAC_IEN_CH0CD_MASK 0x1UL /**< Bit mask for VDAC_CH0CD */
+#define _VDAC_IEN_CH0CD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0CD_DEFAULT (_VDAC_IEN_CH0CD_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1CD (0x1UL << 1) /**< CH1 Conversion Done Interrupt Flag */
+#define _VDAC_IEN_CH1CD_SHIFT 1 /**< Shift value for VDAC_CH1CD */
+#define _VDAC_IEN_CH1CD_MASK 0x2UL /**< Bit mask for VDAC_CH1CD */
+#define _VDAC_IEN_CH1CD_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1CD_DEFAULT (_VDAC_IEN_CH1CD_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0OF (0x1UL << 4) /**< CH0 Data Overflow Interrupt Flag */
+#define _VDAC_IEN_CH0OF_SHIFT 4 /**< Shift value for VDAC_CH0OF */
+#define _VDAC_IEN_CH0OF_MASK 0x10UL /**< Bit mask for VDAC_CH0OF */
+#define _VDAC_IEN_CH0OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0OF_DEFAULT (_VDAC_IEN_CH0OF_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1OF (0x1UL << 5) /**< CH1 Data Overflow Interrupt Flag */
+#define _VDAC_IEN_CH1OF_SHIFT 5 /**< Shift value for VDAC_CH1OF */
+#define _VDAC_IEN_CH1OF_MASK 0x20UL /**< Bit mask for VDAC_CH1OF */
+#define _VDAC_IEN_CH1OF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1OF_DEFAULT (_VDAC_IEN_CH1OF_DEFAULT << 5) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0UF (0x1UL << 8) /**< CH0 Data Underflow Interrupt Flag */
+#define _VDAC_IEN_CH0UF_SHIFT 8 /**< Shift value for VDAC_CH0UF */
+#define _VDAC_IEN_CH0UF_MASK 0x100UL /**< Bit mask for VDAC_CH0UF */
+#define _VDAC_IEN_CH0UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0UF_DEFAULT (_VDAC_IEN_CH0UF_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1UF (0x1UL << 9) /**< CH1 Data Underflow Interrupt Flag */
+#define _VDAC_IEN_CH1UF_SHIFT 9 /**< Shift value for VDAC_CH1UF */
+#define _VDAC_IEN_CH1UF_MASK 0x200UL /**< Bit mask for VDAC_CH1UF */
+#define _VDAC_IEN_CH1UF_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1UF_DEFAULT (_VDAC_IEN_CH1UF_DEFAULT << 9) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_ABUSALLOCERR (0x1UL << 18) /**< ABUS Allocation Error Interrupt Flag */
+#define _VDAC_IEN_ABUSALLOCERR_SHIFT 18 /**< Shift value for VDAC_ABUSALLOCERR */
+#define _VDAC_IEN_ABUSALLOCERR_MASK 0x40000UL /**< Bit mask for VDAC_ABUSALLOCERR */
+#define _VDAC_IEN_ABUSALLOCERR_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_ABUSALLOCERR_DEFAULT (_VDAC_IEN_ABUSALLOCERR_DEFAULT << 18) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0DVL (0x1UL << 20) /**< CH0 Data Valid Level Interrupt Flag */
+#define _VDAC_IEN_CH0DVL_SHIFT 20 /**< Shift value for VDAC_CH0DVL */
+#define _VDAC_IEN_CH0DVL_MASK 0x100000UL /**< Bit mask for VDAC_CH0DVL */
+#define _VDAC_IEN_CH0DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH0DVL_DEFAULT (_VDAC_IEN_CH0DVL_DEFAULT << 20) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1DVL (0x1UL << 21) /**< CH1 Data Valid Level Interrupt Flag */
+#define _VDAC_IEN_CH1DVL_SHIFT 21 /**< Shift value for VDAC_CH1DVL */
+#define _VDAC_IEN_CH1DVL_MASK 0x200000UL /**< Bit mask for VDAC_CH1DVL */
+#define _VDAC_IEN_CH1DVL_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_CH1DVL_DEFAULT (_VDAC_IEN_CH1DVL_DEFAULT << 21) /**< Shifted mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_ABUSINPUTCONFLICT (0x1UL << 26) /**< ABUS Input Conflict Interrupt Flag */
+#define _VDAC_IEN_ABUSINPUTCONFLICT_SHIFT 26 /**< Shift value for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_IEN_ABUSINPUTCONFLICT_MASK 0x4000000UL /**< Bit mask for VDAC_ABUSINPUTCONFLICT */
+#define _VDAC_IEN_ABUSINPUTCONFLICT_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_IEN */
+#define VDAC_IEN_ABUSINPUTCONFLICT_DEFAULT (_VDAC_IEN_ABUSINPUTCONFLICT_DEFAULT << 26) /**< Shifted mode DEFAULT for VDAC_IEN */
+
+/* Bit fields for VDAC CH0F */
+#define _VDAC_CH0F_RESETVALUE 0x00000000UL /**< Default value for VDAC_CH0F */
+#define _VDAC_CH0F_MASK 0x00000FFFUL /**< Mask for VDAC_CH0F */
+#define _VDAC_CH0F_DATA_SHIFT 0 /**< Shift value for VDAC_DATA */
+#define _VDAC_CH0F_DATA_MASK 0xFFFUL /**< Bit mask for VDAC_DATA */
+#define _VDAC_CH0F_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH0F */
+#define VDAC_CH0F_DATA_DEFAULT (_VDAC_CH0F_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CH0F */
+
+/* Bit fields for VDAC CH1F */
+#define _VDAC_CH1F_RESETVALUE 0x00000000UL /**< Default value for VDAC_CH1F */
+#define _VDAC_CH1F_MASK 0x00000FFFUL /**< Mask for VDAC_CH1F */
+#define _VDAC_CH1F_DATA_SHIFT 0 /**< Shift value for VDAC_DATA */
+#define _VDAC_CH1F_DATA_MASK 0xFFFUL /**< Bit mask for VDAC_DATA */
+#define _VDAC_CH1F_DATA_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_CH1F */
+#define VDAC_CH1F_DATA_DEFAULT (_VDAC_CH1F_DATA_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_CH1F */
+
+/* Bit fields for VDAC OUTCTRL */
+#define _VDAC_OUTCTRL_RESETVALUE 0x00000000UL /**< Default value for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_MASK 0x7FDFF333UL /**< Mask for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_MAINOUTENCH0 (0x1UL << 0) /**< CH0 Main Output Enable */
+#define _VDAC_OUTCTRL_MAINOUTENCH0_SHIFT 0 /**< Shift value for VDAC_MAINOUTENCH0 */
+#define _VDAC_OUTCTRL_MAINOUTENCH0_MASK 0x1UL /**< Bit mask for VDAC_MAINOUTENCH0 */
+#define _VDAC_OUTCTRL_MAINOUTENCH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_MAINOUTENCH0_DEFAULT (_VDAC_OUTCTRL_MAINOUTENCH0_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_MAINOUTENCH1 (0x1UL << 1) /**< CH1 Main Output Enable */
+#define _VDAC_OUTCTRL_MAINOUTENCH1_SHIFT 1 /**< Shift value for VDAC_MAINOUTENCH1 */
+#define _VDAC_OUTCTRL_MAINOUTENCH1_MASK 0x2UL /**< Bit mask for VDAC_MAINOUTENCH1 */
+#define _VDAC_OUTCTRL_MAINOUTENCH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_MAINOUTENCH1_DEFAULT (_VDAC_OUTCTRL_MAINOUTENCH1_DEFAULT << 1) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_AUXOUTENCH0 (0x1UL << 4) /**< CH0 Alternative Output Enable */
+#define _VDAC_OUTCTRL_AUXOUTENCH0_SHIFT 4 /**< Shift value for VDAC_AUXOUTENCH0 */
+#define _VDAC_OUTCTRL_AUXOUTENCH0_MASK 0x10UL /**< Bit mask for VDAC_AUXOUTENCH0 */
+#define _VDAC_OUTCTRL_AUXOUTENCH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_AUXOUTENCH0_DEFAULT (_VDAC_OUTCTRL_AUXOUTENCH0_DEFAULT << 4) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_AUXOUTENCH1 (0x1UL << 5) /**< CH1 Alternative Output Enable */
+#define _VDAC_OUTCTRL_AUXOUTENCH1_SHIFT 5 /**< Shift value for VDAC_AUXOUTENCH1 */
+#define _VDAC_OUTCTRL_AUXOUTENCH1_MASK 0x20UL /**< Bit mask for VDAC_AUXOUTENCH1 */
+#define _VDAC_OUTCTRL_AUXOUTENCH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_AUXOUTENCH1_DEFAULT (_VDAC_OUTCTRL_AUXOUTENCH1_DEFAULT << 5) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_SHORTCH0 (0x1UL << 8) /**< CH1 Main and Alternative Output Short */
+#define _VDAC_OUTCTRL_SHORTCH0_SHIFT 8 /**< Shift value for VDAC_SHORTCH0 */
+#define _VDAC_OUTCTRL_SHORTCH0_MASK 0x100UL /**< Bit mask for VDAC_SHORTCH0 */
+#define _VDAC_OUTCTRL_SHORTCH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_SHORTCH0_DEFAULT (_VDAC_OUTCTRL_SHORTCH0_DEFAULT << 8) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_SHORTCH1 (0x1UL << 9) /**< CH0 Main and Alternative Output Short */
+#define _VDAC_OUTCTRL_SHORTCH1_SHIFT 9 /**< Shift value for VDAC_SHORTCH1 */
+#define _VDAC_OUTCTRL_SHORTCH1_MASK 0x200UL /**< Bit mask for VDAC_SHORTCH1 */
+#define _VDAC_OUTCTRL_SHORTCH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_SHORTCH1_DEFAULT (_VDAC_OUTCTRL_SHORTCH1_DEFAULT << 9) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_SHIFT 12 /**< Shift value for VDAC_ABUSPORTSELCH0 */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_MASK 0x7000UL /**< Bit mask for VDAC_ABUSPORTSELCH0 */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_NONE 0x00000000UL /**< Mode NONE for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_PORTA 0x00000001UL /**< Mode PORTA for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_PORTB 0x00000002UL /**< Mode PORTB for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_PORTC 0x00000003UL /**< Mode PORTC for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH0_PORTD 0x00000004UL /**< Mode PORTD for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_DEFAULT (_VDAC_OUTCTRL_ABUSPORTSELCH0_DEFAULT << 12) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_NONE (_VDAC_OUTCTRL_ABUSPORTSELCH0_NONE << 12) /**< Shifted mode NONE for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_PORTA (_VDAC_OUTCTRL_ABUSPORTSELCH0_PORTA << 12) /**< Shifted mode PORTA for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_PORTB (_VDAC_OUTCTRL_ABUSPORTSELCH0_PORTB << 12) /**< Shifted mode PORTB for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_PORTC (_VDAC_OUTCTRL_ABUSPORTSELCH0_PORTC << 12) /**< Shifted mode PORTC for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH0_PORTD (_VDAC_OUTCTRL_ABUSPORTSELCH0_PORTD << 12) /**< Shifted mode PORTD for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPINSELCH0_SHIFT 15 /**< Shift value for VDAC_ABUSPINSELCH0 */
+#define _VDAC_OUTCTRL_ABUSPINSELCH0_MASK 0x1F8000UL /**< Bit mask for VDAC_ABUSPINSELCH0 */
+#define _VDAC_OUTCTRL_ABUSPINSELCH0_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPINSELCH0_DEFAULT (_VDAC_OUTCTRL_ABUSPINSELCH0_DEFAULT << 15) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_SHIFT 22 /**< Shift value for VDAC_ABUSPORTSELCH1 */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_MASK 0x1C00000UL /**< Bit mask for VDAC_ABUSPORTSELCH1 */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_NONE 0x00000000UL /**< Mode NONE for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_PORTA 0x00000001UL /**< Mode PORTA for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_PORTB 0x00000002UL /**< Mode PORTB for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_PORTC 0x00000003UL /**< Mode PORTC for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPORTSELCH1_PORTD 0x00000004UL /**< Mode PORTD for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_DEFAULT (_VDAC_OUTCTRL_ABUSPORTSELCH1_DEFAULT << 22) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_NONE (_VDAC_OUTCTRL_ABUSPORTSELCH1_NONE << 22) /**< Shifted mode NONE for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_PORTA (_VDAC_OUTCTRL_ABUSPORTSELCH1_PORTA << 22) /**< Shifted mode PORTA for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_PORTB (_VDAC_OUTCTRL_ABUSPORTSELCH1_PORTB << 22) /**< Shifted mode PORTB for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_PORTC (_VDAC_OUTCTRL_ABUSPORTSELCH1_PORTC << 22) /**< Shifted mode PORTC for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPORTSELCH1_PORTD (_VDAC_OUTCTRL_ABUSPORTSELCH1_PORTD << 22) /**< Shifted mode PORTD for VDAC_OUTCTRL */
+#define _VDAC_OUTCTRL_ABUSPINSELCH1_SHIFT 25 /**< Shift value for VDAC_ABUSPINSELCH1 */
+#define _VDAC_OUTCTRL_ABUSPINSELCH1_MASK 0x7E000000UL /**< Bit mask for VDAC_ABUSPINSELCH1 */
+#define _VDAC_OUTCTRL_ABUSPINSELCH1_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTCTRL */
+#define VDAC_OUTCTRL_ABUSPINSELCH1_DEFAULT (_VDAC_OUTCTRL_ABUSPINSELCH1_DEFAULT << 25) /**< Shifted mode DEFAULT for VDAC_OUTCTRL */
+
+/* Bit fields for VDAC OUTTIMERCFG */
+#define _VDAC_OUTTIMERCFG_RESETVALUE 0x00000000UL /**< Default value for VDAC_OUTTIMERCFG */
+#define _VDAC_OUTTIMERCFG_MASK 0x01FF83FFUL /**< Mask for VDAC_OUTTIMERCFG */
+#define _VDAC_OUTTIMERCFG_CH0OUTHOLDTIME_SHIFT 0 /**< Shift value for VDAC_CH0OUTHOLDTIME */
+#define _VDAC_OUTTIMERCFG_CH0OUTHOLDTIME_MASK 0x3FFUL /**< Bit mask for VDAC_CH0OUTHOLDTIME */
+#define _VDAC_OUTTIMERCFG_CH0OUTHOLDTIME_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTTIMERCFG */
+#define VDAC_OUTTIMERCFG_CH0OUTHOLDTIME_DEFAULT (_VDAC_OUTTIMERCFG_CH0OUTHOLDTIME_DEFAULT << 0) /**< Shifted mode DEFAULT for VDAC_OUTTIMERCFG */
+#define _VDAC_OUTTIMERCFG_CH1OUTHOLDTIME_SHIFT 15 /**< Shift value for VDAC_CH1OUTHOLDTIME */
+#define _VDAC_OUTTIMERCFG_CH1OUTHOLDTIME_MASK 0x1FF8000UL /**< Bit mask for VDAC_CH1OUTHOLDTIME */
+#define _VDAC_OUTTIMERCFG_CH1OUTHOLDTIME_DEFAULT 0x00000000UL /**< Mode DEFAULT for VDAC_OUTTIMERCFG */
+#define VDAC_OUTTIMERCFG_CH1OUTHOLDTIME_DEFAULT (_VDAC_OUTTIMERCFG_CH1OUTHOLDTIME_DEFAULT << 15) /**< Shifted mode DEFAULT for VDAC_OUTTIMERCFG */
+
+/** @} End of group EFR32ZG23_VDAC_BitFields */
+/** @} End of group EFR32ZG23_VDAC */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_VDAC_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_wdog.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_wdog.h
new file mode 100644
index 000000000..b00b461a7
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23_wdog.h
@@ -0,0 +1,375 @@
+/**************************************************************************//**
+ * @file
+ * @brief EFR32ZG23 WDOG register and bit field definitions
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23_WDOG_H
+#define EFR32ZG23_WDOG_H
+#define WDOG_HAS_SET_CLEAR
+
+/**************************************************************************//**
+* @addtogroup Parts
+* @{
+******************************************************************************/
+/**************************************************************************//**
+ * @defgroup EFR32ZG23_WDOG WDOG
+ * @{
+ * @brief EFR32ZG23 WDOG Register Declaration.
+ *****************************************************************************/
+
+/** WDOG Register Declaration. */
+typedef struct wdog_typedef{
+ __IM uint32_t IPVERSION; /**< IP Version Register */
+ __IOM uint32_t EN; /**< Enable Register */
+ __IOM uint32_t CFG; /**< Configuration Register */
+ __IOM uint32_t CMD; /**< Command Register */
+ uint32_t RESERVED0[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS; /**< Status Register */
+ __IOM uint32_t IF; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK; /**< Lock Register */
+ __IM uint32_t SYNCBUSY; /**< Synchronization Busy Register */
+ uint32_t RESERVED1[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_SET; /**< IP Version Register */
+ __IOM uint32_t EN_SET; /**< Enable Register */
+ __IOM uint32_t CFG_SET; /**< Configuration Register */
+ __IOM uint32_t CMD_SET; /**< Command Register */
+ uint32_t RESERVED2[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_SET; /**< Status Register */
+ __IOM uint32_t IF_SET; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_SET; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_SET; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_SET; /**< Synchronization Busy Register */
+ uint32_t RESERVED3[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_CLR; /**< IP Version Register */
+ __IOM uint32_t EN_CLR; /**< Enable Register */
+ __IOM uint32_t CFG_CLR; /**< Configuration Register */
+ __IOM uint32_t CMD_CLR; /**< Command Register */
+ uint32_t RESERVED4[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_CLR; /**< Status Register */
+ __IOM uint32_t IF_CLR; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_CLR; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_CLR; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_CLR; /**< Synchronization Busy Register */
+ uint32_t RESERVED5[1014U]; /**< Reserved for future use */
+ __IM uint32_t IPVERSION_TGL; /**< IP Version Register */
+ __IOM uint32_t EN_TGL; /**< Enable Register */
+ __IOM uint32_t CFG_TGL; /**< Configuration Register */
+ __IOM uint32_t CMD_TGL; /**< Command Register */
+ uint32_t RESERVED6[1U]; /**< Reserved for future use */
+ __IM uint32_t STATUS_TGL; /**< Status Register */
+ __IOM uint32_t IF_TGL; /**< Interrupt Flag Register */
+ __IOM uint32_t IEN_TGL; /**< Interrupt Enable Register */
+ __IOM uint32_t LOCK_TGL; /**< Lock Register */
+ __IM uint32_t SYNCBUSY_TGL; /**< Synchronization Busy Register */
+} WDOG_TypeDef;
+/** @} End of group EFR32ZG23_WDOG */
+
+/**************************************************************************//**
+ * @addtogroup EFR32ZG23_WDOG
+ * @{
+ * @defgroup EFR32ZG23_WDOG_BitFields WDOG Bit Fields
+ * @{
+ *****************************************************************************/
+
+/* Bit fields for WDOG IPVERSION */
+#define _WDOG_IPVERSION_RESETVALUE 0x00000001UL /**< Default value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_MASK 0xFFFFFFFFUL /**< Mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_SHIFT 0 /**< Shift value for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_MASK 0xFFFFFFFFUL /**< Bit mask for WDOG_IPVERSION */
+#define _WDOG_IPVERSION_IPVERSION_DEFAULT 0x00000001UL /**< Mode DEFAULT for WDOG_IPVERSION */
+#define WDOG_IPVERSION_IPVERSION_DEFAULT (_WDOG_IPVERSION_IPVERSION_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IPVERSION */
+
+/* Bit fields for WDOG EN */
+#define _WDOG_EN_RESETVALUE 0x00000000UL /**< Default value for WDOG_EN */
+#define _WDOG_EN_MASK 0x00000003UL /**< Mask for WDOG_EN */
+#define WDOG_EN_EN (0x1UL << 0) /**< Module Enable */
+#define _WDOG_EN_EN_SHIFT 0 /**< Shift value for WDOG_EN */
+#define _WDOG_EN_EN_MASK 0x1UL /**< Bit mask for WDOG_EN */
+#define _WDOG_EN_EN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_EN */
+#define WDOG_EN_EN_DEFAULT (_WDOG_EN_EN_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_EN */
+#define WDOG_EN_DISABLING (0x1UL << 1) /**< Disabling busy status */
+#define _WDOG_EN_DISABLING_SHIFT 1 /**< Shift value for WDOG_DISABLING */
+#define _WDOG_EN_DISABLING_MASK 0x2UL /**< Bit mask for WDOG_DISABLING */
+#define _WDOG_EN_DISABLING_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_EN */
+#define WDOG_EN_DISABLING_DEFAULT (_WDOG_EN_DISABLING_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_EN */
+
+/* Bit fields for WDOG CFG */
+#define _WDOG_CFG_RESETVALUE 0x000F0000UL /**< Default value for WDOG_CFG */
+#define _WDOG_CFG_MASK 0x730F073FUL /**< Mask for WDOG_CFG */
+#define WDOG_CFG_CLRSRC (0x1UL << 0) /**< WDOG Clear Source */
+#define _WDOG_CFG_CLRSRC_SHIFT 0 /**< Shift value for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_MASK 0x1UL /**< Bit mask for WDOG_CLRSRC */
+#define _WDOG_CFG_CLRSRC_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_SW 0x00000000UL /**< Mode SW for WDOG_CFG */
+#define _WDOG_CFG_CLRSRC_PRSSRC0 0x00000001UL /**< Mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_DEFAULT (_WDOG_CFG_CLRSRC_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_SW (_WDOG_CFG_CLRSRC_SW << 0) /**< Shifted mode SW for WDOG_CFG */
+#define WDOG_CFG_CLRSRC_PRSSRC0 (_WDOG_CFG_CLRSRC_PRSSRC0 << 0) /**< Shifted mode PRSSRC0 for WDOG_CFG */
+#define WDOG_CFG_EM1RUN (0x1UL << 1) /**< EM1 Run */
+#define _WDOG_CFG_EM1RUN_SHIFT 1 /**< Shift value for WDOG_EM1RUN */
+#define _WDOG_CFG_EM1RUN_MASK 0x2UL /**< Bit mask for WDOG_EM1RUN */
+#define _WDOG_CFG_EM1RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM1RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM1RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM1RUN_DEFAULT (_WDOG_CFG_EM1RUN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM1RUN_DISABLE (_WDOG_CFG_EM1RUN_DISABLE << 1) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM1RUN_ENABLE (_WDOG_CFG_EM1RUN_ENABLE << 1) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN (0x1UL << 2) /**< EM2 Run */
+#define _WDOG_CFG_EM2RUN_SHIFT 2 /**< Shift value for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_MASK 0x4UL /**< Bit mask for WDOG_EM2RUN */
+#define _WDOG_CFG_EM2RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM2RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DEFAULT (_WDOG_CFG_EM2RUN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_DISABLE (_WDOG_CFG_EM2RUN_DISABLE << 2) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM2RUN_ENABLE (_WDOG_CFG_EM2RUN_ENABLE << 2) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN (0x1UL << 3) /**< EM3 Run */
+#define _WDOG_CFG_EM3RUN_SHIFT 3 /**< Shift value for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_MASK 0x8UL /**< Bit mask for WDOG_EM3RUN */
+#define _WDOG_CFG_EM3RUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM3RUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DEFAULT (_WDOG_CFG_EM3RUN_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_DISABLE (_WDOG_CFG_EM3RUN_DISABLE << 3) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM3RUN_ENABLE (_WDOG_CFG_EM3RUN_ENABLE << 3) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK (0x1UL << 4) /**< EM4 Block */
+#define _WDOG_CFG_EM4BLOCK_SHIFT 4 /**< Shift value for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_MASK 0x10UL /**< Bit mask for WDOG_EM4BLOCK */
+#define _WDOG_CFG_EM4BLOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_EM4BLOCK_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DEFAULT (_WDOG_CFG_EM4BLOCK_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_DISABLE (_WDOG_CFG_EM4BLOCK_DISABLE << 4) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_EM4BLOCK_ENABLE (_WDOG_CFG_EM4BLOCK_ENABLE << 4) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN (0x1UL << 5) /**< Debug Mode Run */
+#define _WDOG_CFG_DEBUGRUN_SHIFT 5 /**< Shift value for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_MASK 0x20UL /**< Bit mask for WDOG_DEBUGRUN */
+#define _WDOG_CFG_DEBUGRUN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_DISABLE 0x00000000UL /**< Mode DISABLE for WDOG_CFG */
+#define _WDOG_CFG_DEBUGRUN_ENABLE 0x00000001UL /**< Mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DEFAULT (_WDOG_CFG_DEBUGRUN_DEFAULT << 5) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_DISABLE (_WDOG_CFG_DEBUGRUN_DISABLE << 5) /**< Shifted mode DISABLE for WDOG_CFG */
+#define WDOG_CFG_DEBUGRUN_ENABLE (_WDOG_CFG_DEBUGRUN_ENABLE << 5) /**< Shifted mode ENABLE for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS (0x1UL << 8) /**< WDOG Reset Disable */
+#define _WDOG_CFG_WDOGRSTDIS_SHIFT 8 /**< Shift value for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_MASK 0x100UL /**< Bit mask for WDOG_WDOGRSTDIS */
+#define _WDOG_CFG_WDOGRSTDIS_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_EN 0x00000000UL /**< Mode EN for WDOG_CFG */
+#define _WDOG_CFG_WDOGRSTDIS_DIS 0x00000001UL /**< Mode DIS for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DEFAULT (_WDOG_CFG_WDOGRSTDIS_DEFAULT << 8) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_EN (_WDOG_CFG_WDOGRSTDIS_EN << 8) /**< Shifted mode EN for WDOG_CFG */
+#define WDOG_CFG_WDOGRSTDIS_DIS (_WDOG_CFG_WDOGRSTDIS_DIS << 8) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN (0x1UL << 9) /**< PRS Src0 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS0MISSRSTEN_SHIFT 9 /**< Shift value for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_MASK 0x200UL /**< Bit mask for WDOG_PRS0MISSRSTEN */
+#define _WDOG_CFG_PRS0MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS0MISSRSTEN_DEFAULT (_WDOG_CFG_PRS0MISSRSTEN_DEFAULT << 9) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN (0x1UL << 10) /**< PRS Src1 Missing Event WDOG Reset */
+#define _WDOG_CFG_PRS1MISSRSTEN_SHIFT 10 /**< Shift value for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_MASK 0x400UL /**< Bit mask for WDOG_PRS1MISSRSTEN */
+#define _WDOG_CFG_PRS1MISSRSTEN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PRS1MISSRSTEN_DEFAULT (_WDOG_CFG_PRS1MISSRSTEN_DEFAULT << 10) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SHIFT 16 /**< Shift value for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_MASK 0xF0000UL /**< Bit mask for WDOG_PERSEL */
+#define _WDOG_CFG_PERSEL_DEFAULT 0x0000000FUL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL0 0x00000000UL /**< Mode SEL0 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL8 0x00000008UL /**< Mode SEL8 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL9 0x00000009UL /**< Mode SEL9 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL10 0x0000000AUL /**< Mode SEL10 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL11 0x0000000BUL /**< Mode SEL11 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL12 0x0000000CUL /**< Mode SEL12 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL13 0x0000000DUL /**< Mode SEL13 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL14 0x0000000EUL /**< Mode SEL14 for WDOG_CFG */
+#define _WDOG_CFG_PERSEL_SEL15 0x0000000FUL /**< Mode SEL15 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_DEFAULT (_WDOG_CFG_PERSEL_DEFAULT << 16) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL0 (_WDOG_CFG_PERSEL_SEL0 << 16) /**< Shifted mode SEL0 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL1 (_WDOG_CFG_PERSEL_SEL1 << 16) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL2 (_WDOG_CFG_PERSEL_SEL2 << 16) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL3 (_WDOG_CFG_PERSEL_SEL3 << 16) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL4 (_WDOG_CFG_PERSEL_SEL4 << 16) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL5 (_WDOG_CFG_PERSEL_SEL5 << 16) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL6 (_WDOG_CFG_PERSEL_SEL6 << 16) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL7 (_WDOG_CFG_PERSEL_SEL7 << 16) /**< Shifted mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL8 (_WDOG_CFG_PERSEL_SEL8 << 16) /**< Shifted mode SEL8 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL9 (_WDOG_CFG_PERSEL_SEL9 << 16) /**< Shifted mode SEL9 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL10 (_WDOG_CFG_PERSEL_SEL10 << 16) /**< Shifted mode SEL10 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL11 (_WDOG_CFG_PERSEL_SEL11 << 16) /**< Shifted mode SEL11 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL12 (_WDOG_CFG_PERSEL_SEL12 << 16) /**< Shifted mode SEL12 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL13 (_WDOG_CFG_PERSEL_SEL13 << 16) /**< Shifted mode SEL13 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL14 (_WDOG_CFG_PERSEL_SEL14 << 16) /**< Shifted mode SEL14 for WDOG_CFG */
+#define WDOG_CFG_PERSEL_SEL15 (_WDOG_CFG_PERSEL_SEL15 << 16) /**< Shifted mode SEL15 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SHIFT 24 /**< Shift value for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_MASK 0x3000000UL /**< Bit mask for WDOG_WARNSEL */
+#define _WDOG_CFG_WARNSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WARNSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DEFAULT (_WDOG_CFG_WARNSEL_DEFAULT << 24) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_DIS (_WDOG_CFG_WARNSEL_DIS << 24) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL1 (_WDOG_CFG_WARNSEL_SEL1 << 24) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL2 (_WDOG_CFG_WARNSEL_SEL2 << 24) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WARNSEL_SEL3 (_WDOG_CFG_WARNSEL_SEL3 << 24) /**< Shifted mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SHIFT 28 /**< Shift value for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_MASK 0x70000000UL /**< Bit mask for WDOG_WINSEL */
+#define _WDOG_CFG_WINSEL_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_DIS 0x00000000UL /**< Mode DIS for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL1 0x00000001UL /**< Mode SEL1 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL2 0x00000002UL /**< Mode SEL2 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL3 0x00000003UL /**< Mode SEL3 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL4 0x00000004UL /**< Mode SEL4 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL5 0x00000005UL /**< Mode SEL5 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL6 0x00000006UL /**< Mode SEL6 for WDOG_CFG */
+#define _WDOG_CFG_WINSEL_SEL7 0x00000007UL /**< Mode SEL7 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DEFAULT (_WDOG_CFG_WINSEL_DEFAULT << 28) /**< Shifted mode DEFAULT for WDOG_CFG */
+#define WDOG_CFG_WINSEL_DIS (_WDOG_CFG_WINSEL_DIS << 28) /**< Shifted mode DIS for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL1 (_WDOG_CFG_WINSEL_SEL1 << 28) /**< Shifted mode SEL1 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL2 (_WDOG_CFG_WINSEL_SEL2 << 28) /**< Shifted mode SEL2 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL3 (_WDOG_CFG_WINSEL_SEL3 << 28) /**< Shifted mode SEL3 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL4 (_WDOG_CFG_WINSEL_SEL4 << 28) /**< Shifted mode SEL4 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL5 (_WDOG_CFG_WINSEL_SEL5 << 28) /**< Shifted mode SEL5 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL6 (_WDOG_CFG_WINSEL_SEL6 << 28) /**< Shifted mode SEL6 for WDOG_CFG */
+#define WDOG_CFG_WINSEL_SEL7 (_WDOG_CFG_WINSEL_SEL7 << 28) /**< Shifted mode SEL7 for WDOG_CFG */
+
+/* Bit fields for WDOG CMD */
+#define _WDOG_CMD_RESETVALUE 0x00000000UL /**< Default value for WDOG_CMD */
+#define _WDOG_CMD_MASK 0x00000001UL /**< Mask for WDOG_CMD */
+#define WDOG_CMD_CLEAR (0x1UL << 0) /**< WDOG Timer Clear */
+#define _WDOG_CMD_CLEAR_SHIFT 0 /**< Shift value for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_MASK 0x1UL /**< Bit mask for WDOG_CLEAR */
+#define _WDOG_CMD_CLEAR_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_UNCHANGED 0x00000000UL /**< Mode UNCHANGED for WDOG_CMD */
+#define _WDOG_CMD_CLEAR_CLEARED 0x00000001UL /**< Mode CLEARED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_DEFAULT (_WDOG_CMD_CLEAR_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_CMD */
+#define WDOG_CMD_CLEAR_UNCHANGED (_WDOG_CMD_CLEAR_UNCHANGED << 0) /**< Shifted mode UNCHANGED for WDOG_CMD */
+#define WDOG_CMD_CLEAR_CLEARED (_WDOG_CMD_CLEAR_CLEARED << 0) /**< Shifted mode CLEARED for WDOG_CMD */
+
+/* Bit fields for WDOG STATUS */
+#define _WDOG_STATUS_RESETVALUE 0x00000000UL /**< Default value for WDOG_STATUS */
+#define _WDOG_STATUS_MASK 0x80000000UL /**< Mask for WDOG_STATUS */
+#define WDOG_STATUS_LOCK (0x1UL << 31) /**< WDOG Configuration Lock Status */
+#define _WDOG_STATUS_LOCK_SHIFT 31 /**< Shift value for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_MASK 0x80000000UL /**< Bit mask for WDOG_LOCK */
+#define _WDOG_STATUS_LOCK_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_UNLOCKED 0x00000000UL /**< Mode UNLOCKED for WDOG_STATUS */
+#define _WDOG_STATUS_LOCK_LOCKED 0x00000001UL /**< Mode LOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_DEFAULT (_WDOG_STATUS_LOCK_DEFAULT << 31) /**< Shifted mode DEFAULT for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_UNLOCKED (_WDOG_STATUS_LOCK_UNLOCKED << 31) /**< Shifted mode UNLOCKED for WDOG_STATUS */
+#define WDOG_STATUS_LOCK_LOCKED (_WDOG_STATUS_LOCK_LOCKED << 31) /**< Shifted mode LOCKED for WDOG_STATUS */
+
+/* Bit fields for WDOG IF */
+#define _WDOG_IF_RESETVALUE 0x00000000UL /**< Default value for WDOG_IF */
+#define _WDOG_IF_MASK 0x0000001FUL /**< Mask for WDOG_IF */
+#define WDOG_IF_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Flag */
+#define _WDOG_IF_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IF_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IF_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_TOUT_DEFAULT (_WDOG_IF_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Flag */
+#define _WDOG_IF_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IF_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IF_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WARN_DEFAULT (_WDOG_IF_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN (0x1UL << 2) /**< WDOG Window Interrupt Flag */
+#define _WDOG_IF_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IF_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IF_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_WIN_DEFAULT (_WDOG_IF_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IF_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM0_DEFAULT (_WDOG_IF_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Flag */
+#define _WDOG_IF_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IF_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IF */
+#define WDOG_IF_PEM1_DEFAULT (_WDOG_IF_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IF */
+
+/* Bit fields for WDOG IEN */
+#define _WDOG_IEN_RESETVALUE 0x00000000UL /**< Default value for WDOG_IEN */
+#define _WDOG_IEN_MASK 0x0000001FUL /**< Mask for WDOG_IEN */
+#define WDOG_IEN_TOUT (0x1UL << 0) /**< WDOG Timeout Interrupt Enable */
+#define _WDOG_IEN_TOUT_SHIFT 0 /**< Shift value for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_MASK 0x1UL /**< Bit mask for WDOG_TOUT */
+#define _WDOG_IEN_TOUT_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_TOUT_DEFAULT (_WDOG_IEN_TOUT_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN (0x1UL << 1) /**< WDOG Warning Timeout Interrupt Enable */
+#define _WDOG_IEN_WARN_SHIFT 1 /**< Shift value for WDOG_WARN */
+#define _WDOG_IEN_WARN_MASK 0x2UL /**< Bit mask for WDOG_WARN */
+#define _WDOG_IEN_WARN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WARN_DEFAULT (_WDOG_IEN_WARN_DEFAULT << 1) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN (0x1UL << 2) /**< WDOG Window Interrupt Enable */
+#define _WDOG_IEN_WIN_SHIFT 2 /**< Shift value for WDOG_WIN */
+#define _WDOG_IEN_WIN_MASK 0x4UL /**< Bit mask for WDOG_WIN */
+#define _WDOG_IEN_WIN_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_WIN_DEFAULT (_WDOG_IEN_WIN_DEFAULT << 2) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0 (0x1UL << 3) /**< PRS Src0 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM0_SHIFT 3 /**< Shift value for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_MASK 0x8UL /**< Bit mask for WDOG_PEM0 */
+#define _WDOG_IEN_PEM0_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM0_DEFAULT (_WDOG_IEN_PEM0_DEFAULT << 3) /**< Shifted mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1 (0x1UL << 4) /**< PRS Src1 Event Missing Interrupt Enable */
+#define _WDOG_IEN_PEM1_SHIFT 4 /**< Shift value for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_MASK 0x10UL /**< Bit mask for WDOG_PEM1 */
+#define _WDOG_IEN_PEM1_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_IEN */
+#define WDOG_IEN_PEM1_DEFAULT (_WDOG_IEN_PEM1_DEFAULT << 4) /**< Shifted mode DEFAULT for WDOG_IEN */
+
+/* Bit fields for WDOG LOCK */
+#define _WDOG_LOCK_RESETVALUE 0x0000ABE8UL /**< Default value for WDOG_LOCK */
+#define _WDOG_LOCK_MASK 0x0000FFFFUL /**< Mask for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_SHIFT 0 /**< Shift value for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_MASK 0xFFFFUL /**< Bit mask for WDOG_LOCKKEY */
+#define _WDOG_LOCK_LOCKKEY_DEFAULT 0x0000ABE8UL /**< Mode DEFAULT for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_LOCK 0x00000000UL /**< Mode LOCK for WDOG_LOCK */
+#define _WDOG_LOCK_LOCKKEY_UNLOCK 0x0000ABE8UL /**< Mode UNLOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_DEFAULT (_WDOG_LOCK_LOCKKEY_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_LOCK (_WDOG_LOCK_LOCKKEY_LOCK << 0) /**< Shifted mode LOCK for WDOG_LOCK */
+#define WDOG_LOCK_LOCKKEY_UNLOCK (_WDOG_LOCK_LOCKKEY_UNLOCK << 0) /**< Shifted mode UNLOCK for WDOG_LOCK */
+
+/* Bit fields for WDOG SYNCBUSY */
+#define _WDOG_SYNCBUSY_RESETVALUE 0x00000000UL /**< Default value for WDOG_SYNCBUSY */
+#define _WDOG_SYNCBUSY_MASK 0x00000001UL /**< Mask for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD (0x1UL << 0) /**< Sync Busy for Cmd Register */
+#define _WDOG_SYNCBUSY_CMD_SHIFT 0 /**< Shift value for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_MASK 0x1UL /**< Bit mask for WDOG_CMD */
+#define _WDOG_SYNCBUSY_CMD_DEFAULT 0x00000000UL /**< Mode DEFAULT for WDOG_SYNCBUSY */
+#define WDOG_SYNCBUSY_CMD_DEFAULT (_WDOG_SYNCBUSY_CMD_DEFAULT << 0) /**< Shifted mode DEFAULT for WDOG_SYNCBUSY */
+
+/** @} End of group EFR32ZG23_WDOG_BitFields */
+/** @} End of group EFR32ZG23_WDOG */
+/** @} End of group Parts */
+
+#endif // EFR32ZG23_WDOG_H
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm40.h
new file mode 100644
index 000000000..5ecd560ed
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm40.h
@@ -0,0 +1,1455 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23A010F512GM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23A010F512GM40_H
+#define EFR32ZG23A010F512GM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40 EFR32ZG23A010F512GM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40_Core EFR32ZG23A010F512GM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23A010F512GM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23A010F512GM40_Part EFR32ZG23A010F512GM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23A010F512GM40)
+#define EFR32ZG23A010F512GM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23A010F512GM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_SE /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 14 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23A010F512GM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 7U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23A010F512GM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40_Peripheral_TypeDefs EFR32ZG23A010F512GM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23A010F512GM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40_Peripheral_Base EFR32ZG23A010F512GM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23A010F512GM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40_Peripheral_Declaration EFR32ZG23A010F512GM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23A010F512GM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM40_Peripheral_Parameters EFR32ZG23A010F512GM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23A010F512GM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23A010F512GM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm48.h
new file mode 100644
index 000000000..37771dd62
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a010f512gm48.h
@@ -0,0 +1,1552 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23A010F512GM48
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23A010F512GM48_H
+#define EFR32ZG23A010F512GM48_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48 EFR32ZG23A010F512GM48
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ LCD_IRQn = 72, /*!< 72 EFR32 LCD Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48_Core EFR32ZG23A010F512GM48 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23A010F512GM48_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23A010F512GM48_Part EFR32ZG23A010F512GM48 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23A010F512GM48)
+#define EFR32ZG23A010F512GM48 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23A010F512GM48" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_SE /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 14 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23A010F512GM48 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 11U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x07FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PA_PIN9 1U /**< GPIO pin PA9 is present. */
+#define GPIO_PA_PIN10 1U /**< GPIO pin PA10 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 4U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x000FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 10U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x03FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PC_PIN8 1U /**< GPIO pin PC8 is present. */
+#define GPIO_PC_PIN9 1U /**< GPIO pin PC9 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 6U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x003FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+#define GPIO_PD_PIN4 1U /**< GPIO pin PD4 is present. */
+#define GPIO_PD_PIN5 1U /**< GPIO pin PD5 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU10_PORT GPIO_PD_INDEX /**< Port of EM4WU10.*/
+#define GPIO_EM4WU10_PIN 5U /**< Pin of EM4WU10.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 9U /**< Pin of THMSW_EN.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LCD_COM0_PORT GPIO_PD_INDEX /**< Port of COM0.*/
+#define LCD_COM0_PIN 2U /**< Pin of COM0.*/
+#define LCD_COM1_PORT GPIO_PD_INDEX /**< Port of COM1.*/
+#define LCD_COM1_PIN 3U /**< Pin of COM1.*/
+#define LCD_COM2_PORT GPIO_PD_INDEX /**< Port of COM2.*/
+#define LCD_COM2_PIN 4U /**< Pin of COM2.*/
+#define LCD_COM3_PORT GPIO_PD_INDEX /**< Port of COM3.*/
+#define LCD_COM3_PIN 5U /**< Pin of COM3.*/
+#define LCD_LCD_CP_PORT GPIO_PA_INDEX /**< Port of LCD_CP.*/
+#define LCD_LCD_CP_PIN 6U /**< Pin of LCD_CP.*/
+#define LCD_SEG0_PORT GPIO_PC_INDEX /**< Port of SEG0.*/
+#define LCD_SEG0_PIN 0U /**< Pin of SEG0.*/
+#define LCD_SEG1_PORT GPIO_PC_INDEX /**< Port of SEG1.*/
+#define LCD_SEG1_PIN 1U /**< Pin of SEG1.*/
+#define LCD_SEG10_PORT GPIO_PA_INDEX /**< Port of SEG10.*/
+#define LCD_SEG10_PIN 4U /**< Pin of SEG10.*/
+#define LCD_SEG11_PORT GPIO_PA_INDEX /**< Port of SEG11.*/
+#define LCD_SEG11_PIN 5U /**< Pin of SEG11.*/
+#define LCD_SEG12_PORT GPIO_PA_INDEX /**< Port of SEG12.*/
+#define LCD_SEG12_PIN 7U /**< Pin of SEG12.*/
+#define LCD_SEG13_PORT GPIO_PA_INDEX /**< Port of SEG13.*/
+#define LCD_SEG13_PIN 8U /**< Pin of SEG13.*/
+#define LCD_SEG14_PORT GPIO_PB_INDEX /**< Port of SEG14.*/
+#define LCD_SEG14_PIN 0U /**< Pin of SEG14.*/
+#define LCD_SEG15_PORT GPIO_PB_INDEX /**< Port of SEG15.*/
+#define LCD_SEG15_PIN 1U /**< Pin of SEG15.*/
+#define LCD_SEG16_PORT GPIO_PB_INDEX /**< Port of SEG16.*/
+#define LCD_SEG16_PIN 2U /**< Pin of SEG16.*/
+#define LCD_SEG17_PORT GPIO_PB_INDEX /**< Port of SEG17.*/
+#define LCD_SEG17_PIN 3U /**< Pin of SEG17.*/
+#define LCD_SEG18_PORT GPIO_PC_INDEX /**< Port of SEG18.*/
+#define LCD_SEG18_PIN 8U /**< Pin of SEG18.*/
+#define LCD_SEG19_PORT GPIO_PC_INDEX /**< Port of SEG19.*/
+#define LCD_SEG19_PIN 9U /**< Pin of SEG19.*/
+#define LCD_SEG2_PORT GPIO_PC_INDEX /**< Port of SEG2.*/
+#define LCD_SEG2_PIN 2U /**< Pin of SEG2.*/
+#define LCD_SEG3_PORT GPIO_PC_INDEX /**< Port of SEG3.*/
+#define LCD_SEG3_PIN 3U /**< Pin of SEG3.*/
+#define LCD_SEG4_PORT GPIO_PC_INDEX /**< Port of SEG4.*/
+#define LCD_SEG4_PIN 4U /**< Pin of SEG4.*/
+#define LCD_SEG5_PORT GPIO_PC_INDEX /**< Port of SEG5.*/
+#define LCD_SEG5_PIN 5U /**< Pin of SEG5.*/
+#define LCD_SEG6_PORT GPIO_PC_INDEX /**< Port of SEG6.*/
+#define LCD_SEG6_PIN 6U /**< Pin of SEG6.*/
+#define LCD_SEG7_PORT GPIO_PC_INDEX /**< Port of SEG7.*/
+#define LCD_SEG7_PIN 7U /**< Pin of SEG7.*/
+#define LCD_SEG8_PORT GPIO_PA_INDEX /**< Port of SEG8.*/
+#define LCD_SEG8_PIN 0U /**< Pin of SEG8.*/
+#define LCD_SEG9_PORT GPIO_PA_INDEX /**< Port of SEG9.*/
+#define LCD_SEG9_PIN 1U /**< Pin of SEG9.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LCD_PRESENT /** LCD is available in this part */
+#define LCD_COUNT 1 /** 1 LCDs available */
+#define LCDRF_PRESENT /** LCDRF is available in this part */
+#define LCDRF_COUNT 1 /** 1 LCDRFs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23A010F512GM48_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48_Peripheral_TypeDefs EFR32ZG23A010F512GM48 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_lcd.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_lcdrf.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23A010F512GM48_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48_Peripheral_Base EFR32ZG23A010F512GM48 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define LCD_S_BASE (0x400AC000UL) /* LCD_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define LCDRF_S_BASE (0x400C0000UL) /* LCDRF_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define LCD_NS_BASE (0x500AC000UL) /* LCD_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define LCDRF_NS_BASE (0x500C0000UL) /* LCDRF_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCD_S) && (SL_TRUSTZONE_PERIPHERAL_LCD_S != 0)))
+#define LCD_BASE (LCD_S_BASE) /* LCD base address */
+#else
+#define LCD_BASE (LCD_NS_BASE) /* LCD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S) && (SL_TRUSTZONE_PERIPHERAL_LCDRF_S != 0)))
+#define LCDRF_BASE (LCDRF_S_BASE) /* LCDRF base address */
+#else
+#define LCDRF_BASE (LCDRF_NS_BASE) /* LCDRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCDRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23A010F512GM48_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48_Peripheral_Declaration EFR32ZG23A010F512GM48 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define LCD_S ((LCD_TypeDef *) LCD_S_BASE) /**< LCD_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define LCDRF_S ((LCDRF_TypeDef *) LCDRF_S_BASE) /**< LCDRF_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define LCD_NS ((LCD_TypeDef *) LCD_NS_BASE) /**< LCD_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define LCDRF_NS ((LCDRF_TypeDef *) LCDRF_NS_BASE) /**< LCDRF_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define LCD ((LCD_TypeDef *) LCD_BASE) /**< LCD base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define LCDRF ((LCDRF_TypeDef *) LCDRF_BASE) /**< LCDRF base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23A010F512GM48_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A010F512GM48_Peripheral_Parameters EFR32ZG23A010F512GM48 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define LCD_COM_NUM 0x4UL /**> None */
+#define LCD_NO_ANIM_LOCS 0x1UL /**> None */
+#define LCD_NO_BANKED_SEG 0x1UL /**> */
+#define LCD_NO_DSC 0x0UL /**> None */
+#define LCD_NO_EXTOSC 0x0UL /**> None */
+#define LCD_NO_UPPER_SEGMENTS 0x1UL /**> */
+#define LCD_OCTAPLEX 0x0UL /**> None */
+#define LCD_SEGASCOM_NUM 0x4UL /**> None */
+#define LCD_SEG_NUM 0x14UL /**> None */
+#define LCD_SEL_WIDTH 0x3UL /**> None */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23A010F512GM48_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23A010F512GM48 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm40.h
new file mode 100644
index 000000000..285dca077
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm40.h
@@ -0,0 +1,1455 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23A020F512GM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23A020F512GM40_H
+#define EFR32ZG23A020F512GM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40 EFR32ZG23A020F512GM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40_Core EFR32ZG23A020F512GM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23A020F512GM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23A020F512GM40_Part EFR32ZG23A020F512GM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23A020F512GM40)
+#define EFR32ZG23A020F512GM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23A020F512GM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_SE /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 20 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23A020F512GM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 7U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23A020F512GM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40_Peripheral_TypeDefs EFR32ZG23A020F512GM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23A020F512GM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40_Peripheral_Base EFR32ZG23A020F512GM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23A020F512GM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40_Peripheral_Declaration EFR32ZG23A020F512GM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23A020F512GM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM40_Peripheral_Parameters EFR32ZG23A020F512GM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23A020F512GM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23A020F512GM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm48.h
new file mode 100644
index 000000000..3d3a4610f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23a020f512gm48.h
@@ -0,0 +1,1552 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23A020F512GM48
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23A020F512GM48_H
+#define EFR32ZG23A020F512GM48_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48 EFR32ZG23A020F512GM48
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ LCD_IRQn = 72, /*!< 72 EFR32 LCD Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48_Core EFR32ZG23A020F512GM48 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23A020F512GM48_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23A020F512GM48_Part EFR32ZG23A020F512GM48 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23A020F512GM48)
+#define EFR32ZG23A020F512GM48 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23A020F512GM48" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_SE /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 20 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23A020F512GM48 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 11U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x07FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PA_PIN9 1U /**< GPIO pin PA9 is present. */
+#define GPIO_PA_PIN10 1U /**< GPIO pin PA10 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 4U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x000FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 10U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x03FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PC_PIN8 1U /**< GPIO pin PC8 is present. */
+#define GPIO_PC_PIN9 1U /**< GPIO pin PC9 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 6U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x003FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+#define GPIO_PD_PIN4 1U /**< GPIO pin PD4 is present. */
+#define GPIO_PD_PIN5 1U /**< GPIO pin PD5 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU10_PORT GPIO_PD_INDEX /**< Port of EM4WU10.*/
+#define GPIO_EM4WU10_PIN 5U /**< Pin of EM4WU10.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 9U /**< Pin of THMSW_EN.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LCD_COM0_PORT GPIO_PD_INDEX /**< Port of COM0.*/
+#define LCD_COM0_PIN 2U /**< Pin of COM0.*/
+#define LCD_COM1_PORT GPIO_PD_INDEX /**< Port of COM1.*/
+#define LCD_COM1_PIN 3U /**< Pin of COM1.*/
+#define LCD_COM2_PORT GPIO_PD_INDEX /**< Port of COM2.*/
+#define LCD_COM2_PIN 4U /**< Pin of COM2.*/
+#define LCD_COM3_PORT GPIO_PD_INDEX /**< Port of COM3.*/
+#define LCD_COM3_PIN 5U /**< Pin of COM3.*/
+#define LCD_LCD_CP_PORT GPIO_PA_INDEX /**< Port of LCD_CP.*/
+#define LCD_LCD_CP_PIN 6U /**< Pin of LCD_CP.*/
+#define LCD_SEG0_PORT GPIO_PC_INDEX /**< Port of SEG0.*/
+#define LCD_SEG0_PIN 0U /**< Pin of SEG0.*/
+#define LCD_SEG1_PORT GPIO_PC_INDEX /**< Port of SEG1.*/
+#define LCD_SEG1_PIN 1U /**< Pin of SEG1.*/
+#define LCD_SEG10_PORT GPIO_PA_INDEX /**< Port of SEG10.*/
+#define LCD_SEG10_PIN 4U /**< Pin of SEG10.*/
+#define LCD_SEG11_PORT GPIO_PA_INDEX /**< Port of SEG11.*/
+#define LCD_SEG11_PIN 5U /**< Pin of SEG11.*/
+#define LCD_SEG12_PORT GPIO_PA_INDEX /**< Port of SEG12.*/
+#define LCD_SEG12_PIN 7U /**< Pin of SEG12.*/
+#define LCD_SEG13_PORT GPIO_PA_INDEX /**< Port of SEG13.*/
+#define LCD_SEG13_PIN 8U /**< Pin of SEG13.*/
+#define LCD_SEG14_PORT GPIO_PB_INDEX /**< Port of SEG14.*/
+#define LCD_SEG14_PIN 0U /**< Pin of SEG14.*/
+#define LCD_SEG15_PORT GPIO_PB_INDEX /**< Port of SEG15.*/
+#define LCD_SEG15_PIN 1U /**< Pin of SEG15.*/
+#define LCD_SEG16_PORT GPIO_PB_INDEX /**< Port of SEG16.*/
+#define LCD_SEG16_PIN 2U /**< Pin of SEG16.*/
+#define LCD_SEG17_PORT GPIO_PB_INDEX /**< Port of SEG17.*/
+#define LCD_SEG17_PIN 3U /**< Pin of SEG17.*/
+#define LCD_SEG18_PORT GPIO_PC_INDEX /**< Port of SEG18.*/
+#define LCD_SEG18_PIN 8U /**< Pin of SEG18.*/
+#define LCD_SEG19_PORT GPIO_PC_INDEX /**< Port of SEG19.*/
+#define LCD_SEG19_PIN 9U /**< Pin of SEG19.*/
+#define LCD_SEG2_PORT GPIO_PC_INDEX /**< Port of SEG2.*/
+#define LCD_SEG2_PIN 2U /**< Pin of SEG2.*/
+#define LCD_SEG3_PORT GPIO_PC_INDEX /**< Port of SEG3.*/
+#define LCD_SEG3_PIN 3U /**< Pin of SEG3.*/
+#define LCD_SEG4_PORT GPIO_PC_INDEX /**< Port of SEG4.*/
+#define LCD_SEG4_PIN 4U /**< Pin of SEG4.*/
+#define LCD_SEG5_PORT GPIO_PC_INDEX /**< Port of SEG5.*/
+#define LCD_SEG5_PIN 5U /**< Pin of SEG5.*/
+#define LCD_SEG6_PORT GPIO_PC_INDEX /**< Port of SEG6.*/
+#define LCD_SEG6_PIN 6U /**< Pin of SEG6.*/
+#define LCD_SEG7_PORT GPIO_PC_INDEX /**< Port of SEG7.*/
+#define LCD_SEG7_PIN 7U /**< Pin of SEG7.*/
+#define LCD_SEG8_PORT GPIO_PA_INDEX /**< Port of SEG8.*/
+#define LCD_SEG8_PIN 0U /**< Pin of SEG8.*/
+#define LCD_SEG9_PORT GPIO_PA_INDEX /**< Port of SEG9.*/
+#define LCD_SEG9_PIN 1U /**< Pin of SEG9.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LCD_PRESENT /** LCD is available in this part */
+#define LCD_COUNT 1 /** 1 LCDs available */
+#define LCDRF_PRESENT /** LCDRF is available in this part */
+#define LCDRF_COUNT 1 /** 1 LCDRFs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23A020F512GM48_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48_Peripheral_TypeDefs EFR32ZG23A020F512GM48 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_lcd.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_lcdrf.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23A020F512GM48_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48_Peripheral_Base EFR32ZG23A020F512GM48 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define LCD_S_BASE (0x400AC000UL) /* LCD_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define LCDRF_S_BASE (0x400C0000UL) /* LCDRF_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define LCD_NS_BASE (0x500AC000UL) /* LCD_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define LCDRF_NS_BASE (0x500C0000UL) /* LCDRF_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCD_S) && (SL_TRUSTZONE_PERIPHERAL_LCD_S != 0)))
+#define LCD_BASE (LCD_S_BASE) /* LCD base address */
+#else
+#define LCD_BASE (LCD_NS_BASE) /* LCD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S) && (SL_TRUSTZONE_PERIPHERAL_LCDRF_S != 0)))
+#define LCDRF_BASE (LCDRF_S_BASE) /* LCDRF base address */
+#else
+#define LCDRF_BASE (LCDRF_NS_BASE) /* LCDRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCDRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23A020F512GM48_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48_Peripheral_Declaration EFR32ZG23A020F512GM48 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define LCD_S ((LCD_TypeDef *) LCD_S_BASE) /**< LCD_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define LCDRF_S ((LCDRF_TypeDef *) LCDRF_S_BASE) /**< LCDRF_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define LCD_NS ((LCD_TypeDef *) LCD_NS_BASE) /**< LCD_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define LCDRF_NS ((LCDRF_TypeDef *) LCDRF_NS_BASE) /**< LCDRF_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define LCD ((LCD_TypeDef *) LCD_BASE) /**< LCD base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define LCDRF ((LCDRF_TypeDef *) LCDRF_BASE) /**< LCDRF base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23A020F512GM48_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23A020F512GM48_Peripheral_Parameters EFR32ZG23A020F512GM48 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define LCD_COM_NUM 0x4UL /**> None */
+#define LCD_NO_ANIM_LOCS 0x1UL /**> None */
+#define LCD_NO_BANKED_SEG 0x1UL /**> */
+#define LCD_NO_DSC 0x0UL /**> None */
+#define LCD_NO_EXTOSC 0x0UL /**> None */
+#define LCD_NO_UPPER_SEGMENTS 0x1UL /**> */
+#define LCD_OCTAPLEX 0x0UL /**> None */
+#define LCD_SEGASCOM_NUM 0x4UL /**> None */
+#define LCD_SEG_NUM 0x14UL /**> None */
+#define LCD_SEL_WIDTH 0x3UL /**> None */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23A020F512GM48_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23A020F512GM48 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im40.h
new file mode 100644
index 000000000..6d31c464f
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im40.h
@@ -0,0 +1,1456 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B010F512IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B010F512IM40_H
+#define EFR32ZG23B010F512IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40 EFR32ZG23B010F512IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40_Core EFR32ZG23B010F512IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B010F512IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B010F512IM40_Part EFR32ZG23B010F512IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B010F512IM40)
+#define EFR32ZG23B010F512IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B010F512IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 14 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B010F512IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 7U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B010F512IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40_Peripheral_TypeDefs EFR32ZG23B010F512IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B010F512IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40_Peripheral_Base EFR32ZG23B010F512IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B010F512IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40_Peripheral_Declaration EFR32ZG23B010F512IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B010F512IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM40_Peripheral_Parameters EFR32ZG23B010F512IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B010F512IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B010F512IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im48.h
new file mode 100644
index 000000000..583532406
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b010f512im48.h
@@ -0,0 +1,1553 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B010F512IM48
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B010F512IM48_H
+#define EFR32ZG23B010F512IM48_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48 EFR32ZG23B010F512IM48
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ LCD_IRQn = 72, /*!< 72 EFR32 LCD Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48_Core EFR32ZG23B010F512IM48 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B010F512IM48_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B010F512IM48_Part EFR32ZG23B010F512IM48 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B010F512IM48)
+#define EFR32ZG23B010F512IM48 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B010F512IM48" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 14 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B010F512IM48 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 11U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x07FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PA_PIN9 1U /**< GPIO pin PA9 is present. */
+#define GPIO_PA_PIN10 1U /**< GPIO pin PA10 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 4U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x000FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 10U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x03FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PC_PIN8 1U /**< GPIO pin PC8 is present. */
+#define GPIO_PC_PIN9 1U /**< GPIO pin PC9 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 6U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x003FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+#define GPIO_PD_PIN4 1U /**< GPIO pin PD4 is present. */
+#define GPIO_PD_PIN5 1U /**< GPIO pin PD5 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU10_PORT GPIO_PD_INDEX /**< Port of EM4WU10.*/
+#define GPIO_EM4WU10_PIN 5U /**< Pin of EM4WU10.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 9U /**< Pin of THMSW_EN.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LCD_COM0_PORT GPIO_PD_INDEX /**< Port of COM0.*/
+#define LCD_COM0_PIN 2U /**< Pin of COM0.*/
+#define LCD_COM1_PORT GPIO_PD_INDEX /**< Port of COM1.*/
+#define LCD_COM1_PIN 3U /**< Pin of COM1.*/
+#define LCD_COM2_PORT GPIO_PD_INDEX /**< Port of COM2.*/
+#define LCD_COM2_PIN 4U /**< Pin of COM2.*/
+#define LCD_COM3_PORT GPIO_PD_INDEX /**< Port of COM3.*/
+#define LCD_COM3_PIN 5U /**< Pin of COM3.*/
+#define LCD_LCD_CP_PORT GPIO_PA_INDEX /**< Port of LCD_CP.*/
+#define LCD_LCD_CP_PIN 6U /**< Pin of LCD_CP.*/
+#define LCD_SEG0_PORT GPIO_PC_INDEX /**< Port of SEG0.*/
+#define LCD_SEG0_PIN 0U /**< Pin of SEG0.*/
+#define LCD_SEG1_PORT GPIO_PC_INDEX /**< Port of SEG1.*/
+#define LCD_SEG1_PIN 1U /**< Pin of SEG1.*/
+#define LCD_SEG10_PORT GPIO_PA_INDEX /**< Port of SEG10.*/
+#define LCD_SEG10_PIN 4U /**< Pin of SEG10.*/
+#define LCD_SEG11_PORT GPIO_PA_INDEX /**< Port of SEG11.*/
+#define LCD_SEG11_PIN 5U /**< Pin of SEG11.*/
+#define LCD_SEG12_PORT GPIO_PA_INDEX /**< Port of SEG12.*/
+#define LCD_SEG12_PIN 7U /**< Pin of SEG12.*/
+#define LCD_SEG13_PORT GPIO_PA_INDEX /**< Port of SEG13.*/
+#define LCD_SEG13_PIN 8U /**< Pin of SEG13.*/
+#define LCD_SEG14_PORT GPIO_PB_INDEX /**< Port of SEG14.*/
+#define LCD_SEG14_PIN 0U /**< Pin of SEG14.*/
+#define LCD_SEG15_PORT GPIO_PB_INDEX /**< Port of SEG15.*/
+#define LCD_SEG15_PIN 1U /**< Pin of SEG15.*/
+#define LCD_SEG16_PORT GPIO_PB_INDEX /**< Port of SEG16.*/
+#define LCD_SEG16_PIN 2U /**< Pin of SEG16.*/
+#define LCD_SEG17_PORT GPIO_PB_INDEX /**< Port of SEG17.*/
+#define LCD_SEG17_PIN 3U /**< Pin of SEG17.*/
+#define LCD_SEG18_PORT GPIO_PC_INDEX /**< Port of SEG18.*/
+#define LCD_SEG18_PIN 8U /**< Pin of SEG18.*/
+#define LCD_SEG19_PORT GPIO_PC_INDEX /**< Port of SEG19.*/
+#define LCD_SEG19_PIN 9U /**< Pin of SEG19.*/
+#define LCD_SEG2_PORT GPIO_PC_INDEX /**< Port of SEG2.*/
+#define LCD_SEG2_PIN 2U /**< Pin of SEG2.*/
+#define LCD_SEG3_PORT GPIO_PC_INDEX /**< Port of SEG3.*/
+#define LCD_SEG3_PIN 3U /**< Pin of SEG3.*/
+#define LCD_SEG4_PORT GPIO_PC_INDEX /**< Port of SEG4.*/
+#define LCD_SEG4_PIN 4U /**< Pin of SEG4.*/
+#define LCD_SEG5_PORT GPIO_PC_INDEX /**< Port of SEG5.*/
+#define LCD_SEG5_PIN 5U /**< Pin of SEG5.*/
+#define LCD_SEG6_PORT GPIO_PC_INDEX /**< Port of SEG6.*/
+#define LCD_SEG6_PIN 6U /**< Pin of SEG6.*/
+#define LCD_SEG7_PORT GPIO_PC_INDEX /**< Port of SEG7.*/
+#define LCD_SEG7_PIN 7U /**< Pin of SEG7.*/
+#define LCD_SEG8_PORT GPIO_PA_INDEX /**< Port of SEG8.*/
+#define LCD_SEG8_PIN 0U /**< Pin of SEG8.*/
+#define LCD_SEG9_PORT GPIO_PA_INDEX /**< Port of SEG9.*/
+#define LCD_SEG9_PIN 1U /**< Pin of SEG9.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LCD_PRESENT /** LCD is available in this part */
+#define LCD_COUNT 1 /** 1 LCDs available */
+#define LCDRF_PRESENT /** LCDRF is available in this part */
+#define LCDRF_COUNT 1 /** 1 LCDRFs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B010F512IM48_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48_Peripheral_TypeDefs EFR32ZG23B010F512IM48 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_lcd.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_lcdrf.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B010F512IM48_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48_Peripheral_Base EFR32ZG23B010F512IM48 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define LCD_S_BASE (0x400AC000UL) /* LCD_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define LCDRF_S_BASE (0x400C0000UL) /* LCDRF_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define LCD_NS_BASE (0x500AC000UL) /* LCD_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define LCDRF_NS_BASE (0x500C0000UL) /* LCDRF_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCD_S) && (SL_TRUSTZONE_PERIPHERAL_LCD_S != 0)))
+#define LCD_BASE (LCD_S_BASE) /* LCD base address */
+#else
+#define LCD_BASE (LCD_NS_BASE) /* LCD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S) && (SL_TRUSTZONE_PERIPHERAL_LCDRF_S != 0)))
+#define LCDRF_BASE (LCDRF_S_BASE) /* LCDRF base address */
+#else
+#define LCDRF_BASE (LCDRF_NS_BASE) /* LCDRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCDRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B010F512IM48_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48_Peripheral_Declaration EFR32ZG23B010F512IM48 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define LCD_S ((LCD_TypeDef *) LCD_S_BASE) /**< LCD_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define LCDRF_S ((LCDRF_TypeDef *) LCDRF_S_BASE) /**< LCDRF_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define LCD_NS ((LCD_TypeDef *) LCD_NS_BASE) /**< LCD_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define LCDRF_NS ((LCDRF_TypeDef *) LCDRF_NS_BASE) /**< LCDRF_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define LCD ((LCD_TypeDef *) LCD_BASE) /**< LCD base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define LCDRF ((LCDRF_TypeDef *) LCDRF_BASE) /**< LCDRF base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B010F512IM48_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B010F512IM48_Peripheral_Parameters EFR32ZG23B010F512IM48 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define LCD_COM_NUM 0x4UL /**> None */
+#define LCD_NO_ANIM_LOCS 0x1UL /**> None */
+#define LCD_NO_BANKED_SEG 0x1UL /**> */
+#define LCD_NO_DSC 0x0UL /**> None */
+#define LCD_NO_EXTOSC 0x0UL /**> None */
+#define LCD_NO_UPPER_SEGMENTS 0x1UL /**> */
+#define LCD_OCTAPLEX 0x0UL /**> None */
+#define LCD_SEGASCOM_NUM 0x4UL /**> None */
+#define LCD_SEG_NUM 0x14UL /**> None */
+#define LCD_SEL_WIDTH 0x3UL /**> None */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B010F512IM48_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B010F512IM48 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b011f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b011f512im40.h
new file mode 100644
index 000000000..cdc6881e8
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b011f512im40.h
@@ -0,0 +1,1453 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B011F512IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B011F512IM40_H
+#define EFR32ZG23B011F512IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40 EFR32ZG23B011F512IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40_Core EFR32ZG23B011F512IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B011F512IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B011F512IM40_Part EFR32ZG23B011F512IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B011F512IM40)
+#define EFR32ZG23B011F512IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B011F512IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 14 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B011F512IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 7U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x007FUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 6U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B011F512IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40_Peripheral_TypeDefs EFR32ZG23B011F512IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B011F512IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40_Peripheral_Base EFR32ZG23B011F512IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B011F512IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40_Peripheral_Declaration EFR32ZG23B011F512IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B011F512IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B011F512IM40_Peripheral_Parameters EFR32ZG23B011F512IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B011F512IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B011F512IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im40.h
new file mode 100644
index 000000000..1f081c440
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im40.h
@@ -0,0 +1,1456 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B020F512IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B020F512IM40_H
+#define EFR32ZG23B020F512IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40 EFR32ZG23B020F512IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40_Core EFR32ZG23B020F512IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B020F512IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B020F512IM40_Part EFR32ZG23B020F512IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B020F512IM40)
+#define EFR32ZG23B020F512IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B020F512IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 20 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B020F512IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 8U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x00FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 7U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B020F512IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40_Peripheral_TypeDefs EFR32ZG23B020F512IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B020F512IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40_Peripheral_Base EFR32ZG23B020F512IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B020F512IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40_Peripheral_Declaration EFR32ZG23B020F512IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B020F512IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM40_Peripheral_Parameters EFR32ZG23B020F512IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B020F512IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B020F512IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im48.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im48.h
new file mode 100644
index 000000000..be86ec9ea
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b020f512im48.h
@@ -0,0 +1,1553 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B020F512IM48
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B020F512IM48_H
+#define EFR32ZG23B020F512IM48_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48 EFR32ZG23B020F512IM48
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ LCD_IRQn = 72, /*!< 72 EFR32 LCD Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48_Core EFR32ZG23B020F512IM48 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B020F512IM48_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B020F512IM48_Part EFR32ZG23B020F512IM48 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B020F512IM48)
+#define EFR32ZG23B020F512IM48 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B020F512IM48" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 20 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B020F512IM48 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 11U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x07FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PA_PIN9 1U /**< GPIO pin PA9 is present. */
+#define GPIO_PA_PIN10 1U /**< GPIO pin PA10 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 4U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x000FUL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PB_PIN2 1U /**< GPIO pin PB2 is present. */
+#define GPIO_PB_PIN3 1U /**< GPIO pin PB3 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 10U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x03FFUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PC_PIN7 1U /**< GPIO pin PC7 is present. */
+#define GPIO_PC_PIN8 1U /**< GPIO pin PC8 is present. */
+#define GPIO_PC_PIN9 1U /**< GPIO pin PC9 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 6U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x003FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+#define GPIO_PD_PIN4 1U /**< GPIO pin PD4 is present. */
+#define GPIO_PD_PIN5 1U /**< GPIO pin PD5 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU10_PORT GPIO_PD_INDEX /**< Port of EM4WU10.*/
+#define GPIO_EM4WU10_PIN 5U /**< Pin of EM4WU10.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU4_PORT GPIO_PB_INDEX /**< Port of EM4WU4.*/
+#define GPIO_EM4WU4_PIN 3U /**< Pin of EM4WU4.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU8_PORT GPIO_PC_INDEX /**< Port of EM4WU8.*/
+#define GPIO_EM4WU8_PIN 7U /**< Pin of EM4WU8.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 9U /**< Pin of THMSW_EN.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LCD_COM0_PORT GPIO_PD_INDEX /**< Port of COM0.*/
+#define LCD_COM0_PIN 2U /**< Pin of COM0.*/
+#define LCD_COM1_PORT GPIO_PD_INDEX /**< Port of COM1.*/
+#define LCD_COM1_PIN 3U /**< Pin of COM1.*/
+#define LCD_COM2_PORT GPIO_PD_INDEX /**< Port of COM2.*/
+#define LCD_COM2_PIN 4U /**< Pin of COM2.*/
+#define LCD_COM3_PORT GPIO_PD_INDEX /**< Port of COM3.*/
+#define LCD_COM3_PIN 5U /**< Pin of COM3.*/
+#define LCD_LCD_CP_PORT GPIO_PA_INDEX /**< Port of LCD_CP.*/
+#define LCD_LCD_CP_PIN 6U /**< Pin of LCD_CP.*/
+#define LCD_SEG0_PORT GPIO_PC_INDEX /**< Port of SEG0.*/
+#define LCD_SEG0_PIN 0U /**< Pin of SEG0.*/
+#define LCD_SEG1_PORT GPIO_PC_INDEX /**< Port of SEG1.*/
+#define LCD_SEG1_PIN 1U /**< Pin of SEG1.*/
+#define LCD_SEG10_PORT GPIO_PA_INDEX /**< Port of SEG10.*/
+#define LCD_SEG10_PIN 4U /**< Pin of SEG10.*/
+#define LCD_SEG11_PORT GPIO_PA_INDEX /**< Port of SEG11.*/
+#define LCD_SEG11_PIN 5U /**< Pin of SEG11.*/
+#define LCD_SEG12_PORT GPIO_PA_INDEX /**< Port of SEG12.*/
+#define LCD_SEG12_PIN 7U /**< Pin of SEG12.*/
+#define LCD_SEG13_PORT GPIO_PA_INDEX /**< Port of SEG13.*/
+#define LCD_SEG13_PIN 8U /**< Pin of SEG13.*/
+#define LCD_SEG14_PORT GPIO_PB_INDEX /**< Port of SEG14.*/
+#define LCD_SEG14_PIN 0U /**< Pin of SEG14.*/
+#define LCD_SEG15_PORT GPIO_PB_INDEX /**< Port of SEG15.*/
+#define LCD_SEG15_PIN 1U /**< Pin of SEG15.*/
+#define LCD_SEG16_PORT GPIO_PB_INDEX /**< Port of SEG16.*/
+#define LCD_SEG16_PIN 2U /**< Pin of SEG16.*/
+#define LCD_SEG17_PORT GPIO_PB_INDEX /**< Port of SEG17.*/
+#define LCD_SEG17_PIN 3U /**< Pin of SEG17.*/
+#define LCD_SEG18_PORT GPIO_PC_INDEX /**< Port of SEG18.*/
+#define LCD_SEG18_PIN 8U /**< Pin of SEG18.*/
+#define LCD_SEG19_PORT GPIO_PC_INDEX /**< Port of SEG19.*/
+#define LCD_SEG19_PIN 9U /**< Pin of SEG19.*/
+#define LCD_SEG2_PORT GPIO_PC_INDEX /**< Port of SEG2.*/
+#define LCD_SEG2_PIN 2U /**< Pin of SEG2.*/
+#define LCD_SEG3_PORT GPIO_PC_INDEX /**< Port of SEG3.*/
+#define LCD_SEG3_PIN 3U /**< Pin of SEG3.*/
+#define LCD_SEG4_PORT GPIO_PC_INDEX /**< Port of SEG4.*/
+#define LCD_SEG4_PIN 4U /**< Pin of SEG4.*/
+#define LCD_SEG5_PORT GPIO_PC_INDEX /**< Port of SEG5.*/
+#define LCD_SEG5_PIN 5U /**< Pin of SEG5.*/
+#define LCD_SEG6_PORT GPIO_PC_INDEX /**< Port of SEG6.*/
+#define LCD_SEG6_PIN 6U /**< Pin of SEG6.*/
+#define LCD_SEG7_PORT GPIO_PC_INDEX /**< Port of SEG7.*/
+#define LCD_SEG7_PIN 7U /**< Pin of SEG7.*/
+#define LCD_SEG8_PORT GPIO_PA_INDEX /**< Port of SEG8.*/
+#define LCD_SEG8_PIN 0U /**< Pin of SEG8.*/
+#define LCD_SEG9_PORT GPIO_PA_INDEX /**< Port of SEG9.*/
+#define LCD_SEG9_PIN 1U /**< Pin of SEG9.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LCD_PRESENT /** LCD is available in this part */
+#define LCD_COUNT 1 /** 1 LCDs available */
+#define LCDRF_PRESENT /** LCDRF is available in this part */
+#define LCDRF_COUNT 1 /** 1 LCDRFs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B020F512IM48_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48_Peripheral_TypeDefs EFR32ZG23B020F512IM48 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_lcd.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_lcdrf.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B020F512IM48_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48_Peripheral_Base EFR32ZG23B020F512IM48 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define LCD_S_BASE (0x400AC000UL) /* LCD_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define LCDRF_S_BASE (0x400C0000UL) /* LCDRF_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define LCD_NS_BASE (0x500AC000UL) /* LCD_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define LCDRF_NS_BASE (0x500C0000UL) /* LCDRF_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCD_S) && (SL_TRUSTZONE_PERIPHERAL_LCD_S != 0)))
+#define LCD_BASE (LCD_S_BASE) /* LCD base address */
+#else
+#define LCD_BASE (LCD_NS_BASE) /* LCD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LCDRF_S) && (SL_TRUSTZONE_PERIPHERAL_LCDRF_S != 0)))
+#define LCDRF_BASE (LCDRF_S_BASE) /* LCDRF base address */
+#else
+#define LCDRF_BASE (LCDRF_NS_BASE) /* LCDRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LCDRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B020F512IM48_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48_Peripheral_Declaration EFR32ZG23B020F512IM48 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define LCD_S ((LCD_TypeDef *) LCD_S_BASE) /**< LCD_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define LCDRF_S ((LCDRF_TypeDef *) LCDRF_S_BASE) /**< LCDRF_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define LCD_NS ((LCD_TypeDef *) LCD_NS_BASE) /**< LCD_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define LCDRF_NS ((LCDRF_TypeDef *) LCDRF_NS_BASE) /**< LCDRF_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define LCD ((LCD_TypeDef *) LCD_BASE) /**< LCD base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define LCDRF ((LCDRF_TypeDef *) LCDRF_BASE) /**< LCDRF base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B020F512IM48_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B020F512IM48_Peripheral_Parameters EFR32ZG23B020F512IM48 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define LCD_COM_NUM 0x4UL /**> None */
+#define LCD_NO_ANIM_LOCS 0x1UL /**> None */
+#define LCD_NO_BANKED_SEG 0x1UL /**> */
+#define LCD_NO_DSC 0x0UL /**> None */
+#define LCD_NO_EXTOSC 0x0UL /**> None */
+#define LCD_NO_UPPER_SEGMENTS 0x1UL /**> */
+#define LCD_OCTAPLEX 0x0UL /**> None */
+#define LCD_SEGASCOM_NUM 0x4UL /**> None */
+#define LCD_SEG_NUM 0x14UL /**> None */
+#define LCD_SEL_WIDTH 0x3UL /**> None */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B020F512IM48_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B020F512IM48 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b021f512im40.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b021f512im40.h
new file mode 100644
index 000000000..c372fe321
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/efr32zg23b021f512im40.h
@@ -0,0 +1,1453 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer Header File
+ * for EFR32ZG23B021F512IM40
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+#ifndef EFR32ZG23B021F512IM40_H
+#define EFR32ZG23B021F512IM40_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ *****************************************************************************/
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40 EFR32ZG23B021F512IM40
+ * @{
+ *****************************************************************************/
+
+/** Interrupt Number Definition */
+typedef enum IRQn{
+ /****** Cortex-M Processor Exceptions Numbers ******************************************/
+ NonMaskableInt_IRQn = -14, /*!< -14 Cortex-M Non Maskable Interrupt */
+ HardFault_IRQn = -13, /*!< -13 Cortex-M Hard Fault Interrupt */
+ MemoryManagement_IRQn = -12, /*!< -12 Cortex-M Memory Management Interrupt */
+ BusFault_IRQn = -11, /*!< -11 Cortex-M Bus Fault Interrupt */
+ UsageFault_IRQn = -10, /*!< -10 Cortex-M Usage Fault Interrupt */
+#if defined(CONFIG_ARM_SECURE_FIRMWARE)
+ SecureFault_IRQn = -9,
+#endif
+ SVCall_IRQn = -5, /*!< -5 Cortex-M SV Call Interrupt */
+ DebugMonitor_IRQn = -4, /*!< -4 Cortex-M Debug Monitor Interrupt */
+ PendSV_IRQn = -2, /*!< -2 Cortex-M Pend SV Interrupt */
+ SysTick_IRQn = -1, /*!< -1 Cortex-M System Tick Interrupt */
+
+ /****** EFR32ZG23 Peripheral Interrupt Numbers ******************************************/
+
+ SMU_SECURE_IRQn = 0, /*!< 0 EFR32 SMU_SECURE Interrupt */
+ SMU_S_PRIVILEGED_IRQn = 1, /*!< 1 EFR32 SMU_S_PRIVILEGED Interrupt */
+ SMU_NS_PRIVILEGED_IRQn = 2, /*!< 2 EFR32 SMU_NS_PRIVILEGED Interrupt */
+ EMU_IRQn = 3, /*!< 3 EFR32 EMU Interrupt */
+ TIMER0_IRQn = 4, /*!< 4 EFR32 TIMER0 Interrupt */
+ TIMER1_IRQn = 5, /*!< 5 EFR32 TIMER1 Interrupt */
+ TIMER2_IRQn = 6, /*!< 6 EFR32 TIMER2 Interrupt */
+ TIMER3_IRQn = 7, /*!< 7 EFR32 TIMER3 Interrupt */
+ TIMER4_IRQn = 8, /*!< 8 EFR32 TIMER4 Interrupt */
+ USART0_RX_IRQn = 9, /*!< 9 EFR32 USART0_RX Interrupt */
+ USART0_TX_IRQn = 10, /*!< 10 EFR32 USART0_TX Interrupt */
+ EUSART0_RX_IRQn = 11, /*!< 11 EFR32 EUSART0_RX Interrupt */
+ EUSART0_TX_IRQn = 12, /*!< 12 EFR32 EUSART0_TX Interrupt */
+ EUSART1_RX_IRQn = 13, /*!< 13 EFR32 EUSART1_RX Interrupt */
+ EUSART1_TX_IRQn = 14, /*!< 14 EFR32 EUSART1_TX Interrupt */
+ EUSART2_RX_IRQn = 15, /*!< 15 EFR32 EUSART2_RX Interrupt */
+ EUSART2_TX_IRQn = 16, /*!< 16 EFR32 EUSART2_TX Interrupt */
+ ICACHE0_IRQn = 17, /*!< 17 EFR32 ICACHE0 Interrupt */
+ BURTC_IRQn = 18, /*!< 18 EFR32 BURTC Interrupt */
+ LETIMER0_IRQn = 19, /*!< 19 EFR32 LETIMER0 Interrupt */
+ SYSCFG_IRQn = 20, /*!< 20 EFR32 SYSCFG Interrupt */
+ MPAHBRAM_IRQn = 21, /*!< 21 EFR32 MPAHBRAM Interrupt */
+ LDMA_IRQn = 22, /*!< 22 EFR32 LDMA Interrupt */
+ LFXO_IRQn = 23, /*!< 23 EFR32 LFXO Interrupt */
+ LFRCO_IRQn = 24, /*!< 24 EFR32 LFRCO Interrupt */
+ ULFRCO_IRQn = 25, /*!< 25 EFR32 ULFRCO Interrupt */
+ GPIO_ODD_IRQn = 26, /*!< 26 EFR32 GPIO_ODD Interrupt */
+ GPIO_EVEN_IRQn = 27, /*!< 27 EFR32 GPIO_EVEN Interrupt */
+ I2C0_IRQn = 28, /*!< 28 EFR32 I2C0 Interrupt */
+ I2C1_IRQn = 29, /*!< 29 EFR32 I2C1 Interrupt */
+ EMUDG_IRQn = 30, /*!< 30 EFR32 EMUDG Interrupt */
+ AGC_IRQn = 31, /*!< 31 EFR32 AGC Interrupt */
+ BUFC_IRQn = 32, /*!< 32 EFR32 BUFC Interrupt */
+ FRC_PRI_IRQn = 33, /*!< 33 EFR32 FRC_PRI Interrupt */
+ FRC_IRQn = 34, /*!< 34 EFR32 FRC Interrupt */
+ MODEM_IRQn = 35, /*!< 35 EFR32 MODEM Interrupt */
+ PROTIMER_IRQn = 36, /*!< 36 EFR32 PROTIMER Interrupt */
+ RAC_RSM_IRQn = 37, /*!< 37 EFR32 RAC_RSM Interrupt */
+ RAC_SEQ_IRQn = 38, /*!< 38 EFR32 RAC_SEQ Interrupt */
+ HOSTMAILBOX_IRQn = 39, /*!< 39 EFR32 HOSTMAILBOX Interrupt */
+ SYNTH_IRQn = 40, /*!< 40 EFR32 SYNTH Interrupt */
+ ACMP0_IRQn = 41, /*!< 41 EFR32 ACMP0 Interrupt */
+ ACMP1_IRQn = 42, /*!< 42 EFR32 ACMP1 Interrupt */
+ WDOG0_IRQn = 43, /*!< 43 EFR32 WDOG0 Interrupt */
+ WDOG1_IRQn = 44, /*!< 44 EFR32 WDOG1 Interrupt */
+ HFXO0_IRQn = 45, /*!< 45 EFR32 HFXO0 Interrupt */
+ HFRCO0_IRQn = 46, /*!< 46 EFR32 HFRCO0 Interrupt */
+ HFRCOEM23_IRQn = 47, /*!< 47 EFR32 HFRCOEM23 Interrupt */
+ CMU_IRQn = 48, /*!< 48 EFR32 CMU Interrupt */
+ AES_IRQn = 49, /*!< 49 EFR32 AES Interrupt */
+ IADC_IRQn = 50, /*!< 50 EFR32 IADC Interrupt */
+ MSC_IRQn = 51, /*!< 51 EFR32 MSC Interrupt */
+ DPLL0_IRQn = 52, /*!< 52 EFR32 DPLL0 Interrupt */
+ EMUEFP_IRQn = 53, /*!< 53 EFR32 EMUEFP Interrupt */
+ DCDC_IRQn = 54, /*!< 54 EFR32 DCDC Interrupt */
+ VDAC_IRQn = 55, /*!< 55 EFR32 VDAC Interrupt */
+ PCNT0_IRQn = 56, /*!< 56 EFR32 PCNT0 Interrupt */
+ SW0_IRQn = 57, /*!< 57 EFR32 SW0 Interrupt */
+ SW1_IRQn = 58, /*!< 58 EFR32 SW1 Interrupt */
+ SW2_IRQn = 59, /*!< 59 EFR32 SW2 Interrupt */
+ SW3_IRQn = 60, /*!< 60 EFR32 SW3 Interrupt */
+ KERNEL0_IRQn = 61, /*!< 61 EFR32 KERNEL0 Interrupt */
+ KERNEL1_IRQn = 62, /*!< 62 EFR32 KERNEL1 Interrupt */
+ M33CTI0_IRQn = 63, /*!< 63 EFR32 M33CTI0 Interrupt */
+ M33CTI1_IRQn = 64, /*!< 64 EFR32 M33CTI1 Interrupt */
+ FPUEXH_IRQn = 65, /*!< 65 EFR32 FPUEXH Interrupt */
+ SETAMPERHOST_IRQn = 66, /*!< 66 EFR32 SETAMPERHOST Interrupt */
+ SEMBRX_IRQn = 67, /*!< 67 EFR32 SEMBRX Interrupt */
+ SEMBTX_IRQn = 68, /*!< 68 EFR32 SEMBTX Interrupt */
+ LESENSE_IRQn = 69, /*!< 69 EFR32 LESENSE Interrupt */
+ SYSRTC_APP_IRQn = 70, /*!< 70 EFR32 SYSRTC_APP Interrupt */
+ SYSRTC_SEQ_IRQn = 71, /*!< 71 EFR32 SYSRTC_SEQ Interrupt */
+ KEYSCAN_IRQn = 73, /*!< 73 EFR32 KEYSCAN Interrupt */
+ RFECA0_IRQn = 74, /*!< 74 EFR32 RFECA0 Interrupt */
+ RFECA1_IRQn = 75, /*!< 75 EFR32 RFECA1 Interrupt */
+} IRQn_Type;
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40_Core EFR32ZG23B021F512IM40 Core
+ * @{
+ * @brief Processor and Core Peripheral Section
+ *****************************************************************************/
+
+#define __CORTEXM 1U /**< Core architecture */
+#define __CM33_REV 0x0004U /**< Cortex-M33 Core revision */
+#define __DSP_PRESENT 1U /**< Presence of DSP */
+#define __FPU_PRESENT 1U /**< Presence of FPU */
+#define __MPU_PRESENT 1U /**< Presence of MPU */
+#define __SAUREGION_PRESENT 1U /**< Presence of FPU */
+#define __TZ_PRESENT 1U /**< Presence of TrustZone */
+#define __VTOR_PRESENT 1U /**< Presence of VTOR register in SCB */
+#define __NVIC_PRIO_BITS 4U /**< NVIC interrupt priority bits */
+#define __Vendor_SysTickConfig 0U /**< Is 1 if different SysTick counter is used */
+
+/** @} End of group EFR32ZG23B021F512IM40_Core */
+
+/**************************************************************************//**
+* @defgroup EFR32ZG23B021F512IM40_Part EFR32ZG23B021F512IM40 Part
+* @{
+******************************************************************************/
+
+/** Part number */
+
+/* If part number is not defined as compiler option, define it */
+#if !defined(EFR32ZG23B021F512IM40)
+#define EFR32ZG23B021F512IM40 1 /**< FULL Part */
+#endif
+
+/** Configure part number */
+#define PART_NUMBER "EFR32ZG23B021F512IM40" /**< Part Number */
+
+/** Family / Line / Series / Config */
+#define _EFR32_ZWAVE_FAMILY 1 /** Device Family Name Identifier */
+#define _EFR32_ZG_FAMILY 1 /** Device Family Identifier */
+#define _EFR_DEVICE 1 /** Product Line Identifier */
+#define _SILICON_LABS_32B_SERIES_2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES 2 /** Product Series Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG_3 /** Product Config Identifier */
+#define _SILICON_LABS_32B_SERIES_2_CONFIG 3 /** Product Config Identifier */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID 210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_GECKO_INTERNAL_SDID_210 /** Silicon Labs internal use only */
+#define _SILICON_LABS_SECURITY_FEATURE_SE 0 /** Mid */
+#define _SILICON_LABS_SECURITY_FEATURE_VAULT 1 /** High */
+#define _SILICON_LABS_SECURITY_FEATURE_ROT 2 /** Root of Trust */
+#define _SILICON_LABS_SECURITY_FEATURE_BASE 3 /** Base */
+#define _SILICON_LABS_SECURITY_FEATURE _SILICON_LABS_SECURITY_FEATURE_VAULT /** Security feature set */
+#define _SILICON_LABS_DCDC_FEATURE_NOTUSED 0 /** Not Used */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK 1 /** Includes Buck DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST 2 /** Includes Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE_DCDC_BOB 3 /** Includes Buck or Boost DCDC */
+#define _SILICON_LABS_DCDC_FEATURE _SILICON_LABS_DCDC_FEATURE_DCDC_BUCK /** DCDC feature set */
+#define _SILICON_LABS_EFR32_RADIO_NONE 0 /** No radio present */
+#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1 /** Radio supports Sub-GHz */
+#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2 /** Radio supports 2.4 GHz */
+#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 /** Radio supports dual band */
+#define _SILICON_LABS_EFR32_RADIO_TYPE _SILICON_LABS_EFR32_RADIO_SUBGHZ /** Radio type */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_MAX_OUTPUT_DBM 20 /** Radio SUBGHZ HP PA output power */
+#define _SILICON_LABS_EFR32_SUBGHZ_HP_PA_PRESENT /** Radio SUBGHZ HP PA is present */
+
+/** Memory Base addresses and limits */
+#define FLASH_MEM_BASE (0x08000000UL) /** FLASH_MEM base address */
+#define FLASH_MEM_SIZE (0x00080000UL) /** FLASH_MEM available address space */
+#define FLASH_MEM_END (0x0807FFFFUL) /** FLASH_MEM end address */
+#define FLASH_MEM_BITS (0x14UL) /** FLASH_MEM used bits */
+#define MSC_FLASH_MEM_BASE (0x08000000UL) /** MSC_FLASH_MEM base address */
+#define MSC_FLASH_MEM_SIZE (0x00080000UL) /** MSC_FLASH_MEM available address space */
+#define MSC_FLASH_MEM_END (0x0807FFFFUL) /** MSC_FLASH_MEM end address */
+#define MSC_FLASH_MEM_BITS (0x14UL) /** MSC_FLASH_MEM used bits */
+#define MSC_FLASH_USERDATA_MEM_BASE (0x0FE00000UL) /** MSC_FLASH_USERDATA_MEM base address */
+#define MSC_FLASH_USERDATA_MEM_SIZE (0x00000400UL) /** MSC_FLASH_USERDATA_MEM available address space */
+#define MSC_FLASH_USERDATA_MEM_END (0x0FE003FFUL) /** MSC_FLASH_USERDATA_MEM end address */
+#define MSC_FLASH_USERDATA_MEM_BITS (0xBUL) /** MSC_FLASH_USERDATA_MEM used bits */
+#define USERDATA_BASE (0x0FE00000UL) /** USERDATA base address */
+#define USERDATA_SIZE (0x00000400UL) /** USERDATA available address space */
+#define USERDATA_END (0x0FE003FFUL) /** USERDATA end address */
+#define USERDATA_BITS (0xBUL) /** USERDATA used bits */
+#define MSC_FLASH_DEVINFO_MEM_BASE (0x0FE08000UL) /** MSC_FLASH_DEVINFO_MEM base address */
+#define MSC_FLASH_DEVINFO_MEM_SIZE (0x00000400UL) /** MSC_FLASH_DEVINFO_MEM available address space */
+#define MSC_FLASH_DEVINFO_MEM_END (0x0FE083FFUL) /** MSC_FLASH_DEVINFO_MEM end address */
+#define MSC_FLASH_DEVINFO_MEM_BITS (0xBUL) /** MSC_FLASH_DEVINFO_MEM used bits */
+#define MSC_FLASH_CHIPCONFIG_MEM_BASE (0x0FE08400UL) /** MSC_FLASH_CHIPCONFIG_MEM base address */
+#define MSC_FLASH_CHIPCONFIG_MEM_SIZE (0x00000600UL) /** MSC_FLASH_CHIPCONFIG_MEM available address space */
+#define MSC_FLASH_CHIPCONFIG_MEM_END (0x0FE089FFUL) /** MSC_FLASH_CHIPCONFIG_MEM end address */
+#define MSC_FLASH_CHIPCONFIG_MEM_BITS (0xBUL) /** MSC_FLASH_CHIPCONFIG_MEM used bits */
+#define DMEM_RAM0_RAM_MEM_BASE (0x20000000UL) /** DMEM_RAM0_RAM_MEM base address */
+#define DMEM_RAM0_RAM_MEM_SIZE (0x00010000UL) /** DMEM_RAM0_RAM_MEM available address space */
+#define DMEM_RAM0_RAM_MEM_END (0x2000FFFFUL) /** DMEM_RAM0_RAM_MEM end address */
+#define DMEM_RAM0_RAM_MEM_BITS (0x11UL) /** DMEM_RAM0_RAM_MEM used bits */
+#define RAM_MEM_BASE (0x20000000UL) /** RAM_MEM base address */
+#define RAM_MEM_SIZE (0x00010000UL) /** RAM_MEM available address space */
+#define RAM_MEM_END (0x2000FFFFUL) /** RAM_MEM end address */
+#define RAM_MEM_BITS (0x11UL) /** RAM_MEM used bits */
+#define RDMEM_SEQRAM_S_MEM_BASE (0xA0000000UL) /** RDMEM_SEQRAM_S_MEM base address */
+#define RDMEM_SEQRAM_S_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_S_MEM available address space */
+#define RDMEM_SEQRAM_S_MEM_END (0xA0003FFFUL) /** RDMEM_SEQRAM_S_MEM end address */
+#define RDMEM_SEQRAM_S_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_S_MEM used bits */
+#define RDMEM_FRCRAM_S_MEM_BASE (0xA0004000UL) /** RDMEM_FRCRAM_S_MEM base address */
+#define RDMEM_FRCRAM_S_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_S_MEM available address space */
+#define RDMEM_FRCRAM_S_MEM_END (0xA0004FFFUL) /** RDMEM_FRCRAM_S_MEM end address */
+#define RDMEM_FRCRAM_S_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_S_MEM used bits */
+#define RDMEM_SEQRAM_NS_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_NS_MEM base address */
+#define RDMEM_SEQRAM_NS_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_NS_MEM available address space */
+#define RDMEM_SEQRAM_NS_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_NS_MEM end address */
+#define RDMEM_SEQRAM_NS_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_NS_MEM used bits */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BASE (0xB0000000UL) /** RDMEM_SEQRAM_SEQRAM_MEM base address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_SIZE (0x00004000UL) /** RDMEM_SEQRAM_SEQRAM_MEM available address space */
+#define RDMEM_SEQRAM_SEQRAM_MEM_END (0xB0003FFFUL) /** RDMEM_SEQRAM_SEQRAM_MEM end address */
+#define RDMEM_SEQRAM_SEQRAM_MEM_BITS (0xFUL) /** RDMEM_SEQRAM_SEQRAM_MEM used bits */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_FRCRAM_MEM base address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_FRCRAM_MEM available address space */
+#define RDMEM_FRCRAM_FRCRAM_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_FRCRAM_MEM end address */
+#define RDMEM_FRCRAM_FRCRAM_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_FRCRAM_MEM used bits */
+#define RDMEM_FRCRAM_NS_MEM_BASE (0xB0004000UL) /** RDMEM_FRCRAM_NS_MEM base address */
+#define RDMEM_FRCRAM_NS_MEM_SIZE (0x00001000UL) /** RDMEM_FRCRAM_NS_MEM available address space */
+#define RDMEM_FRCRAM_NS_MEM_END (0xB0004FFFUL) /** RDMEM_FRCRAM_NS_MEM end address */
+#define RDMEM_FRCRAM_NS_MEM_BITS (0xDUL) /** RDMEM_FRCRAM_NS_MEM used bits */
+
+/** Flash and SRAM limits for EFR32ZG23B021F512IM40 */
+#define FLASH_BASE (0x08000000UL) /**< Flash Base Address */
+#define FLASH_SIZE (0x00080000UL) /**< Available Flash Memory */
+#define FLASH_PAGE_SIZE (0x00002000UL) /**< Flash Memory page size */
+#define SRAM_BASE (0x20000000UL) /**< SRAM Base Address */
+#define SRAM_SIZE (0x00010000UL) /**< Available SRAM Memory */
+#define DMA_CHAN_COUNT LDMA_CH_NUM /**< Number of DMA channels */
+#define EXT_IRQ_COUNT 76 /**< Number of External (NVIC) interrupts */
+
+/* GPIO Avalibility Info */
+#define GPIO_PA_INDEX 0U /**< Index of port PA */
+#define GPIO_PA_COUNT 9U /**< Number of pins on port PA */
+#define GPIO_PA_MASK (0x01FFUL) /**< Port PA pin mask */
+#define GPIO_PA_PIN0 1U /**< GPIO pin PA0 is present. */
+#define GPIO_PA_PIN1 1U /**< GPIO pin PA1 is present. */
+#define GPIO_PA_PIN2 1U /**< GPIO pin PA2 is present. */
+#define GPIO_PA_PIN3 1U /**< GPIO pin PA3 is present. */
+#define GPIO_PA_PIN4 1U /**< GPIO pin PA4 is present. */
+#define GPIO_PA_PIN5 1U /**< GPIO pin PA5 is present. */
+#define GPIO_PA_PIN6 1U /**< GPIO pin PA6 is present. */
+#define GPIO_PA_PIN7 1U /**< GPIO pin PA7 is present. */
+#define GPIO_PA_PIN8 1U /**< GPIO pin PA8 is present. */
+#define GPIO_PB_INDEX 1U /**< Index of port PB */
+#define GPIO_PB_COUNT 2U /**< Number of pins on port PB */
+#define GPIO_PB_MASK (0x0003UL) /**< Port PB pin mask */
+#define GPIO_PB_PIN0 1U /**< GPIO pin PB0 is present. */
+#define GPIO_PB_PIN1 1U /**< GPIO pin PB1 is present. */
+#define GPIO_PC_INDEX 2U /**< Index of port PC */
+#define GPIO_PC_COUNT 7U /**< Number of pins on port PC */
+#define GPIO_PC_MASK (0x007FUL) /**< Port PC pin mask */
+#define GPIO_PC_PIN0 1U /**< GPIO pin PC0 is present. */
+#define GPIO_PC_PIN1 1U /**< GPIO pin PC1 is present. */
+#define GPIO_PC_PIN2 1U /**< GPIO pin PC2 is present. */
+#define GPIO_PC_PIN3 1U /**< GPIO pin PC3 is present. */
+#define GPIO_PC_PIN4 1U /**< GPIO pin PC4 is present. */
+#define GPIO_PC_PIN5 1U /**< GPIO pin PC5 is present. */
+#define GPIO_PC_PIN6 1U /**< GPIO pin PC6 is present. */
+#define GPIO_PD_INDEX 3U /**< Index of port PD */
+#define GPIO_PD_COUNT 4U /**< Number of pins on port PD */
+#define GPIO_PD_MASK (0x000FUL) /**< Port PD pin mask */
+#define GPIO_PD_PIN0 1U /**< GPIO pin PD0 is present. */
+#define GPIO_PD_PIN1 1U /**< GPIO pin PD1 is present. */
+#define GPIO_PD_PIN2 1U /**< GPIO pin PD2 is present. */
+#define GPIO_PD_PIN3 1U /**< GPIO pin PD3 is present. */
+
+/* Fixed Resource Locations */
+#define GPIO_SWCLK_PORT GPIO_PA_INDEX /**< Port of SWCLK.*/
+#define GPIO_SWCLK_PIN 1U /**< Pin of SWCLK.*/
+#define GPIO_SWDIO_PORT GPIO_PA_INDEX /**< Port of SWDIO.*/
+#define GPIO_SWDIO_PIN 2U /**< Pin of SWDIO.*/
+#define GPIO_SWV_PORT GPIO_PA_INDEX /**< Port of SWV.*/
+#define GPIO_SWV_PIN 3U /**< Pin of SWV.*/
+#define GPIO_TDI_PORT GPIO_PA_INDEX /**< Port of TDI.*/
+#define GPIO_TDI_PIN 4U /**< Pin of TDI.*/
+#define GPIO_TDO_PORT GPIO_PA_INDEX /**< Port of TDO.*/
+#define GPIO_TDO_PIN 3U /**< Pin of TDO.*/
+#define GPIO_TRACECLK_PORT GPIO_PA_INDEX /**< Port of TRACECLK.*/
+#define GPIO_TRACECLK_PIN 4U /**< Pin of TRACECLK.*/
+#define GPIO_TRACEDATA0_PORT GPIO_PA_INDEX /**< Port of TRACEDATA0.*/
+#define GPIO_TRACEDATA0_PIN 3U /**< Pin of TRACEDATA0.*/
+#define GPIO_TRACEDATA1_PORT GPIO_PA_INDEX /**< Port of TRACEDATA1.*/
+#define GPIO_TRACEDATA1_PIN 5U /**< Pin of TRACEDATA1.*/
+#define GPIO_TRACEDATA2_PORT GPIO_PA_INDEX /**< Port of TRACEDATA2.*/
+#define GPIO_TRACEDATA2_PIN 6U /**< Pin of TRACEDATA2.*/
+#define GPIO_TRACEDATA3_PORT GPIO_PA_INDEX /**< Port of TRACEDATA3.*/
+#define GPIO_TRACEDATA3_PIN 7U /**< Pin of TRACEDATA3.*/
+#define GPIO_EM4WU0_PORT GPIO_PA_INDEX /**< Port of EM4WU0.*/
+#define GPIO_EM4WU0_PIN 5U /**< Pin of EM4WU0.*/
+#define GPIO_EM4WU3_PORT GPIO_PB_INDEX /**< Port of EM4WU3.*/
+#define GPIO_EM4WU3_PIN 1U /**< Pin of EM4WU3.*/
+#define GPIO_EM4WU6_PORT GPIO_PC_INDEX /**< Port of EM4WU6.*/
+#define GPIO_EM4WU6_PIN 0U /**< Pin of EM4WU6.*/
+#define GPIO_EM4WU7_PORT GPIO_PC_INDEX /**< Port of EM4WU7.*/
+#define GPIO_EM4WU7_PIN 5U /**< Pin of EM4WU7.*/
+#define GPIO_EM4WU9_PORT GPIO_PD_INDEX /**< Port of EM4WU9.*/
+#define GPIO_EM4WU9_PIN 2U /**< Pin of EM4WU9.*/
+#define GPIO_THMSW_EN_PORT GPIO_PC_INDEX /**< Port of THMSW_EN.*/
+#define GPIO_THMSW_EN_PIN 6U /**< Pin of THMSW_EN.*/
+#define GPIO_THMSW_EN_PRIMARY_PORT GPIO_PC_INDEX /**< Port of THMSW_EN_PRIMARY.*/
+#define GPIO_THMSW_EN_PRIMARY_PIN 9U /**< Pin of THMSW_EN_PRIMARY.*/
+#define IADC0_VREFP_PORT GPIO_PA_INDEX /**< Port of VREFP.*/
+#define IADC0_VREFP_PIN 0U /**< Pin of VREFP.*/
+#define LESENSE_EN_0_PORT GPIO_PA_INDEX /**< Port of EN_0.*/
+#define LESENSE_EN_0_PIN 3U /**< Pin of EN_0.*/
+#define LESENSE_EN_1_PORT GPIO_PA_INDEX /**< Port of EN_1.*/
+#define LESENSE_EN_1_PIN 4U /**< Pin of EN_1.*/
+#define LESENSE_EN_2_PORT GPIO_PA_INDEX /**< Port of EN_2.*/
+#define LESENSE_EN_2_PIN 5U /**< Pin of EN_2.*/
+#define LFXO_LFXTAL_I_PORT GPIO_PD_INDEX /**< Port of LFXTAL_I.*/
+#define LFXO_LFXTAL_I_PIN 1U /**< Pin of LFXTAL_I.*/
+#define LFXO_LFXTAL_O_PORT GPIO_PD_INDEX /**< Port of LFXTAL_O.*/
+#define LFXO_LFXTAL_O_PIN 0U /**< Pin of LFXTAL_O.*/
+#define LFXO_LF_EXTCLK_PORT GPIO_PD_INDEX /**< Port of LF_EXTCLK.*/
+#define LFXO_LF_EXTCLK_PIN 1U /**< Pin of LF_EXTCLK.*/
+#define VDAC0_CH0_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH0_MAIN_OUT.*/
+#define VDAC0_CH0_MAIN_OUT_PIN 0U /**< Pin of CH0_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PORT GPIO_PB_INDEX /**< Port of CH1_MAIN_OUT.*/
+#define VDAC0_CH1_MAIN_OUT_PIN 1U /**< Pin of CH1_MAIN_OUT.*/
+
+/* Part number capabilities */
+#define ACMP_PRESENT /** ACMP is available in this part */
+#define ACMP_COUNT 2 /** 2 ACMPs available */
+#define BURAM_PRESENT /** BURAM is available in this part */
+#define BURAM_COUNT 1 /** 1 BURAMs available */
+#define BURTC_PRESENT /** BURTC is available in this part */
+#define BURTC_COUNT 1 /** 1 BURTCs available */
+#define CMU_PRESENT /** CMU is available in this part */
+#define CMU_COUNT 1 /** 1 CMUs available */
+#define DCDC_PRESENT /** DCDC is available in this part */
+#define DCDC_COUNT 1 /** 1 DCDCs available */
+#define DMEM_PRESENT /** DMEM is available in this part */
+#define DMEM_COUNT 1 /** 1 DMEMs available */
+#define DPLL_PRESENT /** DPLL is available in this part */
+#define DPLL_COUNT 1 /** 1 DPLLs available */
+#define EMU_PRESENT /** EMU is available in this part */
+#define EMU_COUNT 1 /** 1 EMUs available */
+#define EUSART_PRESENT /** EUSART is available in this part */
+#define EUSART_COUNT 3 /** 3 EUSARTs available */
+#define FSRCO_PRESENT /** FSRCO is available in this part */
+#define FSRCO_COUNT 1 /** 1 FSRCOs available */
+#define GPCRC_PRESENT /** GPCRC is available in this part */
+#define GPCRC_COUNT 1 /** 1 GPCRCs available */
+#define GPIO_PRESENT /** GPIO is available in this part */
+#define GPIO_COUNT 1 /** 1 GPIOs available */
+#define HFRCO_PRESENT /** HFRCO is available in this part */
+#define HFRCO_COUNT 1 /** 1 HFRCOs available */
+#define HFRCOEM23_PRESENT /** HFRCOEM23 is available in this part */
+#define HFRCOEM23_COUNT 1 /** 1 HFRCOEM23s available */
+#define HFXO_PRESENT /** HFXO is available in this part */
+#define HFXO_COUNT 1 /** 1 HFXOs available */
+#define HOSTMAILBOX_PRESENT /** HOSTMAILBOX is available in this part */
+#define HOSTMAILBOX_COUNT 1 /** 1 HOSTMAILBOXs available */
+#define I2C_PRESENT /** I2C is available in this part */
+#define I2C_COUNT 2 /** 2 I2Cs available */
+#define IADC_PRESENT /** IADC is available in this part */
+#define IADC_COUNT 1 /** 1 IADCs available */
+#define ICACHE_PRESENT /** ICACHE is available in this part */
+#define ICACHE_COUNT 1 /** 1 ICACHEs available */
+#define KEYSCAN_PRESENT /** KEYSCAN is available in this part */
+#define KEYSCAN_COUNT 1 /** 1 KEYSCANs available */
+#define LDMA_PRESENT /** LDMA is available in this part */
+#define LDMA_COUNT 1 /** 1 LDMAs available */
+#define LDMAXBAR_PRESENT /** LDMAXBAR is available in this part */
+#define LDMAXBAR_COUNT 1 /** 1 LDMAXBARs available */
+#define LESENSE_PRESENT /** LESENSE is available in this part */
+#define LESENSE_COUNT 1 /** 1 LESENSEs available */
+#define LETIMER_PRESENT /** LETIMER is available in this part */
+#define LETIMER_COUNT 1 /** 1 LETIMERs available */
+#define LFRCO_PRESENT /** LFRCO is available in this part */
+#define LFRCO_COUNT 1 /** 1 LFRCOs available */
+#define LFXO_PRESENT /** LFXO is available in this part */
+#define LFXO_COUNT 1 /** 1 LFXOs available */
+#define MSC_PRESENT /** MSC is available in this part */
+#define MSC_COUNT 1 /** 1 MSCs available */
+#define PCNT_PRESENT /** PCNT is available in this part */
+#define PCNT_COUNT 1 /** 1 PCNTs available */
+#define PFMXPPRF_PRESENT /** PFMXPPRF is available in this part */
+#define PFMXPPRF_COUNT 1 /** 1 PFMXPPRFs available */
+#define PRS_PRESENT /** PRS is available in this part */
+#define PRS_COUNT 1 /** 1 PRSs available */
+#define RADIOAES_PRESENT /** RADIOAES is available in this part */
+#define RADIOAES_COUNT 1 /** 1 RADIOAESs available */
+#define SCRATCHPAD_PRESENT /** SCRATCHPAD is available in this part */
+#define SCRATCHPAD_COUNT 1 /** 1 SCRATCHPADs available */
+#define SEMAILBOX_PRESENT /** SEMAILBOX is available in this part */
+#define SEMAILBOX_COUNT 1 /** 1 SEMAILBOXs available */
+#define SMU_PRESENT /** SMU is available in this part */
+#define SMU_COUNT 1 /** 1 SMUs available */
+#define SYSCFG_PRESENT /** SYSCFG is available in this part */
+#define SYSCFG_COUNT 1 /** 1 SYSCFGs available */
+#define SYSRTC_PRESENT /** SYSRTC is available in this part */
+#define SYSRTC_COUNT 1 /** 1 SYSRTCs available */
+#define TIMER_PRESENT /** TIMER is available in this part */
+#define TIMER_COUNT 5 /** 5 TIMERs available */
+#define ULFRCO_PRESENT /** ULFRCO is available in this part */
+#define ULFRCO_COUNT 1 /** 1 ULFRCOs available */
+#define USART_PRESENT /** USART is available in this part */
+#define USART_COUNT 1 /** 1 USARTs available */
+#define VDAC_PRESENT /** VDAC is available in this part */
+#define VDAC_COUNT 1 /** 1 VDACs available */
+#define WDOG_PRESENT /** WDOG is available in this part */
+#define WDOG_COUNT 2 /** 2 WDOGs available */
+#define DEVINFO_PRESENT /** DEVINFO is available in this part */
+#define DEVINFO_COUNT 1 /** 1 DEVINFOs available */
+
+/* Include standard ARM headers for the core */
+#include "core_cm33.h" /* Core Header File */
+#include "system_efr32zg23.h" /* System Header File */
+
+/** @} End of group EFR32ZG23B021F512IM40_Part */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40_Peripheral_TypeDefs EFR32ZG23B021F512IM40 Peripheral TypeDefs
+ * @{
+ * @brief Device Specific Peripheral Register Structures
+ *****************************************************************************/
+#include "efr32zg23_scratchpad.h"
+#include "efr32zg23_emu.h"
+#include "efr32zg23_cmu.h"
+#include "efr32zg23_hfrco.h"
+#include "efr32zg23_fsrco.h"
+#include "efr32zg23_dpll.h"
+#include "efr32zg23_lfxo.h"
+#include "efr32zg23_lfrco.h"
+#include "efr32zg23_ulfrco.h"
+#include "efr32zg23_msc.h"
+#include "efr32zg23_icache.h"
+#include "efr32zg23_prs.h"
+#include "efr32zg23_gpio.h"
+#include "efr32zg23_ldma.h"
+#include "efr32zg23_ldmaxbar.h"
+#include "efr32zg23_timer.h"
+#include "efr32zg23_usart.h"
+#include "efr32zg23_burtc.h"
+#include "efr32zg23_i2c.h"
+#include "efr32zg23_syscfg.h"
+#include "efr32zg23_buram.h"
+#include "efr32zg23_gpcrc.h"
+#include "efr32zg23_dcdc.h"
+#include "efr32zg23_mailbox.h"
+#include "efr32zg23_eusart.h"
+#include "efr32zg23_sysrtc.h"
+#include "efr32zg23_keyscan.h"
+#include "efr32zg23_mpahbram.h"
+#include "efr32zg23_pfmxpprf.h"
+#include "efr32zg23_aes.h"
+#include "efr32zg23_smu.h"
+#include "efr32zg23_letimer.h"
+#include "efr32zg23_iadc.h"
+#include "efr32zg23_acmp.h"
+#include "efr32zg23_vdac.h"
+#include "efr32zg23_pcnt.h"
+#include "efr32zg23_lesense.h"
+#include "efr32zg23_hfxo.h"
+#include "efr32zg23_wdog.h"
+#include "efr32zg23_semailbox.h"
+#include "efr32zg23_devinfo.h"
+
+/* Custom headers for LDMAXBAR and PRS mappings */
+#include "efr32zg23_prs_signals.h"
+#include "efr32zg23_dma_descriptor.h"
+#include "efr32zg23_ldmaxbar_defines.h"
+
+/** @} End of group EFR32ZG23B021F512IM40_Peripheral_TypeDefs */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40_Peripheral_Base EFR32ZG23B021F512IM40 Peripheral Memory Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S_BASE (0x40000000UL) /* SCRATCHPAD_S base address */
+#define EMU_S_BASE (0x40004000UL) /* EMU_S base address */
+#define CMU_S_BASE (0x40008000UL) /* CMU_S base address */
+#define HFRCO0_S_BASE (0x40010000UL) /* HFRCO0_S base address */
+#define FSRCO_S_BASE (0x40018000UL) /* FSRCO_S base address */
+#define DPLL0_S_BASE (0x4001C000UL) /* DPLL0_S base address */
+#define LFXO_S_BASE (0x40020000UL) /* LFXO_S base address */
+#define LFRCO_S_BASE (0x40024000UL) /* LFRCO_S base address */
+#define ULFRCO_S_BASE (0x40028000UL) /* ULFRCO_S base address */
+#define MSC_S_BASE (0x40030000UL) /* MSC_S base address */
+#define ICACHE0_S_BASE (0x40034000UL) /* ICACHE0_S base address */
+#define PRS_S_BASE (0x40038000UL) /* PRS_S base address */
+#define GPIO_S_BASE (0x4003C000UL) /* GPIO_S base address */
+#define LDMA_S_BASE (0x40040000UL) /* LDMA_S base address */
+#define LDMAXBAR_S_BASE (0x40044000UL) /* LDMAXBAR_S base address */
+#define TIMER0_S_BASE (0x40048000UL) /* TIMER0_S base address */
+#define TIMER1_S_BASE (0x4004C000UL) /* TIMER1_S base address */
+#define TIMER2_S_BASE (0x40050000UL) /* TIMER2_S base address */
+#define TIMER3_S_BASE (0x40054000UL) /* TIMER3_S base address */
+#define TIMER4_S_BASE (0x40058000UL) /* TIMER4_S base address */
+#define USART0_S_BASE (0x4005C000UL) /* USART0_S base address */
+#define BURTC_S_BASE (0x40064000UL) /* BURTC_S base address */
+#define I2C1_S_BASE (0x40068000UL) /* I2C1_S base address */
+#define SYSCFG_S_CFGNS_BASE (0x40078000UL) /* SYSCFG_S_CFGNS base address */
+#define SYSCFG_S_BASE (0x4007C000UL) /* SYSCFG_S base address */
+#define BURAM_S_BASE (0x40080000UL) /* BURAM_S base address */
+#define GPCRC_S_BASE (0x40088000UL) /* GPCRC_S base address */
+#define DCDC_S_BASE (0x40094000UL) /* DCDC_S base address */
+#define HOSTMAILBOX_S_BASE (0x40098000UL) /* HOSTMAILBOX_S base address */
+#define EUSART1_S_BASE (0x400A0000UL) /* EUSART1_S base address */
+#define EUSART2_S_BASE (0x400A4000UL) /* EUSART2_S base address */
+#define SYSRTC0_S_BASE (0x400A8000UL) /* SYSRTC0_S base address */
+#define KEYSCAN_S_BASE (0x400B0000UL) /* KEYSCAN_S base address */
+#define DMEM_S_BASE (0x400B4000UL) /* DMEM_S base address */
+#define PFMXPPRF_S_BASE (0x400C4000UL) /* PFMXPPRF_S base address */
+#define RADIOAES_S_BASE (0x44000000UL) /* RADIOAES_S base address */
+#define SMU_S_BASE (0x44008000UL) /* SMU_S base address */
+#define SMU_S_CFGNS_BASE (0x4400C000UL) /* SMU_S_CFGNS base address */
+#define LETIMER0_S_BASE (0x49000000UL) /* LETIMER0_S base address */
+#define IADC0_S_BASE (0x49004000UL) /* IADC0_S base address */
+#define ACMP0_S_BASE (0x49008000UL) /* ACMP0_S base address */
+#define ACMP1_S_BASE (0x4900C000UL) /* ACMP1_S base address */
+#define VDAC0_S_BASE (0x49024000UL) /* VDAC0_S base address */
+#define PCNT0_S_BASE (0x49030000UL) /* PCNT0_S base address */
+#define LESENSE_S_BASE (0x49038000UL) /* LESENSE_S base address */
+#define HFRCOEM23_S_BASE (0x4A000000UL) /* HFRCOEM23_S base address */
+#define HFXO0_S_BASE (0x4A004000UL) /* HFXO0_S base address */
+#define I2C0_S_BASE (0x4B000000UL) /* I2C0_S base address */
+#define WDOG0_S_BASE (0x4B004000UL) /* WDOG0_S base address */
+#define WDOG1_S_BASE (0x4B008000UL) /* WDOG1_S base address */
+#define EUSART0_S_BASE (0x4B010000UL) /* EUSART0_S base address */
+#define SEMAILBOX_S_HOST_BASE (0x4C000000UL) /* SEMAILBOX_S_HOST base address */
+#define SCRATCHPAD_NS_BASE (0x50000000UL) /* SCRATCHPAD_NS base address */
+#define EMU_NS_BASE (0x50004000UL) /* EMU_NS base address */
+#define CMU_NS_BASE (0x50008000UL) /* CMU_NS base address */
+#define HFRCO0_NS_BASE (0x50010000UL) /* HFRCO0_NS base address */
+#define FSRCO_NS_BASE (0x50018000UL) /* FSRCO_NS base address */
+#define DPLL0_NS_BASE (0x5001C000UL) /* DPLL0_NS base address */
+#define LFXO_NS_BASE (0x50020000UL) /* LFXO_NS base address */
+#define LFRCO_NS_BASE (0x50024000UL) /* LFRCO_NS base address */
+#define ULFRCO_NS_BASE (0x50028000UL) /* ULFRCO_NS base address */
+#define MSC_NS_BASE (0x50030000UL) /* MSC_NS base address */
+#define ICACHE0_NS_BASE (0x50034000UL) /* ICACHE0_NS base address */
+#define PRS_NS_BASE (0x50038000UL) /* PRS_NS base address */
+#define GPIO_NS_BASE (0x5003C000UL) /* GPIO_NS base address */
+#define LDMA_NS_BASE (0x50040000UL) /* LDMA_NS base address */
+#define LDMAXBAR_NS_BASE (0x50044000UL) /* LDMAXBAR_NS base address */
+#define TIMER0_NS_BASE (0x50048000UL) /* TIMER0_NS base address */
+#define TIMER1_NS_BASE (0x5004C000UL) /* TIMER1_NS base address */
+#define TIMER2_NS_BASE (0x50050000UL) /* TIMER2_NS base address */
+#define TIMER3_NS_BASE (0x50054000UL) /* TIMER3_NS base address */
+#define TIMER4_NS_BASE (0x50058000UL) /* TIMER4_NS base address */
+#define USART0_NS_BASE (0x5005C000UL) /* USART0_NS base address */
+#define BURTC_NS_BASE (0x50064000UL) /* BURTC_NS base address */
+#define I2C1_NS_BASE (0x50068000UL) /* I2C1_NS base address */
+#define SYSCFG_NS_CFGNS_BASE (0x50078000UL) /* SYSCFG_NS_CFGNS base address */
+#define SYSCFG_NS_BASE (0x5007C000UL) /* SYSCFG_NS base address */
+#define BURAM_NS_BASE (0x50080000UL) /* BURAM_NS base address */
+#define GPCRC_NS_BASE (0x50088000UL) /* GPCRC_NS base address */
+#define DCDC_NS_BASE (0x50094000UL) /* DCDC_NS base address */
+#define HOSTMAILBOX_NS_BASE (0x50098000UL) /* HOSTMAILBOX_NS base address */
+#define EUSART1_NS_BASE (0x500A0000UL) /* EUSART1_NS base address */
+#define EUSART2_NS_BASE (0x500A4000UL) /* EUSART2_NS base address */
+#define SYSRTC0_NS_BASE (0x500A8000UL) /* SYSRTC0_NS base address */
+#define KEYSCAN_NS_BASE (0x500B0000UL) /* KEYSCAN_NS base address */
+#define DMEM_NS_BASE (0x500B4000UL) /* DMEM_NS base address */
+#define PFMXPPRF_NS_BASE (0x500C4000UL) /* PFMXPPRF_NS base address */
+#define RADIOAES_NS_BASE (0x54000000UL) /* RADIOAES_NS base address */
+#define SMU_NS_BASE (0x54008000UL) /* SMU_NS base address */
+#define SMU_NS_CFGNS_BASE (0x5400C000UL) /* SMU_NS_CFGNS base address */
+#define LETIMER0_NS_BASE (0x59000000UL) /* LETIMER0_NS base address */
+#define IADC0_NS_BASE (0x59004000UL) /* IADC0_NS base address */
+#define ACMP0_NS_BASE (0x59008000UL) /* ACMP0_NS base address */
+#define ACMP1_NS_BASE (0x5900C000UL) /* ACMP1_NS base address */
+#define VDAC0_NS_BASE (0x59024000UL) /* VDAC0_NS base address */
+#define PCNT0_NS_BASE (0x59030000UL) /* PCNT0_NS base address */
+#define LESENSE_NS_BASE (0x59038000UL) /* LESENSE_NS base address */
+#define HFRCOEM23_NS_BASE (0x5A000000UL) /* HFRCOEM23_NS base address */
+#define HFXO0_NS_BASE (0x5A004000UL) /* HFXO0_NS base address */
+#define I2C0_NS_BASE (0x5B000000UL) /* I2C0_NS base address */
+#define WDOG0_NS_BASE (0x5B004000UL) /* WDOG0_NS base address */
+#define WDOG1_NS_BASE (0x5B008000UL) /* WDOG1_NS base address */
+#define EUSART0_NS_BASE (0x5B010000UL) /* EUSART0_NS base address */
+#define SEMAILBOX_NS_HOST_BASE (0x5C000000UL) /* SEMAILBOX_NS_HOST base address */
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT)
+#include "sl_trustzone_secure_config.h"
+
+#endif
+
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S) && (SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S != 0)))
+#define SCRATCHPAD_BASE (SCRATCHPAD_S_BASE) /* SCRATCHPAD base address */
+#else
+#define SCRATCHPAD_BASE (SCRATCHPAD_NS_BASE) /* SCRATCHPAD base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SCRATCHPAD_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EMU_S) && (SL_TRUSTZONE_PERIPHERAL_EMU_S != 0)))
+#define EMU_BASE (EMU_S_BASE) /* EMU base address */
+#else
+#define EMU_BASE (EMU_NS_BASE) /* EMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_CMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_CMU_S) && (SL_TRUSTZONE_PERIPHERAL_CMU_S != 0)))
+#define CMU_BASE (CMU_S_BASE) /* CMU base address */
+#else
+#define CMU_BASE (CMU_NS_BASE) /* CMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_CMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCO0_S != 0)))
+#define HFRCO0_BASE (HFRCO0_S_BASE) /* HFRCO0 base address */
+#else
+#define HFRCO0_BASE (HFRCO0_NS_BASE) /* HFRCO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_FSRCO_S) && (SL_TRUSTZONE_PERIPHERAL_FSRCO_S != 0)))
+#define FSRCO_BASE (FSRCO_S_BASE) /* FSRCO base address */
+#else
+#define FSRCO_BASE (FSRCO_NS_BASE) /* FSRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_FSRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DPLL0_S) && (SL_TRUSTZONE_PERIPHERAL_DPLL0_S != 0)))
+#define DPLL0_BASE (DPLL0_S_BASE) /* DPLL0 base address */
+#else
+#define DPLL0_BASE (DPLL0_NS_BASE) /* DPLL0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DPLL0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFXO_S) && (SL_TRUSTZONE_PERIPHERAL_LFXO_S != 0)))
+#define LFXO_BASE (LFXO_S_BASE) /* LFXO base address */
+#else
+#define LFXO_BASE (LFXO_NS_BASE) /* LFXO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFXO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_LFRCO_S != 0)))
+#define LFRCO_BASE (LFRCO_S_BASE) /* LFRCO base address */
+#else
+#define LFRCO_BASE (LFRCO_NS_BASE) /* LFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ULFRCO_S) && (SL_TRUSTZONE_PERIPHERAL_ULFRCO_S != 0)))
+#define ULFRCO_BASE (ULFRCO_S_BASE) /* ULFRCO base address */
+#else
+#define ULFRCO_BASE (ULFRCO_NS_BASE) /* ULFRCO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ULFRCO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_MSC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_MSC_S) && (SL_TRUSTZONE_PERIPHERAL_MSC_S != 0)))
+#define MSC_BASE (MSC_S_BASE) /* MSC base address */
+#else
+#define MSC_BASE (MSC_NS_BASE) /* MSC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_MSC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ICACHE0_S) && (SL_TRUSTZONE_PERIPHERAL_ICACHE0_S != 0)))
+#define ICACHE0_BASE (ICACHE0_S_BASE) /* ICACHE0 base address */
+#else
+#define ICACHE0_BASE (ICACHE0_NS_BASE) /* ICACHE0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ICACHE0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PRS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PRS_S) && (SL_TRUSTZONE_PERIPHERAL_PRS_S != 0)))
+#define PRS_BASE (PRS_S_BASE) /* PRS base address */
+#else
+#define PRS_BASE (PRS_NS_BASE) /* PRS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PRS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPIO_S) && (SL_TRUSTZONE_PERIPHERAL_GPIO_S != 0)))
+#define GPIO_BASE (GPIO_S_BASE) /* GPIO base address */
+#else
+#define GPIO_BASE (GPIO_NS_BASE) /* GPIO base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPIO_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMA_S) && (SL_TRUSTZONE_PERIPHERAL_LDMA_S != 0)))
+#define LDMA_BASE (LDMA_S_BASE) /* LDMA base address */
+#else
+#define LDMA_BASE (LDMA_NS_BASE) /* LDMA base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMA_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S) && (SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S != 0)))
+#define LDMAXBAR_BASE (LDMAXBAR_S_BASE) /* LDMAXBAR base address */
+#else
+#define LDMAXBAR_BASE (LDMAXBAR_NS_BASE) /* LDMAXBAR base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LDMAXBAR_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER0_S != 0)))
+#define TIMER0_BASE (TIMER0_S_BASE) /* TIMER0 base address */
+#else
+#define TIMER0_BASE (TIMER0_NS_BASE) /* TIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER1_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER1_S != 0)))
+#define TIMER1_BASE (TIMER1_S_BASE) /* TIMER1 base address */
+#else
+#define TIMER1_BASE (TIMER1_NS_BASE) /* TIMER1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER2_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER2_S != 0)))
+#define TIMER2_BASE (TIMER2_S_BASE) /* TIMER2 base address */
+#else
+#define TIMER2_BASE (TIMER2_NS_BASE) /* TIMER2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER3_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER3_S != 0)))
+#define TIMER3_BASE (TIMER3_S_BASE) /* TIMER3 base address */
+#else
+#define TIMER3_BASE (TIMER3_NS_BASE) /* TIMER3 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER3_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_TIMER4_S) && (SL_TRUSTZONE_PERIPHERAL_TIMER4_S != 0)))
+#define TIMER4_BASE (TIMER4_S_BASE) /* TIMER4 base address */
+#else
+#define TIMER4_BASE (TIMER4_NS_BASE) /* TIMER4 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_TIMER4_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_USART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_USART0_S) && (SL_TRUSTZONE_PERIPHERAL_USART0_S != 0)))
+#define USART0_BASE (USART0_S_BASE) /* USART0 base address */
+#else
+#define USART0_BASE (USART0_NS_BASE) /* USART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_USART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURTC_S) && (SL_TRUSTZONE_PERIPHERAL_BURTC_S != 0)))
+#define BURTC_BASE (BURTC_S_BASE) /* BURTC base address */
+#else
+#define BURTC_BASE (BURTC_NS_BASE) /* BURTC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURTC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C1_S) && (SL_TRUSTZONE_PERIPHERAL_I2C1_S != 0)))
+#define I2C1_BASE (I2C1_S_BASE) /* I2C1 base address */
+#else
+#define I2C1_BASE (I2C1_NS_BASE) /* I2C1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S != 0)))
+#define SYSCFG_CFGNS_BASE (SYSCFG_S_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#else
+#define SYSCFG_CFGNS_BASE (SYSCFG_NS_CFGNS_BASE) /* SYSCFG_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSCFG_S) && (SL_TRUSTZONE_PERIPHERAL_SYSCFG_S != 0)))
+#define SYSCFG_BASE (SYSCFG_S_BASE) /* SYSCFG base address */
+#else
+#define SYSCFG_BASE (SYSCFG_NS_BASE) /* SYSCFG base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSCFG_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_BURAM_S) && (SL_TRUSTZONE_PERIPHERAL_BURAM_S != 0)))
+#define BURAM_BASE (BURAM_S_BASE) /* BURAM base address */
+#else
+#define BURAM_BASE (BURAM_NS_BASE) /* BURAM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_BURAM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_GPCRC_S) && (SL_TRUSTZONE_PERIPHERAL_GPCRC_S != 0)))
+#define GPCRC_BASE (GPCRC_S_BASE) /* GPCRC base address */
+#else
+#define GPCRC_BASE (GPCRC_NS_BASE) /* GPCRC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_GPCRC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DCDC_S) && (SL_TRUSTZONE_PERIPHERAL_DCDC_S != 0)))
+#define DCDC_BASE (DCDC_S_BASE) /* DCDC base address */
+#else
+#define DCDC_BASE (DCDC_NS_BASE) /* DCDC base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DCDC_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S) && (SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S != 0)))
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_S_BASE) /* HOSTMAILBOX base address */
+#else
+#define HOSTMAILBOX_BASE (HOSTMAILBOX_NS_BASE) /* HOSTMAILBOX base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HOSTMAILBOX_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART1_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART1_S != 0)))
+#define EUSART1_BASE (EUSART1_S_BASE) /* EUSART1 base address */
+#else
+#define EUSART1_BASE (EUSART1_NS_BASE) /* EUSART1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART2_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART2_S != 0)))
+#define EUSART2_BASE (EUSART2_S_BASE) /* EUSART2 base address */
+#else
+#define EUSART2_BASE (EUSART2_NS_BASE) /* EUSART2 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART2_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S) && (SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S != 0)))
+#define SYSRTC0_BASE (SYSRTC0_S_BASE) /* SYSRTC0 base address */
+#else
+#define SYSRTC0_BASE (SYSRTC0_NS_BASE) /* SYSRTC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SYSRTC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S) && (SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S != 0)))
+#define KEYSCAN_BASE (KEYSCAN_S_BASE) /* KEYSCAN base address */
+#else
+#define KEYSCAN_BASE (KEYSCAN_NS_BASE) /* KEYSCAN base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_KEYSCAN_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_DMEM_S) && (SL_TRUSTZONE_PERIPHERAL_DMEM_S != 0)))
+#define DMEM_BASE (DMEM_S_BASE) /* DMEM base address */
+#else
+#define DMEM_BASE (DMEM_NS_BASE) /* DMEM base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_DMEM_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S) && (SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S != 0)))
+#define PFMXPPRF_BASE (PFMXPPRF_S_BASE) /* PFMXPPRF base address */
+#else
+#define PFMXPPRF_BASE (PFMXPPRF_NS_BASE) /* PFMXPPRF base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PFMXPPRF_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_RADIOAES_S) && (SL_TRUSTZONE_PERIPHERAL_RADIOAES_S != 0)))
+#define RADIOAES_BASE (RADIOAES_S_BASE) /* RADIOAES base address */
+#else
+#define RADIOAES_BASE (RADIOAES_NS_BASE) /* RADIOAES base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_RADIOAES_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_S != 0)))
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#else
+#define SMU_BASE (SMU_S_BASE) /* SMU base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S) && (SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S != 0)))
+#define SMU_CFGNS_BASE (SMU_S_CFGNS_BASE) /* SMU_CFGNS base address */
+#else
+#define SMU_CFGNS_BASE (SMU_NS_CFGNS_BASE) /* SMU_CFGNS base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SMU_CFGNS_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LETIMER0_S) && (SL_TRUSTZONE_PERIPHERAL_LETIMER0_S != 0)))
+#define LETIMER0_BASE (LETIMER0_S_BASE) /* LETIMER0 base address */
+#else
+#define LETIMER0_BASE (LETIMER0_NS_BASE) /* LETIMER0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LETIMER0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_IADC0_S) && (SL_TRUSTZONE_PERIPHERAL_IADC0_S != 0)))
+#define IADC0_BASE (IADC0_S_BASE) /* IADC0 base address */
+#else
+#define IADC0_BASE (IADC0_NS_BASE) /* IADC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_IADC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP0_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP0_S != 0)))
+#define ACMP0_BASE (ACMP0_S_BASE) /* ACMP0 base address */
+#else
+#define ACMP0_BASE (ACMP0_NS_BASE) /* ACMP0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_ACMP1_S) && (SL_TRUSTZONE_PERIPHERAL_ACMP1_S != 0)))
+#define ACMP1_BASE (ACMP1_S_BASE) /* ACMP1 base address */
+#else
+#define ACMP1_BASE (ACMP1_NS_BASE) /* ACMP1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_ACMP1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_VDAC0_S) && (SL_TRUSTZONE_PERIPHERAL_VDAC0_S != 0)))
+#define VDAC0_BASE (VDAC0_S_BASE) /* VDAC0 base address */
+#else
+#define VDAC0_BASE (VDAC0_NS_BASE) /* VDAC0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_VDAC0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_PCNT0_S) && (SL_TRUSTZONE_PERIPHERAL_PCNT0_S != 0)))
+#define PCNT0_BASE (PCNT0_S_BASE) /* PCNT0 base address */
+#else
+#define PCNT0_BASE (PCNT0_NS_BASE) /* PCNT0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_PCNT0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_LESENSE_S) && (SL_TRUSTZONE_PERIPHERAL_LESENSE_S != 0)))
+#define LESENSE_BASE (LESENSE_S_BASE) /* LESENSE base address */
+#else
+#define LESENSE_BASE (LESENSE_NS_BASE) /* LESENSE base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_LESENSE_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S) && (SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S != 0)))
+#define HFRCOEM23_BASE (HFRCOEM23_S_BASE) /* HFRCOEM23 base address */
+#else
+#define HFRCOEM23_BASE (HFRCOEM23_NS_BASE) /* HFRCOEM23 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFRCOEM23_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_HFXO0_S) && (SL_TRUSTZONE_PERIPHERAL_HFXO0_S != 0)))
+#define HFXO0_BASE (HFXO0_S_BASE) /* HFXO0 base address */
+#else
+#define HFXO0_BASE (HFXO0_NS_BASE) /* HFXO0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_I2C0_S) && (SL_TRUSTZONE_PERIPHERAL_I2C0_S != 0)))
+#define I2C0_BASE (I2C0_S_BASE) /* I2C0 base address */
+#else
+#define I2C0_BASE (I2C0_NS_BASE) /* I2C0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_I2C0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG0_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG0_S != 0)))
+#define WDOG0_BASE (WDOG0_S_BASE) /* WDOG0 base address */
+#else
+#define WDOG0_BASE (WDOG0_NS_BASE) /* WDOG0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_WDOG1_S) && (SL_TRUSTZONE_PERIPHERAL_WDOG1_S != 0)))
+#define WDOG1_BASE (WDOG1_S_BASE) /* WDOG1 base address */
+#else
+#define WDOG1_BASE (WDOG1_NS_BASE) /* WDOG1 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_WDOG1_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_EUSART0_S) && (SL_TRUSTZONE_PERIPHERAL_EUSART0_S != 0)))
+#define EUSART0_BASE (EUSART0_S_BASE) /* EUSART0 base address */
+#else
+#define EUSART0_BASE (EUSART0_NS_BASE) /* EUSART0 base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_EUSART0_S
+#if ((defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S)) || (defined(SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S) && (SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S != 0)))
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#else
+#define SEMAILBOX_HOST_BASE (SEMAILBOX_S_HOST_BASE) /* SEMAILBOX_HOST base address */
+#endif // SL_TRUSTZONE_PERIPHERAL_SEMAILBOX_HOST_S
+
+#define DEVINFO_BASE (0x0FE08000UL) /* DEVINFO base address */
+/** @} End of group EFR32ZG23B021F512IM40_Peripheral_Base */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40_Peripheral_Declaration EFR32ZG23B021F512IM40 Peripheral Declarations Map
+ * @{
+ *****************************************************************************/
+
+#define SCRATCHPAD_S ((SCRATCHPAD_TypeDef *) SCRATCHPAD_S_BASE) /**< SCRATCHPAD_S base pointer */
+#define EMU_S ((EMU_TypeDef *) EMU_S_BASE) /**< EMU_S base pointer */
+#define CMU_S ((CMU_TypeDef *) CMU_S_BASE) /**< CMU_S base pointer */
+#define HFRCO0_S ((HFRCO_TypeDef *) HFRCO0_S_BASE) /**< HFRCO0_S base pointer */
+#define FSRCO_S ((FSRCO_TypeDef *) FSRCO_S_BASE) /**< FSRCO_S base pointer */
+#define DPLL0_S ((DPLL_TypeDef *) DPLL0_S_BASE) /**< DPLL0_S base pointer */
+#define LFXO_S ((LFXO_TypeDef *) LFXO_S_BASE) /**< LFXO_S base pointer */
+#define LFRCO_S ((LFRCO_TypeDef *) LFRCO_S_BASE) /**< LFRCO_S base pointer */
+#define ULFRCO_S ((ULFRCO_TypeDef *) ULFRCO_S_BASE) /**< ULFRCO_S base pointer */
+#define MSC_S ((MSC_TypeDef *) MSC_S_BASE) /**< MSC_S base pointer */
+#define ICACHE0_S ((ICACHE_TypeDef *) ICACHE0_S_BASE) /**< ICACHE0_S base pointer */
+#define PRS_S ((PRS_TypeDef *) PRS_S_BASE) /**< PRS_S base pointer */
+#define GPIO_S ((GPIO_TypeDef *) GPIO_S_BASE) /**< GPIO_S base pointer */
+#define LDMA_S ((LDMA_TypeDef *) LDMA_S_BASE) /**< LDMA_S base pointer */
+#define LDMAXBAR_S ((LDMAXBAR_TypeDef *) LDMAXBAR_S_BASE) /**< LDMAXBAR_S base pointer */
+#define TIMER0_S ((TIMER_TypeDef *) TIMER0_S_BASE) /**< TIMER0_S base pointer */
+#define TIMER1_S ((TIMER_TypeDef *) TIMER1_S_BASE) /**< TIMER1_S base pointer */
+#define TIMER2_S ((TIMER_TypeDef *) TIMER2_S_BASE) /**< TIMER2_S base pointer */
+#define TIMER3_S ((TIMER_TypeDef *) TIMER3_S_BASE) /**< TIMER3_S base pointer */
+#define TIMER4_S ((TIMER_TypeDef *) TIMER4_S_BASE) /**< TIMER4_S base pointer */
+#define USART0_S ((USART_TypeDef *) USART0_S_BASE) /**< USART0_S base pointer */
+#define BURTC_S ((BURTC_TypeDef *) BURTC_S_BASE) /**< BURTC_S base pointer */
+#define I2C1_S ((I2C_TypeDef *) I2C1_S_BASE) /**< I2C1_S base pointer */
+#define SYSCFG_S_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_S_CFGNS_BASE) /**< SYSCFG_S_CFGNS base pointer */
+#define SYSCFG_S ((SYSCFG_TypeDef *) SYSCFG_S_BASE) /**< SYSCFG_S base pointer */
+#define BURAM_S ((BURAM_TypeDef *) BURAM_S_BASE) /**< BURAM_S base pointer */
+#define GPCRC_S ((GPCRC_TypeDef *) GPCRC_S_BASE) /**< GPCRC_S base pointer */
+#define DCDC_S ((DCDC_TypeDef *) DCDC_S_BASE) /**< DCDC_S base pointer */
+#define HOSTMAILBOX_S ((MAILBOX_TypeDef *) HOSTMAILBOX_S_BASE) /**< HOSTMAILBOX_S base pointer */
+#define EUSART1_S ((EUSART_TypeDef *) EUSART1_S_BASE) /**< EUSART1_S base pointer */
+#define EUSART2_S ((EUSART_TypeDef *) EUSART2_S_BASE) /**< EUSART2_S base pointer */
+#define SYSRTC0_S ((SYSRTC_TypeDef *) SYSRTC0_S_BASE) /**< SYSRTC0_S base pointer */
+#define KEYSCAN_S ((KEYSCAN_TypeDef *) KEYSCAN_S_BASE) /**< KEYSCAN_S base pointer */
+#define DMEM_S ((MPAHBRAM_TypeDef *) DMEM_S_BASE) /**< DMEM_S base pointer */
+#define PFMXPPRF_S ((PFMXPPRF_TypeDef *) PFMXPPRF_S_BASE) /**< PFMXPPRF_S base pointer */
+#define RADIOAES_S ((AES_TypeDef *) RADIOAES_S_BASE) /**< RADIOAES_S base pointer */
+#define SMU_S ((SMU_TypeDef *) SMU_S_BASE) /**< SMU_S base pointer */
+#define SMU_S_CFGNS ((SMU_CFGNS_TypeDef *) SMU_S_CFGNS_BASE) /**< SMU_S_CFGNS base pointer */
+#define LETIMER0_S ((LETIMER_TypeDef *) LETIMER0_S_BASE) /**< LETIMER0_S base pointer */
+#define IADC0_S ((IADC_TypeDef *) IADC0_S_BASE) /**< IADC0_S base pointer */
+#define ACMP0_S ((ACMP_TypeDef *) ACMP0_S_BASE) /**< ACMP0_S base pointer */
+#define ACMP1_S ((ACMP_TypeDef *) ACMP1_S_BASE) /**< ACMP1_S base pointer */
+#define VDAC0_S ((VDAC_TypeDef *) VDAC0_S_BASE) /**< VDAC0_S base pointer */
+#define PCNT0_S ((PCNT_TypeDef *) PCNT0_S_BASE) /**< PCNT0_S base pointer */
+#define LESENSE_S ((LESENSE_TypeDef *) LESENSE_S_BASE) /**< LESENSE_S base pointer */
+#define HFRCOEM23_S ((HFRCO_TypeDef *) HFRCOEM23_S_BASE) /**< HFRCOEM23_S base pointer */
+#define HFXO0_S ((HFXO_TypeDef *) HFXO0_S_BASE) /**< HFXO0_S base pointer */
+#define I2C0_S ((I2C_TypeDef *) I2C0_S_BASE) /**< I2C0_S base pointer */
+#define WDOG0_S ((WDOG_TypeDef *) WDOG0_S_BASE) /**< WDOG0_S base pointer */
+#define WDOG1_S ((WDOG_TypeDef *) WDOG1_S_BASE) /**< WDOG1_S base pointer */
+#define EUSART0_S ((EUSART_TypeDef *) EUSART0_S_BASE) /**< EUSART0_S base pointer */
+#define SEMAILBOX_S_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_S_HOST_BASE) /**< SEMAILBOX_S_HOST base pointer */
+#define SCRATCHPAD_NS ((SCRATCHPAD_TypeDef *) SCRATCHPAD_NS_BASE) /**< SCRATCHPAD_NS base pointer */
+#define EMU_NS ((EMU_TypeDef *) EMU_NS_BASE) /**< EMU_NS base pointer */
+#define CMU_NS ((CMU_TypeDef *) CMU_NS_BASE) /**< CMU_NS base pointer */
+#define HFRCO0_NS ((HFRCO_TypeDef *) HFRCO0_NS_BASE) /**< HFRCO0_NS base pointer */
+#define FSRCO_NS ((FSRCO_TypeDef *) FSRCO_NS_BASE) /**< FSRCO_NS base pointer */
+#define DPLL0_NS ((DPLL_TypeDef *) DPLL0_NS_BASE) /**< DPLL0_NS base pointer */
+#define LFXO_NS ((LFXO_TypeDef *) LFXO_NS_BASE) /**< LFXO_NS base pointer */
+#define LFRCO_NS ((LFRCO_TypeDef *) LFRCO_NS_BASE) /**< LFRCO_NS base pointer */
+#define ULFRCO_NS ((ULFRCO_TypeDef *) ULFRCO_NS_BASE) /**< ULFRCO_NS base pointer */
+#define MSC_NS ((MSC_TypeDef *) MSC_NS_BASE) /**< MSC_NS base pointer */
+#define ICACHE0_NS ((ICACHE_TypeDef *) ICACHE0_NS_BASE) /**< ICACHE0_NS base pointer */
+#define PRS_NS ((PRS_TypeDef *) PRS_NS_BASE) /**< PRS_NS base pointer */
+#define GPIO_NS ((GPIO_TypeDef *) GPIO_NS_BASE) /**< GPIO_NS base pointer */
+#define LDMA_NS ((LDMA_TypeDef *) LDMA_NS_BASE) /**< LDMA_NS base pointer */
+#define LDMAXBAR_NS ((LDMAXBAR_TypeDef *) LDMAXBAR_NS_BASE) /**< LDMAXBAR_NS base pointer */
+#define TIMER0_NS ((TIMER_TypeDef *) TIMER0_NS_BASE) /**< TIMER0_NS base pointer */
+#define TIMER1_NS ((TIMER_TypeDef *) TIMER1_NS_BASE) /**< TIMER1_NS base pointer */
+#define TIMER2_NS ((TIMER_TypeDef *) TIMER2_NS_BASE) /**< TIMER2_NS base pointer */
+#define TIMER3_NS ((TIMER_TypeDef *) TIMER3_NS_BASE) /**< TIMER3_NS base pointer */
+#define TIMER4_NS ((TIMER_TypeDef *) TIMER4_NS_BASE) /**< TIMER4_NS base pointer */
+#define USART0_NS ((USART_TypeDef *) USART0_NS_BASE) /**< USART0_NS base pointer */
+#define BURTC_NS ((BURTC_TypeDef *) BURTC_NS_BASE) /**< BURTC_NS base pointer */
+#define I2C1_NS ((I2C_TypeDef *) I2C1_NS_BASE) /**< I2C1_NS base pointer */
+#define SYSCFG_NS_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_NS_CFGNS_BASE) /**< SYSCFG_NS_CFGNS base pointer */
+#define SYSCFG_NS ((SYSCFG_TypeDef *) SYSCFG_NS_BASE) /**< SYSCFG_NS base pointer */
+#define BURAM_NS ((BURAM_TypeDef *) BURAM_NS_BASE) /**< BURAM_NS base pointer */
+#define GPCRC_NS ((GPCRC_TypeDef *) GPCRC_NS_BASE) /**< GPCRC_NS base pointer */
+#define DCDC_NS ((DCDC_TypeDef *) DCDC_NS_BASE) /**< DCDC_NS base pointer */
+#define HOSTMAILBOX_NS ((MAILBOX_TypeDef *) HOSTMAILBOX_NS_BASE) /**< HOSTMAILBOX_NS base pointer */
+#define EUSART1_NS ((EUSART_TypeDef *) EUSART1_NS_BASE) /**< EUSART1_NS base pointer */
+#define EUSART2_NS ((EUSART_TypeDef *) EUSART2_NS_BASE) /**< EUSART2_NS base pointer */
+#define SYSRTC0_NS ((SYSRTC_TypeDef *) SYSRTC0_NS_BASE) /**< SYSRTC0_NS base pointer */
+#define KEYSCAN_NS ((KEYSCAN_TypeDef *) KEYSCAN_NS_BASE) /**< KEYSCAN_NS base pointer */
+#define DMEM_NS ((MPAHBRAM_TypeDef *) DMEM_NS_BASE) /**< DMEM_NS base pointer */
+#define PFMXPPRF_NS ((PFMXPPRF_TypeDef *) PFMXPPRF_NS_BASE) /**< PFMXPPRF_NS base pointer */
+#define RADIOAES_NS ((AES_TypeDef *) RADIOAES_NS_BASE) /**< RADIOAES_NS base pointer */
+#define SMU_NS ((SMU_TypeDef *) SMU_NS_BASE) /**< SMU_NS base pointer */
+#define SMU_NS_CFGNS ((SMU_CFGNS_TypeDef *) SMU_NS_CFGNS_BASE) /**< SMU_NS_CFGNS base pointer */
+#define LETIMER0_NS ((LETIMER_TypeDef *) LETIMER0_NS_BASE) /**< LETIMER0_NS base pointer */
+#define IADC0_NS ((IADC_TypeDef *) IADC0_NS_BASE) /**< IADC0_NS base pointer */
+#define ACMP0_NS ((ACMP_TypeDef *) ACMP0_NS_BASE) /**< ACMP0_NS base pointer */
+#define ACMP1_NS ((ACMP_TypeDef *) ACMP1_NS_BASE) /**< ACMP1_NS base pointer */
+#define VDAC0_NS ((VDAC_TypeDef *) VDAC0_NS_BASE) /**< VDAC0_NS base pointer */
+#define PCNT0_NS ((PCNT_TypeDef *) PCNT0_NS_BASE) /**< PCNT0_NS base pointer */
+#define LESENSE_NS ((LESENSE_TypeDef *) LESENSE_NS_BASE) /**< LESENSE_NS base pointer */
+#define HFRCOEM23_NS ((HFRCO_TypeDef *) HFRCOEM23_NS_BASE) /**< HFRCOEM23_NS base pointer */
+#define HFXO0_NS ((HFXO_TypeDef *) HFXO0_NS_BASE) /**< HFXO0_NS base pointer */
+#define I2C0_NS ((I2C_TypeDef *) I2C0_NS_BASE) /**< I2C0_NS base pointer */
+#define WDOG0_NS ((WDOG_TypeDef *) WDOG0_NS_BASE) /**< WDOG0_NS base pointer */
+#define WDOG1_NS ((WDOG_TypeDef *) WDOG1_NS_BASE) /**< WDOG1_NS base pointer */
+#define EUSART0_NS ((EUSART_TypeDef *) EUSART0_NS_BASE) /**< EUSART0_NS base pointer */
+#define SEMAILBOX_NS_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_NS_HOST_BASE) /**< SEMAILBOX_NS_HOST base pointer */
+#define SCRATCHPAD ((SCRATCHPAD_TypeDef *) SCRATCHPAD_BASE) /**< SCRATCHPAD base pointer */
+#define EMU ((EMU_TypeDef *) EMU_BASE) /**< EMU base pointer */
+#define CMU ((CMU_TypeDef *) CMU_BASE) /**< CMU base pointer */
+#define HFRCO0 ((HFRCO_TypeDef *) HFRCO0_BASE) /**< HFRCO0 base pointer */
+#define FSRCO ((FSRCO_TypeDef *) FSRCO_BASE) /**< FSRCO base pointer */
+#define DPLL0 ((DPLL_TypeDef *) DPLL0_BASE) /**< DPLL0 base pointer */
+#define LFXO ((LFXO_TypeDef *) LFXO_BASE) /**< LFXO base pointer */
+#define LFRCO ((LFRCO_TypeDef *) LFRCO_BASE) /**< LFRCO base pointer */
+#define ULFRCO ((ULFRCO_TypeDef *) ULFRCO_BASE) /**< ULFRCO base pointer */
+#define MSC ((MSC_TypeDef *) MSC_BASE) /**< MSC base pointer */
+#define ICACHE0 ((ICACHE_TypeDef *) ICACHE0_BASE) /**< ICACHE0 base pointer */
+#define PRS ((PRS_TypeDef *) PRS_BASE) /**< PRS base pointer */
+#define GPIO ((GPIO_TypeDef *) GPIO_BASE) /**< GPIO base pointer */
+#define LDMA ((LDMA_TypeDef *) LDMA_BASE) /**< LDMA base pointer */
+#define LDMAXBAR ((LDMAXBAR_TypeDef *) LDMAXBAR_BASE) /**< LDMAXBAR base pointer */
+#define TIMER0 ((TIMER_TypeDef *) TIMER0_BASE) /**< TIMER0 base pointer */
+#define TIMER1 ((TIMER_TypeDef *) TIMER1_BASE) /**< TIMER1 base pointer */
+#define TIMER2 ((TIMER_TypeDef *) TIMER2_BASE) /**< TIMER2 base pointer */
+#define TIMER3 ((TIMER_TypeDef *) TIMER3_BASE) /**< TIMER3 base pointer */
+#define TIMER4 ((TIMER_TypeDef *) TIMER4_BASE) /**< TIMER4 base pointer */
+#define USART0 ((USART_TypeDef *) USART0_BASE) /**< USART0 base pointer */
+#define BURTC ((BURTC_TypeDef *) BURTC_BASE) /**< BURTC base pointer */
+#define I2C1 ((I2C_TypeDef *) I2C1_BASE) /**< I2C1 base pointer */
+#define SYSCFG_CFGNS ((SYSCFG_CFGNS_TypeDef *) SYSCFG_CFGNS_BASE) /**< SYSCFG_CFGNS base pointer */
+#define SYSCFG ((SYSCFG_TypeDef *) SYSCFG_BASE) /**< SYSCFG base pointer */
+#define BURAM ((BURAM_TypeDef *) BURAM_BASE) /**< BURAM base pointer */
+#define GPCRC ((GPCRC_TypeDef *) GPCRC_BASE) /**< GPCRC base pointer */
+#define DCDC ((DCDC_TypeDef *) DCDC_BASE) /**< DCDC base pointer */
+#define HOSTMAILBOX ((MAILBOX_TypeDef *) HOSTMAILBOX_BASE) /**< HOSTMAILBOX base pointer */
+#define EUSART1 ((EUSART_TypeDef *) EUSART1_BASE) /**< EUSART1 base pointer */
+#define EUSART2 ((EUSART_TypeDef *) EUSART2_BASE) /**< EUSART2 base pointer */
+#define SYSRTC0 ((SYSRTC_TypeDef *) SYSRTC0_BASE) /**< SYSRTC0 base pointer */
+#define KEYSCAN ((KEYSCAN_TypeDef *) KEYSCAN_BASE) /**< KEYSCAN base pointer */
+#define DMEM ((MPAHBRAM_TypeDef *) DMEM_BASE) /**< DMEM base pointer */
+#define PFMXPPRF ((PFMXPPRF_TypeDef *) PFMXPPRF_BASE) /**< PFMXPPRF base pointer */
+#define RADIOAES ((AES_TypeDef *) RADIOAES_BASE) /**< RADIOAES base pointer */
+#define SMU ((SMU_TypeDef *) SMU_BASE) /**< SMU base pointer */
+#define SMU_CFGNS ((SMU_CFGNS_TypeDef *) SMU_CFGNS_BASE) /**< SMU_CFGNS base pointer */
+#define LETIMER0 ((LETIMER_TypeDef *) LETIMER0_BASE) /**< LETIMER0 base pointer */
+#define IADC0 ((IADC_TypeDef *) IADC0_BASE) /**< IADC0 base pointer */
+#define ACMP0 ((ACMP_TypeDef *) ACMP0_BASE) /**< ACMP0 base pointer */
+#define ACMP1 ((ACMP_TypeDef *) ACMP1_BASE) /**< ACMP1 base pointer */
+#define VDAC0 ((VDAC_TypeDef *) VDAC0_BASE) /**< VDAC0 base pointer */
+#define PCNT0 ((PCNT_TypeDef *) PCNT0_BASE) /**< PCNT0 base pointer */
+#define LESENSE ((LESENSE_TypeDef *) LESENSE_BASE) /**< LESENSE base pointer */
+#define HFRCOEM23 ((HFRCO_TypeDef *) HFRCOEM23_BASE) /**< HFRCOEM23 base pointer */
+#define HFXO0 ((HFXO_TypeDef *) HFXO0_BASE) /**< HFXO0 base pointer */
+#define I2C0 ((I2C_TypeDef *) I2C0_BASE) /**< I2C0 base pointer */
+#define WDOG0 ((WDOG_TypeDef *) WDOG0_BASE) /**< WDOG0 base pointer */
+#define WDOG1 ((WDOG_TypeDef *) WDOG1_BASE) /**< WDOG1 base pointer */
+#define EUSART0 ((EUSART_TypeDef *) EUSART0_BASE) /**< EUSART0 base pointer */
+#define SEMAILBOX_HOST ((SEMAILBOX_HOST_TypeDef *) SEMAILBOX_HOST_BASE) /**< SEMAILBOX_HOST base pointer */
+#define DEVINFO ((DEVINFO_TypeDef *) DEVINFO_BASE) /**< DEVINFO base pointer */
+/** @} End of group EFR32ZG23B021F512IM40_Peripheral_Declaration */
+
+/**************************************************************************//**
+ * @defgroup EFR32ZG23B021F512IM40_Peripheral_Parameters EFR32ZG23B021F512IM40 Peripheral Parameters
+ * @{
+ * @brief Device peripheral parameter values
+ *****************************************************************************/
+
+/* Common peripheral register block offsets. */
+#define PER_REG_BLOCK_SET_OFFSET 0x1000UL /**< Offset to SET register block */
+#define PER_REG_BLOCK_CLR_OFFSET 0x2000UL /**< Offset to CLEAR register block */
+#define PER_REG_BLOCK_TGL_OFFSET 0x3000UL /**< Offset to TOGGLE register block */
+#define MSC_CDA_PRESENT 0x0UL /**> */
+#define MSC_FDIO_WIDTH 0x40UL /**> None */
+#define MSC_FLASHADDRBITS 0x14UL /**> None */
+#define MSC_FLASHBLOCKADDRBITS 0x14UL /**> None */
+#define MSC_FLASH_BLOCK_INFO_PCOUNT 0x2UL /**> None */
+#define MSC_FLASH_BLOCK_MAIN_PCOUNT 0x50UL /**> */
+#define MSC_INFOADDRBITS 0xEUL /**> None */
+#define MSC_INFOBLOCKADDRBITS 0xEUL /**> None */
+#define MSC_INFO_PSIZE_BITS 0xDUL /**> None */
+#define MSC_MAIN_PSIZE_BITS 0xDUL /**> None */
+#define MSC_REDUNDANCY 0x2UL /**> None */
+#define MSC_ROOTMAIN_PRESENT 0x1UL /**> */
+#define MSC_UD_PRESENT 0x1UL /**> */
+#define MSC_YADDRBITS 0x6UL /**> */
+#define DMEM_BANK0_SIZE 0x4000UL /**> Bank0 size */
+#define DMEM_BANK1_SIZE 0x4000UL /**> Bank1 size */
+#define DMEM_BANK2_SIZE 0x4000UL /**> Bank2 size */
+#define DMEM_BANK3_SIZE 0x4000UL /**> Bank3 size */
+#define DMEM_BANK4_SIZE 0x2000UL /**> Bank4 size */
+#define DMEM_BANK5_SIZE 0x2000UL /**> Bank5 size */
+#define DMEM_BANK6_SIZE 0x2000UL /**> Bank6 size */
+#define DMEM_BANK7_SIZE 0x2000UL /**> Bank7 size */
+#define DMEM_NUM_BANKS 0x4UL /**> Number of physical SRAM banks */
+#define DMEM_NUM_PORTS 0x2UL /**> Number of AHB slave ports */
+#define DMEM_NUM_PORTS_IS_2 0x1UL /**> Boolean indicating if NUM_PORTS=2 */
+#define HFRCO0_EM23ONDEMAND 0x0UL /**> EM23 On Demand */
+#define HFRCO0_EXCLUDEEM23ONDEMAND 0x1UL /**> Exclude EM23 On Demand */
+#define LFXO_NO_CTUNE 0x0UL /**> CTUNE Not Present */
+#define LFXO_CTUNE 0x1UL /**> CTUNE Present */
+#define ICACHE0_AHB_LITE 0x0UL /**> AHB Lite */
+#define ICACHE0_CACHEABLE_SIZE 0x80000UL /**> Cache Size */
+#define ICACHE0_CACHEABLE_START 0x8000000UL /**> Cache Start */
+#define ICACHE0_DEFAULT_OFF 0x0UL /**> Default off */
+#define ICACHE0_FLASH_SIZE 0x80000UL /**> Flash size */
+#define ICACHE0_FLASH_START 0x8000000UL /**> Flash start */
+#define ICACHE0_LOOPCACHE_MEM_ADDR_BITS 0x3UL /**> Loopcache Memory Address bits */
+#define ICACHE0_LOOPCACHE_STICKINESS_BITS 0x4UL /**> Loopcache Stickiness bits */
+#define ICACHE0_PARITY_BITS 0x1UL /**> Use Parity */
+#define ICACHE0_PC_BITS 0x20UL /**> Performance Counter bits */
+#define ICACHE0_PIPE_STAGE 0x1UL /**> Pipeline Stage */
+#define ICACHE0_RAM_ADDR_BITS 0x0UL /**> RAM Address bits */
+#define ICACHE0_RAM_DATA_BITS 0x0UL /**> RAM Data bits */
+#define ICACHE0_SET_BITS 0x5UL /**> Set bits */
+#define ICACHE0_USE_HREADY_GATING 0x1UL /**> Use HREADY gating */
+#define ICACHE0_USE_IDLE_GATING 0x1UL /**> Use IDLE gating */
+#define ICACHE0_USE_LOOPCACHE 0x1UL /**> Use Loopcache */
+#define ICACHE0_WAY_BITS 0x1UL /**> Way bits */
+#define ICACHE0_WORDS_PER_BLOCK 0x0UL /**> Words Per Block */
+#define ICACHE0_WPB_BITS 0x1UL /**> Words Per Block bits */
+#define ICACHE0_WPL_BITS 0x3UL /**> Words Per Line bits */
+#define PRS_ASYNC_CH_NUM 0xCUL /**> None */
+#define PRS_PRSSEL_WIDTH 0x4UL /**> New Param */
+#define PRS_SPRSSEL_WIDTH 0x2UL /**> New Param */
+#define PRS_SYNC_CH_NUM 0x4UL /**> None */
+#define GPIO_COMALLOC_WIDTH 0x4UL /**> New Param */
+#define GPIO_MODE_WIDTH 0x4UL /**> Mode Width */
+#define GPIO_NUM_EM4_WU 0xCUL /**> New Param */
+#define GPIO_NUM_EVEN_PA 0x6UL /**> Num of even pins port A */
+#define GPIO_NUM_EVEN_PB 0x4UL /**> Num of even pins port B */
+#define GPIO_NUM_EVEN_PC 0x5UL /**> Num of even pins port C */
+#define GPIO_NUM_EVEN_PD 0x3UL /**> Num of even pins port D */
+#define GPIO_NUM_EXT_INT 0xCUL /**> New Param */
+#define GPIO_NUM_EXT_INT_L 0x8UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U 0x4UL /**> New Param */
+#define GPIO_NUM_EXT_INT_U_ZERO 0x0UL /**> New Param */
+#define GPIO_NUM_ODD_PA 0x5UL /**> Num of odd pins port A */
+#define GPIO_NUM_ODD_PB 0x3UL /**> Num of odd pins port B */
+#define GPIO_NUM_ODD_PC 0x5UL /**> Num of odd pins port C */
+#define GPIO_NUM_ODD_PD 0x3UL /**> Num of odd pins port D */
+#define GPIO_PINSEL_WIDTH 0x4UL /**> Route config pin select width */
+#define GPIO_PORTSEL_WIDTH 0x2UL /**> Route config port select width */
+#define GPIO_PORT_A_WIDTH 0xBUL /**> Port A Width */
+#define GPIO_PORT_A_WIDTH_ZERO 0x0UL /**> Port A Width is Zero */
+#define GPIO_PORT_A_WL 0x8UL /**> New Param */
+#define GPIO_PORT_A_WU 0x3UL /**> New Param */
+#define GPIO_PORT_A_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_B_WIDTH 0x7UL /**> Port B Width */
+#define GPIO_PORT_B_WIDTH_ZERO 0x0UL /**> Port B Width is Zero */
+#define GPIO_PORT_B_WL 0x7UL /**> New Param */
+#define GPIO_PORT_B_WU 0x0UL /**> New Param */
+#define GPIO_PORT_B_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_PORT_C_WIDTH 0xAUL /**> Port C Width */
+#define GPIO_PORT_C_WIDTH_ZERO 0x0UL /**> Port C Width is Zero */
+#define GPIO_PORT_C_WL 0x8UL /**> New Param */
+#define GPIO_PORT_C_WU 0x2UL /**> New Param */
+#define GPIO_PORT_C_WU_ZERO 0x0UL /**> New Param */
+#define GPIO_PORT_D_WIDTH 0x6UL /**> Port D Width */
+#define GPIO_PORT_D_WIDTH_ZERO 0x0UL /**> Port D Width is Zero */
+#define GPIO_PORT_D_WL 0x6UL /**> New Param */
+#define GPIO_PORT_D_WU 0x0UL /**> New Param */
+#define GPIO_PORT_D_WU_ZERO 0x1UL /**> New Param */
+#define GPIO_SEGALLOC_WIDTH 0x14UL /**> New Param */
+#define GPIO_SLEWRATE_WIDTH 0x3UL /**> Slew Rate Width Param */
+#define LDMA_CH_BITS 0x5UL /**> New Param */
+#define LDMA_CH_NUM 0x8UL /**> New Param */
+#define LDMA_FIFO_BITS 0x5UL /**> New Param */
+#define LDMA_FIFO_DEPTH 0x10UL /**> New Param */
+#define LDMAXBAR_CH_BITS 0x5UL /**> None */
+#define LDMAXBAR_CH_NUM 0x8UL /**> None */
+#define LDMAXBAR_SIGSEL_W 0x4UL /**> New Param */
+#define LDMAXBAR_SOURCESEL_W 0x6UL /**> New Param */
+#define TIMER0_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER0_CNTWIDTH 0x20UL /**> Counter Width */
+#define TIMER0_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER0_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER0_NO_DTI 0x0UL /**> */
+#define TIMER1_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER1_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER1_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER1_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER1_NO_DTI 0x0UL /**> */
+#define TIMER2_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER2_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER2_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER2_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER2_NO_DTI 0x0UL /**> */
+#define TIMER3_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER3_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER3_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER3_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER3_NO_DTI 0x0UL /**> */
+#define TIMER4_CC_NUM 0x3UL /**> Number of Compare/Capture Channels */
+#define TIMER4_CNTWIDTH 0x10UL /**> Counter Width */
+#define TIMER4_DTI 0x1UL /**> Dead-time insertion enabled */
+#define TIMER4_DTI_CC_NUM 0x3UL /**> Number of DTI Channels */
+#define TIMER4_NO_DTI 0x0UL /**> */
+#define USART0_AUTOTX_REG 0x1UL /**> None */
+#define USART0_AUTOTX_REG_B 0x0UL /**> None */
+#define USART0_AUTOTX_TRIGGER 0x1UL /**> None */
+#define USART0_AUTOTX_TRIGGER_B 0x0UL /**> New Param */
+#define USART0_CLK_PRS 0x1UL /**> None */
+#define USART0_CLK_PRS_B 0x0UL /**> New Param */
+#define USART0_FLOW_CONTROL 0x1UL /**> None */
+#define USART0_FLOW_CONTROL_B 0x0UL /**> New Param */
+#define USART0_I2S 0x1UL /**> None */
+#define USART0_I2S_B 0x0UL /**> New Param */
+#define USART0_IRDA_AVAILABLE 0x1UL /**> None */
+#define USART0_IRDA_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_MVDIS_FUNC 0x1UL /**> None */
+#define USART0_MVDIS_FUNC_B 0x0UL /**> New Param */
+#define USART0_RX_PRS 0x1UL /**> None */
+#define USART0_RX_PRS_B 0x0UL /**> New Param */
+#define USART0_SC_AVAILABLE 0x1UL /**> None */
+#define USART0_SC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_AVAILABLE 0x1UL /**> None */
+#define USART0_SYNC_AVAILABLE_B 0x0UL /**> New Param */
+#define USART0_SYNC_LATE_SAMPLE 0x1UL /**> None */
+#define USART0_SYNC_LATE_SAMPLE_B 0x0UL /**> New Param */
+#define USART0_TIMER 0x1UL /**> New Param */
+#define USART0_TIMER_B 0x0UL /**> New Param */
+#define BURTC_CNTWIDTH 0x20UL /**> None */
+#define BURTC_PRECNT_WIDTH 0xFUL /**> */
+#define I2C1_DELAY 0x7D0UL /**> Delay cell selection */
+#define I2C1_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define SYSCFG_CHIP_FAMILY 0x38UL /**> CHIP Family */
+#define SYSCFG_DEMODRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_FRCRAM_INST_COUNT 0x1UL /**> */
+#define SYSCFG_SEQRAM_INST_COUNT 0x2UL /**> None */
+#define SYSCFG_SWINT_NUM 0x4UL /**> Software interupts */
+#define DCDC_DRVSPEED_WIDTH 0x2UL /**> Drive Speed bitfield width */
+#define DCDC_IPKVAL_WIDTH 0x4UL /**> Peak Current Setting bitfield Width */
+#define DCDC_VCMPIBIAS_WIDTH 0x2UL /**> VCMP ibias bitfield width */
+#define HOSTMAILBOX_NUM_MSGPTRS 0x4UL /**> */
+#define EUSART1_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART1_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define EUSART2_EM2_CAPABLE 0x0UL /**> EM2 Capable instance */
+#define EUSART2_NOT_EM2_CAPABLE 0x1UL /**> Not EM2 Capable instance */
+#define SYSRTC0_GROUP0_ALTIRQDIS 0x1UL /**> Group 0 Alternate IRQ disable */
+#define SYSRTC0_GROUP0_CAPDIS 0x0UL /**> Group 0 Capture disable */
+#define SYSRTC0_GROUP0_CMP1DIS 0x0UL /**> Group 0 Compare1 disable */
+#define SYSRTC0_GROUP0_DIS 0x0UL /**> Group 0 Disable */
+#define SYSRTC0_GROUP0_ROOTDIS 0x1UL /**> Group 0 ROOT disable */
+#define SYSRTC0_GROUP1_ALTIRQDIS 0x0UL /**> Group 1 Alternate IRQ disable */
+#define SYSRTC0_GROUP1_CAPDIS 0x0UL /**> Group 1 Capture disable */
+#define SYSRTC0_GROUP1_CMP1DIS 0x0UL /**> Group 1 Compare1 disable */
+#define SYSRTC0_GROUP1_DIS 0x0UL /**> Group 1 Disable */
+#define SYSRTC0_GROUP1_ROOTDIS 0x1UL /**> Group 1 ROOT disable */
+#define SYSRTC0_GROUP2_ALTIRQDIS 0x1UL /**> Group 2 Alternate IRQ disable */
+#define SYSRTC0_GROUP2_CAPDIS 0x1UL /**> Group 2 Capture disable */
+#define SYSRTC0_GROUP2_CMP1DIS 0x1UL /**> Group 2 Compare1 disable */
+#define SYSRTC0_GROUP2_DIS 0x0UL /**> Group 2 Disable */
+#define SYSRTC0_GROUP2_ROOTDIS 0x0UL /**> Group 2 ROOT disable */
+#define SYSRTC0_GROUP3_ALTIRQDIS 0x1UL /**> Group 3 Alternate IRQ disable */
+#define SYSRTC0_GROUP3_CAPDIS 0x1UL /**> Group 3 Capture disable */
+#define SYSRTC0_GROUP3_CMP1DIS 0x1UL /**> Group 3 Compare1 disable */
+#define SYSRTC0_GROUP3_DIS 0x1UL /**> Group 3 Disable */
+#define SYSRTC0_GROUP3_ROOTDIS 0x1UL /**> Group 3 ROOT disable */
+#define SYSRTC0_GROUP4_ALTIRQDIS 0x1UL /**> Group 4 Alternate IRQ disable */
+#define SYSRTC0_GROUP4_CAPDIS 0x1UL /**> Group 4 Capture disable */
+#define SYSRTC0_GROUP4_CMP1DIS 0x1UL /**> Group 4 Compare1 disable */
+#define SYSRTC0_GROUP4_DIS 0x1UL /**> Group 4 Disable */
+#define SYSRTC0_GROUP4_ROOTDIS 0x1UL /**> Group 4 ROOT disable */
+#define SYSRTC0_GROUP5_ALTIRQDIS 0x1UL /**> Group 5 Alternate IRQ disable */
+#define SYSRTC0_GROUP5_CAPDIS 0x1UL /**> Group 5 Capture disable */
+#define SYSRTC0_GROUP5_CMP1DIS 0x1UL /**> Group 5 Compare1 disable */
+#define SYSRTC0_GROUP5_DIS 0x1UL /**> Group 5 Disable */
+#define SYSRTC0_GROUP5_ROOTDIS 0x1UL /**> Group 5 ROOT disable */
+#define SYSRTC0_GROUP6_ALTIRQDIS 0x1UL /**> Group 6 Alternate IRQ disable */
+#define SYSRTC0_GROUP6_CAPDIS 0x1UL /**> Group 6 Capture disable */
+#define SYSRTC0_GROUP6_CMP1DIS 0x1UL /**> Group 6 Compare1 disable */
+#define SYSRTC0_GROUP6_DIS 0x1UL /**> Group 6 Disable */
+#define SYSRTC0_GROUP6_ROOTDIS 0x1UL /**> Group 6 ROOT disable */
+#define SYSRTC0_GROUP7_ALTIRQDIS 0x1UL /**> Group 7 Alternate IRQ disable */
+#define SYSRTC0_GROUP7_CAPDIS 0x1UL /**> Group 7 Capture disable */
+#define SYSRTC0_GROUP7_CMP1DIS 0x1UL /**> Group 7 Compare1 disable */
+#define SYSRTC0_GROUP7_DIS 0x1UL /**> Group 7 Disable */
+#define SYSRTC0_GROUP7_ROOTDIS 0x1UL /**> Group 7 ROOT disable */
+#define SYSRTC0_ROOTDIS 0x0UL /**> ROOT disable */
+#define KEYSCAN_COLNUM 0x8UL /**> COLNUM */
+#define KEYSCAN_COLWIDTH 0x3UL /**> COLWIDTH */
+#define KEYSCAN_ROWNUM 0x6UL /**> ROWNUM */
+#define PFMXPPRF_COUNT_WIDTH 0x9UL /**> Width of counters for pulse-pairing */
+#define RADIOAES_SIDECHANNEL_COUNTERMEASURES 0x1UL /**> Enable sidechannel counter measures */
+#define SMU_NUM_BMPUS 0x7UL /**> Number of BMPUs */
+#define SMU_NUM_PPU_PERIPHS 0x39UL /**> Number of PPU Peripherals */
+#define SMU_NUM_PPU_PERIPHS_MOD_32 0x19UL /**> Number of PPU Peripherals (mod 32) */
+#define SMU_NUM_PPU_PERIPHS_SUB_32 0x19UL /**> Number of PPU peripherals minus 32 */
+#define SMU_PERIPHID_BITS 0x8UL /**> Bits used for Peripheral ID */
+#define LETIMER0_CNT_WIDTH 0x18UL /**> Count Width */
+#define IADC0_CONFIGNUM 0x2UL /**> CONFIG */
+#define IADC0_FULLRANGEUNIPOLAR 0x0UL /**> FULLRANGEUNIPOLAR */
+#define IADC0_SCANBYTES 0x1UL /**> SCANBYTES */
+#define IADC0_ENTRIES 0x10UL /**> ENTRIES */
+#define ACMP0_DAC_INPUT 0x1UL /**> None */
+#define ACMP0_EXT_OVR_IF 0x1UL /**> None */
+#define ACMP1_DAC_INPUT 0x1UL /**> None */
+#define ACMP1_EXT_OVR_IF 0x1UL /**> None */
+#define VDAC0_ALT_WIDTH 0x6UL /**> VOUT_AUX Out Width */
+#define VDAC0_CH1_TRIG_LESENSE 0x0UL /**> CH1 Trig Source = LESENSE */
+#define VDAC0_FIFO_DEPTH 0x4UL /**> WFIFO Depth */
+#define VDAC0_INT_PRESC_WIDTH 0x7UL /**> Internal Prescaler Width */
+#define VDAC0_RESOLUTION 0xCUL /**> DAC Resolution */
+#define PCNT0_PCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_CHANNEL_NUM 0x10UL /**> None */
+#define LESENSE_RIPCNT_WIDTH 0x10UL /**> None */
+#define LESENSE_STATE_NUM 0x20UL /**> None */
+#define HFRCOEM23_EM23ONDEMAND 0x1UL /**> EM23 On Demand */
+#define HFRCOEM23_EXCLUDEEM23ONDEMAND 0x0UL /**> Exclude EM23 On Demand */
+#define HFXO0_BUFOUT 0x1UL /**> BUFOUT */
+#define HFXO0_EXCLUDEBUFOUT 0x0UL /**> Exclude BUFOUT */
+#define I2C0_DELAY 0x3E8UL /**> Delay cell selection */
+#define I2C0_DELAY_CHAIN_NUM 0x2UL /**> Number of delay chain */
+#define WDOG0_PCNUM 0x2UL /**> None */
+#define WDOG1_PCNUM 0x2UL /**> None */
+#define EUSART0_EM2_CAPABLE 0x1UL /**> EM2 Capable instance */
+#define EUSART0_NOT_EM2_CAPABLE 0x0UL /**> Not EM2 Capable instance */
+#define RDMEM_FRC_BANK0_SIZE 0x1000UL /**> FRC_RAM_BANK0_SIZE */
+#define RDMEM_FRC_BANK1_SIZE 0x0UL /**> FRC_RAM_BANK1_SIZE */
+#define RDMEM_FRC_BANK2_SIZE 0x0UL /**> FRC_RAM_BANK2_SIZE */
+#define RDMEM_FRC_BANK3_SIZE 0x0UL /**> FRC_RAM_BANK3_SIZE */
+#define RDMEM_FRC_BANK4_SIZE 0x0UL /**> FRC_RAM_BANK4_SIZE */
+#define RDMEM_FRC_BANK5_SIZE 0x0UL /**> FRC_RAM_BANK5_SIZE */
+#define RDMEM_FRC_BANK6_SIZE 0x0UL /**> FRC_RAM_BANK6_SIZE */
+#define RDMEM_FRC_BANK7_SIZE 0x0UL /**> FRC_RAM_BANK7_SIZE */
+#define RDMEM_FRC_NUM_BANK 0x1UL /**> FRC_NUM_BANK */
+#define RDMEM_FRC_RAMADDRBITS 0xCUL /**> FRC RAM ADDRBITS */
+#define RDMEM_FRC_RAMADDRMINBITS 0xCUL /**> FRC RAM address bits for one bank */
+#define RDMEM_FRC_RAMECCADDR_WIDTH 0x20UL /**> FRC RAM ECC Address width */
+#define RDMEM_FRC_RAM_BWE_WIDTH 0x27UL /**> FRCRAM BWE width */
+#define RDMEM_FRC_RAM_DATA_WIDTH 0x27UL /**> FRC_RAM_DATA_WIDTH */
+#define RDMEM_FRC_RAM_ECC_EN 0x1UL /**> FRC RAM ECCEN */
+#define RDMEM_FRC_RAM_TOTAL_SIZE 0x1000UL /**> FRC_RAM_TOTAL_SIZE */
+#define RDMEM_SEQ_BANK0_SIZE 0x2000UL /**> SEQ_RAM_BANK0_SIZE */
+#define RDMEM_SEQ_BANK1_SIZE 0x2000UL /**> SEQ_RAM_BANK1_SIZE */
+#define RDMEM_SEQ_BANK2_SIZE 0x0UL /**> SEQ_RAM_BANK2_SIZE */
+#define RDMEM_SEQ_BANK3_SIZE 0x0UL /**> SEQ_RAM_BANK3_SIZE */
+#define RDMEM_SEQ_BANK4_SIZE 0x0UL /**> SEQ_RAM_BANK4_SIZE */
+#define RDMEM_SEQ_BANK5_SIZE 0x0UL /**> SEQ_RAM_BANK5_SIZE */
+#define RDMEM_SEQ_BANK6_SIZE 0x0UL /**> SEQ_RAM_BANK6_SIZE */
+#define RDMEM_SEQ_BANK7_SIZE 0x0UL /**> SEQ_RAM_BANK7_SIZE */
+#define RDMEM_SEQ_NUM_BANK 0x2UL /**> SEQ_NUM_BANK */
+#define RDMEM_SEQ_RAMADDRBITS 0xEUL /**> SEQ RAM ADDRBITS */
+#define RDMEM_SEQ_RAMADDRMINBITS 0xDUL /**> SEQ RAM address bits for one bank */
+#define RDMEM_SEQ_RAMECCADDR_WIDTH 0x20UL /**> SEQ RAM ECC Address width */
+#define RDMEM_SEQ_RAM_BWE_WIDTH 0x27UL /**> SEQRAM BWE width */
+#define RDMEM_SEQ_RAM_DATA_WIDTH 0x27UL /**> SEQ_RAM_DATA_WIDTH */
+#define RDMEM_SEQ_RAM_ECC_EN 0x1UL /**> SEQ RAM ECCEN */
+#define RDMEM_SEQ_RAM_TOTAL_SIZE 0x4000UL /**> SEQ_RAM_TOTAL_SIZE */
+
+/* Instance macros for ACMP */
+#define ACMP(n) (((n) == 0) ? ACMP0 \
+ : ((n) == 1) ? ACMP1 \
+ : 0x0UL)
+#define ACMP_NUM(ref) (((ref) == ACMP0) ? 0 \
+ : ((ref) == ACMP1) ? 1 \
+ : -1)
+#define ACMP_DAC_INPUT(n) (((n) == 0) ? ACMP0_DAC_INPUT \
+ : ((n) == 1) ? ACMP1_DAC_INPUT \
+ : 0x0UL)
+#define ACMP_EXT_OVR_IF(n) (((n) == 0) ? ACMP0_EXT_OVR_IF \
+ : ((n) == 1) ? ACMP1_EXT_OVR_IF \
+ : 0x0UL)
+
+/* Instance macros for EUSART */
+#define EUSART(n) (((n) == 0) ? EUSART0 \
+ : ((n) == 1) ? EUSART1 \
+ : ((n) == 2) ? EUSART2 \
+ : 0x0UL)
+#define EUSART_NUM(ref) (((ref) == EUSART0) ? 0 \
+ : ((ref) == EUSART1) ? 1 \
+ : ((ref) == EUSART2) ? 2 \
+ : -1)
+#define EUSART_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_EM2_CAPABLE \
+ : 0x0UL)
+#define EUSART_NOT_EM2_CAPABLE(n) (((n) == 0) ? EUSART0_NOT_EM2_CAPABLE \
+ : ((n) == 1) ? EUSART1_NOT_EM2_CAPABLE \
+ : ((n) == 2) ? EUSART2_NOT_EM2_CAPABLE \
+ : 0x0UL)
+
+/* Instance macros for I2C */
+#define I2C(n) (((n) == 0) ? I2C0 \
+ : ((n) == 1) ? I2C1 \
+ : 0x0UL)
+#define I2C_NUM(ref) (((ref) == I2C0) ? 0 \
+ : ((ref) == I2C1) ? 1 \
+ : -1)
+#define I2C_DELAY(n) (((n) == 0) ? I2C0_DELAY \
+ : ((n) == 1) ? I2C1_DELAY \
+ : 0x0UL)
+#define I2C_DELAY_CHAIN_NUM(n) (((n) == 0) ? I2C0_DELAY_CHAIN_NUM \
+ : ((n) == 1) ? I2C1_DELAY_CHAIN_NUM \
+ : 0x0UL)
+
+/* Instance macros for TIMER */
+#define TIMER(n) (((n) == 0) ? TIMER0 \
+ : ((n) == 1) ? TIMER1 \
+ : ((n) == 2) ? TIMER2 \
+ : ((n) == 3) ? TIMER3 \
+ : ((n) == 4) ? TIMER4 \
+ : 0x0UL)
+#define TIMER_NUM(ref) (((ref) == TIMER0) ? 0 \
+ : ((ref) == TIMER1) ? 1 \
+ : ((ref) == TIMER2) ? 2 \
+ : ((ref) == TIMER3) ? 3 \
+ : ((ref) == TIMER4) ? 4 \
+ : -1)
+#define TIMER_CC_NUM(n) (((n) == 0) ? TIMER0_CC_NUM \
+ : ((n) == 1) ? TIMER1_CC_NUM \
+ : ((n) == 2) ? TIMER2_CC_NUM \
+ : ((n) == 3) ? TIMER3_CC_NUM \
+ : ((n) == 4) ? TIMER4_CC_NUM \
+ : 0x0UL)
+#define TIMER_CNTWIDTH(n) (((n) == 0) ? TIMER0_CNTWIDTH \
+ : ((n) == 1) ? TIMER1_CNTWIDTH \
+ : ((n) == 2) ? TIMER2_CNTWIDTH \
+ : ((n) == 3) ? TIMER3_CNTWIDTH \
+ : ((n) == 4) ? TIMER4_CNTWIDTH \
+ : 0x0UL)
+#define TIMER_DTI(n) (((n) == 0) ? TIMER0_DTI \
+ : ((n) == 1) ? TIMER1_DTI \
+ : ((n) == 2) ? TIMER2_DTI \
+ : ((n) == 3) ? TIMER3_DTI \
+ : ((n) == 4) ? TIMER4_DTI \
+ : 0x0UL)
+#define TIMER_DTI_CC_NUM(n) (((n) == 0) ? TIMER0_DTI_CC_NUM \
+ : ((n) == 1) ? TIMER1_DTI_CC_NUM \
+ : ((n) == 2) ? TIMER2_DTI_CC_NUM \
+ : ((n) == 3) ? TIMER3_DTI_CC_NUM \
+ : ((n) == 4) ? TIMER4_DTI_CC_NUM \
+ : 0x0UL)
+#define TIMER_NO_DTI(n) (((n) == 0) ? TIMER0_NO_DTI \
+ : ((n) == 1) ? TIMER1_NO_DTI \
+ : ((n) == 2) ? TIMER2_NO_DTI \
+ : ((n) == 3) ? TIMER3_NO_DTI \
+ : ((n) == 4) ? TIMER4_NO_DTI \
+ : 0x0UL)
+
+/* Instance macros for WDOG */
+#define WDOG(n) (((n) == 0) ? WDOG0 \
+ : ((n) == 1) ? WDOG1 \
+ : 0x0UL)
+#define WDOG_NUM(ref) (((ref) == WDOG0) ? 0 \
+ : ((ref) == WDOG1) ? 1 \
+ : -1)
+#define WDOG_PCNUM(n) (((n) == 0) ? WDOG0_PCNUM \
+ : ((n) == 1) ? WDOG1_PCNUM \
+ : 0x0UL)
+
+/** @} End of group EFR32ZG23B021F512IM40_Peripheral_Parameters */
+
+/** @} End of group EFR32ZG23B021F512IM40 */
+/** @}} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/em_device.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/em_device.h
new file mode 100644
index 000000000..5d395cdd8
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/em_device.h
@@ -0,0 +1,85 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M Peripheral Access Layer for Silicon Laboratories
+ * microcontroller devices
+ *
+ * This is a convenience header file for defining the part number on the
+ * build command line, instead of specifying the part specific header file.
+ *
+ * @verbatim
+ * Example: Add "-DEFM32G890F128" to your build options, to define part
+ * Add "#include "em_device.h" to your source files
+
+ *
+ * @endverbatim
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef EM_DEVICE_H
+#define EM_DEVICE_H
+#if defined(EFR32ZG23A010F512GM40)
+#include "efr32zg23a010f512gm40.h"
+
+#elif defined(EFR32ZG23A010F512GM48)
+#include "efr32zg23a010f512gm48.h"
+
+#elif defined(EFR32ZG23A020F512GM40)
+#include "efr32zg23a020f512gm40.h"
+
+#elif defined(EFR32ZG23A020F512GM48)
+#include "efr32zg23a020f512gm48.h"
+
+#elif defined(EFR32ZG23B010F512IM40)
+#include "efr32zg23b010f512im40.h"
+
+#elif defined(EFR32ZG23B010F512IM48)
+#include "efr32zg23b010f512im48.h"
+
+#elif defined(EFR32ZG23B011F512IM40)
+#include "efr32zg23b011f512im40.h"
+
+#elif defined(EFR32ZG23B020F512IM40)
+#include "efr32zg23b020f512im40.h"
+
+#elif defined(EFR32ZG23B020F512IM48)
+#include "efr32zg23b020f512im48.h"
+
+#elif defined(EFR32ZG23B021F512IM40)
+#include "efr32zg23b021f512im40.h"
+
+#else
+#error "em_device.h: PART NUMBER undefined"
+#endif
+
+#if defined(SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_CATALOG_TRUSTZONE_SECURE_CONFIG_PRESENT and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+
+#if defined(SL_TRUSTZONE_SECURE) && defined(SL_TRUSTZONE_NONSECURE)
+#error "Can't define SL_TRUSTZONE_SECURE and SL_TRUSTZONE_NONSECURE MACRO at the same time."
+#endif
+#endif /* EM_DEVICE_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h
new file mode 100644
index 000000000..f1c27aeed
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Include/system_efr32zg23.h
@@ -0,0 +1,255 @@
+/**************************************************************************//**
+ * @file
+ * @brief CMSIS system header file for EFR32ZG23
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#ifndef SYSTEM_EFR32ZG23_H
+#define SYSTEM_EFR32ZG23_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include "sl_code_classification.h"
+
+/***************************************************************************//**
+ * @addtogroup Parts
+ * @{
+ ******************************************************************************/
+/***************************************************************************//**
+ * @addtogroup EFR32ZG23 EFR32ZG23
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ****************************** TYPEDEFS ***********************************
+ ******************************************************************************/
+
+/* Interrupt vectortable entry */
+typedef union {
+ void (*VECTOR_TABLE_Type)(void);
+ void *topOfStack;
+} tVectorEntry;
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+extern uint32_t SystemCoreClock; /**< System Clock Frequency (Core Clock) */
+extern uint32_t SystemHfrcoFreq; /**< System HFRCO frequency */
+#endif
+
+/*Re-direction of IRQn.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQn SMU_S_PRIVILEGED_IRQn
+#else
+#define SMU_PRIVILEGED_IRQn SMU_NS_PRIVILEGED_IRQn
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*Re-direction of IRQHandler.*/
+#if defined (SL_TRUSTZONE_SECURE)
+#define SMU_PRIVILEGED_IRQHandler SMU_S_PRIVILEGED_IRQHandler
+#else
+#define SMU_PRIVILEGED_IRQHandler SMU_NS_PRIVILEGED_IRQHandler
+#endif /* SL_TRUSTZONE_SECURE */
+
+/*******************************************************************************
+ ***************************** PROTOTYPES **********************************
+ ******************************************************************************/
+
+void Reset_Handler(void); /**< Reset Handler */
+void NMI_Handler(void); /**< NMI Handler */
+void HardFault_Handler(void); /**< Hard Fault Handler */
+void MemManage_Handler(void); /**< MPU Fault Handler */
+void BusFault_Handler(void); /**< Bus Fault Handler */
+void UsageFault_Handler(void); /**< Usage Fault Handler */
+void SecureFault_Handler(void); /**< Secure Fault Handler */
+void SVC_Handler(void); /**< SVCall Handler */
+void DebugMon_Handler(void); /**< Debug Monitor Handler */
+void PendSV_Handler(void); /**< PendSV Handler */
+void SysTick_Handler(void); /**< SysTick Handler */
+
+/* Part Specific Interrupts */
+void SMU_SECURE_IRQHandler(void); /**< SMU_SECURE IRQ Handler */
+void SMU_S_PRIVILEGED_IRQHandler(void); /**< SMU_S_PRIVILEGED IRQ Handler */
+void SMU_NS_PRIVILEGED_IRQHandler(void); /**< SMU_NS_PRIVILEGED IRQ Handler */
+void EMU_IRQHandler(void); /**< EMU IRQ Handler */
+void TIMER0_IRQHandler(void); /**< TIMER0 IRQ Handler */
+void TIMER1_IRQHandler(void); /**< TIMER1 IRQ Handler */
+void TIMER2_IRQHandler(void); /**< TIMER2 IRQ Handler */
+void TIMER3_IRQHandler(void); /**< TIMER3 IRQ Handler */
+void TIMER4_IRQHandler(void); /**< TIMER4 IRQ Handler */
+void USART0_RX_IRQHandler(void); /**< USART0_RX IRQ Handler */
+void USART0_TX_IRQHandler(void); /**< USART0_TX IRQ Handler */
+void EUSART0_RX_IRQHandler(void); /**< EUSART0_RX IRQ Handler */
+void EUSART0_TX_IRQHandler(void); /**< EUSART0_TX IRQ Handler */
+void EUSART1_RX_IRQHandler(void); /**< EUSART1_RX IRQ Handler */
+void EUSART1_TX_IRQHandler(void); /**< EUSART1_TX IRQ Handler */
+void EUSART2_RX_IRQHandler(void); /**< EUSART2_RX IRQ Handler */
+void EUSART2_TX_IRQHandler(void); /**< EUSART2_TX IRQ Handler */
+void ICACHE0_IRQHandler(void); /**< ICACHE0 IRQ Handler */
+void BURTC_IRQHandler(void); /**< BURTC IRQ Handler */
+void LETIMER0_IRQHandler(void); /**< LETIMER0 IRQ Handler */
+void SYSCFG_IRQHandler(void); /**< SYSCFG IRQ Handler */
+void MPAHBRAM_IRQHandler(void); /**< MPAHBRAM IRQ Handler */
+void LDMA_IRQHandler(void); /**< LDMA IRQ Handler */
+void LFXO_IRQHandler(void); /**< LFXO IRQ Handler */
+void LFRCO_IRQHandler(void); /**< LFRCO IRQ Handler */
+void ULFRCO_IRQHandler(void); /**< ULFRCO IRQ Handler */
+void GPIO_ODD_IRQHandler(void); /**< GPIO_ODD IRQ Handler */
+void GPIO_EVEN_IRQHandler(void); /**< GPIO_EVEN IRQ Handler */
+void I2C0_IRQHandler(void); /**< I2C0 IRQ Handler */
+void I2C1_IRQHandler(void); /**< I2C1 IRQ Handler */
+void EMUDG_IRQHandler(void); /**< EMUDG IRQ Handler */
+void AGC_IRQHandler(void); /**< AGC IRQ Handler */
+void BUFC_IRQHandler(void); /**< BUFC IRQ Handler */
+void FRC_PRI_IRQHandler(void); /**< FRC_PRI IRQ Handler */
+void FRC_IRQHandler(void); /**< FRC IRQ Handler */
+void MODEM_IRQHandler(void); /**< MODEM IRQ Handler */
+void PROTIMER_IRQHandler(void); /**< PROTIMER IRQ Handler */
+void RAC_RSM_IRQHandler(void); /**< RAC_RSM IRQ Handler */
+void RAC_SEQ_IRQHandler(void); /**< RAC_SEQ IRQ Handler */
+void HOSTMAILBOX_IRQHandler(void); /**< HOSTMAILBOX IRQ Handler */
+void SYNTH_IRQHandler(void); /**< SYNTH IRQ Handler */
+void ACMP0_IRQHandler(void); /**< ACMP0 IRQ Handler */
+void ACMP1_IRQHandler(void); /**< ACMP1 IRQ Handler */
+void WDOG0_IRQHandler(void); /**< WDOG0 IRQ Handler */
+void WDOG1_IRQHandler(void); /**< WDOG1 IRQ Handler */
+void HFXO0_IRQHandler(void); /**< HFXO0 IRQ Handler */
+void HFRCO0_IRQHandler(void); /**< HFRCO0 IRQ Handler */
+void HFRCOEM23_IRQHandler(void); /**< HFRCOEM23 IRQ Handler */
+void CMU_IRQHandler(void); /**< CMU IRQ Handler */
+void AES_IRQHandler(void); /**< AES IRQ Handler */
+void IADC_IRQHandler(void); /**< IADC IRQ Handler */
+void MSC_IRQHandler(void); /**< MSC IRQ Handler */
+void DPLL0_IRQHandler(void); /**< DPLL0 IRQ Handler */
+void EMUEFP_IRQHandler(void); /**< EMUEFP IRQ Handler */
+void DCDC_IRQHandler(void); /**< DCDC IRQ Handler */
+void VDAC_IRQHandler(void); /**< VDAC IRQ Handler */
+void PCNT0_IRQHandler(void); /**< PCNT0 IRQ Handler */
+void SW0_IRQHandler(void); /**< SW0 IRQ Handler */
+void SW1_IRQHandler(void); /**< SW1 IRQ Handler */
+void SW2_IRQHandler(void); /**< SW2 IRQ Handler */
+void SW3_IRQHandler(void); /**< SW3 IRQ Handler */
+void KERNEL0_IRQHandler(void); /**< KERNEL0 IRQ Handler */
+void KERNEL1_IRQHandler(void); /**< KERNEL1 IRQ Handler */
+void M33CTI0_IRQHandler(void); /**< M33CTI0 IRQ Handler */
+void M33CTI1_IRQHandler(void); /**< M33CTI1 IRQ Handler */
+void FPUEXH_IRQHandler(void); /**< FPUEXH IRQ Handler */
+void SETAMPERHOST_IRQHandler(void); /**< SETAMPERHOST IRQ Handler */
+void SEMBRX_IRQHandler(void); /**< SEMBRX IRQ Handler */
+void SEMBTX_IRQHandler(void); /**< SEMBTX IRQ Handler */
+void LESENSE_IRQHandler(void); /**< LESENSE IRQ Handler */
+void SYSRTC_APP_IRQHandler(void); /**< SYSRTC_APP IRQ Handler */
+void SYSRTC_SEQ_IRQHandler(void); /**< SYSRTC_SEQ IRQ Handler */
+void LCD_IRQHandler(void); /**< LCD IRQ Handler */
+void KEYSCAN_IRQHandler(void); /**< KEYSCAN IRQ Handler */
+void RFECA0_IRQHandler(void); /**< RFECA0 IRQ Handler */
+void RFECA1_IRQHandler(void); /**< RFECA1 IRQ Handler */
+
+#if (__FPU_PRESENT == 1)
+void FPUEH_IRQHandler(void); /**< FPU IRQ Handler */
+#endif
+
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHCLKGet(void);
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE uint32_t SystemCoreClockGet(void)
+{
+ return SystemHCLKGet();
+}
+
+/**************************************************************************//**
+ * @brief
+ * Update CMSIS SystemCoreClock variable.
+ *
+ * @details
+ * CMSIS defines a global variable SystemCoreClock that shall hold the
+ * core frequency in Hz. If the core frequency is dynamically changed, the
+ * variable must be kept updated in order to be CMSIS compliant.
+ *
+ * Notice that only if changing the core clock frequency through the EMLIB
+ * CMU API, this variable will be kept updated. This function is only
+ * provided for CMSIS compliance and if a user modifies the the core clock
+ * outside the EMLIB CMU API.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+static __INLINE void SystemCoreClockUpdate(void)
+{
+ SystemHCLKGet();
+}
+
+void SystemInit(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFRCODPLLClockGet(void);
+void SystemHFRCODPLLClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemSYSCLKGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemMaxCoreClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemFSRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFXOClockGet(void);
+void SystemHFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemCLKIN0Get(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemHFRCOEM23ClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFXOClockGet(void);
+void SystemLFXOClockSet(uint32_t freq);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemLFRCOClockGet(void);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SYSTEM, SL_CODE_CLASS_TIME_CRITICAL)
+uint32_t SystemULFRCOClockGet(void);
+
+/** @} End of group */
+/** @} End of group Parts */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SYSTEM_EFR32ZG23_H */
diff --git a/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c
new file mode 100644
index 000000000..83e9fc2fe
--- /dev/null
+++ b/simplicity_sdk/platform/Device/SiliconLabs/EFR32ZG23/Source/system_efr32zg23.c
@@ -0,0 +1,667 @@
+/***************************************************************************//**
+ * @file
+ * @brief CMSIS Cortex-M33 system support for EFR32ZG23 devices.
+ ******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories, Inc. www.silabs.com
+ ******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ *****************************************************************************/
+
+#include
+#include "em_device.h"
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+#if defined(SL_CATALOG_CLOCK_MANAGER_PRESENT)
+#include "sl_clock_manager_oscillator_config.h"
+
+#endif
+
+/*******************************************************************************
+ ****************************** DEFINES ************************************
+ ******************************************************************************/
+
+// System oscillator frequencies. These frequencies are normally constant
+// for a target, but they are made configurable in order to allow run-time
+// handling of different boards. The crystal oscillator clocks can be set
+// compile time to a non-default value by defining respective nFXO_FREQ
+// values according to board design. By defining the nFXO_FREQ to 0,
+// one indicates that the oscillator is not present, in order to save some
+// SW footprint.
+
+#if !defined(FSRCO_FREQ)
+// FSRCO frequency
+#define FSRCO_FREQ (20000000UL)
+#endif
+
+#if !defined(HFXO_FREQ)
+// HFXO frequency
+#define HFXO_FREQ (39000000UL)
+#endif
+
+#if !defined(HFRCODPLL_STARTUP_FREQ)
+// HFRCODPLL startup frequency
+#define HFRCODPLL_STARTUP_FREQ (19000000UL)
+#endif
+
+#if !defined(HFRCODPLL_MAX_FREQ)
+// Maximum HFRCODPLL frequency
+#define HFRCODPLL_MAX_FREQ (80000000UL)
+#endif
+
+// CLKIN0 input
+#if defined(SL_CLOCK_MANAGER_CLKIN0_FREQ)
+// Clock Manager takes control of this define when present.
+#define CLKIN0_FREQ (SL_CLOCK_MANAGER_CLKIN0_FREQ)
+#elif !defined(CLKIN0_FREQ)
+#define CLKIN0_FREQ (0UL)
+#endif
+
+#if !defined(LFRCO_MAX_FREQ)
+// LFRCO frequency, tuned to below frequency during manufacturing.
+#define LFRCO_FREQ (32768UL)
+#endif
+
+#if !defined(ULFRCO_FREQ)
+// ULFRCO frequency
+#define ULFRCO_FREQ (1000UL)
+#endif
+
+#if !defined(LFXO_FREQ)
+// LFXO frequency
+#define LFXO_FREQ (LFRCO_FREQ)
+#endif
+
+/*******************************************************************************
+ ************************** LOCAL VARIABLES ********************************
+ ******************************************************************************/
+
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// NOTE: Gecko bootloaders can't have static variable allocation.
+// System HFXO clock frequency
+static uint32_t SystemHFXOClock = HFXO_FREQ;
+#endif
+
+#if (LFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+// System LFXO clock frequency
+static uint32_t SystemLFXOClock = LFXO_FREQ;
+#endif
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+// System HFRCODPLL clock frequency
+static uint32_t SystemHFRCODPLLClock = HFRCODPLL_STARTUP_FREQ;
+#endif
+
+/*******************************************************************************
+ ************************** GLOBAL VARIABLES *******************************
+ ******************************************************************************/
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+
+/**
+ * @brief
+ * System System Clock Frequency (Core Clock).
+ *
+ * @details
+ * Required CMSIS global variable that must be kept up-to-date.
+ */
+uint32_t SystemCoreClock = HFRCODPLL_STARTUP_FREQ;
+
+#endif
+
+/*---------------------------------------------------------------------------
+ * Exception / Interrupt Vector table
+ *---------------------------------------------------------------------------*/
+extern const tVectorEntry __VECTOR_TABLE[16 + EXT_IRQ_COUNT];
+
+/*******************************************************************************
+ ************************** GLOBAL FUNCTIONS *******************************
+ ******************************************************************************/
+
+/**************************************************************************//**
+ * @brief
+ * Initialize the system.
+ *
+ * @details
+ * Do required generic HW system init.
+ *
+ * @note
+ * This function is invoked during system init, before the main() routine
+ * and any data has been initialized. For this reason, it cannot do any
+ * initialization of variables etc.
+ *****************************************************************************/
+void SystemInit(void)
+{
+#if defined (__VTOR_PRESENT) && (__VTOR_PRESENT == 1U)
+ SCB->VTOR = (uint32_t) (&__VECTOR_TABLE[0]);
+#endif
+
+#if defined(UNALIGNED_SUPPORT_DISABLE)
+ SCB->CCR |= SCB_CCR_UNALIGN_TRP_Msk;
+#endif
+
+#if (__FPU_PRESENT == 1)
+ SCB->CPACR |= ((3U << 10U * 2U) /* set CP10 Full Access */
+ | (3U << 11U * 2U)); /* set CP11 Full Access */
+#endif
+
+/* Secure app takes care of moving between the security states.
+ * SL_TRUSTZONE_SECURE MACRO is for secure access.
+ * SL_TRUSTZONE_NONSECURE MACRO is for non-secure access.
+ * When both the MACROS are not defined, during start-up below code makes sure
+ * that all the peripherals are accessed from non-secure address except SMU,
+ * as SMU is used to configure the trustzone state of the system. */
+#if !defined(SL_TRUSTZONE_SECURE) && !defined(SL_TRUSTZONE_NONSECURE) \
+ && defined(__TZ_PRESENT)
+ CMU->CLKEN1_SET = CMU_CLKEN1_SMU;
+
+ // config SMU to Secure and other peripherals to Non-Secure.
+ SMU->PPUSATD0_CLR = _SMU_PPUSATD0_MASK;
+#if defined (SEMAILBOX_PRESENT)
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & (~SMU_PPUSATD1_SMU & ~SMU_PPUSATD1_SEMAILBOX));
+#else
+ SMU->PPUSATD1_CLR = (_SMU_PPUSATD1_MASK & ~SMU_PPUSATD1_SMU);
+#endif
+
+ // SAU treats all accesses as non-secure
+#if defined(__ARM_FEATURE_CMSE) && (__ARM_FEATURE_CMSE == 3U)
+ SAU->CTRL = SAU_CTRL_ALLNS_Msk;
+ __DSB();
+ __ISB();
+#else
+ #error "The startup code requires access to the CMSE toolchain extension to set proper SAU settings."
+#endif // __ARM_FEATURE_CMSE
+
+// Clear and Enable the SMU PPUSEC and BMPUSEC interrupt.
+ NVIC_ClearPendingIRQ(SMU_SECURE_IRQn);
+ SMU->IF_CLR = SMU_IF_PPUSEC | SMU_IF_BMPUSEC;
+ NVIC_EnableIRQ(SMU_SECURE_IRQn);
+ SMU->IEN = SMU_IEN_PPUSEC | SMU_IEN_BMPUSEC;
+#endif //SL_TRUSTZONE_SECURE
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current HFRCODPLL frequency.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemHFRCODPLLClockGet(void)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ return SystemHFRCODPLLClock;
+#else
+ uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCO0;
+
+ // Get oscillator frequency band
+ switch ((HFRCO0->CAL & _HFRCO_CAL_FREQRANGE_MASK)
+ >> _HFRCO_CAL_FREQRANGE_SHIFT) {
+ case 0:
+ switch (HFRCO0->CAL & _HFRCO_CAL_CLKDIV_MASK) {
+ case HFRCO_CAL_CLKDIV_DIV1:
+ ret = 4000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV2:
+ ret = 2000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV4:
+ ret = 1000000UL;
+ break;
+
+ default:
+ ret = 0UL;
+ break;
+ }
+ break;
+
+ case 3:
+ ret = 7000000UL;
+ break;
+
+ case 6:
+ ret = 13000000UL;
+ break;
+
+ case 7:
+ ret = 16000000UL;
+ break;
+
+ case 8:
+ ret = 19000000UL;
+ break;
+
+ case 10:
+ ret = 26000000UL;
+ break;
+
+ case 11:
+ ret = 32000000UL;
+ break;
+
+ case 12:
+ ret = 38000000UL;
+ break;
+
+ case 13:
+ ret = 48000000UL;
+ break;
+
+ case 14:
+ ret = 56000000UL;
+ break;
+
+ case 15:
+ ret = 64000000UL;
+ break;
+
+ case 16:
+ ret = 80000000UL;
+ break;
+
+ default:
+ break;
+ }
+ return ret;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set HFRCODPLL frequency value.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFRCODPLL frequency in Hz.
+ *****************************************************************************/
+void SystemHFRCODPLLClockSet(uint32_t freq)
+{
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFRCODPLLClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system clock frequency (SYSCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * hardware configuration.
+ *
+ * @note
+ * This is an EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * Current system clock (SYSCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemSYSCLKGet(void)
+{
+ uint32_t ret = 0U;
+
+ // Find clock source
+ switch (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK) {
+ case _CMU_SYSCLKCTRL_CLKSEL_HFRCODPLL:
+ ret = SystemHFRCODPLLClockGet();
+ break;
+
+#if (HFXO_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_HFXO:
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ ret = HFXO_FREQ;
+#else
+ ret = SystemHFXOClock;
+#endif
+ break;
+#endif
+
+#if (CLKIN0_FREQ > 0U)
+ case _CMU_SYSCLKCTRL_CLKSEL_CLKIN0:
+ ret = CLKIN0_FREQ;
+ break;
+#endif
+
+ case _CMU_SYSCLKCTRL_CLKSEL_FSRCO:
+ ret = FSRCO_FREQ;
+ break;
+
+ default:
+ // Unknown clock source.
+ while (1) {
+ }
+ }
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the current system core clock frequency (HCLK).
+ *
+ * @details
+ * Calculate and get the current core clock frequency based on the current
+ * configuration. Assuming that the SystemCoreClock global variable is
+ * maintained, the core clock frequency is stored in that variable as well.
+ * This function will however calculate the core clock based on actual HW
+ * configuration. It will also update the SystemCoreClock global variable.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The current core clock (HCLK) frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemHCLKGet(void)
+{
+ uint32_t presc, ret;
+
+ ret = SystemSYSCLKGet();
+
+ presc = (CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_HCLKPRESC_MASK)
+ >> _CMU_SYSCLKCTRL_HCLKPRESC_SHIFT;
+
+ ret /= presc + 1U;
+
+#if !defined(SYSTEM_NO_STATIC_MEMORY)
+ // Keep CMSIS system clock variable up-to-date
+ SystemCoreClock = ret;
+#endif
+
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get the maximum core clock frequency.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * The maximum core clock frequency in Hz.
+ ******************************************************************************/
+uint32_t SystemMaxCoreClockGet(void)
+{
+ return(HFRCODPLL_MAX_FREQ > HFXO_FREQ \
+ ? HFRCODPLL_MAX_FREQ : HFXO_FREQ);
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFXO frequency in Hz. 0 if the external crystal oscillator is not present.
+ *****************************************************************************/
+uint32_t SystemHFXOClockGet(void)
+{
+ // The external crystal oscillator is not present if HFXO_FREQ==0
+#if (HFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return HFXO_FREQ;
+#else
+ return SystemHFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set high frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * HFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemHFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (HFXO_FREQ > 0) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemHFXOClock = freq;
+
+ // Update core clock frequency if HFXO is used to clock core
+ if ((CMU->SYSCLKCTRL & _CMU_SYSCLKCTRL_CLKSEL_MASK)
+ == _CMU_SYSCLKCTRL_CLKSEL_HFXO) {
+ // This function will update the global variable
+ SystemHCLKGet();
+ }
+#else
+ (void) freq; // Unused parameter
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current CLKIN0 frequency.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * CLKIN0 frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemCLKIN0Get(void)
+{
+ return CLKIN0_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get FSRCO frequency.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * FSRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemFSRCOClockGet(void)
+{
+ return FSRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get current HFRCOEM23 frequency.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * HFRCOEM23 frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemHFRCOEM23ClockGet(void)
+{
+ uint32_t ret = 0UL;
+ CMU->CLKEN0_SET = CMU_CLKEN0_HFRCOEM23;
+
+ // Get oscillator frequency band
+ switch ((HFRCOEM23->CAL & _HFRCO_CAL_FREQRANGE_MASK)
+ >> _HFRCO_CAL_FREQRANGE_SHIFT) {
+ case 0:
+ switch (HFRCOEM23->CAL & _HFRCO_CAL_CLKDIV_MASK) {
+ case HFRCO_CAL_CLKDIV_DIV1:
+ ret = 4000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV2:
+ ret = 2000000UL;
+ break;
+
+ case HFRCO_CAL_CLKDIV_DIV4:
+ ret = 1000000UL;
+ break;
+
+ default:
+ ret = 0UL;
+ break;
+ }
+ break;
+
+ case 6:
+ ret = 13000000UL;
+ break;
+
+ case 7:
+ ret = 16000000UL;
+ break;
+
+ case 8:
+ ret = 19000000UL;
+ break;
+
+ case 10:
+ ret = 26000000UL;
+ break;
+
+ case 11:
+ ret = 32000000UL;
+ break;
+
+ case 12:
+ ret = 40000000UL;
+ break;
+
+ default:
+ break;
+ }
+ return ret;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFRCOClockGet(void)
+{
+ return LFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get ultra low frequency RC oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * ULFRCO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemULFRCOClockGet(void)
+{
+ // The ULFRCO frequency is not tuned, and can be very inaccurate
+ return ULFRCO_FREQ;
+}
+
+/**************************************************************************//**
+ * @brief
+ * Get low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @return
+ * LFXO frequency in Hz.
+ *****************************************************************************/
+uint32_t SystemLFXOClockGet(void)
+{
+ // External crystal present?
+#if (LFXO_FREQ > 0U)
+#if defined(SYSTEM_NO_STATIC_MEMORY)
+ return LFXO_FREQ;
+#else
+ return SystemLFXOClock;
+#endif
+#else
+ return 0U;
+#endif
+}
+
+/**************************************************************************//**
+ * @brief
+ * Set low frequency crystal oscillator clock frequency for target system.
+ *
+ * @note
+ * This function is mainly provided for being able to handle target systems
+ * with different HF crystal oscillator frequencies run-time. If used, it
+ * should probably only be used once during system startup.
+ *
+ * @note
+ * This is a EFR32ZG23 specific function, not part of the
+ * CMSIS definition.
+ *
+ * @param[in] freq
+ * LFXO frequency in Hz used for target.
+ *****************************************************************************/
+void SystemLFXOClockSet(uint32_t freq)
+{
+ // External crystal oscillator present?
+#if (LFXO_FREQ > 0U) && !defined(SYSTEM_NO_STATIC_MEMORY)
+ SystemLFXOClock = freq;
+#else
+ (void) freq; // Unused parameter
+#endif
+}
diff --git a/simplicity_sdk/platform/common/inc/sl_cmsis_os2_common.h b/simplicity_sdk/platform/common/inc/sl_cmsis_os2_common.h
index 1673b5d1b..781c8af92 100644
--- a/simplicity_sdk/platform/common/inc/sl_cmsis_os2_common.h
+++ b/simplicity_sdk/platform/common/inc/sl_cmsis_os2_common.h
@@ -33,6 +33,8 @@
#define SL_CMSIS_OS2_COMMON_H
#include
+#include "cmsis_os2.h"
+#include "sl_status.h"
#if defined(SL_COMPONENT_CATALOG_PRESENT)
#include "sl_component_catalog.h"
@@ -47,10 +49,6 @@
#include "FreeRTOS.h"
#elif defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT)
#include "os.h"
-#if (CMSIS_RTOS2_TIMER_TASK_EN == DEF_ENABLED)
-// needed for osTimer_t struct
-#include "cmsis_os2.h"
-#endif
#endif
#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
@@ -175,7 +173,28 @@ typedef struct {
#endif
#define osAlignment sizeof(CPU_ALIGN)
-
#endif // SL_CATALOG_MICRIUMOS_KERNEL_PRESENT
+// -----------------------------------------------------------------------------
+// Functions
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/********************************************************************************************************
+ * sl_cmsis_os_convert_status()
+ *
+ * @brief Convert OsStatus from CMSIS-RTOS2 to sl_status type.
+ *
+ * @param os_status The OS status code returned by CMSIS-RTOS2 API.
+ *
+ * @return Status code converted to sl_status.
+ *******************************************************************************************************/
+sl_status_t sl_cmsis_os_convert_status(osStatus_t os_status);
+
+#ifdef __cplusplus
+}
+#endif
+
#endif // SL_CMSIS_OS2_COMMON_H
diff --git a/simplicity_sdk/platform/common/inc/sl_code_classification.h b/simplicity_sdk/platform/common/inc/sl_code_classification.h
index fa78bf375..04e9d218d 100644
--- a/simplicity_sdk/platform/common/inc/sl_code_classification.h
+++ b/simplicity_sdk/platform/common/inc/sl_code_classification.h
@@ -51,7 +51,7 @@
/// Prepend a function definition with this macro to place it in RAM.
#define SL_CODE_RAM \
- __attribute__((section(".ramfunc")))
+ __attribute__((section("text_application_ram")))
#elif defined(__ICCARM__)
diff --git a/simplicity_sdk/platform/common/inc/sl_common.h b/simplicity_sdk/platform/common/inc/sl_common.h
index 9ccd8fc9d..b48503be5 100644
--- a/simplicity_sdk/platform/common/inc/sl_common.h
+++ b/simplicity_sdk/platform/common/inc/sl_common.h
@@ -393,6 +393,24 @@ __STATIC_INLINE uint32_t SL_Log2ToDiv(uint32_t log2)
return 1UL << log2;
}
+/***************************************************************************//**
+ * @brief
+ * Count the number of bits that are set to 1 in a 32-bit bitfield.
+ *
+ * @param[in] bitfield
+ * 32-bit bitfield.
+ *
+ * @return
+ * The number of bits that are set to 1 in the bitfield.
+ ******************************************************************************/
+__STATIC_INLINE uint32_t SL_POPCOUNT32(uint32_t bitfield)
+{
+ bitfield = bitfield - ((bitfield >> 1) & 0x55555555);
+ bitfield = (bitfield & 0x33333333) + ((bitfield >> 2) & 0x33333333);
+ bitfield = (bitfield + (bitfield >> 4)) & 0x0F0F0F0F;
+ return (bitfield * 0x01010101) >> 24;
+}
+
/** @} (end addtogroup common) */
#ifdef __cplusplus
diff --git a/simplicity_sdk/platform/common/inc/sl_compiler.h b/simplicity_sdk/platform/common/inc/sl_compiler.h
new file mode 100644
index 000000000..74f2e8787
--- /dev/null
+++ b/simplicity_sdk/platform/common/inc/sl_compiler.h
@@ -0,0 +1,210 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silabs Compiler definitions.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_COMPILER_H
+#define SL_COMPILER_H
+
+/***************************************************************************//**
+ * @addtogroup compiler Compiler definitions
+ * @brief Compiler definitions
+ * @{
+ ******************************************************************************/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined (__GNUC__)
+
+// Fallback for __has_builtin.
+ #ifndef __has_builtin
+ #define __has_builtin(x) (0)
+ #endif
+
+// Compiler specific defines.
+ #ifndef __ASM
+ #define __ASM __asm
+ #endif
+ #ifndef __INLINE
+ #define __INLINE inline
+ #endif
+ #ifndef __STATIC_INLINE
+ #define __STATIC_INLINE static inline
+ #endif
+ #ifndef __STATIC_FORCEINLINE
+ #define __STATIC_FORCEINLINE __attribute__((always_inline)) static inline
+ #endif
+ #ifndef __NO_RETURN
+ #define __NO_RETURN __attribute__((__noreturn__))
+ #endif
+ #ifndef __USED
+ #define __USED __attribute__((used))
+ #endif
+ #ifndef __WEAK
+ #define __WEAK __attribute__((weak))
+ #endif
+ #ifndef __PACKED
+ #define __PACKED __attribute__((packed, aligned(1)))
+ #endif
+ #ifndef __PACKED_STRUCT
+ #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
+ #endif
+ #ifndef __PACKED_UNION
+ #define __PACKED_UNION union __attribute__((packed, aligned(1)))
+ #endif
+ #ifndef __ALIGNED
+ #define __ALIGNED(x) __attribute__((aligned(x)))
+ #endif
+ #ifndef __RESTRICT
+ #define __RESTRICT __restrict
+ #endif
+
+#elif defined(__IAR_SYSTEMS_ICC__)
+
+ #pragma system_include
+
+ #if (__VER__ >= 8000000)
+ #define __ICCARM_V8 1
+ #else
+ #define __ICCARM_V8 0
+ #endif
+
+ #ifndef __ALIGNED
+ #if __ICCARM_V8
+ #define __ALIGNED(x) __attribute__((aligned(x)))
+ #elif (__VER__ >= 7080000)
+/* Needs IAR language extensions */
+ #define __ALIGNED(x) __attribute__((aligned(x)))
+ #else
+ #warning No compiler specific solution for __ALIGNED.__ALIGNED is ignored.
+ #define __ALIGNED(x)
+ #endif
+ #endif
+
+ #ifndef __ASM
+ #define __ASM __asm
+ #endif
+
+ #ifndef __INLINE
+ #define __INLINE inline
+ #endif
+
+ #ifndef __NO_RETURN
+ #if __ICCARM_V8
+ #define __NO_RETURN __attribute__((__noreturn__))
+ #else
+ #define __NO_RETURN _Pragma("object_attribute=__noreturn")
+ #endif
+ #endif
+
+ #ifndef __PACKED
+ #if __ICCARM_V8
+ #define __PACKED __attribute__((packed, aligned(1)))
+ #else
+/* Needs IAR language extensions */
+ #define __PACKED __packed
+ #endif
+ #endif
+
+ #ifndef __PACKED_STRUCT
+ #if __ICCARM_V8
+ #define __PACKED_STRUCT struct __attribute__((packed, aligned(1)))
+ #else
+/* Needs IAR language extensions */
+ #define __PACKED_STRUCT __packed struct
+ #endif
+ #endif
+
+ #ifndef __PACKED_UNION
+ #if __ICCARM_V8
+ #define __PACKED_UNION union __attribute__((packed, aligned(1)))
+ #else
+/* Needs IAR language extensions */
+ #define __PACKED_UNION __packed union
+ #endif
+ #endif
+
+ #ifndef __RESTRICT
+ #define __RESTRICT restrict
+ #endif
+
+ #ifndef __STATIC_INLINE
+ #define __STATIC_INLINE static inline
+ #endif
+
+ #ifndef __FORCEINLINE
+ #define __FORCEINLINE _Pragma("inline=forced")
+ #endif
+
+ #ifndef __STATIC_FORCEINLINE
+ #define __STATIC_FORCEINLINE __FORCEINLINE __STATIC_INLINE
+ #endif
+
+ #ifndef __USED
+ #if __ICCARM_V8
+ #define __USED __attribute__((used))
+ #else
+ #define __USED _Pragma("__root")
+ #endif
+ #endif
+
+ #ifndef __WEAK
+ #if __ICCARM_V8
+ #define __WEAK __attribute__((weak))
+ #else
+ #define __WEAK _Pragma("__weak")
+ #endif
+ #endif
+
+#else
+ #error "Unknown compiler."
+#endif
+
+// IO definitions (access restrictions to peripheral registers).
+#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
+
+// The 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
+
+/** @} (end group compiler) */
+
+#endif // SL_COMPILER_H
diff --git a/simplicity_sdk/platform/common/inc/sl_core.h b/simplicity_sdk/platform/common/inc/sl_core.h
index fb8f923b9..a52562e7b 100644
--- a/simplicity_sdk/platform/common/inc/sl_core.h
+++ b/simplicity_sdk/platform/common/inc/sl_core.h
@@ -271,6 +271,9 @@ extern "C" {
/// Check if inside an IRQ handler.
#define CORE_IN_IRQ_CONTEXT() CORE_InIrqContext()
+// Reset System.
+#define CORE_RESET_SYSTEM() CORE_ResetSystem()
+
/*******************************************************************************
************************* TYPEDEFS ****************************************
******************************************************************************/
@@ -481,6 +484,12 @@ void CORE_clear_max_time_critical_section(void);
SL_CODE_CLASSIFY(SL_CODE_COMPONENT_CORE, SL_CODE_CLASS_TIME_CRITICAL)
void CORE_clear_max_time_atomic_section(void);
+/***************************************************************************//**
+ * @brief
+ * Reset chip routine.
+ ******************************************************************************/
+void CORE_ResetSystem(void);
+
/** @} (end addtogroup sl_core) */
#ifdef __cplusplus
diff --git a/simplicity_sdk/platform/common/inc/sl_event_system.h b/simplicity_sdk/platform/common/inc/sl_event_system.h
index d6d8cea63..4dff8aaf6 100644
--- a/simplicity_sdk/platform/common/inc/sl_event_system.h
+++ b/simplicity_sdk/platform/common/inc/sl_event_system.h
@@ -99,6 +99,7 @@ SL_ENUM(sl_event_class_t) {
SL_EVENT_CLASS_IRQ,
SL_EVENT_CLASS_BLUETOOTH,
SL_EVENT_CLASS_ZIGBEE,
+ SL_EVENT_CLASS_BLUETOOTH_MESH,
SL_EVENT_CLASS_MAX,
};
@@ -114,12 +115,14 @@ typedef struct {
sl_event_free_data_cb_t free_data_callback;
uint8_t subscriber_count;
sl_slist_node_t *subscribers;
+ bool is_registered;
} sl_event_publisher_t;
typedef struct {
- sl_event_publisher_t *publisher;
- uint8_t reference_count;
- void* event_data;
+ sl_event_free_data_cb_t free_data_callback;
+ uint8_t reference_count;
+ void* event_data;
+ bool pre_allocated;
} sl_event_t;
/*******************************************************************************
@@ -151,6 +154,22 @@ sl_status_t sl_event_publisher_register(sl_event_publisher_t *publisher,
sl_event_class_t event_class,
sl_event_free_data_cb_t free_data_callback);
+/*******************************************************************************
+ * @brief
+ * Unregister a publisher context from its event class.
+ *
+ * @description
+ * When a publisher context is unregistered, it can no longer publish messages
+ * until it is registered again. After a publisher context is unregistered, the
+ * event class it was registered with can be reused.
+ *
+ * @param[in] publisher Pointer to a publisher context.
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_publisher_unregister(sl_event_publisher_t *publisher);
+
/*******************************************************************************
* @brief
* Publish an event, with data, within the event class of the publisher.
@@ -168,6 +187,26 @@ sl_status_t sl_event_publish(sl_event_publisher_t *publisher,
uint8_t event_prio,
void *event_data);
+/*******************************************************************************
+ * @brief
+ * Publish an event, with data, with a pre-allocated event handle, within the
+ * event class of the publisher.
+ *
+ * @param[in] publisher Pointer to a publisher context.
+ * @param[in] event_mask Event mask corresponding to the type of event.
+ * @param[in] event_prio The priority of the event published.
+ * @param[in] event The pre-allocated event structure handle
+ * @param[in] event_data The event data.
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_publish_static(sl_event_publisher_t *publisher,
+ uint32_t event_mask,
+ uint8_t event_prio,
+ sl_event_t* event,
+ void *event_data);
+
/*******************************************************************************
* @brief
* Subscribe to one or more events for a given event class.
@@ -186,6 +225,25 @@ sl_status_t sl_event_subscribe(sl_event_class_t event_class,
uint32_t event_mask,
sl_event_queue_t event_queue);
+/*******************************************************************************
+ * @brief
+ * Unsubscribe from one or more events for a given event class.
+ *
+ * @description
+ * The unsubscribed event(s) will no longer be placed in the queue identified
+ * by event_queue.
+ *
+ * @param[in] event_class The class of events to subscribe to.
+ * @param[in] event_mask The event(s) to subscribe to.
+ * @param[in] event_queue The identifier of an event queue.
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_unsubscribe(sl_event_class_t event_class,
+ uint32_t event_mask,
+ sl_event_queue_t event_queue);
+
/*******************************************************************************
* @brief
* Signal to the event system that a subscriber has processed an event.
@@ -215,6 +273,21 @@ sl_status_t sl_event_process(sl_event_t **event);
sl_status_t sl_event_queue_create(uint32_t event_count,
sl_event_queue_t *event_queue);
+/*******************************************************************************
+ * @brief
+ * Delete an event queue.
+ *
+ * @param[in] event_queue The event queue to delete.
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ *
+ * @note
+ * In the process of deleting an event queue, all events that the queue
+ * was subscribed to will be unsubscribed from.
+ ******************************************************************************/
+sl_status_t sl_event_queue_delete(sl_event_queue_t event_queue);
+
/*******************************************************************************
* @brief
* Get an event from an event queue.
@@ -252,6 +325,58 @@ size_t sl_event_publisher_get_size(void);
******************************************************************************/
sl_status_t sl_event_publisher_alloc(sl_event_publisher_t **publisher);
+/*******************************************************************************
+ * @brief
+ * Free a publisher context structure from the heap, as well as its list of
+ * subscriber entries using the common memory manager.
+ *
+ * @description
+ * Using this function to free a publisher context will also free its list of
+ * subscribers, which will cause subscribers to no longer receive events from
+ * the publisher context's event class.
+ *
+ * @param[in] publisher address of a pointer to a publisher context
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_publisher_free(sl_event_publisher_t *publisher);
+
+/*******************************************************************************
+ * @brief
+ * Get the size of the event structure.
+ *
+ * @return Size of the event structure.
+ ******************************************************************************/
+size_t sl_event_get_size(void);
+
+/*******************************************************************************
+ * @brief
+ * Allocate the event structure to the heap using the common memory
+ * manager with a long-term lifespan.
+ *
+ * @param[in] event address of a pointer to an event struct
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_alloc(sl_event_t **event);
+
+/*******************************************************************************
+ * @brief
+ * Free an event structure from the heap using the common memory manager.
+ *
+ * @note
+ * Freeing an event structure that has not yet been processed by all
+ * subscribers will
+ *
+ * @param[in] event address of a pointer to an event struct
+ *
+ * @return
+ * SL_STATUS_OK if successful, otherwise an error code is returned.
+ ******************************************************************************/
+sl_status_t sl_event_free(sl_event_t *event);
+
/** @} (end addtogroup event-system) */
#ifdef __cplusplus
diff --git a/simplicity_sdk/platform/common/inc/sl_platform_version.h b/simplicity_sdk/platform/common/inc/sl_platform_version.h
index d68064885..bc2438943 100644
--- a/simplicity_sdk/platform/common/inc/sl_platform_version.h
+++ b/simplicity_sdk/platform/common/inc/sl_platform_version.h
@@ -31,8 +31,8 @@
#define SL_PLATFORM_VERSION_H
#define SL_PLATFORM_MAJOR_VERSION 5
-#define SL_PLATFORM_MINOR_VERSION 0
-#define SL_PLATFORM_PATCH_VERSION 2
+#define SL_PLATFORM_MINOR_VERSION 1
+#define SL_PLATFORM_PATCH_VERSION 0
#define SL_PLATFORM_VERSION ((SL_PLATFORM_MAJOR_VERSION << 8) \
| (SL_PLATFORM_MINOR_VERSION << 4) \
diff --git a/simplicity_sdk/platform/common/inc/sl_slist.h b/simplicity_sdk/platform/common/inc/sl_slist.h
index de785fe30..bcbd30100 100644
--- a/simplicity_sdk/platform/common/inc/sl_slist.h
+++ b/simplicity_sdk/platform/common/inc/sl_slist.h
@@ -118,6 +118,18 @@ sl_slist_node_t *sl_slist_pop(sl_slist_node_t **head);
void sl_slist_insert(sl_slist_node_t *item,
sl_slist_node_t *pos);
+/*******************************************************************************
+ * Join two lists together.
+ *
+ * @param head_list_1 Pointer to the pointer of a head element of the list.
+ *
+ * @param head_list_2 Pointer to the pointer of a head element of the list
+ * to be appended. After the call, this pointer will be
+ * invalidated (set to NULL).
+ ******************************************************************************/
+void sl_slist_join(sl_slist_node_t **head_list_1,
+ sl_slist_node_t **head_list_2);
+
/*******************************************************************************
* Remove an item from the list.
*
diff --git a/simplicity_sdk/platform/common/inc/sl_status.h b/simplicity_sdk/platform/common/inc/sl_status.h
index bfd2d2f31..f89704d13 100644
--- a/simplicity_sdk/platform/common/inc/sl_status.h
+++ b/simplicity_sdk/platform/common/inc/sl_status.h
@@ -202,6 +202,28 @@
#define SL_STATUS_NVM3_PAGE_SIZE_NOT_SUPPORTED ((sl_status_t)0x005B) ///< The initialization was aborted as the NVM3 page size is not supported
#define SL_STATUS_NVM3_TOKEN_INIT_FAILED ((sl_status_t)0x005C) ///< The application that there was an error initializing some of the tokens
#define SL_STATUS_NVM3_OPENED_WITH_OTHER_PARAMETERS ((sl_status_t)0x005D) ///< The initialization was aborted as the NVM3 instance was already opened with other parameters
+#define SL_STATUS_NVM3_NO_VALID_PAGES ((sl_status_t)0x005E) ///< Initialization aborted, no valid page found
+#define SL_STATUS_NVM3_OBJECT_SIZE_NOT_SUPPORTED ((sl_status_t)0x005F) ///< The object size is not supported
+#define SL_STATUS_NVM3_OBJECT_IS_NOT_DATA ((sl_status_t)0x0060) ///< Trying to access a data object which is currently a counter object
+#define SL_STATUS_NVM3_OBJECT_IS_NOT_A_COUNTER ((sl_status_t)0x0061) ///< Trying to access a counter object which is currently a data object
+#define SL_STATUS_NVM3_WRITE_DATA_SIZE ((sl_status_t)0x0062) ///< The object is too large
+#define SL_STATUS_NVM3_READ_DATA_SIZE ((sl_status_t)0x0063) ///< Trying to read with a length different from actual object size
+#define SL_STATUS_NVM3_INIT_WITH_FULL_NVM ((sl_status_t)0x0064) ///< The module was opened with a full NVM
+#define SL_STATUS_NVM3_RESIZE_PARAMETER ((sl_status_t)0x0065) ///< Illegal parameter
+#define SL_STATUS_NVM3_RESIZE_NOT_ENOUGH_SPACE ((sl_status_t)0x0066) ///< Not enough NVM to complete resize
+#define SL_STATUS_NVM3_ERASE_COUNT_ERROR ((sl_status_t)0x0067) ///< Erase counts are not valid
+#define SL_STATUS_NVM3_NVM_ACCESS ((sl_status_t)0x0068) ///< A NVM function call was failing
+#define SL_STATUS_NVM3_CRYPTO_INIT_FAILED ((sl_status_t)0x0069) ///< Crypto initialization failed
+#define SL_STATUS_NVM3_ENCRYPTION_KEY_ERROR ((sl_status_t)0x006A) ///< Error in obtaining encryption key
+#define SL_STATUS_NVM3_RANDOM_NUM_GENERATION_FAILED ((sl_status_t)0x006B) ///< Error in obtaining random number
+#define SL_STATUS_NVM3_ENCRYPTION_FAILED ((sl_status_t)0x006C) ///< Encryption failed
+#define SL_STATUS_NVM3_WRITE_TO_NOT_ERASED ((sl_status_t)0x006D) ///< Write to memory that is not erased
+#define SL_STATUS_NVM3_INVALID_ADDR ((sl_status_t)0x006E) ///< Invalid NVM address
+#define SL_STATUS_NVM3_KEY_MISMATCH ((sl_status_t)0x006F) ///< Key validation failure
+#define SL_STATUS_NVM3_SIZE_ERROR ((sl_status_t)0x0070) ///< Size mismatch error
+#define SL_STATUS_NVM3_EMULATOR ((sl_status_t)0x0071) ///< Emulator error
+#define SL_STATUS_NVM3_SECURITY_INIT_FAILED ((sl_status_t)0x0072) ///< Security init failed
+#define SL_STATUS_NVM3_GET_REGION_LOCATION_FAILED ((sl_status_t)0x0073) ///< Get data region location failed
// Bluetooth status codes
#define SL_STATUS_BT_OUT_OF_BONDS ((sl_status_t)0x0402) ///< Bonding procedure can't be started because device has no space left for bond.
@@ -251,6 +273,7 @@
#define SL_STATUS_BT_CTRL_REPEATED_ATTEMPTS ((sl_status_t)0x1017) ///< The Controller is disallowing an authentication or pairing procedure because too little time has elapsed since the last authentication or pairing attempt failed.
#define SL_STATUS_BT_CTRL_PAIRING_NOT_ALLOWED ((sl_status_t)0x1018) ///< The device does not allow pairing. This can be for example, when a device only allows pairing during a certain time window after some user input allows pairing
#define SL_STATUS_BT_CTRL_UNSUPPORTED_REMOTE_FEATURE ((sl_status_t)0x101A) ///< The remote device does not support the feature associated with the issued command.
+#define SL_STATUS_BT_CTRL_INVALID_LL_PARAMETERS ((sl_status_t)0x101E) ///< Indicates that some LMP PDU / LL Control PDU parameters were invalid
#define SL_STATUS_BT_CTRL_UNSPECIFIED_ERROR ((sl_status_t)0x101F) ///< No other error code specified is appropriate to use.
#define SL_STATUS_BT_CTRL_LL_RESPONSE_TIMEOUT ((sl_status_t)0x1022) ///< Connection terminated due to link-layer procedure timeout.
#define SL_STATUS_BT_CTRL_LL_PROCEDURE_COLLISION ((sl_status_t)0x1023) ///< LL procedure has collided with the same transaction or procedure that is already in progress.
@@ -278,6 +301,7 @@
#define SL_STATUS_BT_CTRL_PACKET_TOO_LONG ((sl_status_t)0x1045) ///< An attempt was made to send or receive a packet that exceeds the maximum allowed packet length.
#define SL_STATUS_BT_CTRL_TOO_LATE ((sl_status_t)0x1046) ///< Information was provided too late to the controller.
#define SL_STATUS_BT_CTRL_TOO_EARLY ((sl_status_t)0x1047) ///< Information was provided too early to the controller.
+#define SL_STATUS_BT_CTRL_INSUFFICIENT_CHANNELS ((sl_status_t)0x1048) ///< Indicates that the result of the requested operation would yield too few physical channels.
// Bluetooth attribute status codes
#define SL_STATUS_BT_ATT_INVALID_HANDLE ((sl_status_t)0x1101) ///< The attribute handle given was not valid on this server
diff --git a/simplicity_sdk/platform/common/inc/sli_code_classification.h b/simplicity_sdk/platform/common/inc/sli_code_classification.h
index 924b42bc8..f4729c682 100644
--- a/simplicity_sdk/platform/common/inc/sli_code_classification.h
+++ b/simplicity_sdk/platform/common/inc/sli_code_classification.h
@@ -52,23 +52,40 @@
// appended with an identifier generated from __COUNTER__ and __LINE__ so that
// functions are more likely to be separated into unique sections. Doing this
// allows the linker to discard unused functions with more granularity.
-#if defined(__GNUC__) && !defined(__llvm__)
+#if defined(__GNUC__) && !(defined(__llvm__) || defined(SLI_CODE_CLASSIFICATION_DISABLE))
// With GCC, __attribute__ can be used to specify the input section of
// functions.
#define _SL_CC_SECTION(section_name, count, line) \
__attribute__((section(_SL_CC_CONCAT3(_SL_CC_XSTRINGIZE(section_name), _SL_CC_XSTRINGIZE(count), _SL_CC_XSTRINGIZE(line)))))
-#elif defined(__ICCARM__)
+#elif defined(__ICCARM__) && !defined(SLI_CODE_CLASSIFICATION_DISABLE)
// With IAR, _Pragma can be used to specify the input section of
// functions.
#define _SL_CC_SECTION(section_name, count, line) \
_Pragma(_SL_CC_XSTRINGIZE(_SL_CC_CONCAT4(location =, _SL_CC_XSTRINGIZE(section_name), _SL_CC_XSTRINGIZE(count), _SL_CC_XSTRINGIZE(line))))
-#elif defined(__llvm__)
+#elif defined(__llvm__) && !defined(SLI_CODE_CLASSIFICATION_DISABLE)
-#define _SL_CC_SECTION(section_name)
+// With llvm, __attribute__ can be used to specify the input section of
+// functions.
+
+// However the syntax of the string within the section directive is
+// dependent on the specifics of the target backend (e.g. osx)
+#if defined(__MACH__) && defined(SLI_CODE_CLASSIFICATION_OSX_ENABLE)
+// code classifcation is not supported on OSX and can have weird
+// interactions for executable code so it is disabled by default
+// since it can be useful for code analysis allow it as an opt-in feature
+#define _SL_CC_SECTION(section_name, count, line) \
+ __attribute__((section("sl_cc,code_class" _SL_CC_XSTRINGIZE(count) _SL_CC_XSTRINGIZE(line))))
+#else
+#define _SL_CC_SECTION(section_name, count, line)
+#endif // defined(__MACH__)
+
+#elif defined(SLI_CODE_CLASSIFICATION_DISABLE)
+
+#define _SL_CC_SECTION(section_name, count, line)
#else
#error "(sli_code_classification.h): Code classification does not support \
@@ -108,12 +125,7 @@
/******************************************************************************/
// Variadic macro to specify the code class membership of a function.
-#if defined(SL_CODE_CLASSIFY)
-#undef SL_CODE_CLASSIFY
#define SL_CODE_CLASSIFY(component, ...) \
_SL_CC_IDENTITY(_SL_CC_APPLY(_SL_CC_DISPATCH, _SL_CC_COUNT(__VA_ARGS__)))(component, __VA_ARGS__)
-#else
-#define SL_CODE_CLASSIFY(component, ...)
-#endif
#endif // _SLI_CODE_CLASSIFICATION_H_
diff --git a/simplicity_sdk/platform/common/src/sl_core_cortexm.c b/simplicity_sdk/platform/common/src/sl_core_cortexm.c
index 31a97c030..3b8b56e3b 100644
--- a/simplicity_sdk/platform/common/src/sl_core_cortexm.c
+++ b/simplicity_sdk/platform/common/src/sl_core_cortexm.c
@@ -88,10 +88,15 @@ SL_WEAK void CORE_CriticalDisableIrq(void)
/***************************************************************************//**
* @brief
* Enable interrupts.
+ * @note
+ * __ISB() makes sure pending interrupts are executed before returning.
+ * This can be a problem if the first instruction after changing the BASEPRI
+ * or PRIMASK assumes that the pending interrupts have already been processed.
******************************************************************************/
SL_WEAK void CORE_CriticalEnableIrq(void)
{
__enable_irq();
+ __ISB();
}
/***************************************************************************//**
@@ -113,6 +118,10 @@ SL_WEAK CORE_irqState_t CORE_EnterCritical(void)
/***************************************************************************//**
* @brief
* Exit a CRITICAL section.
+ * @note
+ * __ISB() makes sure pending interrupts are executed before returning.
+ * This can be a problem if the first instruction after changing the BASEPRI
+ * or PRIMASK assumes that the pending interrupts have already been processed.
******************************************************************************/
SL_WEAK void CORE_ExitCritical(CORE_irqState_t irqState)
{
@@ -121,6 +130,7 @@ SL_WEAK void CORE_ExitCritical(CORE_irqState_t irqState)
cycle_counter_stop(&critical_cycle_counter);
#endif
__enable_irq();
+ __ISB();
}
}
@@ -154,6 +164,10 @@ SL_WEAK void CORE_AtomicDisableIrq(void)
/***************************************************************************//**
* @brief
* Enable interrupts.
+ * @note
+ * __ISB() makes sure pending interrupts are executed before returning.
+ * This can be a problem if the first instruction after changing the BASEPRI
+ * or PRIMASK assumes that the pending interrupts have already been processed.
******************************************************************************/
SL_WEAK void CORE_AtomicEnableIrq(void)
{
@@ -162,6 +176,7 @@ SL_WEAK void CORE_AtomicEnableIrq(void)
#else
__enable_irq();
#endif
+ __ISB();
}
/***************************************************************************//**
@@ -195,6 +210,10 @@ SL_WEAK CORE_irqState_t CORE_EnterAtomic(void)
/***************************************************************************//**
* @brief
* Exit an ATOMIC section.
+ * @note
+ * __ISB() makes sure pending interrupts are executed before returning.
+ * This can be a problem if the first instruction after changing the BASEPRI
+ * or PRIMASK assumes that the pending interrupts have already been processed.
******************************************************************************/
SL_WEAK void CORE_ExitAtomic(CORE_irqState_t irqState)
{
@@ -206,12 +225,14 @@ SL_WEAK void CORE_ExitAtomic(CORE_irqState_t irqState)
}
#endif
__set_BASEPRI(irqState);
+ __ISB();
#else
if (irqState == 0U) {
#if (SL_CORE_DEBUG_INTERRUPTS_MASKED_TIMING == 1)
cycle_counter_stop(&critical_cycle_counter);
#endif
__enable_irq();
+ __ISB();
}
#endif
}
@@ -347,4 +368,28 @@ void CORE_clear_max_time_atomic_section(void)
#endif //(SL_CORE_DEBUG_INTERRUPTS_MASKED_TIMING == 1)
}
+/***************************************************************************//**
+ * @brief
+ * Reset chip routine.
+ ******************************************************************************/
+void CORE_ResetSystem(void)
+{
+ // Ensure all outstanding memory accesses including buffered writes are
+ // completed before reset
+ __DSB();
+
+ // Keep priority group unchanged
+ SCB->AIRCR = (0x5FAUL << SCB_AIRCR_VECTKEY_Pos)
+ | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk)
+ | SCB_AIRCR_SYSRESETREQ_Msk;
+
+ // Ensure completion of memory access
+ __DSB();
+
+ // Wait until reset
+ for (;; ) {
+ __NOP();
+ }
+}
+
/** @} (end addtogroup sl_core) */
diff --git a/simplicity_sdk/platform/common/src/sl_slist.c b/simplicity_sdk/platform/common/src/sl_slist.c
index d74a72ae8..8e9d11740 100644
--- a/simplicity_sdk/platform/common/src/sl_slist.c
+++ b/simplicity_sdk/platform/common/src/sl_slist.c
@@ -109,6 +109,25 @@ void sl_slist_insert(sl_slist_node_t *item,
pos->node = item;
}
+/***************************************************************************//**
+ * Add item at end of list.
+ ******************************************************************************/
+void sl_slist_join(sl_slist_node_t **head_list_1,
+ sl_slist_node_t **head_list_2)
+{
+ sl_slist_node_t **node_ptr = head_list_1;
+
+ EFM_ASSERT((head_list_2 != NULL)
+ && (head_list_1 != NULL));
+
+ while (*node_ptr != NULL) {
+ node_ptr = &((*node_ptr)->node);
+ }
+
+ *node_ptr = *head_list_2;
+ *head_list_2 = NULL;
+}
+
/***************************************************************************//**
* Remove item from list.
******************************************************************************/
diff --git a/simplicity_sdk/platform/driver/gpio/inc/sl_gpio.h b/simplicity_sdk/platform/driver/gpio/inc/sl_gpio.h
new file mode 100644
index 000000000..758a47602
--- /dev/null
+++ b/simplicity_sdk/platform/driver/gpio/inc/sl_gpio.h
@@ -0,0 +1,521 @@
+/***************************************************************************//**
+ * @file
+ * @brief General Purpose IO (GPIO) driver API
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_GPIO_H
+#define SL_GPIO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include
+#include "sl_status.h"
+#include "sl_device_gpio.h"
+
+#ifndef EM_GPIO_H
+#define gpioPortA 0
+#define gpioPortB 1
+#define gpioPortC 2
+#define gpioPortD 3
+#define gpioPortE 4
+#define gpioPortF 5
+#define gpioPortG 6
+#define gpioPortH 7
+#define gpioPortI 8
+#define gpioPortJ 9
+#define gpioPortK 10
+#endif
+
+/* *INDENT-OFF* */
+// *****************************************************************************
+/// @addtogroup gpio GPIO - General Purpose Input Output
+/// @brief General Purpose Input Output driver
+///
+/// @li @ref gpio_intro
+///
+///@n @section gpio_intro Introduction
+/// This module contains functions to control the GPIO peripheral of Silicon Labs 32-bit MCUs and SoCs.
+/// The GPIO driver is used for external and EM4 interrupt configuration, port and pin configuration.
+/// as well as manages the interrupt handler.
+///
+/// @{
+// *****************************************************************************
+/* *INDENT-ON* */
+
+/*******************************************************************************
+ ******************************** ENUMS ************************************
+ ******************************************************************************/
+
+/// GPIO Pin directions.
+SL_ENUM(sl_gpio_pin_direction_t) {
+ /// Input direction.
+ SL_GPIO_PIN_DIRECTION_IN = 0,
+ /// Output direction.
+ SL_GPIO_PIN_DIRECTION_OUT
+};
+
+/*******************************************************************************
+ ******************************* STRUCTS ***********************************
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * @brief
+ * Structure for GPIO port and pin configuration.
+ ******************************************************************************/
+typedef struct {
+ sl_gpio_mode_t mode;
+ sl_gpio_pin_direction_t direction;
+} sl_gpio_pin_config_t;
+
+/*******************************************************************************
+ ******************************* TYPEDEFS **********************************
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * GPIO interrupt callback function pointer.
+ *
+ * @param int_no The pin interrupt number to which the callback function is invoked for.
+ * @param context Pointer to callback context.
+ ******************************************************************************/
+typedef void (*sl_gpio_irq_callback_t)(uint8_t int_no, void *context);
+
+/*******************************************************************************
+ ***************************** PROTOTYPES **********************************
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * Initialization of GPIO driver module.
+ *
+ * @return SL_STATUS_OK if initialization is successful.
+ ******************************************************************************/
+sl_status_t sl_gpio_init(void);
+
+/***************************************************************************//**
+ * Sets the pin direction of GPIO pin.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[in] pin_dir Pin direction of GPIO pin.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin, direction parameters are invalid.
+ * SL_STATUS_INVALID_STATE if GPIO configuration is in lock state.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_direction(const sl_gpio_t *gpio,
+ sl_gpio_pin_direction_t pin_dir);
+
+/***************************************************************************//**
+ * Set the pin mode and set/clear the pin for GPIO pin.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[in] mode The desired pin mode.
+ * @param[in] output_value Value to set/clear for pin output on the port.
+ * Determines the pull-up/pull-down direction of the pin for
+ * some input mode configurations.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if any of the port, pin, mode parameters are invalid.
+ * SL_STATUS_INVALID_STATE if GPIO configuration is in locked state.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_mode(const sl_gpio_t *gpio,
+ sl_gpio_mode_t mode,
+ bool output_value);
+
+/***************************************************************************//**
+ * Gets the current configuration selected pin on selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[out] pin_config Pointer to pin configuration such as mode and direction.
+ * Pointer acts as an output and returns the configuration of
+ * selected pin on selected port.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if any of the port, pin parameters are invalid.
+ * SL_STATUS_NULL_POINTER if pin_config is passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_config(const sl_gpio_t *gpio,
+ sl_gpio_pin_config_t *pin_config);
+
+/***************************************************************************//**
+ * Sets the selected pin of the selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin parameters are invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin(const sl_gpio_t *gpio);
+
+/***************************************************************************//**
+ * Clears the selected pin of the selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin parameters are invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_clear_pin(const sl_gpio_t *gpio);
+
+/***************************************************************************//**
+ * Toggles the state of selected pin on selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin parameters are invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio);
+
+/***************************************************************************//**
+ * Gets the output state of selected pin on selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[out] pin_value Pointer to return output state of selected pin on selected port
+ * when configured to output mode.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin parameters are invalid.
+ * SL_STATUS_NULL_POINTER if pin_value passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_output(const sl_gpio_t *gpio,
+ bool *pin_value);
+
+/***************************************************************************//**
+ * Gets the input state of selected pin on selected port.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[out] pin_value Pointer to return input state of selected pin on selected port
+ * when configured to input mode.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMATER if any of the port, pin parameters are invalid.
+ * SL_STATUS_NULL_POINTER if pin_value passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_input(const sl_gpio_t *gpio,
+ bool *pin_value);
+
+/***************************************************************************//**
+ * Sets the selected pin(s) of selected port.
+ *
+ * @param[in] port The GPIO port to access.
+ * @param[in] pins Bit mask for pins to set.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_port(sl_gpio_port_t port,
+ uint32_t pins);
+
+/***************************************************************************//**
+ * Clears the selected pin(s) of selected port.
+ *
+ * @param[in] port The GPIO Port to access.
+ * @param[in] pins Bit mask for bits to clear.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_clear_port(sl_gpio_port_t port,
+ uint32_t pins);
+
+/***************************************************************************//**
+ * Gets the output state of pins of selected port.
+ *
+ * @param[in] gpio The GPIO Port to access.
+ * @param[out] port_value Pointer to return output state of pins on selected port.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ * SL_STATUS_NULL_POINTER if port_value passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_port_output(sl_gpio_port_t port,
+ uint32_t *port_value);
+
+/***************************************************************************//**
+ * Gets the input state of pins of selected port.
+ *
+ * @param[in] gpio The GPIO Port to access.
+ * @param[out] port_value Pointer to return output state of pins on selected port.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ * SL_STATUS_NULL_POINTER if port_value passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_port_input(sl_gpio_port_t port,
+ uint32_t *port_value);
+
+/***************************************************************************//**
+ * Configures the GPIO pin interrupt.
+ *
+ * @details By default, this function can be used to register a callback which shall be called upon
+ * interrupt generated for a given pin interrupt number and enables interrupt.
+ * This function configures and enables the external interrupt and performs
+ * callback registration.
+ * It is recommended to use sl_gpio_deconfigure_external_interrupt()
+ * to disable the interrupt and unregister the callback.
+ * see @ref sl_gpio_deconfigure_external_interrupt for more information.
+ * If a valid interrupt number is provided, operation will proceed accordingly.
+ * Otherwise, a valid interrupt number will be generated based on provided port and
+ * pin and used for subsequent operations.
+ *
+ * @note If the user has a valid interrupt number to provide as input, it can be used.
+ * If the user does not have an interrupt number, they can pass -1 (SL_GPIO_INTERRUPT_UNAVAILABLE)
+ * as value to variable int_no.
+ * The int_no parameter serves even as an output, a pointer to convey the interrupt number
+ * for cases where user lacks an interrupt number.
+ * @note the pin number can be selected freely within a group.
+ * Interrupt numbers are divided into 4 groups (int_no / 4) and valid pin
+ * number within the interrupt groups are:
+ * 0: pins 0-3 (interrupt number 0-3)
+ * 1: pins 4-7 (interrupt number 4-7)
+ * 2: pins 8-11 (interrupt number 8-11)
+ * 3: pins 12-15 (interrupt number 12-15)
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[in/out] int_no Pointer to interrupt number to trigger.
+ * Pointer that serves as both an input and an output to return int_no
+ * when the user lacks an int_no.
+ * @param[in] flags Interrupt flags for interrupt configuration.
+ * Determines the interrupt to get trigger based on rising/falling edge.
+ * @param[in] gpio_callback A pointer to gpio callback function.
+ * @param[in] context A pointer to the callback context.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if any of the port, pin, flag parameters are invalid.
+ * SL_STATUS_NULL_POINTER if the int_no is passed as NULL.
+ * SL_STATUS_NOT_FOUND if there's no available interrupt number.
+ ******************************************************************************/
+sl_status_t sl_gpio_configure_external_interrupt(const sl_gpio_t *gpio,
+ int32_t *int_no,
+ sl_gpio_interrupt_flag_t flags,
+ sl_gpio_irq_callback_t gpio_callback,
+ void *context);
+
+/***************************************************************************//**
+ * Deconfigures the GPIO external pin interrupt.
+ *
+ * @details This function can be used to deconfigure the external GPIO interrupt.
+ * This function performs callback unregistration, clears and disables the
+ * given interrupt.
+ *
+ * @note the pin number can be selected freely within a group.
+ * Interrupt numbers are divided into 4 groups (int_no / 4) and valid pin
+ * number within the interrupt groups are:
+ * 0: pins 0-3 (interrupt number 0-3)
+ * 1: pins 4-7 (interrupt number 4-7)
+ * 2: pins 8-11 (interrupt number 8-11)
+ * 3: pins 12-15 (interrupt number 12-15)
+ *
+ * @param[in] int_no Interrupt number to unregister and disable.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if int_no is invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_deconfigure_external_interrupt(int32_t int_no);
+
+/***************************************************************************//**
+ * Enables one or more GPIO Interrupts.
+ *
+ * @param[in] int_mask Mask for GPIO Interrupt sources to enable.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_enable_interrupts(uint32_t int_mask);
+
+/***************************************************************************//**
+ * Disables one or more GPIO Interrupts.
+ *
+ * @param[in] int_mask Mask for GPIO Interrupt sources to disable.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_disable_interrupts(uint32_t int_mask);
+
+/***************************************************************************//**
+ * Configuration EM4WU pins as external level-sensitive interrupts.
+ *
+ * @details By default, this function performs callback registration, enables GPIO pin wake-up from EM4,
+ * sets the wake-up polarity, enables GPIO pin retention and enables the EM4 wake-up interrupt.
+ * It is recommended to use sl_gpio_deconfigure_wakeup_em4_interrupt()
+ * to unregister the callback and disable the em4 interrupt as well as GPIO pin wake-up from EM4.
+ * It is recommended to use sl_gpio_set_pin_em4_retention() to enable/disable the GPIO pin retention.
+ * see @ref sl_gpio_deconfigure_wakeup_em4_interrupt() and @ref sl_gpio_set_pin_em4_retention().
+ * If a valid EM4 wake-up interrupt number is provided, operation will proceed accordingly.
+ * Otherwise, a valid EM4 interrupt number will be generated based on provided EM4 configured
+ * port and pin and used for subsequent operations.
+ *
+ * @note If the user has a valid em4 interrupt number to provide as input, it can be used.
+ * If the user does not have an interrupt number, they can pass -1 (SL_GPIO_INTERRUPT_UNAVAILABLE)
+ * as value to variable em4_int_no.
+ * The em4_int_no parameter serves even as an output, a pointer to convey the em4 interrupt number
+ * for cases where user lacks an em4 interrupt number.
+ * @note There are specific ports and pins mapped to an existent EM4WU interrupt
+ * Each EM4WU signal is connected to a fixed pin and port.
+ * Based on chip, EM4 wake up interrupts configured port and pin might vary.
+ *
+ * @param[in] gpio Pointer to GPIO structure with port and pin
+ * @param[in/out] em4_int_no Pointer to interrupt number to trigger.
+ * Pointer that serves as both an input and an output to return em4_int_no
+ * when the user lacks an em4_int_no.
+ * @param[in] polarity Determines the wakeup polarity.
+ * true = Active high level-sensitive interrupt.
+ * false = Active low level-sensitive interrupt.
+ * @param[in] gpio_callback A pointer to callback.
+ * @param[in] context A pointer to callback context.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if any of the port, pin parameters are invalid.
+ * SL_STATUS_NULL_POINTER if the int_no is passed as NULL.
+ * SL_STATUS_NOT_FOUND if there's no available interrupt number.
+ ******************************************************************************/
+sl_status_t sl_gpio_configure_wakeup_em4_interrupt(const sl_gpio_t *gpio,
+ int32_t *em4_int_no,
+ bool polarity,
+ sl_gpio_irq_callback_t gpio_callback,
+ void *context);
+
+/***************************************************************************//**
+ * Utilize this function to deconfigure the EM4 GPIO pin interrupt.
+ * It serves to unregister a callback, disable/clear interrupt and clear em4 wakeup source.
+ *
+ * @details This function performs callback unregistration, clears and disables given em4
+ * interrupt and disables GPIO pin wake-up from EM4.
+ *
+ * @param[in] em4_int_no EM4 wakeup interrupt number.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if em4_int_no is invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_deconfigure_wakeup_em4_interrupt(int32_t em4_int_no);
+
+/***************************************************************************//**
+ * Enable EM4 GPIO pin Wake-up bit.
+ * Sets the wakeup and polarity of the EM4 wakeup.
+ *
+ * @param[in] em4_int_mask Mask for setting desired EM4 wake up interrupt to enable.
+ * Mask contains the bitwise logic OR of which EM4 wake up interrupt to
+ * enable.
+ * @param[in] em4_polarity_mask Mask for setting the wake up polarity for the EM4 wake up interrupt.
+ * Mask contains the bitwise logic OR of EM4 wake-up interrupt polarity.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_enable_pin_em4_wakeup(uint32_t em4_int_mask,
+ uint32_t em4_polarity_mask);
+
+/***************************************************************************//**
+ * Disabled the GPIO wake up from EM4.
+ *
+ * @param[in] pinmask Mask for clearing desired EM4 wake up interrupt to disable.
+ * Mask contains the bitwise logic OR of which EM4 wake up interrupt to
+ * disable.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_disable_pin_em4_wakeup(uint32_t em4_int_mask);
+
+/***************************************************************************//**
+ * Enable/Disable GPIO pin retention of output enable, output value, pull enable, and pull direction in EM4.
+ *
+ * @param[in] enable true - enables EM4 pin retention.
+ * false - disables EM4 pin retention.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_em4_retention(bool enable);
+
+/***************************************************************************//**
+ * Sets slewrate for selected port.
+ *
+ * @param[in] port The GPIO port to configure.
+ * @param[in] slewrate The slewrate to configure the GPIO port.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_slew_rate(sl_gpio_port_t port,
+ uint8_t slewrate);
+
+/***************************************************************************//**
+ * Gets slewrate for selected port.
+ *
+ * @param[in] port The GPIO port to get slewrate.
+ * @param[out] slewrate Pointer to store the slewrate of selected port.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_INVALID_PARAMETER if port is invalid.
+ * SL_STATUS_NULL_POINTER if slewrate is passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_slew_rate(sl_gpio_port_t port,
+ uint8_t *slewrate);
+
+/***************************************************************************//**
+ * Locks the GPIO Configuration.
+ *
+ * @note This API locks the functionalities such as sl_gpio_set_pin_mode(),
+ * sl_gpio_configure_external_interrupt() and sl_gpio_configure_wakeup_em4_interrupt().
+ * After locking the GPIO configuration, use sl_gpio_unlock API to unlock
+ * the GPIO configuration to use mentioned functionalities.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_lock(void);
+
+/***************************************************************************//**
+ * Unlocks the GPIO Configuration.
+ *
+ * @note After locking the GPIO configuration it is recommended to unlock the GPIO configuration
+ * using sl_gpio_unlock(). You can determine if the GPIO configuration is locked or unlocked
+ * by using the sl_gpio_is_locked() function.
+ * Before using certain functions like sl_gpio_set_pin_mode(),
+ * sl_gpio_configure_external_interrupt(), and sl_gpio_configure_wakeup_em4_interrupt(),
+ * it's important to check if the GPIO configuration lock is unlocked.
+ *
+ * @return SL_STATUS_OK if there's no error.
+ ******************************************************************************/
+sl_status_t sl_gpio_unlock(void);
+
+/***************************************************************************//**
+ * Gets current GPIO Lock status.
+ *
+ * @note This function helps check the current status of GPIO configuration.
+ *
+ * @param[out] state Pointer to current state of GPIO configuration (lock/unlock).
+ *
+ * @return SL_STATUS_OK if there's no error.
+ * SL_STATUS_NULL_POINTER if state is passed as null.
+ ******************************************************************************/
+sl_status_t sl_gpio_is_locked(bool *state);
+
+/** @} (end addtogroup gpio driver) */
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SL_GPIO_H */
diff --git a/simplicity_sdk/platform/driver/gpio/src/sl_gpio.c b/simplicity_sdk/platform/driver/gpio/src/sl_gpio.c
new file mode 100644
index 000000000..07e58ef5e
--- /dev/null
+++ b/simplicity_sdk/platform/driver/gpio/src/sl_gpio.c
@@ -0,0 +1,824 @@
+/***************************************************************************//**
+ * @file
+ * @brief General Purpose IO (GPIO) driver API
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include
+#include "sl_core.h"
+#include "sl_common.h"
+#include "sl_interrupt_manager.h"
+#include "sl_clock_manager.h"
+#include "sl_hal_gpio.h"
+#include "sl_gpio.h"
+
+/*******************************************************************************
+ ******************************* DEFINES ***********************************
+ ******************************************************************************/
+
+/// Define for supporting gpiointerrupt porting
+#define SL_GPIO_PORT_INTERRUPT (0xFF)
+
+/// Pin direction validation.
+#define SL_GPIO_DIRECTION_IS_VALID(direction) (direction <= SL_GPIO_PIN_DIRECTION_OUT)
+
+/*******************************************************************************
+ ******************************* STRUCTS ***********************************
+ ******************************************************************************/
+
+typedef struct {
+ // Pin interrupt number in range 0 to 15.
+ uint32_t int_no;
+ // Pointer to callback function.
+ void *callback;
+ // Pointer to callback context.
+ void *context;
+} sl_gpio_callback_desc_t;
+
+typedef struct {
+ // An array of user callbacks for external interrupts.
+ // We have external interrupts configured from 0 to 15 bits.
+ sl_gpio_callback_desc_t callback_ext[SL_HAL_GPIO_INTERRUPT_MAX];
+ // An array of user callbacks for EM4 interrupts.
+ // We have EM4 interrupts configured from 16 to 31 bits.
+ sl_gpio_callback_desc_t callback_em4[SL_HAL_GPIO_INTERRUPT_MAX];
+} sl_gpio_callbacks_t;
+
+/*******************************************************************************
+ ******************************** GLOBALS **********************************
+ ******************************************************************************/
+
+// Variable to manage and organize the callback functions for External and EM4 interrupts.
+static sl_gpio_callbacks_t gpio_interrupts = { 0 };
+
+/*******************************************************************************
+ ****************************** LOCAL FUCTIONS *****************************
+ ******************************************************************************/
+static void sl_gpio_dispatch_interrupt(uint32_t iflags);
+
+/***************************************************************************//**
+ * Driver GPIO Initialization.
+ ******************************************************************************/
+sl_status_t sl_gpio_init()
+{
+ sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_GPIO);
+
+ if (sl_interrupt_manager_is_irq_disabled(GPIO_ODD_IRQn)) {
+ sl_interrupt_manager_clear_irq_pending(GPIO_ODD_IRQn);
+ sl_interrupt_manager_enable_irq(GPIO_ODD_IRQn);
+ }
+ if (sl_interrupt_manager_is_irq_disabled(GPIO_EVEN_IRQn)) {
+ sl_interrupt_manager_clear_irq_pending(GPIO_EVEN_IRQn);
+ sl_interrupt_manager_enable_irq(GPIO_EVEN_IRQn);
+ }
+
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets the pin direction for GPIO pin.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_direction(const sl_gpio_t *gpio,
+ sl_gpio_pin_direction_t pin_direction)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin) || !SL_GPIO_DIRECTION_IS_VALID(pin_direction)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (sl_hal_gpio_get_lock_status() != 0) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_STATE;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ if (pin_direction == SL_GPIO_PIN_DIRECTION_OUT) {
+ sl_hal_gpio_set_pin_mode(gpio, SL_GPIO_MODE_PUSH_PULL, 1);
+ } else if (pin_direction == SL_GPIO_PIN_DIRECTION_IN) {
+ sl_hal_gpio_set_pin_mode(gpio, SL_GPIO_MODE_INPUT, 0);
+ }
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets the mode for GPIO pin and pin direction.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_mode(const sl_gpio_t *gpio,
+ sl_gpio_mode_t mode,
+ bool output_value)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_MODE_IS_VALID(mode) || !SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (sl_hal_gpio_get_lock_status() != 0) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_STATE;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_set_pin_mode(gpio, mode, output_value);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the current configuration selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_config(const sl_gpio_t *gpio,
+ sl_gpio_pin_config_t *pin_config)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL || pin_config == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ pin_config->mode = sl_hal_gpio_get_pin_mode(gpio);
+ switch (pin_config->mode) {
+ case SL_GPIO_MODE_INPUT:
+ case SL_GPIO_MODE_INPUT_PULL:
+ case SL_GPIO_MODE_INPUT_PULL_FILTER:
+ pin_config->direction = SL_GPIO_PIN_DIRECTION_IN;
+ break;
+
+ case SL_GPIO_MODE_DISABLED:
+ case SL_GPIO_MODE_PUSH_PULL:
+ case SL_GPIO_MODE_PUSH_PULL_ALTERNATE:
+ case SL_GPIO_MODE_WIRED_OR:
+ case SL_GPIO_MODE_WIRED_OR_PULL_DOWN:
+ case SL_GPIO_MODE_WIRED_AND:
+ case SL_GPIO_MODE_WIRED_AND_FILTER:
+ case SL_GPIO_MODE_WIRED_AND_PULLUP:
+ case SL_GPIO_MODE_WIRED_AND_PULLUP_FILTER:
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE:
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_FILTER:
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP:
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP_FILTER:
+ pin_config->direction = SL_GPIO_PIN_DIRECTION_OUT;
+ break;
+
+ default:
+ CORE_EXIT_ATOMIC();
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_MODE;
+ }
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets the DOUT of selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin(const sl_gpio_t *gpio)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_set_pin(gpio);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Clears the DOUT of selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_clear_pin(const sl_gpio_t *gpio)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_clear_pin(gpio);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Toggles the DOUT of selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_toggle_pin(gpio);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the output state of selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_output(const sl_gpio_t *gpio,
+ bool *pin_value)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL || pin_value == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ *pin_value = sl_hal_gpio_get_pin_output(gpio);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the input state of selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_pin_input(const sl_gpio_t *gpio,
+ bool *pin_value)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL || pin_value == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ *pin_value = sl_hal_gpio_get_pin_input(gpio);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets the selected pin(s) on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_port(sl_gpio_port_t port,
+ uint32_t pins)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_set_port(port, pins);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Clears the selected pin on selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_clear_port(sl_gpio_port_t port,
+ uint32_t pins)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_clear_port(port, pins);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the output state of pins of selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_port_output(sl_gpio_port_t port,
+ uint32_t *port_value)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (port_value == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ *port_value = sl_hal_gpio_get_port_output(port);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the input state of pins of selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_port_input(sl_gpio_port_t port,
+ uint32_t *port_value)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (port_value == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ *port_value = sl_hal_gpio_get_port_input(port);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Configuring the GPIO external pin interrupt.
+ * This API can be used to configure interrupt and to register the callback.
+ ******************************************************************************/
+sl_status_t sl_gpio_configure_external_interrupt(const sl_gpio_t *gpio,
+ int32_t *int_no,
+ sl_gpio_interrupt_flag_t flags,
+ sl_gpio_irq_callback_t gpio_callback,
+ void *context)
+{
+ uint32_t enabled_interrupts;
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL || int_no == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin) && (gpio->port != SL_GPIO_PORT_INTERRUPT)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (!SL_GPIO_FLAG_IS_VALID(flags)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ if (gpio->port != SL_GPIO_PORT_INTERRUPT) {
+ *int_no = sl_hal_gpio_configure_external_interrupt(gpio, *int_no, flags);
+ }
+
+ if (*int_no == SL_GPIO_INTERRUPT_UNAVAILABLE && gpio->port == SL_GPIO_PORT_INTERRUPT) {
+ enabled_interrupts = sl_hal_gpio_get_enabled_interrupts();
+ *int_no = sl_hal_gpio_get_external_interrupt_number(gpio->pin, enabled_interrupts);
+ }
+
+ if (*int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) {
+ // Callback registration.
+ gpio_interrupts.callback_ext[*int_no].callback = (void *)gpio_callback;
+ gpio_interrupts.callback_ext[*int_no].context = context;
+
+ if (gpio->port != SL_GPIO_PORT_INTERRUPT) {
+ sl_hal_gpio_enable_interrupts(1 << *int_no);
+ }
+ } else {
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_NOT_FOUND;
+ }
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Deconfigures the GPIO external pin interrupt.
+ * This API can be used to deconfigure the interrupt and to unregister the callback.
+ ******************************************************************************/
+sl_status_t sl_gpio_deconfigure_external_interrupt(int32_t int_no)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!((int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) && (int_no <= SL_HAL_GPIO_INTERRUPT_MAX) && (int_no >= 0))) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ // Clear pending interrupt.
+ sl_hal_gpio_clear_interrupts(1 << int_no);
+ sl_hal_gpio_disable_interrupts(1 << int_no);
+
+ // Callback deregistration.
+ gpio_interrupts.callback_ext[int_no].callback = NULL;
+ gpio_interrupts.callback_ext[int_no].context = NULL;
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Enables one or more GPIO interrupts.
+ ******************************************************************************/
+sl_status_t sl_gpio_enable_interrupts(uint32_t flags)
+{
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_enable_interrupts(flags);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Disables one or more GPIO interrupts.
+ ******************************************************************************/
+sl_status_t sl_gpio_disable_interrupts(uint32_t flags)
+{
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_disable_interrupts(flags);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Configures the EM4WU pin as external level interrupts for waking up from EM mode.
+ * Registering/unregistering the callbacks and Configuring the EM4 interrupts to enable/disable
+ ******************************************************************************/
+sl_status_t sl_gpio_configure_wakeup_em4_interrupt(const sl_gpio_t *gpio,
+ int32_t *em4_int_no,
+ bool polarity,
+ sl_gpio_irq_callback_t gpio_callback,
+ void *context)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (gpio == NULL || em4_int_no == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+
+ if (!SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin) && (gpio->port != SL_GPIO_PORT_INTERRUPT)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ if (gpio->port != SL_GPIO_PORT_INTERRUPT) {
+ *em4_int_no = sl_hal_gpio_configure_wakeup_em4_external_interrupt(gpio, *em4_int_no, polarity);
+ }
+
+ if (*em4_int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) {
+ // Callback registration.
+ gpio_interrupts.callback_em4[*em4_int_no].callback = (void *)gpio_callback;
+ gpio_interrupts.callback_em4[*em4_int_no].context = context;
+
+ if (gpio->port != SL_GPIO_PORT_INTERRUPT) {
+ sl_hal_gpio_enable_interrupts(1 << (*em4_int_no + SL_HAL_GPIO_EM4WUEN_SHIFT));
+ }
+ } else {
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_NOT_FOUND;
+ }
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Deconfigures the EM4 GPIO pin interrupt.
+ * Unregisters a callback, disable/clear interrupt and clear em4 wakeup source
+ ******************************************************************************/
+sl_status_t sl_gpio_deconfigure_wakeup_em4_interrupt(int32_t em4_int_no)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!((em4_int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) && (em4_int_no <= SL_HAL_GPIO_INTERRUPT_MAX) && (em4_int_no >= 0))) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ // Clear any pending interrupt.
+ sl_hal_gpio_clear_interrupts(1 << (em4_int_no + SL_HAL_GPIO_EM4WUEN_SHIFT));
+ sl_hal_gpio_disable_pin_em4_wakeup(1 << (em4_int_no + SL_HAL_GPIO_EM4WUEN_SHIFT));
+ sl_hal_gpio_disable_interrupts(1 << (em4_int_no + SL_HAL_GPIO_EM4WUEN_SHIFT));
+
+ /* Callback deregistration */
+ gpio_interrupts.callback_em4[em4_int_no].callback = NULL;
+ gpio_interrupts.callback_em4[em4_int_no].context = NULL;
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets GPIO EM4 Wake up interrupt to Enable and EM4 Wake up interrupt polarity
+ ******************************************************************************/
+sl_status_t sl_gpio_enable_pin_em4_wakeup(uint32_t em4_int_mask,
+ uint32_t em4_polarity_mask)
+{
+ uint32_t int_mask = 0;
+ uint32_t polarity_mask = 0;
+
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+
+ // Enable EM4WU function and set polarity.
+ int_mask |= (em4_int_mask << _GPIO_EM4WUEN_EM4WUEN_SHIFT);
+ polarity_mask |= (em4_polarity_mask << _GPIO_EM4WUEN_EM4WUEN_SHIFT);
+ sl_hal_gpio_enable_pin_em4_wakeup(int_mask, polarity_mask);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Clears GPIO EM4 Wake up enable
+ ******************************************************************************/
+sl_status_t sl_gpio_disable_pin_em4_wakeup(uint32_t em4_int_mask)
+{
+ uint32_t int_mask = 0;
+
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+
+ // Disable EM4WU function.
+ int_mask |= (em4_int_mask << _GPIO_EM4WUEN_EM4WUEN_SHIFT);
+ sl_hal_gpio_disable_pin_em4_wakeup(int_mask);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Enable GPIO pin retention of output enable, output value, pull direction, pull enable in EM4
+ ******************************************************************************/
+sl_status_t sl_gpio_set_pin_em4_retention(bool enable)
+{
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_set_pin_em4_retention(enable);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Sets slewrate for selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_set_slew_rate(sl_gpio_port_t port,
+ uint8_t slewrate)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ sl_hal_gpio_set_slew_rate(port, slewrate);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets slewrate for selected port.
+ ******************************************************************************/
+sl_status_t sl_gpio_get_slew_rate(sl_gpio_port_t port,
+ uint8_t *slewrate)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if (!SL_HAL_GPIO_PORT_IS_VALID(port)) {
+ EFM_ASSERT(false);
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ if (slewrate == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ *slewrate = sl_hal_gpio_get_slew_rate(port);
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Locks the GPIO Configuration
+ ******************************************************************************/
+sl_status_t sl_gpio_lock(void)
+{
+ sl_hal_gpio_lock();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Unlocks the GPIO Configuration
+ ******************************************************************************/
+sl_status_t sl_gpio_unlock(void)
+{
+ sl_hal_gpio_unlock();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Gets the GPIO State
+ ******************************************************************************/
+sl_status_t sl_gpio_is_locked(bool *state)
+{
+ uint32_t status;
+ CORE_DECLARE_IRQ_STATE;
+
+ if (state == NULL) {
+ EFM_ASSERT(false);
+ return SL_STATUS_NULL_POINTER;
+ }
+
+ CORE_ENTER_ATOMIC();
+
+ status = sl_hal_gpio_get_lock_status();
+ if (status) {
+ // true - GPIO configuration registers are locked.
+ *state = true;
+ } else {
+ // false - GPIO configuration registers are unlocked.
+ *state = false;
+ }
+
+ CORE_EXIT_ATOMIC();
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * Function calls users callback for registered pin interrupts.
+ *
+ * @details This function is called when GPIO interrupts are handled by the IRQHandlers.
+ * Function gets even or odd interrupt flags and calls user callback
+ * registered for that pin. Function iterates on flags starting from MSB.
+ *
+ * @param iflags Interrupt flags which shall be handled by the dispatcher.
+ ******************************************************************************/
+static void sl_gpio_dispatch_interrupt(uint32_t iflags)
+{
+ uint32_t irq_idx;
+ sl_gpio_callback_desc_t *callback;
+ sl_gpio_irq_callback_t func;
+
+ // Check for flags set in IF register.
+ while (iflags != 0) {
+ irq_idx = SL_CTZ(iflags);
+ iflags &= ~(1UL << irq_idx);
+
+ if (irq_idx <= SL_HAL_GPIO_INTERRUPT_MAX) {
+ callback = &gpio_interrupts.callback_ext[irq_idx];
+ } else {
+ callback = &gpio_interrupts.callback_em4[irq_idx - SL_HAL_GPIO_EM4WUEN_SHIFT];
+ irq_idx = irq_idx - SL_HAL_GPIO_EM4WUEN_SHIFT;
+ }
+ // Call user callback.
+ if (callback->callback) {
+ func = (sl_gpio_irq_callback_t)(callback->callback);
+ func((uint8_t)irq_idx, callback->context);
+ }
+ }
+}
+
+/***************************************************************************//**
+ * GPIO EVEN interrupt handler. Interrupt handler clears all IF even flags and
+ * call the dispatcher passing the flags which triggered the interrupt.
+ ******************************************************************************/
+void GPIO_EVEN_IRQHandler(void)
+{
+ uint32_t even_flags;
+
+ // Gets all enabled and pending even interrupts.
+ even_flags = sl_hal_gpio_get_enabled_pending_interrupts() & SL_HAL_GPIO_INT_IF_EVEN_MASK;
+ // Clears only even interrupts.
+ sl_hal_gpio_clear_interrupts(even_flags);
+
+ sl_gpio_dispatch_interrupt(even_flags);
+}
+
+/***************************************************************************//**
+ * @brief
+ * GPIO ODD interrupt handler. Interrupt handler clears all IF odd flags and
+ * call the dispatcher passing the flags which triggered the interrupt.
+ ******************************************************************************/
+void GPIO_ODD_IRQHandler(void)
+{
+ uint32_t odd_flags;
+
+ // Gets all enabled and pending odd interrupts.
+ odd_flags = sl_hal_gpio_get_enabled_pending_interrupts() & SL_HAL_GPIO_INT_IF_ODD_MASK;
+ // Clears only odd interrupts.
+ sl_hal_gpio_clear_interrupts(odd_flags);
+
+ sl_gpio_dispatch_interrupt(odd_flags);
+}
diff --git a/simplicity_sdk/platform/emdrv/common/inc/ecode.h b/simplicity_sdk/platform/emdrv/common/inc/ecode.h
new file mode 100644
index 000000000..033400bad
--- /dev/null
+++ b/simplicity_sdk/platform/emdrv/common/inc/ecode.h
@@ -0,0 +1,70 @@
+/***************************************************************************//**
+ * @file
+ * @brief Energy Aware drivers error code definitions.
+ *******************************************************************************
+ * # License
+ * Copyright 2018 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef __SILICON_LABS_ECODE_H__
+#define __SILICON_LABS_ECODE_H__
+
+#include
+
+/***************************************************************************//**
+ * @addtogroup ecode ECODE - Error Codes
+ * @details ECODE is set of error and status codes related to DMA, RTC, SPI,
+ * NVM, USTIMER, UARTDRV, EZRADIO, TEMP, and NVM3 drivers. These error and
+ * status codes are used by the above listed drivers to update the layer
+ * (using the driver) about an error or status.
+ *
+ * @{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * @brief Typedef for API function error code return values.
+ *
+ * @details
+ * Bit 24-31: Component, for example emdrv @n
+ * Bit 16-23: Module, for example @ref uartdrv or @ref spidrv @n
+ * Bit 0-15: Error code
+ ******************************************************************************/
+typedef uint32_t Ecode_t;
+
+#define ECODE_EMDRV_BASE (0xF0000000U) ///< Base value for all EMDRV errorcodes.
+
+#define ECODE_OK (0U) ///< Generic success return value.
+
+#define ECODE_EMDRV_SPIDRV_BASE (ECODE_EMDRV_BASE | 0x00002000U) ///< Base value for SPIDRV error codes.
+#define ECODE_EMDRV_NVM_BASE (ECODE_EMDRV_BASE | 0x00003000U) ///< Base value for NVM error codes.
+#define ECODE_EMDRV_USTIMER_BASE (ECODE_EMDRV_BASE | 0x00004000U) ///< Base value for USTIMER error codes.
+#define ECODE_EMDRV_UARTDRV_BASE (ECODE_EMDRV_BASE | 0x00007000U) ///< Base value for UARTDRV error codes.
+#define ECODE_EMDRV_DMADRV_BASE (ECODE_EMDRV_BASE | 0x00008000U) ///< Base value for DMADRV error codes.
+#define ECODE_EMDRV_EZRADIODRV_BASE (ECODE_EMDRV_BASE | 0x00009000U) ///< Base value for EZRADIODRV error codes.
+#define ECODE_EMDRV_TEMPDRV_BASE (ECODE_EMDRV_BASE | 0x0000D000U) ///< Base value for TEMPDRV error codes.
+#define ECODE_EMDRV_NVM3_BASE (ECODE_EMDRV_BASE | 0x0000E000U) ///< Base value for NVM3 error codes.
+
+/** @} (end addtogroup ecode) */
+
+#endif // __SILICON_LABS_ECODE_H__
diff --git a/simplicity_sdk/platform/emdrv/dmadrv/config/s2_8ch/dmadrv_config.h b/simplicity_sdk/platform/emdrv/dmadrv/config/s2_8ch/dmadrv_config.h
new file mode 100644
index 000000000..ed105e4f3
--- /dev/null
+++ b/simplicity_sdk/platform/emdrv/dmadrv/config/s2_8ch/dmadrv_config.h
@@ -0,0 +1,26 @@
+#ifndef DMADRV_CONFIG_H
+#define DMADRV_CONFIG_H
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// DMA interrupt priority <0-15>
+// Priority of the DMA interrupt. Smaller number equals higher priority.
+// Default: 8
+#define EMDRV_DMADRV_DMA_IRQ_PRIORITY 8
+
+// Number of available channels <1-8>
+// Number of DMA channels supported by the driver. A lower channel count
+// will reduce RAM memory footprint. The default is to support all channels
+// on the device.
+// Default: 8
+#define EMDRV_DMADRV_DMA_CH_COUNT 8
+
+// Number of fixed priority channels
+// This will configure channels [0, CH_PRIORITY - 1] as fixed priority,
+// and channels [CH_PRIORITY, CH_COUNT] as round-robin.
+// Default: 0
+#define EMDRV_DMADRV_DMA_CH_PRIORITY 0
+
+// <<< end of configuration section >>>
+
+#endif // DMADRV_CONFIG_H
diff --git a/simplicity_sdk/platform/emdrv/dmadrv/inc/dmadrv.h b/simplicity_sdk/platform/emdrv/dmadrv/inc/dmadrv.h
new file mode 100644
index 000000000..522c86801
--- /dev/null
+++ b/simplicity_sdk/platform/emdrv/dmadrv/inc/dmadrv.h
@@ -0,0 +1,187 @@
+/***************************************************************************//**
+ * @file
+ * @brief DMADRV API definition.
+ *******************************************************************************
+ * # License
+ * Copyright 2018 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef __SILICON_LABS_DMADRV_H__
+#define __SILICON_LABS_DMADRV_H__
+
+#include "em_device.h"
+
+#include "ecode.h"
+
+#include "dmadrv_signals.h"
+
+#if defined(LDMA_PRESENT) && (LDMA_COUNT == 1)
+#if (_SILICON_LABS_32B_SERIES > 2)
+#define EMDRV_DMADRV_LDMA_S3
+#else
+#define EMDRV_DMADRV_DMA_PRESENT
+#define EMDRV_DMADRV_LDMA
+#endif
+#else
+#error "No valid DMA engine defined."
+#endif
+
+#include "dmadrv_config.h"
+#include "sl_code_classification.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @addtogroup dmadrv
+ * @{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * @addtogroup dmadrv_error_codes Error Codes
+ * @{
+ ******************************************************************************/
+
+#define ECODE_EMDRV_DMADRV_OK (ECODE_OK) ///< A successful return value.
+#define ECODE_EMDRV_DMADRV_PARAM_ERROR (ECODE_EMDRV_DMADRV_BASE | 0x00000001) ///< An illegal input parameter.
+#define ECODE_EMDRV_DMADRV_NOT_INITIALIZED (ECODE_EMDRV_DMADRV_BASE | 0x00000002) ///< DMA is not initialized.
+#define ECODE_EMDRV_DMADRV_ALREADY_INITIALIZED (ECODE_EMDRV_DMADRV_BASE | 0x00000003) ///< DMA has already been initialized.
+#define ECODE_EMDRV_DMADRV_CHANNELS_EXHAUSTED (ECODE_EMDRV_DMADRV_BASE | 0x00000004) ///< No DMA channels available.
+#define ECODE_EMDRV_DMADRV_IN_USE (ECODE_EMDRV_DMADRV_BASE | 0x00000005) ///< DMA is in use.
+#define ECODE_EMDRV_DMADRV_ALREADY_FREED (ECODE_EMDRV_DMADRV_BASE | 0x00000006) ///< A DMA channel was free.
+#define ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED (ECODE_EMDRV_DMADRV_BASE | 0x00000007) ///< A channel is not reserved.
+
+/** @} (end addtogroup error codes) */
+/***************************************************************************//**
+ * @brief
+ * DMADRV transfer completion callback function.
+ *
+ * @details
+ * The callback function is called when a transfer is complete.
+ *
+ * @param[in] channel
+ * The DMA channel number.
+ *
+ * @param[in] sequenceNo
+ * The number of times the callback was called. Useful on long chains of
+ * linked transfers or on endless ping-pong type transfers.
+ *
+ * @param[in] userParam
+ * Optional user parameter supplied on DMA invocation.
+ *
+ * @return
+ * When doing ping-pong transfers, return true to continue or false to
+ * stop transfers.
+ ******************************************************************************/
+typedef bool (*DMADRV_Callback_t)(unsigned int channel,
+ unsigned int sequenceNo,
+ void *userParam);
+
+Ecode_t DMADRV_AllocateChannel(unsigned int *channelId,
+ void *capabilities);
+Ecode_t DMADRV_AllocateChannelById(unsigned int channelId,
+ void *capabilities);
+Ecode_t DMADRV_DeInit(void);
+Ecode_t DMADRV_FreeChannel(unsigned int channelId);
+Ecode_t DMADRV_Init(void);
+
+Ecode_t DMADRV_MemoryPeripheral(unsigned int channelId,
+ DMADRV_PeripheralSignal_t peripheralSignal,
+ void *dst,
+ void *src,
+ bool srcInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+Ecode_t DMADRV_PeripheralMemory(unsigned int channelId,
+ DMADRV_PeripheralSignal_t peripheralSignal,
+ void *dst,
+ void *src,
+ bool dstInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+Ecode_t DMADRV_MemoryPeripheralPingPong(unsigned int channelId,
+ DMADRV_PeripheralSignal_t peripheralSignal,
+ void *dst,
+ void *src0,
+ void *src1,
+ bool srcInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+Ecode_t DMADRV_PeripheralMemoryPingPong(unsigned int channelId,
+ DMADRV_PeripheralSignal_t peripheralSignal,
+ void *dst0,
+ void *dst1,
+ void *src,
+ bool dstInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+
+#if defined(EMDRV_DMADRV_LDMA)
+Ecode_t DMADRV_LdmaStartTransfer(int channelId,
+ LDMA_TransferCfg_t *transfer,
+ LDMA_Descriptor_t *descriptor,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+Ecode_t DMADRV_LdmaStartTransfer(int channelId,
+ sl_hal_ldma_transfer_config_t *transfer,
+ sl_hal_ldma_descriptor_t *descriptor,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+#endif
+
+Ecode_t DMADRV_PauseTransfer(unsigned int channelId);
+Ecode_t DMADRV_ResumeTransfer(unsigned int channelId);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DMADRV, SL_CODE_CLASS_TIME_CRITICAL)
+Ecode_t DMADRV_StopTransfer(unsigned int channelId);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DMADRV, SL_CODE_CLASS_TIME_CRITICAL)
+Ecode_t DMADRV_TransferActive(unsigned int channelId,
+ bool *active);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DMADRV, SL_CODE_CLASS_TIME_CRITICAL)
+Ecode_t DMADRV_TransferCompletePending(unsigned int channelId,
+ bool *pending);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DMADRV, SL_CODE_CLASS_TIME_CRITICAL)
+Ecode_t DMADRV_TransferDone(unsigned int channelId,
+ bool *done);
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_DMADRV, SL_CODE_CLASS_TIME_CRITICAL)
+Ecode_t DMADRV_TransferRemainingCount(unsigned int channelId,
+ int *remaining);
+
+/** @} (end addtogroup dmadrv) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SILICON_LABS_DMADRV_H__ */
diff --git a/simplicity_sdk/platform/emdrv/dmadrv/inc/s2_signals/dmadrv_signals.h b/simplicity_sdk/platform/emdrv/dmadrv/inc/s2_signals/dmadrv_signals.h
new file mode 100644
index 000000000..b02653193
--- /dev/null
+++ b/simplicity_sdk/platform/emdrv/dmadrv/inc/s2_signals/dmadrv_signals.h
@@ -0,0 +1,223 @@
+#ifndef __SILICON_LABS_DMADRV_SIGNALS_S2_H__
+#define __SILICON_LABS_DMADRV_SIGNALS_S2_H__
+
+#include "em_device.h"
+#include "ecode.h"
+#include "sl_enum.h"
+#include "em_ldma.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @addtogroup dmadrv
+ * @{
+ ******************************************************************************/
+
+#if defined(LDMAXBAR_COUNT) && (LDMAXBAR_COUNT > 0)
+
+/// Maximum length of one DMA transfer.
+#define DMADRV_MAX_XFER_COUNT ((int)((_LDMA_CH_CTRL_XFERCNT_MASK >> _LDMA_CH_CTRL_XFERCNT_SHIFT) + 1))
+
+/// Peripherals that can trigger LDMA transfers.
+SL_ENUM_GENERIC(DMADRV_PeripheralSignal_t, uint32_t) {
+ dmadrvPeripheralSignal_NONE = LDMAXBAR_CH_REQSEL_SOURCESEL_NONE, ///< No peripheral selected for DMA triggering.
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0
+ dmadrvPeripheralSignal_TIMER0_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1
+ dmadrvPeripheralSignal_TIMER0_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2
+ dmadrvPeripheralSignal_TIMER0_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF
+ dmadrvPeripheralSignal_TIMER0_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER0UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0
+ dmadrvPeripheralSignal_TIMER1_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1
+ dmadrvPeripheralSignal_TIMER1_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2
+ dmadrvPeripheralSignal_TIMER1_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF
+ dmadrvPeripheralSignal_TIMER1_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER1UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV
+ dmadrvPeripheralSignal_USART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT
+ dmadrvPeripheralSignal_USART0_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART0RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL
+ dmadrvPeripheralSignal_USART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT
+ dmadrvPeripheralSignal_USART0_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY
+ dmadrvPeripheralSignal_USART0_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART0TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV
+ dmadrvPeripheralSignal_USART1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT
+ dmadrvPeripheralSignal_USART1_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART1RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL
+ dmadrvPeripheralSignal_USART1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT
+ dmadrvPeripheralSignal_USART1_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY
+ dmadrvPeripheralSignal_USART1_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART1TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAV
+ dmadrvPeripheralSignal_USART2_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAVRIGHT
+ dmadrvPeripheralSignal_USART2_RXDATAVRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART2RXDATAVRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBL
+ dmadrvPeripheralSignal_USART2_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBLRIGHT
+ dmadrvPeripheralSignal_USART2_TXBLRIGHT = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXBLRIGHT | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXEMPTY
+ dmadrvPeripheralSignal_USART2_TXEMPTY = LDMAXBAR_CH_REQSEL_SIGSEL_USART2TXEMPTY | LDMAXBAR_CH_REQSEL_SOURCESEL_USART2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV
+ dmadrvPeripheralSignal_I2C0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_I2C0RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL
+ dmadrvPeripheralSignal_I2C0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_I2C0TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV
+ dmadrvPeripheralSignal_I2C1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_I2C1RXDATAV | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL
+ dmadrvPeripheralSignal_I2C1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_I2C1TXBL | LDMAXBAR_CH_REQSEL_SOURCESEL_I2C1,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_AGCRSSI
+ dmadrvPeripheralSignal_AGC_RSSI = LDMAXBAR_CH_REQSEL_SIGSEL_AGCRSSI | LDMAXBAR_CH_REQSEL_SOURCESEL_AGC,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERBOF
+ dmadrvPeripheralSignal_PROTIMER_BOF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERBOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC0
+ dmadrvPeripheralSignal_PROTIMER_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC1
+ dmadrvPeripheralSignal_PROTIMER_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC2
+ dmadrvPeripheralSignal_PROTIMER_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC3
+ dmadrvPeripheralSignal_PROTIMER_CC3 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC3 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC4
+ dmadrvPeripheralSignal_PROTIMER_CC4 = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERCC4 | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERPOF
+ dmadrvPeripheralSignal_PROTIMER_POF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERPOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERWOF
+ dmadrvPeripheralSignal_PROTIMER_WOF = LDMAXBAR_CH_REQSEL_SIGSEL_PROTIMERWOF | LDMAXBAR_CH_REQSEL_SOURCESEL_PROTIMER,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_MODEMDEBUG
+ dmadrvPeripheralSignal_MODEM_DEBUG = LDMAXBAR_CH_REQSEL_SIGSEL_MODEMDEBUG | LDMAXBAR_CH_REQSEL_SOURCESEL_MODEM,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN
+ dmadrvPeripheralSignal_IADC0_IADC_SCAN = LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SCAN | LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE
+ dmadrvPeripheralSignal_IADC0_IADC_SINGLE = LDMAXBAR_CH_REQSEL_SIGSEL_IADC0IADC_SINGLE | LDMAXBAR_CH_REQSEL_SOURCESEL_IADC0,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_IMEMWDATA
+ dmadrvPeripheralSignal_IMEM_WDATA = LDMAXBAR_CH_REQSEL_SIGSEL_IMEMWDATA | LDMAXBAR_CH_REQSEL_SOURCESEL_IMEM,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0
+ dmadrvPeripheralSignal_TIMER2_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1
+ dmadrvPeripheralSignal_TIMER2_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2
+ dmadrvPeripheralSignal_TIMER2_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF
+ dmadrvPeripheralSignal_TIMER2_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER2UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER2,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0
+ dmadrvPeripheralSignal_TIMER3_CC0 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC0 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1
+ dmadrvPeripheralSignal_TIMER3_CC1 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC1 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2
+ dmadrvPeripheralSignal_TIMER3_CC2 = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3CC2 | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF
+ dmadrvPeripheralSignal_TIMER3_UFOF = LDMAXBAR_CH_REQSEL_SIGSEL_TIMER3UFOF | LDMAXBAR_CH_REQSEL_SOURCESEL_TIMER3,
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUART0TXFL
+ dmadrvPeripheralSignal_EUART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUART0TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUART0, ///< Trig on EUART0_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUART0RXFL
+ dmadrvPeripheralSignal_EUART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUART0RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUART0, ///< Trig on EUART0_RXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL
+ dmadrvPeripheralSignal_EUSART0_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0, ///< Trig on EUART0_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL
+ dmadrvPeripheralSignal_EUSART0_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART0RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART0, ///< Trig on EUART0_RXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL
+ dmadrvPeripheralSignal_EUSART1_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1, ///< Trig on EUART1_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL
+ dmadrvPeripheralSignal_EUSART1_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART1RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART1, ///< Trig on EUART1_RXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL
+ dmadrvPeripheralSignal_EUSART2_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2, ///< Trig on EUART2_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL
+ dmadrvPeripheralSignal_EUSART2_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART2RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART2, ///< Trig on EUART2_RXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3TXFL
+ dmadrvPeripheralSignal_EUSART3_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART3, ///< Trig on EUART2_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3RXFL
+ dmadrvPeripheralSignal_EUSART3_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART3RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART3, ///< Trig on EUART3_RXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4TXFL
+ dmadrvPeripheralSignal_EUSART4_TXBL = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4TXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART4, ///< Trig on EUART4_TXBL.
+ #endif
+ #if defined LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4RXFL
+ dmadrvPeripheralSignal_EUSART4_RXDATAV = LDMAXBAR_CH_REQSEL_SIGSEL_EUSART4RXFL | LDMAXBAR_CH_REQSEL_SOURCESEL_EUSART4, ///< Trig on EUART4_RXBL.
+ #endif
+};
+
+/// Data size of one LDMA transfer item.
+SL_ENUM(DMADRV_DataSize_t) {
+ dmadrvDataSize1 = ldmaCtrlSizeByte, ///< Byte
+ dmadrvDataSize2 = ldmaCtrlSizeHalf, ///< Halfword
+ dmadrvDataSize4 = ldmaCtrlSizeWord ///< Word
+};
+
+#endif /* defined( LDMAXBAR_COUNT ) && ( LDMAXBAR_COUNT == 1 ) */
+
+/** @} (end addtogroup dmadrv) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __SILICON_LABS_DMADRV_SIGNALS_S2_H__ */
diff --git a/simplicity_sdk/platform/emdrv/dmadrv/src/dmadrv.c b/simplicity_sdk/platform/emdrv/dmadrv/src/dmadrv.c
new file mode 100644
index 000000000..c4b27cffc
--- /dev/null
+++ b/simplicity_sdk/platform/emdrv/dmadrv/src/dmadrv.c
@@ -0,0 +1,1745 @@
+/***************************************************************************//**
+ * @file
+ * @brief DMADRV API implementation.
+ *******************************************************************************
+ * # License
+ * Copyright 2018 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include
+#include
+
+#include "em_device.h"
+#include "sl_core.h"
+
+#include "dmadrv.h"
+
+#if defined(EMDRV_DMADRV_LDMA_S3)
+#include "sl_clock_manager.h"
+#endif
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+#if !defined(EMDRV_DMADRV_DMA_CH_COUNT) \
+ || (EMDRV_DMADRV_DMA_CH_COUNT > DMA_CHAN_COUNT)
+
+#if defined(_SILICON_LABS_32B_SERIES_3)
+#define EMDRV_DMADRV_DMA_CH_COUNT DMA_CHAN_COUNT(0)
+#else
+#define EMDRV_DMADRV_DMA_CH_COUNT DMA_CHAN_COUNT
+#endif
+#endif
+
+typedef enum {
+ dmaDirectionMemToPeripheral,
+ dmaDirectionPeripheralToMem
+} DmaDirection_t;
+
+typedef enum {
+ dmaModeBasic,
+ dmaModePingPong
+} DmaMode_t;
+
+typedef struct {
+ DMADRV_Callback_t callback;
+ void *userParam;
+ unsigned int callbackCount;
+#if defined(EMDRV_DMADRV_UDMA)
+ int length;
+#endif
+ bool allocated;
+#if defined(EMDRV_DMADRV_LDMA) || defined(EMDRV_DMADRV_LDMA_S3)
+ DmaMode_t mode;
+#endif
+} ChTable_t;
+
+static bool initialized = false;
+static ChTable_t chTable[EMDRV_DMADRV_DMA_CH_COUNT];
+
+#if defined(EMDRV_DMADRV_UDMA)
+static DMA_CB_TypeDef dmaCallBack[EMDRV_DMADRV_DMA_CH_COUNT];
+#endif
+
+#if defined(EMDRV_DMADRV_LDMA) || defined(EMDRV_DMADRV_LDMA_S3)
+#if defined(EMDRV_DMADRV_LDMA)
+const LDMA_TransferCfg_t xferCfgPeripheral = LDMA_TRANSFER_CFG_PERIPHERAL(0);
+const LDMA_Descriptor_t m2p = LDMA_DESCRIPTOR_SINGLE_M2P_BYTE(NULL, NULL, 1UL);
+const LDMA_Descriptor_t p2m = LDMA_DESCRIPTOR_SINGLE_P2M_BYTE(NULL, NULL, 1UL);
+
+typedef struct {
+ LDMA_Descriptor_t desc[2];
+} DmaXfer_t;
+#else
+const sl_hal_ldma_transfer_config_t xferCfgPeripheral = SL_HAL_LDMA_TRANSFER_CFG_PERIPHERAL(0);
+const sl_hal_ldma_descriptor_t m2p = SL_HAL_LDMA_DESCRIPTOR_SINGLE_M2P(SL_HAL_LDMA_CTRL_SIZE_BYTE, NULL, NULL, 1UL);
+const sl_hal_ldma_descriptor_t p2m = SL_HAL_LDMA_DESCRIPTOR_SINGLE_P2M(SL_HAL_LDMA_CTRL_SIZE_BYTE, NULL, NULL, 1UL);
+
+typedef struct {
+ sl_hal_ldma_descriptor_t desc[2];
+} DmaXfer_t;
+#endif
+
+static DmaXfer_t dmaXfer[EMDRV_DMADRV_DMA_CH_COUNT];
+#endif
+
+static Ecode_t StartTransfer(DmaMode_t mode,
+ DmaDirection_t direction,
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t peripheralSignal,
+ void *buf0,
+ void *buf1,
+ void *buf2,
+ bool bufInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam);
+
+#if defined(EMDRV_DMADRV_LDMA_S3)
+static void LDMA_IRQHandlerDefault(uint8_t chnum);
+#endif
+
+/// @endcond
+
+/***************************************************************************//**
+ * @brief
+ * Allocate (reserve) a DMA channel.
+ *
+ * @param[out] channelId
+ * The channel ID assigned by DMADRV.
+ *
+ * @param[in] capabilities
+ * Not used.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_AllocateChannel(unsigned int *channelId, void *capabilities)
+{
+ unsigned int i;
+ (void)capabilities;
+ CORE_DECLARE_IRQ_STATE;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId == NULL ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ CORE_ENTER_ATOMIC();
+ for ( i = 0U; i < (unsigned int)EMDRV_DMADRV_DMA_CH_COUNT; i++ ) {
+ if ( !chTable[i].allocated ) {
+ *channelId = i;
+ chTable[i].allocated = true;
+ chTable[i].callback = NULL;
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_OK;
+ }
+ }
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_CHANNELS_EXHAUSTED;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Allocate (reserve) the given DMA channel if he is free.
+ *
+ * @param[out] channelId
+ * The channel ID to be assigned by DMADRV.
+ *
+ * @param[in] capabilities
+ * Not used.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_AllocateChannelById(unsigned int channelId, void *capabilities)
+{
+ (void)capabilities;
+ CORE_DECLARE_IRQ_STATE;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ CORE_ENTER_ATOMIC();
+ if ( !chTable[channelId].allocated ) {
+ chTable[channelId].allocated = true;
+ chTable[channelId].callback = NULL;
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_OK;
+ }
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_IN_USE;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Deinitialize DMADRV.
+ *
+ * @details
+ * If DMA channels are not currently allocated, it will disable DMA hardware
+ * and mask associated interrupts.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_DeInit(void)
+{
+ int i;
+ bool inUse;
+ CORE_DECLARE_IRQ_STATE;
+
+ inUse = false;
+
+ CORE_ENTER_ATOMIC();
+ for ( i = 0; i < (int)EMDRV_DMADRV_DMA_CH_COUNT; i++ ) {
+ if ( chTable[i].allocated ) {
+ inUse = true;
+ break;
+ }
+ }
+
+ if ( !inUse ) {
+#if defined(EMDRV_DMADRV_LDMA)
+ LDMA_DeInit();
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ NVIC_DisableIRQ(LDMA0_CHNL0_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL1_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL2_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL3_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL4_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL5_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL6_IRQn);
+ NVIC_DisableIRQ(LDMA0_CHNL7_IRQn);
+
+ sl_hal_ldma_reset(LDMA0);
+
+ sl_clock_manager_disable_bus_clock(SL_BUS_CLOCK_LDMA0);
+ sl_clock_manager_disable_bus_clock(SL_BUS_CLOCK_LDMAXBAR0);
+#endif
+
+ initialized = false;
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_OK;
+ }
+ CORE_EXIT_ATOMIC();
+
+ return ECODE_EMDRV_DMADRV_IN_USE;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Free an allocated (reserved) DMA channel.
+ *
+ * @param[in] channelId
+ * The channel ID to free.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_FreeChannel(unsigned int channelId)
+{
+ CORE_DECLARE_IRQ_STATE;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ CORE_ENTER_ATOMIC();
+ if ( chTable[channelId].allocated ) {
+ chTable[channelId].allocated = false;
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_OK;
+ }
+ CORE_EXIT_ATOMIC();
+
+ return ECODE_EMDRV_DMADRV_ALREADY_FREED;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Initialize DMADRV.
+ *
+ * @details
+ * The DMA hardware is initialized.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_Init(void)
+{
+ int i;
+ CORE_DECLARE_IRQ_STATE;
+#if defined(EMDRV_DMADRV_UDMA)
+ DMA_Init_TypeDef dmaInit;
+#elif defined(EMDRV_DMADRV_LDMA)
+ LDMA_Init_t dmaInit = LDMA_INIT_DEFAULT;
+ dmaInit.ldmaInitCtrlNumFixed = EMDRV_DMADRV_DMA_CH_PRIORITY;
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ sl_hal_ldma_config_t dmaInit = SL_HAL_LDMA_INIT_DEFAULT;
+ dmaInit.num_fixed_priority = EMDRV_DMADRV_DMA_CH_PRIORITY;
+#endif
+
+ CORE_ENTER_ATOMIC();
+ if ( initialized ) {
+ CORE_EXIT_ATOMIC();
+ return ECODE_EMDRV_DMADRV_ALREADY_INITIALIZED;
+ }
+ initialized = true;
+ CORE_EXIT_ATOMIC();
+
+ if ( EMDRV_DMADRV_DMA_IRQ_PRIORITY >= (1 << __NVIC_PRIO_BITS) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ for ( i = 0; i < (int)EMDRV_DMADRV_DMA_CH_COUNT; i++ ) {
+ chTable[i].allocated = false;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ NVIC_SetPriority(DMA_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ dmaInit.hprot = 0;
+ dmaInit.controlBlock = dmaControlBlock;
+ DMA_Init(&dmaInit);
+#elif defined(EMDRV_DMADRV_LDMA)
+ dmaInit.ldmaInitIrqPriority = EMDRV_DMADRV_DMA_IRQ_PRIORITY;
+ LDMA_Init(&dmaInit);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_LDMA0);
+ sl_clock_manager_enable_bus_clock(SL_BUS_CLOCK_LDMAXBAR0);
+ sl_hal_ldma_init(LDMA0, &dmaInit);
+
+ NVIC_ClearPendingIRQ(LDMA0_CHNL0_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL1_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL2_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL3_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL4_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL5_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL6_IRQn);
+ NVIC_ClearPendingIRQ(LDMA0_CHNL7_IRQn);
+
+ NVIC_SetPriority(LDMA0_CHNL0_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL1_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL2_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL3_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL4_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL5_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL6_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+ NVIC_SetPriority(LDMA0_CHNL7_IRQn, EMDRV_DMADRV_DMA_IRQ_PRIORITY);
+
+ NVIC_EnableIRQ(LDMA0_CHNL0_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL1_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL2_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL3_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL4_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL5_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL6_IRQn);
+ NVIC_EnableIRQ(LDMA0_CHNL7_IRQn);
+
+ sl_hal_ldma_enable(LDMA0);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+#if defined(EMDRV_DMADRV_LDMA) || defined(DOXYGEN)
+/***************************************************************************//**
+ * @brief
+ * Start an LDMA transfer.
+ *
+ * @details
+ * This function is similar to the emlib LDMA function.
+ *
+ * @param[in] channelId
+ * The channel ID to use.
+ *
+ * @param[in] transfer
+ * A DMA transfer configuration data structure.
+ *
+ * @param[in] descriptor
+ * A DMA transfer descriptor, can be an array of descriptors linked together.
+ *
+ * @param[in] callback
+ * An optional callback function for signalling completion. May be NULL if not
+ * needed.
+ *
+ * @param[in] cbUserParam
+ * An optional user parameter to feed to the callback function. May be NULL if
+ * not needed.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_LdmaStartTransfer(int channelId,
+ LDMA_TransferCfg_t *transfer,
+ LDMA_Descriptor_t *descriptor,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ ChTable_t *ch;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= (int)EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ ch = &chTable[channelId];
+ if ( ch->allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+ ch->callback = callback;
+ ch->userParam = cbUserParam;
+ ch->callbackCount = 0;
+ LDMA_StartTransfer(channelId, transfer, descriptor);
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+Ecode_t DMADRV_LdmaStartTransfer(int channelId,
+ sl_hal_ldma_transfer_config_t *transfer,
+ sl_hal_ldma_descriptor_t *descriptor,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ ChTable_t *ch;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= (int)EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ ch = &chTable[channelId];
+ if ( ch->allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+ ch->callback = callback;
+ ch->userParam = cbUserParam;
+ ch->callbackCount = 0;
+ sl_hal_ldma_init_transfer(LDMA0, channelId, transfer, descriptor);
+ sl_hal_ldma_enable_interrupts(LDMA0, (1 << channelId));
+ sl_hal_ldma_start_transfer(LDMA0, channelId);
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+#endif
+
+/***************************************************************************//**
+ * @brief
+ * Start a memory to a peripheral DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID to use for the transfer.
+ *
+ * @param[in] peripheralSignal
+ * Selects which peripheral/peripheralsignal to use.
+ *
+ * @param[in] dst
+ * A destination (peripheral register) memory address.
+ *
+ * @param[in] src
+ * A source memory address.
+ *
+ * @param[in] srcInc
+ * Set to true to enable source address increment (increments according to
+ * @a size parameter).
+ *
+ * @param[in] len
+ * A number of items (of @a size size) to transfer.
+ *
+ * @param[in] size
+ * An item size, byte, halfword or word.
+ *
+ * @param[in] callback
+ * A function to call on DMA completion, use NULL if not needed.
+ *
+ * @param[in] cbUserParam
+ * An optional user parameter to feed to the callback function. Use NULL if
+ * not needed.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_MemoryPeripheral(unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *dst,
+ void *src,
+ bool srcInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ return StartTransfer(dmaModeBasic,
+ dmaDirectionMemToPeripheral,
+ channelId,
+ peripheralSignal,
+ dst,
+ src,
+ NULL,
+ srcInc,
+ len,
+ size,
+ callback,
+ cbUserParam);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Start a memory to a peripheral ping-pong DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID to use for the transfer.
+ *
+ * @param[in] peripheralSignal
+ * Selects which peripheral/peripheralsignal to use.
+ *
+ * @param[in] dst
+ * A destination (peripheral register) memory address.
+ *
+ * @param[in] src0
+ * A source memory address of the first (ping) buffer.
+ *
+ * @param[in] src1
+ * A source memory address of the second (pong) buffer.
+ *
+ * @param[in] srcInc
+ * Set to true to enable source address increment (increments according to
+ * @a size parameter).
+ *
+ * @param[in] len
+ * A number of items (of @a size size) to transfer.
+ *
+ * @param[in] size
+ * An item size, byte, halfword or word.
+ *
+ * @param[in] callback
+ * A function to call on DMA completion, use NULL if not needed.
+ *
+ * @param[in] cbUserParam
+ * An optional user parameter to feed to the callback function. Use NULL if
+ * not needed.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_MemoryPeripheralPingPong(
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *dst,
+ void *src0,
+ void *src1,
+ bool srcInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ return StartTransfer(dmaModePingPong,
+ dmaDirectionMemToPeripheral,
+ channelId,
+ peripheralSignal,
+ dst,
+ src0,
+ src1,
+ srcInc,
+ len,
+ size,
+ callback,
+ cbUserParam);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Start a peripheral to memory DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID to use for the transfer.
+ *
+ * @param[in] peripheralSignal
+ * Selects which peripheral/peripheralsignal to use.
+ *
+ * @param[in] dst
+ * A destination memory address.
+ *
+ * @param[in] src
+ * A source memory (peripheral register) address.
+ *
+ * @param[in] dstInc
+ * Set to true to enable destination address increment (increments according
+ * to @a size parameter).
+ *
+ * @param[in] len
+ * A number of items (of @a size size) to transfer.
+ *
+ * @param[in] size
+ * An item size, byte, halfword or word.
+ *
+ * @param[in] callback
+ * A function to call on DMA completion, use NULL if not needed.
+ *
+ * @param[in] cbUserParam
+ * An optional user parameter to feed to the callback function. Use NULL if
+ * not needed.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_PeripheralMemory(unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *dst,
+ void *src,
+ bool dstInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ return StartTransfer(dmaModeBasic,
+ dmaDirectionPeripheralToMem,
+ channelId,
+ peripheralSignal,
+ dst,
+ src,
+ NULL,
+ dstInc,
+ len,
+ size,
+ callback,
+ cbUserParam);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Start a peripheral to memory ping-pong DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID to use for the transfer.
+ *
+ * @param[in] peripheralSignal
+ * Selects which peripheral/peripheralsignal to use.
+ *
+ * @param[in] dst0
+ * A destination memory address of the first (ping) buffer.
+ *
+ * @param[in] dst1
+ * A destination memory address of the second (pong) buffer.
+ *
+ * @param[in] src
+ * A source memory (peripheral register) address.
+ *
+ * @param[in] dstInc
+ * Set to true to enable destination address increment (increments according
+ * to @a size parameter).
+ *
+ * @param[in] len
+ * A number of items (of @a size size) to transfer.
+ *
+ * @param[in] size
+ * An item size, byte, halfword or word.
+ *
+ * @param[in] callback
+ * A function to call on DMA completion, use NULL if not needed.
+ *
+ * @param[in] cbUserParam
+ * An optional user parameter to feed to the callback function. Use NULL if
+ * not needed.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_PeripheralMemoryPingPong(
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *dst0,
+ void *dst1,
+ void *src,
+ bool dstInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ return StartTransfer(dmaModePingPong,
+ dmaDirectionPeripheralToMem,
+ channelId,
+ peripheralSignal,
+ dst0,
+ dst1,
+ src,
+ dstInc,
+ len,
+ size,
+ callback,
+ cbUserParam);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Pause an ongoing DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to pause.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_PauseTransfer(unsigned int channelId)
+{
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ DMA_ChannelRequestEnable(channelId, false);
+#elif defined(EMDRV_DMADRV_LDMA)
+ LDMA_EnableChannelRequest(channelId, false);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ sl_hal_ldma_disable_channel_request(LDMA0, channelId);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Resume an ongoing DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to resume.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_ResumeTransfer(unsigned int channelId)
+{
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ DMA_ChannelRequestEnable(channelId, true);
+#elif defined(EMDRV_DMADRV_LDMA)
+ LDMA_EnableChannelRequest(channelId, true);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ sl_hal_ldma_enable_channel_request(LDMA0, channelId);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Stop an ongoing DMA transfer.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to stop.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_StopTransfer(unsigned int channelId)
+{
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( channelId >= EMDRV_DMADRV_DMA_CH_COUNT ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ DMA_ChannelEnable(channelId, false);
+#elif defined(EMDRV_DMADRV_LDMA)
+ LDMA_StopTransfer(channelId);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ sl_hal_ldma_stop_transfer(LDMA0, channelId);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Check if a transfer is running.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to check.
+ *
+ * @param[out] active
+ * True if transfer is running, false otherwise.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_TransferActive(unsigned int channelId, bool *active)
+{
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (active == NULL) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ if ( DMA_ChannelEnabled(channelId) )
+#elif defined(EMDRV_DMADRV_LDMA)
+ if ( LDMA_ChannelEnabled(channelId) )
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ if ( sl_hal_ldma_channel_is_enabled(LDMA0, channelId) )
+#endif
+ {
+ *active = true;
+ } else {
+ *active = false;
+ }
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Check if a transfer complete is pending.
+ *
+ * @details
+ * Will check the channel interrupt flag. This assumes that the DMA is configured
+ * to give a completion interrupt.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to check.
+ *
+ * @param[out] pending
+ * True if a transfer complete is pending, false otherwise.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_TransferCompletePending(unsigned int channelId, bool *pending)
+{
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (pending == NULL) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ if ( DMA->IF & (1 << channelId) )
+#elif defined(EMDRV_DMADRV_LDMA)
+ if ( LDMA->IF & (1 << channelId) )
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ if ( sl_hal_ldma_get_pending_interrupts(LDMA0) & (1 << channelId) )
+#endif
+ {
+ *pending = true;
+ } else {
+ *pending = false;
+ }
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Check if a transfer has completed.
+ *
+ * @note
+ * This function should be used in a polled environment.
+ * Will only work reliably for transfers NOT using the completion interrupt.
+ * On UDMA, it will only work on basic transfers on the primary channel.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to check.
+ *
+ * @param[out] done
+ * True if a transfer has completed, false otherwise.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_TransferDone(unsigned int channelId, bool *done)
+{
+#if defined(EMDRV_DMADRV_UDMA)
+ uint32_t remaining, iflag;
+#endif
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (done == NULL) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ CORE_ATOMIC_SECTION(
+ /* This works for primary channel only ! */
+ remaining = (dmaControlBlock[channelId].CTRL
+ & _DMA_CTRL_N_MINUS_1_MASK)
+ >> _DMA_CTRL_N_MINUS_1_SHIFT;
+ iflag = DMA->IF;
+ )
+
+ if ( (remaining == 0) && (iflag & (1 << channelId)) ) {
+ *done = true;
+ } else {
+ *done = false;
+ }
+#elif defined(EMDRV_DMADRV_LDMA)
+ *done = LDMA_TransferDone(channelId);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ *done = sl_hal_ldma_transfer_is_done(LDMA0, channelId);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Get number of items remaining in a transfer.
+ *
+ * @note
+ * This function does not take into account that a DMA transfer with
+ * a chain of linked transfers might be ongoing. It will only check the
+ * count for the current transfer.
+ * On UDMA, it will only work on the primary channel.
+ *
+ * @param[in] channelId
+ * The channel ID of the transfer to check.
+ *
+ * @param[out] remaining
+ * A number of items remaining in the transfer.
+ *
+ * @return
+ * @ref ECODE_EMDRV_DMADRV_OK on success. On failure, an appropriate
+ * DMADRV @ref Ecode_t is returned.
+ ******************************************************************************/
+Ecode_t DMADRV_TransferRemainingCount(unsigned int channelId,
+ int *remaining)
+{
+#if defined(EMDRV_DMADRV_UDMA)
+ uint32_t remain, iflag;
+#endif
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (remaining == NULL) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ if ( chTable[channelId].allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+#if defined(EMDRV_DMADRV_UDMA)
+ CORE_ATOMIC_SECTION(
+ /* This works for the primary channel only ! */
+ remain = (dmaControlBlock[channelId].CTRL
+ & _DMA_CTRL_N_MINUS_1_MASK)
+ >> _DMA_CTRL_N_MINUS_1_SHIFT;
+ iflag = DMA->IF;
+ )
+
+ if ( (remain == 0) && (iflag & (1 << channelId)) ) {
+ *remaining = 0;
+ } else {
+ *remaining = 1 + remain;
+ }
+#elif defined(EMDRV_DMADRV_LDMA)
+ *remaining = LDMA_TransferRemainingCount(channelId);
+#elif defined(EMDRV_DMADRV_LDMA_S3)
+ *remaining = sl_hal_ldma_transfer_remaining_count(LDMA0, channelId);
+#endif
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+#if defined(EMDRV_DMADRV_LDMA)
+/***************************************************************************//**
+ * @brief
+ * An interrupt handler for LDMA.
+ ******************************************************************************/
+void LDMA_IRQHandler(void)
+{
+ bool stop;
+ ChTable_t *ch;
+ uint32_t pending, chnum, chmask;
+
+ /* Get all pending and enabled interrupts. */
+ pending = LDMA->IF;
+ pending &= LDMA->IEN;
+
+ /* Check for LDMA error. */
+ if ( pending & LDMA_IF_ERROR ) {
+ /* Loop to enable debugger to see what has happened. */
+ while (true) {
+ /* Wait forever. */
+ }
+ }
+
+ /* Iterate over all LDMA channels. */
+ for ( chnum = 0, chmask = 1;
+ chnum < EMDRV_DMADRV_DMA_CH_COUNT;
+ chnum++, chmask <<= 1 ) {
+ if ( pending & chmask ) {
+ /* Clear the interrupt flag. */
+#if defined (LDMA_HAS_SET_CLEAR)
+ LDMA->IF_CLR = chmask;
+#else
+ LDMA->IFC = chmask;
+#endif
+
+ ch = &chTable[chnum];
+ if ( ch->callback != NULL ) {
+ ch->callbackCount++;
+ stop = !ch->callback(chnum, ch->callbackCount, ch->userParam);
+
+ if ( (ch->mode == dmaModePingPong) && stop ) {
+ dmaXfer[chnum].desc[0].xfer.link = 0;
+ dmaXfer[chnum].desc[1].xfer.link = 0;
+ }
+ }
+ }
+ }
+}
+#endif /* defined( EMDRV_DMADRV_LDMA ) */
+
+#if defined(EMDRV_DMADRV_LDMA_S3)
+/***************************************************************************//**
+ * @brief
+ * Default interrupt handler for LDMA common to all interrupt channel lines.
+ *
+ * @param[in] chnum
+ * The channel ID responsible for the interrupt signal trigger.
+ ******************************************************************************/
+static void LDMA_IRQHandlerDefault(uint8_t chnum)
+{
+ bool stop;
+ ChTable_t *ch;
+ uint32_t pending;
+ uint32_t chmask;
+
+ /* Get all pending and enabled interrupts. */
+ pending = sl_hal_ldma_get_enabled_pending_interrupts(LDMA0);
+
+ /* Check for LDMA error. */
+ if ( pending & (LDMA_IF_ERROR0 << chnum) ) {
+ /* Loop to enable debugger to see what has happened. */
+ while (true) {
+ /* Wait forever. */
+ }
+ }
+
+ chmask = 1 << chnum;
+ if ( pending & chmask ) {
+ /* Clear the interrupt flag. */
+ sl_hal_ldma_clear_interrupts(LDMA0, chmask);
+
+ /* Callback called if it was provided for the given channel. */
+ ch = &chTable[chnum];
+ if ( ch->callback != NULL ) {
+ ch->callbackCount++;
+ stop = !ch->callback(chnum, ch->callbackCount, ch->userParam);
+
+ /* Continue or not a ping-pong transfer. */
+ if ( (ch->mode == dmaModePingPong) && stop ) {
+ dmaXfer[chnum].desc[0].xfer.link = 0;
+ dmaXfer[chnum].desc[1].xfer.link = 0;
+ }
+ }
+ }
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 0.
+ ******************************************************************************/
+void LDMA0_CHNL0_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(0);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 1.
+ ******************************************************************************/
+void LDMA0_CHNL1_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(1);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 2.
+ ******************************************************************************/
+void LDMA0_CHNL2_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(2);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 3.
+ ******************************************************************************/
+void LDMA0_CHNL3_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(3);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 4.
+ ******************************************************************************/
+void LDMA0_CHNL4_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(4);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 5.
+ ******************************************************************************/
+void LDMA0_CHNL5_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(5);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 6.
+ ******************************************************************************/
+void LDMA0_CHNL6_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(6);
+}
+
+/***************************************************************************//**
+ * @brief
+ * Root interrupt handler for LDMA channel 7.
+ ******************************************************************************/
+void LDMA0_CHNL7_IRQHandler(void)
+{
+ LDMA_IRQHandlerDefault(7);
+}
+
+#endif /* defined( EMDRV_DMADRV_LDMA_S3 ) */
+
+#if defined(EMDRV_DMADRV_UDMA)
+/***************************************************************************//**
+ * @brief
+ * A callback function for UDMA basic transfers.
+ ******************************************************************************/
+static void DmaBasicCallback(unsigned int channel, bool primary, void *user)
+{
+ ChTable_t *ch = &chTable[channel];
+ (void)user;
+ (void)primary;
+
+ if ( ch->callback != NULL ) {
+ ch->callbackCount++;
+ ch->callback(channel, ch->callbackCount, ch->userParam);
+ }
+}
+#endif
+
+#if defined(EMDRV_DMADRV_UDMA)
+/***************************************************************************//**
+ * @brief
+ * A callback function for UDMA ping-pong transfers.
+ ******************************************************************************/
+static void DmaPingPongCallback(unsigned int channel, bool primary, void *user)
+{
+ bool stop = true;
+ ChTable_t *ch = &chTable[channel];
+
+ (void)user;
+
+ if ( ch->callback != NULL ) {
+ ch->callbackCount++;
+ stop = !ch->callback(channel, ch->callbackCount, ch->userParam);
+ }
+
+ DMA_RefreshPingPong(channel,
+ primary,
+ false,
+ NULL,
+ NULL,
+ ch->length - 1,
+ stop);
+}
+#endif
+
+#if defined(EMDRV_DMADRV_UDMA)
+/***************************************************************************//**
+ * @brief
+ * Start a UDMA transfer.
+ ******************************************************************************/
+static Ecode_t StartTransfer(DmaMode_t mode,
+ DmaDirection_t direction,
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *buf0,
+ void *buf1,
+ void *buf2,
+ bool bufInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ ChTable_t *ch;
+ DMA_CfgChannel_TypeDef chCfg;
+ DMA_CfgDescr_TypeDef descrCfg;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (buf0 == NULL)
+ || (buf1 == NULL)
+ || (len > DMADRV_MAX_XFER_COUNT)
+ || ((mode == dmaModePingPong) && (buf2 == NULL)) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ ch = &chTable[channelId];
+ if ( ch->allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+ /* Se tup the interrupt callback routine. */
+ if ( mode == dmaModeBasic ) {
+ dmaCallBack[channelId].cbFunc = DmaBasicCallback;
+ } else {
+ dmaCallBack[channelId].cbFunc = DmaPingPongCallback;
+ }
+ dmaCallBack[channelId].userPtr = NULL;
+
+ /* Set up the channel */
+ chCfg.highPri = false; /* Can't use hi pri with peripherals. */
+
+ /* Whether the interrupt is needed. */
+ if ( (callback != NULL) || (mode == dmaModePingPong) ) {
+ chCfg.enableInt = true;
+ } else {
+ chCfg.enableInt = false;
+ }
+ chCfg.select = peripheralSignal;
+ chCfg.cb = &dmaCallBack[channelId];
+ DMA_CfgChannel(channelId, &chCfg);
+
+ /* Set up the channel descriptor. */
+ if ( direction == dmaDirectionMemToPeripheral ) {
+ if ( bufInc ) {
+ if ( size == dmadrvDataSize1 ) {
+ descrCfg.srcInc = dmaDataInc1;
+ } else if ( size == dmadrvDataSize2 ) {
+ descrCfg.srcInc = dmaDataInc2;
+ } else { /* dmadrvDataSize4 */
+ descrCfg.srcInc = dmaDataInc4;
+ }
+ } else {
+ descrCfg.srcInc = dmaDataIncNone;
+ }
+ descrCfg.dstInc = dmaDataIncNone;
+ } else {
+ if ( bufInc ) {
+ if ( size == dmadrvDataSize1 ) {
+ descrCfg.dstInc = dmaDataInc1;
+ } else if ( size == dmadrvDataSize2 ) {
+ descrCfg.dstInc = dmaDataInc2;
+ } else { /* dmadrvDataSize4 */
+ descrCfg.dstInc = dmaDataInc4;
+ }
+ } else {
+ descrCfg.dstInc = dmaDataIncNone;
+ }
+ descrCfg.srcInc = dmaDataIncNone;
+ }
+ descrCfg.size = (DMA_DataSize_TypeDef)size;
+ descrCfg.arbRate = dmaArbitrate1;
+ descrCfg.hprot = 0;
+ DMA_CfgDescr(channelId, true, &descrCfg);
+ if ( mode == dmaModePingPong ) {
+ DMA_CfgDescr(channelId, false, &descrCfg);
+ }
+
+ ch->callback = callback;
+ ch->userParam = cbUserParam;
+ ch->callbackCount = 0;
+ ch->length = len;
+
+ DMA->IFC = 1 << channelId;
+
+ /* Start the DMA cycle. */
+ if ( mode == dmaModeBasic ) {
+ DMA_ActivateBasic(channelId, true, false, buf0, buf1, len - 1);
+ } else {
+ if ( direction == dmaDirectionMemToPeripheral ) {
+ DMA_ActivatePingPong(channelId,
+ false,
+ buf0, /* dest */
+ buf1, /* src */
+ len - 1,
+ buf0, /* dest */
+ buf2, /* src */
+ len - 1);
+ } else {
+ DMA_ActivatePingPong(channelId,
+ false,
+ buf0, /* dest */
+ buf2, /* src */
+ len - 1,
+ buf1, /* dest */
+ buf2, /* src */
+ len - 1);
+ }
+ }
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+#endif /* defined( EMDRV_DMADRV_UDMA ) */
+
+#if defined(EMDRV_DMADRV_LDMA)
+/***************************************************************************//**
+ * @brief
+ * Start an LDMA transfer.
+ ******************************************************************************/
+static Ecode_t StartTransfer(DmaMode_t mode,
+ DmaDirection_t direction,
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *buf0,
+ void *buf1,
+ void *buf2,
+ bool bufInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ ChTable_t *ch;
+ LDMA_TransferCfg_t xfer;
+ LDMA_Descriptor_t *desc;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (buf0 == NULL)
+ || (buf1 == NULL)
+ || (len > DMADRV_MAX_XFER_COUNT)
+ || ((mode == dmaModePingPong) && (buf2 == NULL)) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ ch = &chTable[channelId];
+ if ( ch->allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+ xfer = xferCfgPeripheral;
+ desc = &dmaXfer[channelId].desc[0];
+
+ if ( direction == dmaDirectionMemToPeripheral ) {
+ *desc = m2p;
+ if ( !bufInc ) {
+ desc->xfer.srcInc = ldmaCtrlSrcIncNone;
+ }
+ } else {
+ *desc = p2m;
+ if ( !bufInc ) {
+ desc->xfer.dstInc = ldmaCtrlDstIncNone;
+ }
+ }
+
+ xfer.ldmaReqSel = peripheralSignal;
+ desc->xfer.xferCnt = len - 1;
+ desc->xfer.dstAddr = (uint32_t)(uint8_t *)buf0;
+ desc->xfer.srcAddr = (uint32_t)(uint8_t *)buf1;
+ desc->xfer.size = size;
+
+ if ( mode == dmaModePingPong ) {
+ desc->xfer.linkMode = ldmaLinkModeRel;
+ desc->xfer.link = 1;
+ desc->xfer.linkAddr = 4; /* Refer to the "pong" descriptor. */
+
+ /* Set the "pong" descriptor equal to the "ping" descriptor. */
+ dmaXfer[channelId].desc[1] = *desc;
+ /* Refer to the "ping" descriptor. */
+ dmaXfer[channelId].desc[1].xfer.linkAddr = -4;
+ dmaXfer[channelId].desc[1].xfer.srcAddr = (uint32_t)(uint8_t *)buf2;
+
+ if ( direction == dmaDirectionPeripheralToMem ) {
+ dmaXfer[channelId].desc[1].xfer.dstAddr = (uint32_t)(uint8_t *)buf1;
+ desc->xfer.srcAddr = (uint32_t)(uint8_t *)buf2;
+ }
+ }
+
+ /* Whether an interrupt is needed. */
+ if ( (callback == NULL) && (mode == dmaModeBasic) ) {
+ desc->xfer.doneIfs = 0;
+ }
+
+ ch->callback = callback;
+ ch->userParam = cbUserParam;
+ ch->callbackCount = 0;
+ ch->mode = mode;
+
+ LDMA_StartTransfer(channelId, &xfer, desc);
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+#endif /* defined( EMDRV_DMADRV_LDMA ) */
+
+#if defined(EMDRV_DMADRV_LDMA_S3)
+/***************************************************************************//**
+ * @brief
+ * Start an LDMA transfer.
+ ******************************************************************************/
+static Ecode_t StartTransfer(DmaMode_t mode,
+ DmaDirection_t direction,
+ unsigned int channelId,
+ DMADRV_PeripheralSignal_t
+ peripheralSignal,
+ void *buf0,
+ void *buf1,
+ void *buf2,
+ bool bufInc,
+ int len,
+ DMADRV_DataSize_t size,
+ DMADRV_Callback_t callback,
+ void *cbUserParam)
+{
+ ChTable_t *ch;
+ sl_hal_ldma_transfer_config_t xfer;
+ sl_hal_ldma_descriptor_t *desc;
+
+ if ( !initialized ) {
+ return ECODE_EMDRV_DMADRV_NOT_INITIALIZED;
+ }
+
+ if ( (channelId >= EMDRV_DMADRV_DMA_CH_COUNT)
+ || (buf0 == NULL)
+ || (buf1 == NULL)
+ || (len > DMADRV_MAX_XFER_COUNT)
+ || ((mode == dmaModePingPong) && (buf2 == NULL)) ) {
+ return ECODE_EMDRV_DMADRV_PARAM_ERROR;
+ }
+
+ ch = &chTable[channelId];
+ if ( ch->allocated == false ) {
+ return ECODE_EMDRV_DMADRV_CH_NOT_ALLOCATED;
+ }
+
+ xfer = xferCfgPeripheral;
+ desc = &dmaXfer[channelId].desc[0];
+
+ if ( direction == dmaDirectionMemToPeripheral ) {
+ *desc = m2p;
+ if ( !bufInc ) {
+ desc->xfer.src_inc = SL_HAL_LDMA_CTRL_SRC_INC_NONE;
+ }
+ } else {
+ *desc = p2m;
+ if ( !bufInc ) {
+ desc->xfer.dst_inc = SL_HAL_LDMA_CTRL_DST_INC_NONE;
+ }
+ }
+
+ xfer.request_sel = peripheralSignal;
+ desc->xfer.xfer_count = len - 1;
+ desc->xfer.dst_addr = (uint32_t)(uint8_t *)buf0;
+ desc->xfer.src_addr = (uint32_t)(uint8_t *)buf1;
+ desc->xfer.size = size;
+
+ if ( mode == dmaModePingPong ) {
+ desc->xfer.link_mode = SL_HAL_LDMA_LINK_MODE_REL;
+ desc->xfer.link = 1;
+ desc->xfer.link_addr = 4; /* Refer to the "pong" descriptor. */
+
+ /* Set the "pong" descriptor equal to the "ping" descriptor. */
+ dmaXfer[channelId].desc[1] = *desc;
+ /* Refer to the "ping" descriptor. */
+ dmaXfer[channelId].desc[1].xfer.link_addr = -4;
+ dmaXfer[channelId].desc[1].xfer.src_addr = (uint32_t)(uint8_t *)buf2;
+
+ if ( direction == dmaDirectionPeripheralToMem ) {
+ dmaXfer[channelId].desc[1].xfer.dst_addr = (uint32_t)(uint8_t *)buf1;
+ desc->xfer.src_addr = (uint32_t)(uint8_t *)buf2;
+ }
+ }
+
+ /* Whether an interrupt is needed. */
+ if ( (callback == NULL) && (mode == dmaModeBasic) ) {
+ desc->xfer.done_ifs = 0;
+ }
+
+ ch->callback = callback;
+ ch->userParam = cbUserParam;
+ ch->callbackCount = 0;
+ ch->mode = mode;
+
+ sl_hal_ldma_init_transfer(LDMA0, channelId, &xfer, desc);
+ sl_hal_ldma_start_transfer(LDMA0, channelId);
+ sl_hal_ldma_enable_interrupts(LDMA0, (0x1UL << channelId));
+
+ return ECODE_EMDRV_DMADRV_OK;
+}
+#endif /* defined( EMDRV_DMADRV_LDMA_S3 ) */
+
+/// @endcond
+
+// ******** THE REST OF THE FILE IS DOCUMENTATION ONLY !***********************
+/// @addtogroup dmadrv DMADRV - DMA Driver
+/// @brief Direct Memory Access Driver
+/// @{
+///
+/// @details
+///
+///
+/// @n @section dmadrv_intro Introduction
+///
+/// The DMADRV driver supports writing code using DMA which will work
+/// regardless of the type of the DMA controller on the underlying microcontroller.
+/// Additionally, DMA can be used in several modules that are
+/// completely unaware of each other.
+/// The driver does not preclude use of the native emlib or peripheral API of the
+/// underlying DMA controller. On the contrary, it will often result in more efficient
+/// code and is necessary for complex DMA operations. The housekeeping
+/// functions of this driver are valuable even in this use-case.
+///
+/// The dmadrv.c and dmadrv.h source files are in the
+/// emdrv/dmadrv folder.
+///
+/// @note DMA transfer completion callback functions are called from within the
+/// DMA interrupt handler. On versions of the DMA controller with one interrupt per
+/// channel, the callback function is called from its respective channel interrupt
+/// handler.
+///
+/// @n @section dmadrv_conf Configuration Options
+///
+/// Some properties of the DMADRV driver are compile-time configurable. These
+/// properties are stored in a file named dmadrv_config.h. A template for this
+/// file, containing default values, is in the emdrv/config folder. IC specific
+/// versions of dmadrv_config.h files are available in config/sx_xch directories.
+/// Currently the configuration options are as follows:
+/// @li The interrupt priority of the DMA peripheral.
+/// @li A number of DMA channels to support.
+/// @li Use the native emlib/peripheral API belonging to the underlying DMA hardware in
+/// combination with the DMADRV API.
+///
+/// Both configuration options will help reduce the driver's RAM footprint.
+///
+/// To configure DMADRV, provide a custom configuration file. This is an
+/// example dmadrv_config.h file:
+/// @code{.c}
+/// #ifndef __SILICON_LABS_DMADRV_CONFIG_H__
+/// #define __SILICON_LABS_DMADRV_CONFIG_H__
+///
+/// // DMADRV DMA interrupt priority configuration option.
+/// // Set DMA interrupt priority. Range is 0..7, 0 is the highest priority.
+/// #define EMDRV_DMADRV_DMA_IRQ_PRIORITY 4
+///
+/// // DMADRV channel count configuration option.
+/// // A number of DMA channels to support. A lower DMA channel count will reduce
+/// // RAM footprint.
+/// #define EMDRV_DMADRV_DMA_CH_COUNT 4
+///
+/// #endif
+/// @endcode
+///
+/// @n @section dmadrv_api The API
+///
+/// This section contains brief descriptions of the API functions.
+/// For more information about input and output parameters and return values,
+/// click on the hyperlinked function names. Most functions return an error
+/// code, @ref ECODE_EMDRV_DMADRV_OK is returned on success,
+/// see @ref ecode and @ref dmadrv_error_codes for other error codes.
+///
+/// The application code must include @em dmadrv.h header file.
+///
+/// @ref DMADRV_Init(), @ref DMADRV_DeInit() @n
+/// These functions initialize or deinitialize the DMADRV driver. Typically,
+/// DMADRV_Init() is called once in the startup code.
+///
+/// @ref DMADRV_AllocateChannel(), @ref DMADRV_FreeChannel() @n
+/// DMA channel reserve and release functions. It is recommended that
+/// application code check that DMADRV_AllocateChannel()
+/// returns ECODE_EMDRV_DMADRV_OK before starting a DMA
+/// transfer.
+///
+/// @ref DMADRV_MemoryPeripheral() @n
+/// Start a DMA transfer from memory to a peripheral.
+///
+/// @ref DMADRV_PeripheralMemory() @n
+/// Start a DMA transfer from a peripheral to memory.
+///
+/// @ref DMADRV_MemoryPeripheralPingPong() @n
+/// Start a DMA ping-pong transfer from memory to a peripheral.
+///
+/// @ref DMADRV_PeripheralMemoryPingPong() @n
+/// Start a DMA ping-pong transfer from a peripheral to memory.
+///
+/// @ref DMADRV_LdmaStartTransfer() @n
+/// Start a DMA transfer on an LDMA controller.
+///
+/// @ref DMADRV_PauseTransfer() @n
+/// Pause an ongoing DMA transfer.
+///
+/// @ref DMADRV_ResumeTransfer() @n
+/// Resume paused DMA transfer.
+///
+/// @ref DMADRV_StopTransfer() @n
+/// Stop an ongoing DMA transfer.
+///
+/// @ref DMADRV_TransferActive() @n
+/// Check if a transfer is ongoing.
+///
+/// @ref DMADRV_TransferCompletePending() @n
+/// Check if a transfer completion is pending.
+///
+/// @ref DMADRV_TransferDone() @n
+/// Check if a transfer has completed.
+///
+/// @ref DMADRV_TransferRemainingCount() @n
+/// Get number of items remaining in a transfer.
+///
+/// @n @section dmadrv_example Example
+/// Transfer a text string to USART1.
+/// @code{.c}
+/// #include "dmadrv.h"
+///
+/// char str[] = "Hello DMA !";
+/// unsigned int channel;
+///
+/// int main( void )
+/// {
+/// // Initialize DMA.
+/// DMADRV_Init();
+///
+/// // Request a DMA channel.
+/// DMADRV_AllocateChannel( &channel, NULL );
+///
+/// // Start the DMA transfer.
+/// DMADRV_MemoryPeripheral( channel,
+/// dmadrvPeripheralSignal_USART1_TXBL,
+/// (void*)&(USART1->TXDATA),
+/// str,
+/// true,
+/// sizeof( str ),
+/// dmadrvDataSize1,
+/// NULL,
+/// NULL );
+///
+/// return 0;
+/// }
+/// @endcode
+///
+/// @} end group dmadrv ********************************************************
diff --git a/simplicity_sdk/platform/emlib/inc/em_acmp.h b/simplicity_sdk/platform/emlib/inc/em_acmp.h
index 3079df84f..33e5cc418 100644
--- a/simplicity_sdk/platform/emlib/inc/em_acmp.h
+++ b/simplicity_sdk/platform/emlib/inc/em_acmp.h
@@ -1136,6 +1136,28 @@ __STATIC_INLINE ACMP_Channel_TypeDef ACMP_PortPinToInput(GPIO_Port_TypeDef port,
}
#endif
+/***************************************************************************//**
+ * @brief
+ * Get state of ACMP output value
+ *
+ * @param[in] acmp
+ * A pointer to the ACMP peripheral register block.
+ *
+ * @return
+ * State of ACMP output value
+ ******************************************************************************/
+__STATIC_INLINE bool ACMP_OutputGet(ACMP_TypeDef *acmp)
+{
+ /* Waiting for ACMP is ready*/
+#if defined(ACMP_STATUS_ACMPRDY)
+ while (!(acmp->STATUS & ACMP_STATUS_ACMPRDY)) ;
+#elif defined(ACMP_STATUS_ACMPACT)
+ while (!(acmp->STATUS & ACMP_STATUS_ACMPACT)) ;
+#endif
+
+ return (acmp->STATUS & ACMP_STATUS_ACMPOUT);
+}
+
/** @} (end addtogroup acmp) */
#ifdef __cplusplus
diff --git a/simplicity_sdk/platform/emlib/inc/em_chip.h b/simplicity_sdk/platform/emlib/inc/em_chip.h
index 1de476ae6..b19b7448b 100644
--- a/simplicity_sdk/platform/emlib/inc/em_chip.h
+++ b/simplicity_sdk/platform/emlib/inc/em_chip.h
@@ -42,6 +42,10 @@
#include "em_gpio.h"
#endif
+#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_240)
+#include "em_cmu.h"
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -411,6 +415,23 @@ __STATIC_INLINE void CHIP_Init(void)
}
}
#endif
+
+#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_240)
+
+ // Enable ICache out of reset.
+ CMU->CLKEN1_SET = _CMU_CLKEN1_ICACHE0_MASK;
+ ICACHE0->CTRL_CLR = _ICACHE_CTRL_CACHEDIS_MASK;
+ CMU->CLKEN1_CLR = _CMU_CLKEN1_ICACHE0_MASK;
+
+ CMU->CLKEN0_SET = _CMU_CLKEN0_HFRCO0_MASK;
+
+ if (((HFRCO0->CAL & _HFRCO_CAL_TUNING_MASK) >> _HFRCO_CAL_TUNING_SHIFT) == _HFRCO_CAL_TUNING_MASK) {
+ CMU_HFRCODPLLBandSet(cmuHFRCODPLLFreq_19M0Hz);
+ }
+
+ CMU->CLKEN0_CLR = _CMU_CLKEN0_HFRCO0_MASK;
+
+#endif
}
/**************************************************************************//**
diff --git a/simplicity_sdk/platform/emlib/inc/em_dbg.h b/simplicity_sdk/platform/emlib/inc/em_dbg.h
index f69acefa3..ae8c55c2d 100644
--- a/simplicity_sdk/platform/emlib/inc/em_dbg.h
+++ b/simplicity_sdk/platform/emlib/inc/em_dbg.h
@@ -88,10 +88,6 @@ __STATIC_INLINE bool DBG_Connected(void)
void DBG_SWOEnable(unsigned int location);
#endif
-#if defined(LOCKBITS_BASE) && !defined(_EFM32_GECKO_FAMILY)
-void DBG_DisableDebugAccess(DBG_LockMode_TypeDef lockMode);
-#endif
-
#if defined (EMU_CTRL_EM2DBGEN)
/***************************************************************************//**
* @brief
diff --git a/simplicity_sdk/platform/emlib/inc/em_emu.h b/simplicity_sdk/platform/emlib/inc/em_emu.h
index 6ff497e23..b205c0c10 100644
--- a/simplicity_sdk/platform/emlib/inc/em_emu.h
+++ b/simplicity_sdk/platform/emlib/inc/em_emu.h
@@ -226,6 +226,28 @@ typedef enum {
} EMU_EM4PinRetention_TypeDef;
#endif
+#if defined(_EMU_CTRL_HDREGSTOPGEAR_MASK)
+/** HDREG Stop Gear Max Current Type. */
+typedef enum {
+ /** HDREG current limit is 4mA. */
+ emuHdregStopGearILmt4mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_4MA,
+ /** HDREG current limit is 8mA. */
+ emuHdregStopGearILmt8mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_8MA,
+ /** HDREG current limit is 12mA. */
+ emuHdregStopGearILmt12mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_12MA,
+ /** HDREG current limit is 16mA. */
+ emuHdregStopGearILmt16mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_16MA,
+ /** HDREG current limit is 24mA. */
+ emuHdregStopGearILmt24mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_24MA,
+ /** HDREG current limit is 48mA. */
+ emuHdregStopGearILmt48mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_48MA,
+ /** HDREG current limit is 64mA. */
+ emuHdregStopGearILmt64mA = _EMU_CTRL_HDREGSTOPGEAR_ILMT_64MA,
+ /** HDREG current limit is 64mA. */
+ emuHdregStopGearILmtMax = _EMU_CTRL_HDREGSTOPGEAR_ILMT_MAX,
+} EMU_HdregStopGearILmt_TypeDef;
+#endif
+
/** Power configurations. DCDC-to-DVDD is currently the only supported mode. */
typedef enum {
/** DCDC is connected to DVDD. */
@@ -504,6 +526,20 @@ typedef enum {
typedef enum {
emuDcdcBoostEM23PeakCurrent_Load10mA = _DCDC_BSTEM23CTRL_IPKVAL_Load10mA, /**< Load 10mA */
} EMU_DcdcBoostEM23PeakCurrent_TypeDef;
+
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+/** DCDC Boost output voltage */
+typedef enum {
+ emuDcdcBoostOutputVoltage_1v8 = _DCDC_CTRL_DVDDBSTPRG_BOOST_1V8, /**< Output voltage is 1.8V. */
+ emuDcdcBoostOutputVoltage_1v9 = _DCDC_CTRL_DVDDBSTPRG_BOOST_1V9, /**< Output voltage is 1.9V. */
+ emuDcdcBoostOutputVoltage_2v0 = _DCDC_CTRL_DVDDBSTPRG_BOOST_2V, /**< Output voltage is 2.0V. */
+ emuDcdcBoostOutputVoltage_2v1 = _DCDC_CTRL_DVDDBSTPRG_BOOST_2V1, /**< Output voltage is 2.1V. */
+ emuDcdcBoostOutputVoltage_2v2 = _DCDC_CTRL_DVDDBSTPRG_BOOST_2V2, /**< Output voltage is 2.2V. */
+ emuDcdcBoostOutputVoltage_2v3 = _DCDC_CTRL_DVDDBSTPRG_BOOST_2V3, /**< Output voltage is 2.3V. */
+ emuDcdcBoostOutputVoltage_2v4 = _DCDC_CTRL_DVDDBSTPRG_BOOST_2V4, /**< Output voltage is 2.4V. */
+} EMU_DcdcBoostOutputVoltage_TypeDef;
+#endif
+
#endif /* EMU_SERIES2_DCDC_BOOST_PRESENT) */
#if defined(EMU_STATUS_VMONRDY)
@@ -713,15 +749,25 @@ typedef enum {
is always enabled. */
typedef struct {
bool vScaleEM01LowPowerVoltageEnable; /**< EM0/1 low power voltage status. */
+#if defined(_EMU_CTRL_HDREGSTOPGEAR_MASK)
+ EMU_HdregStopGearILmt_TypeDef current; /**< limit HDREG max current capability. */
+#endif
} EMU_EM01Init_TypeDef;
/** Default initialization of EM0 and 1 configuration. */
-#define EMU_EM01INIT_DEFAULT \
- { \
- false /* Do not scale down in EM0/1.*/ \
+#if defined(_EMU_CTRL_HDREGSTOPGEAR_MASK)
+#define EMU_EM01INIT_DEFAULT \
+ { \
+ false, /* Do not scale down in EM0/1.*/ \
+ emuHdregStopGearILmt64mA /* HDREG current limit is 64mA. */ \
+ }
+#else
+#define EMU_EM01INIT_DEFAULT \
+ { \
+ false /* Do not scale down in EM0/1.*/ \
}
#endif
-
+#endif
/** EM2 and 3 initialization structure. */
typedef struct {
bool em23VregFullEn; /**< Enable full VREG drive strength in EM2/3. */
@@ -743,7 +789,6 @@ typedef struct {
false, /* Reduced voltage regulator drive strength in EM2/3.*/ \
}
#endif
-
#if defined(_EMU_EM4CONF_MASK) || defined(_EMU_EM4CTRL_MASK)
/** EM4 initialization structure. */
typedef struct {
@@ -886,18 +931,34 @@ typedef struct {
EMU_DcdcBoostDriveSpeed_TypeDef driveSpeedEM23; /**< DCDC drive speed in EM2/3. */
EMU_DcdcBoostEM01PeakCurrent_TypeDef peakCurrentEM01; /**< EM0/1 peak current setting. */
EMU_DcdcBoostEM23PeakCurrent_TypeDef peakCurrentEM23; /**< EM2/3 peak current setting. */
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+ EMU_DcdcBoostOutputVoltage_TypeDef outputVoltage; /**< DCDC Boost output voltage. */
+#endif
} EMU_DCDCBoostInit_TypeDef;
/** Default DCDC Boost initialization. */
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+#define EMU_DCDCBOOSTINIT_DEFAULT \
+ { \
+ emuDcdcBoostTonMaxTimeout_1P19us, /**< Ton max is 1.19us. */ \
+ true, /**< disable DCDC boost mode with BOOST_EN=0 */ \
+ emuDcdcBoostDriveSpeed_Default, /**< Default efficiency in EM0/1. */ \
+ emuDcdcBoostDriveSpeed_Default, /**< Default efficiency in EM2/3. */ \
+ emuDcdcBoostEM01PeakCurrent_Load23mA, /**< Default peak current in EM0/1. */ \
+ emuDcdcBoostEM23PeakCurrent_Load10mA, /**< Default peak current in EM2/3. */ \
+ emuDcdcBoostOutputVoltage_1v8 /**< DCDC Boost output voltage. */ \
+ }
+#else
#define EMU_DCDCBOOSTINIT_DEFAULT \
{ \
emuDcdcBoostTonMaxTimeout_1P19us, /**< Ton max is 1.19us. */ \
true, /**< disable DCDC boost mode with BOOST_EN=0 */ \
emuDcdcBoostDriveSpeed_Default, /**< Default efficiency in EM0/1. */ \
emuDcdcBoostDriveSpeed_Default, /**< Default efficiency in EM2/3. */ \
- emuDcdcBoostEM01PeakCurrent_Load25mA, /**< Default peak current in EM0/1. */ \
+ emuDcdcBoostEM01PeakCurrent_Load23mA, /**< Default peak current in EM0/1. */ \
emuDcdcBoostEM23PeakCurrent_Load10mA /**< Default peak current in EM2/3. */ \
}
+#endif
#endif /* EMU_SERIES2_DCDC_BOOST_PRESENT */
#if defined(EMU_SERIES2_DCDC_BUCK_PRESENT)
@@ -1192,6 +1253,9 @@ void EMU_DCDCUpdatedHook(void);
bool EMU_DCDCBoostInit(const EMU_DCDCBoostInit_TypeDef *dcdcBoostInit);
void EMU_EM01BoostPeakCurrentSet(const EMU_DcdcBoostEM01PeakCurrent_TypeDef boostPeakCurrentEM01);
void EMU_BoostExternalShutdownEnable(bool enable);
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+void EMU_DCDCBoostOutputVoltageSet(const EMU_DcdcBoostOutputVoltage_TypeDef boostOutputVoltage);
+#endif
#endif
#if defined(EMU_SERIES1_DCDC_BUCK_PRESENT) \
@@ -1241,7 +1305,12 @@ void EMU_EFPDriveDecoupleSet(bool enable);
#if defined(EMU_CTRL_EFPDRVDVDD)
void EMU_EFPDriveDvddSet(bool enable);
#endif
-
+#if defined(_EMU_CTRL_HDREGEM2EXITCLIM_MASK)
+void EMU_HDRegEM2ExitCurrentLimitEnable(bool enable);
+#endif
+#if defined(_EMU_CTRL_HDREGSTOPGEAR_MASK)
+void EMU_HDRegStopGearSet(EMU_HdregStopGearILmt_TypeDef current);
+#endif
#if defined(_DCDC_CTRL_MASK)
/***************************************************************************//**
* @brief
diff --git a/simplicity_sdk/platform/emlib/inc/em_gpio.h b/simplicity_sdk/platform/emlib/inc/em_gpio.h
index db31760a2..9bca763b7 100644
--- a/simplicity_sdk/platform/emlib/inc/em_gpio.h
+++ b/simplicity_sdk/platform/emlib/inc/em_gpio.h
@@ -40,6 +40,10 @@
#include "sl_common.h"
#include "sl_enum.h"
+#if defined(SL_CATALOG_GPIO_PRESENT)
+#include "sl_device_gpio.h"
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -48,6 +52,50 @@ extern "C" {
******************************* DEFINES ***********************************
******************************************************************************/
+#ifdef gpioPortA
+#undef gpioPortA
+#endif
+
+#ifdef gpioPortB
+#undef gpioPortB
+#endif
+
+#ifdef gpioPortC
+#undef gpioPortC
+#endif
+
+#ifdef gpioPortD
+#undef gpioPortD
+#endif
+
+#ifdef gpioPortE
+#undef gpioPortE
+#endif
+
+#ifdef gpioPortF
+#undef gpioPortF
+#endif
+
+#ifdef gpioPortG
+#undef gpioPortG
+#endif
+
+#ifdef gpioPortH
+#undef gpioPortH
+#endif
+
+#ifdef gpioPortI
+#undef gpioPortI
+#endif
+
+#ifdef gpioPortJ
+#undef gpioPortJ
+#endif
+
+#ifdef gpioPortK
+#undef gpioPortK
+#endif
+
#if defined(_SILICON_LABS_32B_SERIES_0) \
&& defined(_EFM32_TINY_FAMILY) || defined(_EFM32_ZERO_FAMILY)
@@ -514,6 +562,43 @@ SL_ENUM(GPIO_Port_TypeDef) {
#endif
};
+/** Mapping between SL_GPIO_PORT_ enums and gpioPort values. */
+#if !defined(SL_CATALOG_GPIO_PRESENT)
+#if (_GPIO_PORT_A_PIN_COUNT > 0)
+#define SL_GPIO_PORT_A gpioPortA
+#endif
+#if (_GPIO_PORT_B_PIN_COUNT > 0)
+#define SL_GPIO_PORT_B gpioPortB
+#endif
+#if (_GPIO_PORT_C_PIN_COUNT > 0)
+#define SL_GPIO_PORT_C gpioPortC
+#endif
+#if (_GPIO_PORT_D_PIN_COUNT > 0)
+#define SL_GPIO_PORT_D gpioPortD
+#endif
+#if (_GPIO_PORT_E_PIN_COUNT > 0)
+#define SL_GPIO_PORT_E gpioPortE
+#endif
+#if (_GPIO_PORT_F_PIN_COUNT > 0)
+#define SL_GPIO_PORT_F gpioPortF
+#endif
+#if (_GPIO_PORT_G_PIN_COUNT > 0)
+#define SL_GPIO_PORT_G gpioPortG
+#endif
+#if (_GPIO_PORT_H_PIN_COUNT > 0)
+#define SL_GPIO_PORT_H gpioPortH
+#endif
+#if (_GPIO_PORT_I_PIN_COUNT > 0)
+#define SL_GPIO_PORT_I gpioPortI
+#endif
+#if (_GPIO_PORT_J_PIN_COUNT > 0)
+#define SL_GPIO_PORT_J gpioPortJ
+#endif
+#if (_GPIO_PORT_K_PIN_COUNT > 0)
+#define SL_GPIO_PORT_K gpioPortK
+#endif
+#endif // !defined(SL_CATALOG_GPIO_PRESENT)
+
#if defined(_GPIO_P_CTRL_DRIVEMODE_MASK)
/** GPIO drive mode. */
SL_ENUM_GENERIC(GPIO_DriveMode_TypeDef, uint32_t) {
diff --git a/simplicity_sdk/platform/emlib/inc/em_msc.h b/simplicity_sdk/platform/emlib/inc/em_msc.h
index d7fe03089..9b097bdff 100644
--- a/simplicity_sdk/platform/emlib/inc/em_msc.h
+++ b/simplicity_sdk/platform/emlib/inc/em_msc.h
@@ -171,8 +171,15 @@ typedef enum {
mscDmemMasterLDMA = _SYSCFG_DMEM0PORTMAPSEL_LDMAPORTSEL_SHIFT,
mscDmemMasterSRWAES = _SYSCFG_DMEM0PORTMAPSEL_SRWAESPORTSEL_SHIFT,
mscDmemMasterAHBSRW = _SYSCFG_DMEM0PORTMAPSEL_AHBSRWPORTSEL_SHIFT,
+#if defined(_SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_MASK)
+ mscDmemMasterIFADCDEBUG = _SYSCFG_DMEM0PORTMAPSEL_IFADCDEBUGPORTSEL_SHIFT,
+#endif
+#if defined(_SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_MASK)
mscDmemMasterSRWECA0 = _SYSCFG_DMEM0PORTMAPSEL_SRWECA0PORTSEL_SHIFT,
+#endif
+#if defined(_SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_MASK)
mscDmemMasterSRWECA1 = _SYSCFG_DMEM0PORTMAPSEL_SRWECA1PORTSEL_SHIFT,
+#endif
#if defined(_SYSCFG_DMEM0PORTMAPSEL_MVPAHBDATA0PORTSEL_MASK)
mscDmemMasterMVPAHBDATA0 = _SYSCFG_DMEM0PORTMAPSEL_MVPAHBDATA0PORTSEL_SHIFT,
#endif
diff --git a/simplicity_sdk/platform/emlib/inc/em_se.h b/simplicity_sdk/platform/emlib/inc/em_se.h
index 81e02da45..d7bff9c73 100644
--- a/simplicity_sdk/platform/emlib/inc/em_se.h
+++ b/simplicity_sdk/platform/emlib/inc/em_se.h
@@ -30,6 +30,10 @@
#ifndef EM_SE_H
#define EM_SE_H
+#ifndef SL_SUPPRESS_DEPRECATION_WARNINGS_SDK_2024_6
+#warning "This file is deprecated as of SiSDK 2024.6. The content was moved to sli_se_manager_mailbox.h."
+#endif
+
#if defined(__linux__)
#define SLI_EM_SE_HOST
diff --git a/simplicity_sdk/platform/emlib/inc/em_smu.h b/simplicity_sdk/platform/emlib/inc/em_smu.h
index 7fa121ae2..c36cf9826 100755
--- a/simplicity_sdk/platform/emlib/inc/em_smu.h
+++ b/simplicity_sdk/platform/emlib/inc/em_smu.h
@@ -1383,7 +1383,7 @@ typedef struct {
bool privilegedMVP : 1; /**< Privileged access enabler for MVP */
bool privilegedAHBRADIO : 1; /**< Privileged access enabler for AHBRADIO */
#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
- bool privilegedSCRATCHPAD : 1; /**< Privileged access enabler for SCRATCHPAD */
+ bool privilegedReserved0 : 1; /**< Reserved privileged access enabler */
bool privilegedEMU : 1; /**< Privileged access enabler for EMU */
bool privilegedCMU : 1; /**< Privileged access enabler for CMU */
bool privilegedHFXO0 : 1; /**< Privileged access enabler for HFXO0 */
@@ -1414,26 +1414,24 @@ typedef struct {
bool privilegedBURAM : 1; /**< Privileged access enabler for BURAM */
bool privilegedIFADCDEBUG : 1; /**< Privileged access enabler for IFADCDEBUG */
bool privilegedGPCRC : 1; /**< Privileged access enabler for GPCRC */
- bool privilegedDCI : 1; /**< Privileged access enabler for DCI */
-
- bool privilegedReserved0 : 1; /**< Reserved privileged access enabler */
bool privilegedDCDC : 1; /**< Privileged access enabler for DCDC */
bool privilegedPDM : 1; /**< Privileged access enabler for PDM */
bool privilegedRFSENSE : 1; /**< Privileged access enabler for RFSENSE */
- bool privilegedSEPUF : 1; /**< Privileged access enabler for SEPUF */
bool privilegedETAMPDET : 1; /**< Privileged access enabler for ETAMPDET */
+ bool privilegedDMEM : 1; /**< Privileged access enabler for DMEM */
+ bool privilegedEUSART1 : 1; /**< Privileged access enabler for EUSART1 */
bool privilegedRADIOAES : 1; /**< Privileged access enabler for RADIOAES */
bool privilegedSMU : 1; /**< Privileged access enabler for SMU */
bool privilegedSMUCFGNS : 1; /**< Privileged access enabler for SMUCFGNS */
bool privilegedRTCC : 1; /**< Privileged access enabler for RTCC */
+ bool privilegedWDOG0 : 1; /**< Privileged access enabler for WDOG0 */
bool privilegedLETIMER0 : 1; /**< Privileged access enabler for LETIMER0 */
bool privilegedIADC0 : 1; /**< Privileged access enabler for IADC0 */
bool privilegedACMP0 : 1; /**< Privileged access enabler for ACMP0 */
bool privilegedI2C0 : 1; /**< Privileged access enabler for I2C0 */
- bool privilegedWDOG0 : 1; /**< Privileged access enabler for WDOG0 */
bool privilegedAMUXCP0 : 1; /**< Privileged access enabler for AMUXCP0 */
bool privilegedEUSART0 : 1; /**< Privileged access enabler for EUSART0 */
- bool privilegedCRYPTOACC : 1; /**< Privileged access enabler for CRYPTOACC */
+ bool privilegedSEMAILBOX : 1; /**< Privileged access enabler for SEMAILBOX */
bool privilegedAHBRADIO : 1; /**< Privileged access enabler for AHBRADIO */
#else
#error "No peripherals defined for SMU for this device configuration"
diff --git a/simplicity_sdk/platform/emlib/inc/sli_em_cmu.h b/simplicity_sdk/platform/emlib/inc/sli_em_cmu.h
index f683662ba..09053842e 100644
--- a/simplicity_sdk/platform/emlib/inc/sli_em_cmu.h
+++ b/simplicity_sdk/platform/emlib/inc/sli_em_cmu.h
@@ -342,10 +342,10 @@ void sli_em_cmu_SYSTICEXTCLKENClear(void);
#define CMU_SYSTICK_SELECT_LFRCO CMU_SYSTICK_SELECT_EM23GRPACLK
#define CMU_SYSTICK_SELECT_ULFRCO CMU_SYSTICK_SELECT_EM23GRPACLK
-#define CMU_SYSTICK_SELECT_HCLK \
- do { \
- sli_em_cmu_SYSTICEXTCLKENClear(); \
- SysTick->CTRL = (SysTick->CTRL | ~SysTick_CTRL_CLKSOURCE_Msk); \
+#define CMU_SYSTICK_SELECT_HCLK \
+ do { \
+ sli_em_cmu_SYSTICEXTCLKENClear(); \
+ SysTick->CTRL = (SysTick->CTRL | SysTick_CTRL_CLKSOURCE_Msk); \
} while (0)
#define CMU_EM23GRPACLK_SELECT_LFRCO \
@@ -854,12 +854,12 @@ void sli_em_cmu_SYSTICEXTCLKENClear(void);
#endif /* EUSART_PRESENT && EUSART_COUNT > 4 */
#endif /* CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLLRT */
+#if defined(_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23)
#define CMU_EM01GRPCCLK_SELECT_HFRCOEM23 \
do { \
CMU->EM01GRPCCLKCTRL = (CMU->EM01GRPCCLKCTRL & ~_CMU_EM01GRPCCLKCTRL_CLKSEL_MASK) \
| _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23; \
} while (0)
-
#if defined(EUSART_PRESENT) && EUSART_COUNT > 1
#define CMU_EUSART1_SELECT_HFRCOEM23 CMU_EM01GRPCCLK_SELECT_HFRCOEM23
#endif /* EUSART_PRESENT && EUSART_COUNT > 1 */
@@ -872,6 +872,7 @@ void sli_em_cmu_SYSTICEXTCLKENClear(void);
#if defined(EUSART_PRESENT) && EUSART_COUNT > 4
#define CMU_EUSART4_SELECT_HFRCOEM23 CMU_EM01GRPCCLK_SELECT_HFRCOEM23
#endif /* EUSART_PRESENT && EUSART_COUNT > 4 */
+#endif
#define CMU_EM01GRPCCLK_SELECT_FSRCO \
do { \
diff --git a/simplicity_sdk/platform/emlib/src/em_cmu.c b/simplicity_sdk/platform/emlib/src/em_cmu.c
index 19039d951..dd704b7f8 100644
--- a/simplicity_sdk/platform/emlib/src/em_cmu.c
+++ b/simplicity_sdk/platform/emlib/src/em_cmu.c
@@ -193,6 +193,8 @@ static int8_t ctuneDelta = 0;
#endif
#endif
+static uint8_t pclkDiv = 0;
+
/*******************************************************************************
************************** LOCAL PROTOTYPES *******************************
******************************************************************************/
@@ -809,7 +811,7 @@ void CMU_ClockDivSet(CMU_Clock_TypeDef clock, CMU_ClkDiv_TypeDef div)
* @li true - enable specified clock.
* @li false - disable specified clock.
******************************************************************************/
-void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable)
+SL_WEAK void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable)
{
volatile uint32_t *reg = NULL;
uint32_t bit;
@@ -1001,6 +1003,12 @@ uint32_t CMU_ClockFreqGet(CMU_Clock_TypeDef clock)
#endif
#endif
case cmuClock_I2C1:
+#if I2C_COUNT > 2
+ case cmuClock_I2C2:
+#endif
+#if I2C_COUNT > 3
+ case cmuClock_I2C3:
+#endif
case cmuClock_PRS:
case cmuClock_GPIO:
case cmuClock_GPCRC:
@@ -1172,6 +1180,10 @@ uint32_t CMU_ClockFreqGet(CMU_Clock_TypeDef clock)
break;
#endif
+ case cmuClock_DPLLREFCLK:
+ dpllRefClkGet(&ret, NULL);
+ break;
+
default:
EFM_ASSERT(false);
break;
@@ -1423,6 +1435,9 @@ void sli_em_cmu_SYSCLKInitPreClockSelect(void)
EMU_VScaleEM01(emuVScaleEM01_HighPerformance, true);
#endif
+ // Save the previous PCLK divisor
+ pclkDiv = CMU_ClockDivGet(cmuClock_PCLK);
+
// Set max wait-states and PCLK divisor while changing core clock.
waitStateMax();
pclkDivMax();
@@ -1454,6 +1469,9 @@ void sli_em_cmu_SYSCLKInitPostClockSelect(bool optimize_divider)
if (optimize_divider) {
// Set optimal PCLK divisor
pclkDivOptimize();
+ } else {
+ // Restore previous PCLK divisor
+ CMU_ClockDivSet(cmuClock_PCLK, pclkDiv);
}
#if (defined(CMU_SYSCLKCTRL_RHCLKPRESC) \
&& (_SILICON_LABS_EFR32_RADIO_TYPE != _SILICON_LABS_EFR32_RADIO_NONE))
@@ -2147,10 +2165,11 @@ void CMU_ClockSelectSet(CMU_Clock_TypeDef clock, CMU_Select_TypeDef ref)
tmp = CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCODPLLRT;
break;
#endif
+#if defined(_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23)
case cmuSelect_HFRCOEM23:
tmp = _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23;
break;
-
+#endif
case cmuSelect_FSRCO:
tmp = _CMU_EM01GRPCCLKCTRL_CLKSEL_FSRCO;
break;
@@ -3307,7 +3326,7 @@ void CMU_HFXOCrystalSharingFollowerInit(CMU_PRS_Status_Output_Select_TypeDef prs
* registers. Sufficient wait time for settling, on the order of
* TIMEOUTSTEADY, should pass before new frequency measurement is taken.
*****************************************************************************/
-sl_status_t CMU_HFXOCTuneSet(uint32_t ctune)
+SL_WEAK sl_status_t CMU_HFXOCTuneSet(uint32_t ctune)
{
uint32_t hfxoCtrlBkup = HFXO0->CTRL;
@@ -3372,7 +3391,7 @@ sl_status_t CMU_HFXOCTuneSet(uint32_t ctune)
different and can be found using the delta (difference between XI and XO).
See @ref CMU_HFXOCTuneCurrentDeltaGet to retrieve the delta value.
*****************************************************************************/
-uint32_t CMU_HFXOCTuneGet(void)
+SL_WEAK uint32_t CMU_HFXOCTuneGet(void)
{
uint32_t ctune = 0;
uint32_t hfxoCtrlBkup = HFXO0->CTRL;
@@ -3474,7 +3493,7 @@ int32_t CMU_HFXOCTuneCurrentDeltaGet(void)
* to only use this function when HFXO isn't being used. It's also a blocking
* function that can be time consuming.
*****************************************************************************/
-void CMU_HFXOCoreBiasCurrentCalibrate(void)
+SL_WEAK void CMU_HFXOCoreBiasCurrentCalibrate(void)
{
uint32_t hfxoCtrlBkup = HFXO0->CTRL;
@@ -4201,10 +4220,12 @@ static void em01GrpcClkGet(uint32_t *freq, CMU_Select_TypeDef *sel)
break;
#endif
+#if defined(_CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23)
case _CMU_EM01GRPCCLKCTRL_CLKSEL_HFRCOEM23:
f = SystemHFRCOEM23ClockGet();
s = cmuSelect_HFRCOEM23;
break;
+#endif
case CMU_EM01GRPCCLKCTRL_CLKSEL_HFXO:
f = SystemHFXOClockGet();
diff --git a/simplicity_sdk/platform/emlib/src/em_dbg.c b/simplicity_sdk/platform/emlib/src/em_dbg.c
index 7cd73a05e..99ab543b3 100644
--- a/simplicity_sdk/platform/emlib/src/em_dbg.c
+++ b/simplicity_sdk/platform/emlib/src/em_dbg.c
@@ -128,72 +128,5 @@ void DBG_SWOEnable(unsigned int location)
}
#endif
-#if defined(LOCKBITS_BASE) && !defined(_EFM32_GECKO_FAMILY)
-
-/***************************************************************************//**
- * @brief
- * Disable debug access.
- *
- * @cond DOXYDOC_S2_DEVICE
- * @details
- * SE interface is used to disable debug access. By choosing
- * @ref dbgLockModePermanent, debug access is blocked permanently. SE disables
- * the device erase command and thereafter disables debug access.
- * @endcond
- * @cond DOXYDOC_P2_DEVICE
- * @
- * @details
- * Debug access is blocked using debug lock word. On series 1 devices,
- * if @ref dbgLockModePermanent is chosen, debug access is blocked
- * permanently using AAP lock word.
- * @endcond
- * @param[in] lockMode
- * Debug lock mode to be used.
- *
- * @cond !DOXYDOC_P1_DEVICE
- * @warning
- * If @ref dbgLockModePermanent is chosen as the lock mode, the debug port
- * will be closed permanently and is irreversible.
- * @endcond
- ******************************************************************************/
-void DBG_DisableDebugAccess(DBG_LockMode_TypeDef lockMode)
-{
-#if defined(_SILICON_LABS_32B_SERIES_0)
- if (lockMode != dbgLockModeAllowErase) {
- EFM_ASSERT(0);
- }
-#else
- if ((lockMode != dbgLockModeAllowErase) && (lockMode != dbgLockModePermanent)) {
- EFM_ASSERT(0);
- }
-#endif
-
- bool wasLocked;
- uint32_t lockWord = 0x0;
- wasLocked = ((MSC->LOCK & _MSC_LOCK_MASK) != 0U);
- MSC_Init();
-
- uint32_t *dlw = (uint32_t*)(LOCKBITS_BASE + (127 * 4));
-
- if (*dlw == 0xFFFFFFFF) {
- MSC_WriteWord(dlw, &lockWord, sizeof(lockWord));
- }
-#if !defined(_SILICON_LABS_32B_SERIES_0)
- uint32_t *alw = (uint32_t*)(LOCKBITS_BASE + (124 * 4));
-
- if (lockMode == dbgLockModePermanent) {
- if (*alw == 0xFFFFFFFF) {
- MSC_WriteWord(alw, &lockWord, sizeof(lockWord));
- }
- }
-#endif
-
- if (wasLocked) {
- MSC_Deinit();
- }
-}
-
-#endif /* defined(LOCKBITS_BASE) && !defined(_EFM32_GECKO_FAMILY) */
-
/** @} (end addtogroup dbg) */
#endif /* defined( CoreDebug_DHCSR_C_DEBUGEN_Msk ) */
diff --git a/simplicity_sdk/platform/emlib/src/em_emu.c b/simplicity_sdk/platform/emlib/src/em_emu.c
index 515109ed5..b453df8dc 100644
--- a/simplicity_sdk/platform/emlib/src/em_emu.c
+++ b/simplicity_sdk/platform/emlib/src/em_emu.c
@@ -224,7 +224,8 @@ static errataFixDcdcHs_TypeDef errataFixDcdcHsState = errataFixDcdcHsInit;
#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_6)
#define RAM0_BLOCKS 32U
#define RAM0_BLOCK_SIZE 0x4000U // 16 kB blocks
-#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_8)
+#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_8) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
#define RAM0_BLOCKS 16U
#define RAM0_BLOCK_SIZE 0x4000U // 16 kB blocks
#endif
@@ -696,9 +697,8 @@ static void vScaleAfterWakeup(void)
}
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
typedef enum {
dpllState_Save, /* Save DPLL state. */
dpllState_Restore, /* Restore DPLL. */
@@ -974,9 +974,8 @@ void EMU_EnterEM2(bool restore)
bool errataFixEmuE110En;
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
if (restore) {
dpllState(dpllState_Save);
}
@@ -1087,9 +1086,8 @@ void EMU_EnterEM2(bool restore)
#endif
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
if (restore) {
dpllState(dpllState_Restore);
}
@@ -1177,9 +1175,8 @@ void EMU_EnterEM3(bool restore)
bool errataFixEmuE110En;
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
if (restore) {
dpllState(dpllState_Save);
}
@@ -1301,9 +1298,8 @@ void EMU_EnterEM3(bool restore)
#endif
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
if (restore) {
dpllState(dpllState_Restore);
}
@@ -1332,9 +1328,8 @@ void EMU_Save(void)
#if (_SILICON_LABS_32B_SERIES < 2)
emState(emState_Save);
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
dpllState(dpllState_Save);
#endif
}
@@ -1353,9 +1348,8 @@ void EMU_Restore(void)
#if (_SILICON_LABS_32B_SERIES < 2)
emState(emState_Restore);
#endif
-#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
dpllState(dpllState_Restore);
#endif
}
@@ -1460,9 +1454,17 @@ SL_WEAK void EMU_EFPEM4PresleepHook(void)
*
* @note
* Only a power on reset or external reset pin can wake the device from EM4.
+ * Device which is configured in Boost DC-DC mode can not enter EM4.
******************************************************************************/
void EMU_EnterEM4(void)
{
+ /* Device with Boost DC-DC cannot enter EM4 because Boost DC-DC module does not
+ * have BYPASS switch so DC-DC converter can not be set to bypass mode. */
+#if (defined(_SILICON_LABS_DCDC_FEATURE) \
+ && (_SILICON_LABS_DCDC_FEATURE == _SILICON_LABS_DCDC_FEATURE_DCDC_BOOST))
+ EFM_ASSERT(false);
+#endif
+
#if defined(SL_CATALOG_METRIC_EM4_WAKE_PRESENT)
sli_metric_em4_wake_init();
#endif
@@ -1586,6 +1588,7 @@ void EMU_EnterEM4(void)
#endif
#if defined(_DCDC_IF_EM4ERR_MASK)
+ /* If EM4ERR flag in DCDC->IF is set, mean that device cannot enter EM4, device will be suspended in this assertion */
EFM_ASSERT((DCDC->IF & _DCDC_IF_EM4ERR_MASK) == 0);
CORE_EXIT_CRITICAL();
#endif
@@ -1685,8 +1688,9 @@ void EMU_MemPwrDown(uint32_t blocks)
* function can be used in a generic way to power down a RAM memory region
* which is known to be unused.
*
- * This function will only power down blocks which are completely enclosed
- * by the memory range given by [start, end).
+ * This function will power down blocks from start to the end of RAM. For xg27,
+ * it will shut off blocks which are completely enclosed by the memory range
+ * given by [start, end].
*
* This is an example to power down all RAM blocks except the first
* one. The first RAM block is special in that it cannot be powered down
@@ -1698,17 +1702,18 @@ void EMU_MemPwrDown(uint32_t blocks)
* @endcode
*
* @note
- * Only a reset can power up the specified memory block(s) after power down
- * on a series 0 device. The specified memory block(s) will stay off
- * until a call to EMU_RamPowerUp() is done on series 1/2.
+ * The specified memory block(s) will stay off until a call
+ * to EMU_RamPowerUp() is done.
*
* @param[in] start
* The start address of the RAM region to power down. This address is
* inclusive.
*
* @param[in] end
- * The end address of the RAM region to power down. This address is
- * exclusive. If this parameter is 0, all RAM blocks contained in the
+ * The end address of the RAM region to power down. Except for xg27, It can only
+ * have two values: 0 or more than RAM0_END. Any other valid RAM address
+ * will just do nothing without any error or indication that nothing happened.
+ * This address is exclusive. If this parameter is 0, all RAM blocks contained in the
* region from start to the upper RAM address will be powered down.
******************************************************************************/
void EMU_RamPowerDown(uint32_t start, uint32_t end)
@@ -1721,29 +1726,18 @@ void EMU_RamPowerDown(uint32_t start, uint32_t end)
}
// Check to see if something in RAM0 can be powered down.
- if (end > RAM0_END) {
-#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_84) // EFM32xG12 and EFR32xG12
- // Block 0 is 16 kB and cannot be powered off.
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20004000UL) << 0; // Block 1, 16 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20008000UL) << 1; // Block 2, 16 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x2000C000UL) << 2; // Block 3, 16 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20010000UL) << 3; // Block 4, 64 kB
-#elif defined(_SILICON_LABS_GECKO_INTERNAL_SDID_80) // EFM32xG1 and EFR32xG1
- // Block 0 is 4 kB and cannot be powered off.
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20001000UL) << 0; // Block 1, 4 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20002000UL) << 1; // Block 2, 8 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20004000UL) << 2; // Block 3, 8 kB
- mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20006000UL) << 3; // Block 4, 7 kB
-#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2)
+#if defined(_SILICON_LABS_32B_SERIES_2)
+ if (end >= RAM0_END) {
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2)
// Lynx has 2 blocks. We do no shut off block 0 because we dont want to disable all RAM0
mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20006000UL) << 1; // Block 1, 8 kB
-#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
// Leopard has 3 blocks. We do no shut off block 0 because we dont want to disable all RAM0
mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20006000UL) << 1; // Block 1, 8 kB
mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20008000UL) << 2; // Block 2, 32 kB
-#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_6) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_8)
+#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_6) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_8) \
+ || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
// These platforms have equally-sized RAM blocks and block 0 can be powered down but should not.
// This condition happens when the block 0 disable bit flag is available in the retention control register.
for (unsigned i = 1; i < RAM0_BLOCKS; i++) {
@@ -1756,6 +1750,13 @@ void EMU_RamPowerDown(uint32_t start, uint32_t end)
}
#endif
}
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
+ else if (end > 0x20006000UL) {
+ // Leopard has 3 blocks. We do no shut off block 0 because we dont want to disable all RAM0
+ mask |= ADDRESS_NOT_IN_BLOCK(start, 0x20006000UL) << 1; // Block 1, 8 kB
+ }
+#endif
+#endif
// Power down the selected blocks.
#if defined(_EMU_MEMCTRL_MASK)
@@ -3352,6 +3353,12 @@ bool EMU_DCDCBoostInit(const EMU_DCDCBoostInit_TypeDef *dcdcBoostInit)
EMU_DCDCSync(_DCDC_SYNCBUSY_MASK);
#endif
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+ BUS_RegMaskedWrite(&DCDC->CTRL,
+ _DCDC_CTRL_DVDDBSTPRG_MASK,
+ ((uint32_t)dcdcBoostInit->outputVoltage << _DCDC_CTRL_DVDDBSTPRG_SHIFT));
+#endif
+
DCDC->BSTCTRL = (DCDC->BSTCTRL & ~(_DCDC_BSTCTRL_IPKTMAXCTRL_MASK))
| ((uint32_t)dcdcBoostInit->tonMax << _DCDC_BSTCTRL_IPKTMAXCTRL_SHIFT);
DCDC->BSTEM01CTRL = ((uint32_t)dcdcBoostInit->driveSpeedEM01 << _DCDC_BSTEM01CTRL_DRVSPEED_SHIFT)
@@ -3426,6 +3433,40 @@ void EMU_BoostExternalShutdownEnable(bool enable)
EMU->BOOSTCTRL_SET = EMU_BOOSTCTRL_BOOSTENCTRL;
}
}
+
+#if defined(_DCDC_CTRL_DVDDBSTPRG_MASK)
+/***************************************************************************//**
+ * @brief
+ * Set DCDC Boost output voltage.
+ *
+ * @param[in] boostOutputVoltage
+ * Boost output voltage.
+ ******************************************************************************/
+void EMU_DCDCBoostOutputVoltageSet(const EMU_DcdcBoostOutputVoltage_TypeDef boostOutputVoltage)
+{
+ bool dcdcLocked = false;
+
+ CMU->CLKEN0_SET = CMU_CLKEN0_DCDC;
+
+ dcdcLocked = ((DCDC->LOCKSTATUS & DCDC_LOCKSTATUS_LOCK) != 0);
+ EMU_DCDCUnlock();
+
+ /* Wait for synchronization before writing new value */
+#if defined(_DCDC_SYNCBUSY_MASK)
+ EMU_DCDCSync(_DCDC_SYNCBUSY_MASK);
+#endif
+
+ BUS_RegMaskedWrite(&DCDC->CTRL,
+ _DCDC_CTRL_DVDDBSTPRG_MASK,
+ ((uint32_t)boostOutputVoltage << _DCDC_CTRL_DVDDBSTPRG_SHIFT));
+
+ if (dcdcLocked) {
+ EMU_DCDCLock();
+ }
+
+ EMU_DCDCUpdatedHook();
+}
+#endif
#endif /* EMU_SERIES2_DCDC_BOOST_PRESENT */
#if defined(EMU_SERIES2_DCDC_BUCK_PRESENT) \
@@ -3702,7 +3743,7 @@ void EMU_DCDCSetPFMXModePeakCurrent(uint32_t value)
* @param[in] value
* Maximum time for peak current detection.
******************************************************************************/
-void EMU_DCDCSetPFMXTimeoutMaxCtrl(EMU_DcdcTonMaxTimeout_TypeDef value)
+SL_WEAK void EMU_DCDCSetPFMXTimeoutMaxCtrl(EMU_DcdcTonMaxTimeout_TypeDef value)
{
bool dcdcLocked = false;
bool dcdcClkWasEnabled = false;
@@ -4238,5 +4279,41 @@ void EMU_EFPDriveDvddSet(bool enable)
}
#endif
+#if defined(_EMU_CTRL_HDREGEM2EXITCLIM_MASK)
+/***************************************************************************//**
+ * @brief
+ * Set to enable HDREG EM2 Exit current limit.
+ *
+ * @details
+ * Limit HDREG max current drawn on EM2 exit by temporarily adjusting its
+ * output trim so current is pulled from DECOUPLE cap.
+ *
+ * @param[in] enable
+ * True to enable HDREG EM2 Exit current limit.
+ ******************************************************************************/
+void EMU_HDRegEM2ExitCurrentLimitEnable(bool enable)
+{
+ if (enable) {
+ EMU->CTRL_SET = EMU_CTRL_HDREGEM2EXITCLIM;
+ } else {
+ EMU->CTRL_CLR = EMU_CTRL_HDREGEM2EXITCLIM;
+ }
+}
+#endif
+
+#if defined(_EMU_CTRL_HDREGSTOPGEAR_MASK)
+/***************************************************************************//**
+ * @brief
+ * Set the HDREG max current capability limit.
+ *
+ * @param[in] current
+ * HDREG max current capability limit.
+ ******************************************************************************/
+void EMU_HDRegStopGearSet(EMU_HdregStopGearILmt_TypeDef current)
+{
+ EMU->CTRL = ((current << _EMU_CTRL_HDREGSTOPGEAR_SHIFT) \
+ & _EMU_CTRL_HDREGSTOPGEAR_MASK) | (EMU->CTRL & ~_EMU_CTRL_HDREGSTOPGEAR_MASK);
+}
+#endif
/** @} (end addtogroup emu) */
#endif /* __EM_EMU_H */
diff --git a/simplicity_sdk/platform/emlib/src/em_ldma.c b/simplicity_sdk/platform/emlib/src/em_ldma.c
index b9096bfa2..92a2f312f 100644
--- a/simplicity_sdk/platform/emlib/src/em_ldma.c
+++ b/simplicity_sdk/platform/emlib/src/em_ldma.c
@@ -146,20 +146,6 @@ void LDMA_Init(const LDMA_Init_t *init)
EFM_ASSERT(!(((uint32_t)init->ldmaInitCtrlNumFixed << _LDMA_CTRL_NUMFIXED_SHIFT)
& ~_LDMA_CTRL_NUMFIXED_MASK));
-#if defined(_LDMA_CTRL_SYNCPRSCLREN_SHIFT) && defined (_LDMA_CTRL_SYNCPRSSETEN_SHIFT)
- EFM_ASSERT(!(((uint32_t)init->ldmaInitCtrlSyncPrsClrEn << _LDMA_CTRL_SYNCPRSCLREN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)init->ldmaInitCtrlSyncPrsSetEn << _LDMA_CTRL_SYNCPRSSETEN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSSETEN_MASK));
-#endif
-
-#if defined(_LDMA_SYNCHWEN_SYNCCLREN_SHIFT) && defined (_LDMA_SYNCHWEN_SYNCSETEN_SHIFT)
- EFM_ASSERT(!(((uint32_t)init->ldmaInitCtrlSyncPrsClrEn << _LDMA_SYNCHWEN_SYNCCLREN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)init->ldmaInitCtrlSyncPrsSetEn << _LDMA_SYNCHWEN_SYNCSETEN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCSETEN_MASK));
-#endif
-
EFM_ASSERT(init->ldmaInitIrqPriority < (1 << __NVIC_PRIO_BITS));
CMU_ClockEnable(cmuClock_LDMA, true);
@@ -242,34 +228,12 @@ void LDMA_StartTransfer(int ch,
EFM_ASSERT(!(transfer->ldmaReqSel & ~_LDMA_CH_REQSEL_MASK));
#endif
-#if defined (_LDMA_SYNCHWEN_SYNCCLREN_SHIFT) && defined (_LDMA_SYNCHWEN_SYNCSETEN_SHIFT)
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsClrOff << _LDMA_SYNCHWEN_SYNCCLREN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsClrOn << _LDMA_SYNCHWEN_SYNCCLREN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsSetOff << _LDMA_SYNCHWEN_SYNCSETEN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCSETEN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsSetOn << _LDMA_SYNCHWEN_SYNCSETEN_SHIFT)
- & ~_LDMA_SYNCHWEN_SYNCSETEN_MASK));
-#elif defined (_LDMA_CTRL_SYNCPRSCLREN_SHIFT) && defined (_LDMA_CTRL_SYNCPRSSETEN_SHIFT)
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsClrOff << _LDMA_CTRL_SYNCPRSCLREN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsClrOn << _LDMA_CTRL_SYNCPRSCLREN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSCLREN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsSetOff << _LDMA_CTRL_SYNCPRSSETEN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSSETEN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaCtrlSyncPrsSetOn << _LDMA_CTRL_SYNCPRSSETEN_SHIFT)
- & ~_LDMA_CTRL_SYNCPRSSETEN_MASK));
-#endif
-
EFM_ASSERT(!(((uint32_t)transfer->ldmaCfgArbSlots << _LDMA_CH_CFG_ARBSLOTS_SHIFT)
& ~_LDMA_CH_CFG_ARBSLOTS_MASK));
EFM_ASSERT(!(((uint32_t)transfer->ldmaCfgSrcIncSign << _LDMA_CH_CFG_SRCINCSIGN_SHIFT)
& ~_LDMA_CH_CFG_SRCINCSIGN_MASK));
EFM_ASSERT(!(((uint32_t)transfer->ldmaCfgDstIncSign << _LDMA_CH_CFG_DSTINCSIGN_SHIFT)
& ~_LDMA_CH_CFG_DSTINCSIGN_MASK));
- EFM_ASSERT(!(((uint32_t)transfer->ldmaLoopCnt << _LDMA_CH_LOOP_LOOPCNT_SHIFT)
- & ~_LDMA_CH_LOOP_LOOPCNT_MASK));
/* Clear the pending channel interrupt. */
#if defined (LDMA_HAS_SET_CLEAR)
@@ -470,26 +434,25 @@ bool LDMA_TransferDone(int ch)
******************************************************************************/
uint32_t LDMA_TransferRemainingCount(int ch)
{
- uint32_t remaining, done, iflag;
+ uint32_t remaining, done;
uint32_t chMask = 1UL << (uint8_t)ch;
EFM_ASSERT(ch < (int)DMA_CHAN_COUNT);
CORE_ATOMIC_SECTION(
- iflag = LDMA->IF;
done = LDMA->CHDONE;
remaining = LDMA->CH[ch].CTRL;
)
- iflag &= chMask;
done &= chMask;
- remaining = (remaining & _LDMA_CH_CTRL_XFERCNT_MASK)
- >> _LDMA_CH_CTRL_XFERCNT_SHIFT;
- if (done || ((remaining == 0) && iflag)) {
+ if (done) {
return 0;
}
+ remaining = (remaining & _LDMA_CH_CTRL_XFERCNT_MASK)
+ >> _LDMA_CH_CTRL_XFERCNT_SHIFT;
+
/* +1 because XFERCNT is 0-based. */
return remaining + 1;
}
diff --git a/simplicity_sdk/platform/emlib/src/em_msc.c b/simplicity_sdk/platform/emlib/src/em_msc.c
index 96e0937af..ede8ad904 100644
--- a/simplicity_sdk/platform/emlib/src/em_msc.c
+++ b/simplicity_sdk/platform/emlib/src/em_msc.c
@@ -133,7 +133,7 @@
#elif (defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
|| defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9))
+ || (defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9) && !defined(_MPAHBRAM_CTRL_MASK)))
/* On Series 2 Config 2, aka EFR32XG22, ECC is supported for the
main DMEM RAM banks which is controlled with one ECC encoder/decoder. */
@@ -201,7 +201,7 @@
#if (defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1) \
|| defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
|| defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9))
+ || (defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9) && !defined(_MPAHBRAM_CTRL_MASK)))
#define ECC_CTRL_REG (SYSCFG->DMEM0ECCCTRL)
#define ECC_IFC_REG (SYSCFG->IF_CLR)
#define ECC_IFC_MASK (SYSCFG_IF_RAMERR1B | SYSCFG_IF_RAMERR2B)
@@ -1591,7 +1591,7 @@ static void mscEccReadWriteExistingPio(const MSC_EccBank_Typedef *eccBank)
#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2) \
|| defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7) \
- || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
+ || (defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9) && !defined(_MPAHBRAM_CTRL_MASK))
enableEcc = eccBank->initSyndromeEnable;
#elif defined(_MPAHBRAM_CTRL_MASK)
/* MPAHBRAM ECC requires both ECCEN and ECCWEN to be set for the syndromes
diff --git a/simplicity_sdk/platform/emlib/src/em_prs.c b/simplicity_sdk/platform/emlib/src/em_prs.c
index 3dbfc4d6e..3b906f8fa 100644
--- a/simplicity_sdk/platform/emlib/src/em_prs.c
+++ b/simplicity_sdk/platform/emlib/src/em_prs.c
@@ -367,9 +367,9 @@ void PRS_SourceSignalSet(unsigned int ch,
* An asynchronous signal (for selected @p source) to use. Use one of the
* PRS_CH_CTRL_SIGSEL_x defines that support asynchronous operation.
******************************************************************************/
-void PRS_SourceAsyncSignalSet(unsigned int ch,
- uint32_t source,
- uint32_t signal)
+SL_WEAK void PRS_SourceAsyncSignalSet(unsigned int ch,
+ uint32_t source,
+ uint32_t signal)
{
PRS_ConnectSignal(ch, prsTypeAsync, (PRS_Signal_t) (source | signal));
}
@@ -425,7 +425,7 @@ void PRS_GpioOutputLocation(unsigned int ch,
* Channel number >= 0 if an unused PRS channel was found. If no free PRS
* channel was found then -1 is returned.
******************************************************************************/
-int PRS_GetFreeChannel(PRS_ChType_t type)
+SL_WEAK int PRS_GetFreeChannel(PRS_ChType_t type)
{
int ch = -1;
PRS_Signal_t signal;
@@ -551,7 +551,7 @@ void PRS_ConnectSignal(unsigned int ch, PRS_ChType_t type, PRS_Signal_t signal)
* @param[in] consumer
* This is the PRS consumer.
******************************************************************************/
-void PRS_ConnectConsumer(unsigned int ch, PRS_ChType_t type, PRS_Consumer_t consumer)
+SL_WEAK void PRS_ConnectConsumer(unsigned int ch, PRS_ChType_t type, PRS_Consumer_t consumer)
{
EFM_ASSERT((uint32_t)consumer <= 0xFFF);
volatile uint32_t * addr = (volatile uint32_t *) PRS;
@@ -592,7 +592,7 @@ void PRS_ConnectConsumer(unsigned int ch, PRS_ChType_t type, PRS_Consumer_t cons
* @param[in] pin
* GPIO pin
******************************************************************************/
-void PRS_PinOutput(unsigned int ch, PRS_ChType_t type, GPIO_Port_TypeDef port, uint8_t pin)
+SL_WEAK void PRS_PinOutput(unsigned int ch, PRS_ChType_t type, GPIO_Port_TypeDef port, uint8_t pin)
{
volatile uint32_t * addr;
if (type == prsTypeAsync) {
@@ -637,7 +637,7 @@ void PRS_PinOutput(unsigned int ch, PRS_ChType_t type, GPIO_Port_TypeDef port, u
* output of the logic function is the output of Channel A. Function like
* AND, OR, XOR, NOT and more are available.
******************************************************************************/
-void PRS_Combine(unsigned int chA, unsigned int chB, PRS_Logic_t logic)
+SL_WEAK void PRS_Combine(unsigned int chA, unsigned int chB, PRS_Logic_t logic)
{
EFM_ASSERT(chA < PRS_ASYNC_CHAN_COUNT);
EFM_ASSERT(chB < PRS_ASYNC_CHAN_COUNT);
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h b/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h
index 2fa6c35e7..403b36da5 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter.h
@@ -28,4 +28,6 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_dcdc_coulomb_counter.h has been renamed to
+// sl_hal_dcdc_coulomb_counter.h
#include "sl_hal_dcdc_coulomb_counter.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h b/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h
index 0148e96fa..8462ec563 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_dcdc_coulomb_counter_compat.h
@@ -28,4 +28,6 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_dcdc_coulomb_counter_compat.h has been renamed to
+// sl_hal_dcdc_coulomb_counter_compat.h
#include "sl_hal_dcdc_coulomb_counter_compat.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet.h b/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet.h
index e3f79873d..98f37c37d 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet.h
@@ -28,4 +28,5 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_etampdet.h has been renamed to sl_hal_etampdet.h
#include "sl_hal_etampdet.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet_compat.h b/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet_compat.h
index 8e84ad302..b539f4a98 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet_compat.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_etampdet_compat.h
@@ -28,4 +28,6 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_etampdet_compat.h has been renamed to
+// sl_hal_etampdet_compat.h
#include "sl_hal_etampdet_compat.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan.h b/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan.h
index bb0e837e8..9df9c20b6 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan.h
@@ -28,4 +28,5 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_keyscan.h has been renamed to sl_hal_keyscan.h
#include "sl_hal_keyscan.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan_compat.h b/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan_compat.h
index 2bef4c1be..e768c4db8 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan_compat.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_keyscan_compat.h
@@ -28,4 +28,6 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_keyscan_compat.h has been renamed to
+// sl_hal_keyscan_compat.h
#include "sl_hal_keyscan_compat.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc.h b/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc.h
index ba70253b1..500c11551 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc.h
@@ -28,4 +28,5 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_sysrtc.h has been renamed to sl_hal_sysrtc.h
#include "sl_hal_sysrtc.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc_compat.h b/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc_compat.h
index 04bf8ab81..2321e8b2f 100644
--- a/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc_compat.h
+++ b/simplicity_sdk/platform/peripheral/inc/peripheral_sysrtc_compat.h
@@ -28,4 +28,6 @@
*
******************************************************************************/
+// Compatibility layer. peripheral_sysrtc_compat.h has been renamed to
+// sl_hal_sysrtc_compat.h
#include "sl_hal_sysrtc_compat.h"
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_bus.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_bus.h
index f026445e3..4283af07a 100644
--- a/simplicity_sdk/platform/peripheral/inc/sl_hal_bus.h
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_bus.h
@@ -34,6 +34,7 @@
#include "sl_assert.h"
#include "sl_core.h"
#include "em_device.h"
+#include "sl_code_classification.h"
#ifdef __cplusplus
extern "C" {
@@ -99,6 +100,7 @@ __STATIC_INLINE unsigned int sl_hal_bus_ram_read_bit(volatile const uint32_t *ad
*
* @param[in] val A value to set bit to, 0 or 1.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_COMMON, SL_CODE_CLASS_TIME_CRITICAL)
__STATIC_INLINE void sl_hal_bus_reg_write_bit(volatile uint32_t *addr,
uint32_t bit,
uint32_t val)
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_gpio.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_gpio.h
index 67da655d1..87df88941 100644
--- a/simplicity_sdk/platform/peripheral/inc/sl_hal_gpio.h
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_gpio.h
@@ -42,9 +42,8 @@ extern "C" {
#include
#include
#include "sl_assert.h"
-#include "sl_core.h"
-#include "sl_status.h"
#include "sl_device_gpio.h"
+#include "sl_code_classification.h"
/* *INDENT-OFF* */
// *****************************************************************************
@@ -66,6 +65,189 @@ extern "C" {
******************************** DEFINES **********************************
******************************************************************************/
+/// Define for port specific pin mask
+#if defined(GPIO_PA_MASK)
+#define SL_HAL_GPIO_PORT_A_PIN_MASK (GPIO_PA_MASK)
+#else
+#define SL_HAL_GPIO_PORT_A_PIN_MASK 0
+#endif
+#if defined(GPIO_PB_MASK)
+#define SL_HAL_GPIO_PORT_B_PIN_MASK (GPIO_PB_MASK)
+#else
+#define SL_HAL_GPIO_PORT_B_PIN_MASK 0
+#endif
+#if defined(GPIO_PC_MASK)
+#define SL_HAL_GPIO_PORT_C_PIN_MASK (GPIO_PC_MASK)
+#else
+#define SL_HAL_GPIO_PORT_C_PIN_MASK 0
+#endif
+#if defined(GPIO_PD_MASK)
+#define SL_HAL_GPIO_PORT_D_PIN_MASK (GPIO_PD_MASK)
+#else
+#define SL_HAL_GPIO_PORT_D_PIN_MASK 0
+#endif
+#if defined(GPIO_PE_MASK)
+#define SL_HAL_GPIO_PORT_E_PIN_MASK (GPIO_PE_MASK)
+#else
+#define SL_HAL_GPIO_PORT_E_PIN_MASK 0
+#endif
+#if defined(GPIO_PF_MASK)
+#define SL_HAL_GPIO_PORT_F_PIN_MASK (GPIO_PF_MASK)
+#else
+#define SL_HAL_GPIO_PORT_F_PIN_MASK 0
+#endif
+#if defined(GPIO_PG_MASK)
+#define SL_HAL_GPIO_PORT_G_PIN_MASK (GPIO_PG_MASK)
+#else
+#define SL_HAL_GPIO_PORT_G_PIN_MASK 0
+#endif
+#if defined(GPIO_PH_MASK)
+#define SL_HAL_GPIO_PORT_H_PIN_MASK (GPIO_PH_MASK)
+#else
+#define SL_HAL_GPIO_PORT_H_PIN_MASK 0
+#endif
+#if defined(GPIO_PI_MASK)
+#define SL_HAL_GPIO_PORT_I_PIN_MASK (GPIO_PI_MASK)
+#else
+#define SL_HAL_GPIO_PORT_I_PIN_MASK 0
+#endif
+#if defined(GPIO_PJ_MASK)
+#define SL_HAL_GPIO_PORT_J_PIN_MASK (GPIO_PJ_MASK)
+#else
+#define SL_HAL_GPIO_PORT_J_PIN_MASK 0
+#endif
+#if defined(GPIO_PK_MASK)
+#define SL_HAL_GPIO_PORT_K_PIN_MASK (GPIO_PK_MASK)
+#else
+#define SL_HAL_GPIO_PORT_K_PIN_MASK 0
+#endif
+
+/// Define for port specific pin count
+#if defined(GPIO_PA_COUNT)
+#define SL_HAL_GPIO_PORT_A_PIN_COUNT (GPIO_PA_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_A_PIN_COUNT 0
+#endif
+#if defined(GPIO_PB_COUNT)
+#define SL_HAL_GPIO_PORT_B_PIN_COUNT (GPIO_PB_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_B_PIN_COUNT 0
+#endif
+#if defined(GPIO_PC_COUNT)
+#define SL_HAL_GPIO_PORT_C_PIN_COUNT (GPIO_PC_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_C_PIN_COUNT 0
+#endif
+#if defined(GPIO_PD_COUNT)
+#define SL_HAL_GPIO_PORT_D_PIN_COUNT (GPIO_PD_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_D_PIN_COUNT 0
+#endif
+#if defined(GPIO_PE_COUNT)
+#define SL_HAL_GPIO_PORT_E_PIN_COUNT (GPIO_PE_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_E_PIN_COUNT 0
+#endif
+#if defined(GPIO_PF_COUNT)
+#define SL_HAL_GPIO_PORT_F_PIN_COUNT (GPIO_PF_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_F_PIN_COUNT 0
+#endif
+#if defined(GPIO_PG_COUNT)
+#define SL_HAL_GPIO_PORT_G_PIN_COUNT (GPIO_PG_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_G_PIN_COUNT 0
+#endif
+#if defined(GPIO_PH_COUNT)
+#define SL_HAL_GPIO_PORT_H_PIN_COUNT (GPIO_PH_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_H_PIN_COUNT 0
+#endif
+#if defined(GPIO_PI_COUNT)
+#define SL_HAL_GPIO_PORT_I_PIN_COUNT (GPIO_PI_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_I_PIN_COUNT 0
+#endif
+#if defined(GPIO_PJ_COUNT)
+#define SL_HAL_GPIO_PORT_J_PIN_COUNT (GPIO_PJ_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_J_PIN_COUNT 0
+#endif
+#if defined(GPIO_PK_COUNT)
+#define SL_HAL_GPIO_PORT_K_PIN_COUNT (GPIO_PK_COUNT)
+#else
+#define SL_HAL_GPIO_PORT_K_PIN_COUNT 0
+#endif
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/// Highest GPIO port number.
+
+#if (SL_HAL_GPIO_PORT_K_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 10
+#elif (SL_HAL_GPIO_PORT_J_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 9
+#elif (SL_HAL_GPIO_PORT_I_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 8
+#elif (SL_HAL_GPIO_PORT_H_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 7
+#elif (SL_HAL_GPIO_PORT_G_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 6
+#elif (SL_HAL_GPIO_PORT_F_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 5
+#elif (SL_HAL_GPIO_PORT_E_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 4
+#elif (SL_HAL_GPIO_PORT_D_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 3
+#elif (SL_HAL_GPIO_PORT_C_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 2
+#elif (SL_HAL_GPIO_PORT_B_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 1
+#elif (SL_HAL_GPIO_PORT_A_PIN_COUNT > 0)
+#define SL_HAL_GPIO_PORT_MAX 0
+#else
+#error "Max GPIO port number is undefined for this part."
+#endif
+
+/// Highest GPIO pin number.
+#define SL_HAL_GPIO_PIN_MAX 15
+
+/// @endcond
+
+#define SL_HAL_GPIO_PORT_SIZE(port) ( \
+ (port) == 0 ? SL_HAL_GPIO_PORT_A_PIN_COUNT \
+ : (port) == 1 ? SL_HAL_GPIO_PORT_B_PIN_COUNT \
+ : (port) == 2 ? SL_HAL_GPIO_PORT_C_PIN_COUNT \
+ : (port) == 3 ? SL_HAL_GPIO_PORT_D_PIN_COUNT \
+ : (port) == 4 ? SL_HAL_GPIO_PORT_E_PIN_COUNT \
+ : (port) == 5 ? SL_HAL_GPIO_PORT_F_PIN_COUNT \
+ : (port) == 6 ? SL_HAL_GPIO_PORT_G_PIN_COUNT \
+ : (port) == 7 ? SL_HAL_GPIO_PORT_H_PIN_COUNT \
+ : (port) == 8 ? SL_HAL_GPIO_PORT_I_PIN_COUNT \
+ : (port) == 9 ? SL_HAL_GPIO_PORT_J_PIN_COUNT \
+ : (port) == 10 ? SL_HAL_GPIO_PORT_K_PIN_COUNT \
+ : 0)
+
+#define SL_HAL_GPIO_PORT_MASK(port) ( \
+ ((int)port) == 0 ? SL_HAL_GPIO_PORT_A_PIN_MASK \
+ : ((int)port) == 1 ? SL_HAL_GPIO_PORT_B_PIN_MASK \
+ : ((int)port) == 2 ? SL_HAL_GPIO_PORT_C_PIN_MASK \
+ : ((int)port) == 3 ? SL_HAL_GPIO_PORT_D_PIN_MASK \
+ : ((int)port) == 4 ? SL_HAL_GPIO_PORT_E_PIN_MASK \
+ : ((int)port) == 5 ? SL_HAL_GPIO_PORT_F_PIN_MASK \
+ : ((int)port) == 6 ? SL_HAL_GPIO_PORT_G_PIN_MASK \
+ : ((int)port) == 7 ? SL_HAL_GPIO_PORT_H_PIN_MASK \
+ : ((int)port) == 8 ? SL_HAL_GPIO_PORT_I_PIN_MASK \
+ : ((int)port) == 9 ? SL_HAL_GPIO_PORT_J_PIN_MASK \
+ : ((int)port) == 10 ? SL_HAL_GPIO_PORT_K_PIN_MASK \
+ : 0UL)
+
+/// Validation of port.
+#define SL_HAL_GPIO_PORT_IS_VALID(port) (SL_HAL_GPIO_PORT_MASK(port) != 0x0UL)
+
+/// Validation of port and pin.
+#define SL_HAL_GPIO_PORT_PIN_IS_VALID(port, pin) ((((SL_HAL_GPIO_PORT_MASK(port)) >> (pin)) & 0x1UL) == 0x1UL)
+
/// Max interrupt lines for external and EM4 interrupts.
#define SL_HAL_GPIO_INTERRUPT_MAX 15
@@ -77,7 +259,7 @@ extern "C" {
#define SL_HAL_GPIO_INT_IF_ODD_MASK ((_GPIO_IF_MASK) & 0xAAAAAAAAUL)
/// Validation of mode.
-#define SL_HAL_GPIO_MODE_VALID(mode) ((mode & _GPIO_P_MODEL_MODE0_MASK) == mode)
+#define SL_HAL_GPIO_MODE_IS_VALID(mode) ((mode & _GPIO_P_MODEL_MODE0_MASK) == mode)
/// Validation of interrupt number and pin.
#define SL_HAL_GPIO_INTNO_PIN_VALID(int_no, pin) (((int_no) & ~_GPIO_EXTIPINSELL_EXTIPINSEL0_MASK) == ((pin) & ~_GPIO_EXTIPINSELL_EXTIPINSEL0_MASK))
@@ -86,57 +268,6 @@ extern "C" {
******************************** ENUMS ************************************
******************************************************************************/
-/// GPIO Pin Modes.
-SL_ENUM(sl_hal_gpio_mode_t) {
- /// Input disabled. Pull-up if DOUT is set.
- SL_HAL_GPIO_MODE_DISABLED = _GPIO_P_MODEL_MODE0_DISABLED,
-
- /// Input enabled. Filter if DOUT is set.
- SL_HAL_GPIO_MODE_INPUT = _GPIO_P_MODEL_MODE0_INPUT,
-
- /// Input enabled. DOUT determines pull direction.
- SL_HAL_GPIO_MODE_INPUT_PULL = _GPIO_P_MODEL_MODE0_INPUTPULL,
-
- /// Input enabled with filter. DOUT determines pull direction.
- SL_HAL_GPIO_MODE_INPUT_PULL_FILTER = _GPIO_P_MODEL_MODE0_INPUTPULLFILTER,
-
- /// Push-pull output.
- SL_HAL_GPIO_MODE_PUSH_PULL = _GPIO_P_MODEL_MODE0_PUSHPULL,
-
- /// Push-pull using alternate control.
- SL_HAL_GPIO_MODE_PUSH_PULL_ALTERNATE = _GPIO_P_MODEL_MODE0_PUSHPULLALT,
-
- /// Wired-or output.
- SL_HAL_GPIO_MODE_WIRED_OR = _GPIO_P_MODEL_MODE0_WIREDOR,
-
- /// Wired-or output with pull-down.
- SL_HAL_GPIO_MODE_WIRED_OR_PULL_DOWN = _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN,
-
- /// Open-drain output.
- SL_HAL_GPIO_MODE_WIRED_AND = _GPIO_P_MODEL_MODE0_WIREDAND,
-
- /// Open-drain output with filter.
- SL_HAL_GPIO_MODE_WIRED_AND_FILTER = _GPIO_P_MODEL_MODE0_WIREDANDFILTER,
-
- /// Open-drain output with pull-up.
- SL_HAL_GPIO_MODE_WIRED_AND_PULLUP = _GPIO_P_MODEL_MODE0_WIREDANDPULLUP,
-
- /// Open-drain output with filter and pull-up.
- SL_HAL_GPIO_MODE_WIRED_AND_PULLUP_FILTER = _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER,
-
- /// Open-drain output using alternate control.
- SL_HAL_GPIO_MODE_WIRED_AND_ALTERNATE = _GPIO_P_MODEL_MODE0_WIREDANDALT,
-
- /// Open-drain output using alternate control with filter.
- SL_HAL_GPIO_MODE_WIRED_AND_ALTERNATE_FILTER = _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER,
-
- /// Open-drain output using alternate control with pull-up.
- SL_HAL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP = _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP,
-
- /// Open-drain output using alternate control with filter and pull-up.
- SL_HAL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP_FILTER = _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER
-};
-
/*******************************************************************************
***************************** PROTOTYPES **********************************
******************************************************************************/
@@ -150,7 +281,7 @@ SL_ENUM(sl_hal_gpio_mode_t) {
* some input mode configurations to determine the pull-up/down direction.
******************************************************************************/
void sl_hal_gpio_set_pin_mode(const sl_gpio_t *gpio,
- sl_hal_gpio_mode_t mode,
+ sl_gpio_mode_t mode,
bool output_value);
/***************************************************************************//**
@@ -160,7 +291,7 @@ void sl_hal_gpio_set_pin_mode(const sl_gpio_t *gpio,
*
* @return Return the pin mode.
******************************************************************************/
-sl_hal_gpio_mode_t sl_hal_gpio_get_pin_mode(const sl_gpio_t *gpio);
+sl_gpio_mode_t sl_hal_gpio_get_pin_mode(const sl_gpio_t *gpio);
/***************************************************************************//**
* Configure the GPIO external pin interrupt by connecting external interrupt id with gpio pin.
@@ -199,7 +330,7 @@ int32_t sl_hal_gpio_configure_external_interrupt(const sl_gpio_t *gpio,
* EM4 mode can be safely entered.
*
* @note It is assumed that the GPIO pin modes are set correctly.
- * Valid modes are SL_HAL_GPIO_MODE_INPUT and SL_HAL_GPIO_MODE_INPUT_PULL.
+ * Valid modes are SL_GPIO_MODE_INPUT and SL_GPIO_MODE_INPUT_PULL.
*
* @param[in] pinmask A bitmask containing the bitwise logic OR of which GPIO pin(s) to enable.
* @param[in] polaritymask A bitmask containing the bitwise logic OR of GPIO pin(s) wake-up polarity.
@@ -282,10 +413,11 @@ __INLINE uint32_t sl_hal_gpio_get_lock_status(void)
*
* @param[in] gpio Pointer to GPIO structure with port and pin
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_GPIO, SL_CODE_CLASS_TIME_CRITICAL)
__INLINE void sl_hal_gpio_set_pin(const sl_gpio_t *gpio)
{
EFM_ASSERT(gpio != NULL);
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
GPIO->P_SET[gpio->port].DOUT = 1UL << gpio->pin;
}
@@ -299,7 +431,7 @@ __INLINE void sl_hal_gpio_set_pin(const sl_gpio_t *gpio)
__INLINE void sl_hal_gpio_set_port(sl_gpio_port_t port,
uint32_t pins)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
GPIO->P_SET[port].DOUT = pins;
}
@@ -314,7 +446,7 @@ __INLINE void sl_hal_gpio_set_port_value(sl_gpio_port_t port,
uint32_t val,
uint32_t mask)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
GPIO->P[port].DOUT = (GPIO->P[port].DOUT & ~mask) | (val & mask);
}
@@ -327,7 +459,7 @@ __INLINE void sl_hal_gpio_set_port_value(sl_gpio_port_t port,
__INLINE void sl_hal_gpio_set_slew_rate(sl_gpio_port_t port,
uint8_t slewrate)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
EFM_ASSERT(slewrate <= (_GPIO_P_CTRL_SLEWRATE_MASK
>> _GPIO_P_CTRL_SLEWRATE_SHIFT));
@@ -345,7 +477,7 @@ __INLINE void sl_hal_gpio_set_slew_rate(sl_gpio_port_t port,
__INLINE void sl_hal_gpio_set_slew_rate_alternate(sl_gpio_port_t port,
uint8_t slewrate_alt)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
EFM_ASSERT(slewrate_alt <= (_GPIO_P_CTRL_SLEWRATEALT_MASK
>> _GPIO_P_CTRL_SLEWRATEALT_SHIFT));
@@ -363,7 +495,7 @@ __INLINE void sl_hal_gpio_set_slew_rate_alternate(sl_gpio_port_t port,
******************************************************************************/
__INLINE uint8_t sl_hal_gpio_get_slew_rate(sl_gpio_port_t port)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
return (GPIO->P[port].CTRL & _GPIO_P_CTRL_SLEWRATE_MASK) >> _GPIO_P_CTRL_SLEWRATE_SHIFT;
}
@@ -377,7 +509,7 @@ __INLINE uint8_t sl_hal_gpio_get_slew_rate(sl_gpio_port_t port)
******************************************************************************/
__INLINE uint8_t sl_hal_gpio_get_slew_rate_alternate(sl_gpio_port_t port)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
return (GPIO->P[port].CTRL & _GPIO_P_CTRL_SLEWRATEALT_MASK) >> _GPIO_P_CTRL_SLEWRATEALT_SHIFT;
}
@@ -390,7 +522,7 @@ __INLINE uint8_t sl_hal_gpio_get_slew_rate_alternate(sl_gpio_port_t port)
__INLINE void sl_hal_gpio_clear_pin(const sl_gpio_t *gpio)
{
EFM_ASSERT(gpio != NULL);
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
GPIO->P_CLR[gpio->port].DOUT = 1UL << gpio->pin;
}
@@ -404,7 +536,7 @@ __INLINE void sl_hal_gpio_clear_pin(const sl_gpio_t *gpio)
__INLINE void sl_hal_gpio_clear_port(sl_gpio_port_t port,
uint32_t pins)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
GPIO->P_CLR[port].DOUT = pins;
}
@@ -419,7 +551,7 @@ __INLINE void sl_hal_gpio_clear_port(sl_gpio_port_t port,
__INLINE bool sl_hal_gpio_get_pin_input(const sl_gpio_t *gpio)
{
EFM_ASSERT(gpio != NULL);
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
bool pin_input = ((GPIO->P[gpio->port].DIN) >> gpio->pin) & 1UL;
@@ -436,7 +568,7 @@ __INLINE bool sl_hal_gpio_get_pin_input(const sl_gpio_t *gpio)
__INLINE bool sl_hal_gpio_get_pin_output(const sl_gpio_t *gpio)
{
EFM_ASSERT(gpio != NULL);
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
bool pin_output = ((GPIO->P[gpio->port].DOUT) >> gpio->pin) & 1UL;
@@ -452,7 +584,7 @@ __INLINE bool sl_hal_gpio_get_pin_output(const sl_gpio_t *gpio)
******************************************************************************/
__INLINE uint32_t sl_hal_gpio_get_port_input(sl_gpio_port_t port)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
return GPIO->P[port].DIN;
}
@@ -466,7 +598,7 @@ __INLINE uint32_t sl_hal_gpio_get_port_input(sl_gpio_port_t port)
******************************************************************************/
__INLINE uint32_t sl_hal_gpio_get_port_output(sl_gpio_port_t port)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
return GPIO->P[port].DOUT;
}
@@ -479,7 +611,7 @@ __INLINE uint32_t sl_hal_gpio_get_port_output(sl_gpio_port_t port)
__INLINE void sl_hal_gpio_toggle_pin(const sl_gpio_t *gpio)
{
EFM_ASSERT(gpio != NULL);
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
GPIO->P_TGL[gpio->port].DOUT = 1UL << gpio->pin;
}
@@ -493,7 +625,7 @@ __INLINE void sl_hal_gpio_toggle_pin(const sl_gpio_t *gpio)
__INLINE void sl_hal_gpio_toggle_port(sl_gpio_port_t port,
uint32_t pins)
{
- EFM_ASSERT(SL_GPIO_PORT_IS_VALID(port));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_IS_VALID(port));
GPIO->P_TGL[port].DOUT = pins;
}
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_keyscan.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_keyscan.h
index ba64c8d01..8ee3373ae 100644
--- a/simplicity_sdk/platform/peripheral/inc/sl_hal_keyscan.h
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_keyscan.h
@@ -143,7 +143,7 @@ __STATIC_INLINE void sl_hal_keyscan_wait_ready(void)
******************************************************************************/
__STATIC_INLINE void sl_hal_keyscan_wait_sync(void)
{
- while ((KEYSCAN->EN != 0U) && ((KEYSCAN->STATUS & KEYSCAN_STATUS_SYNCBUSY))) {
+ while ((KEYSCAN->EN != 0U) && (KEYSCAN->STATUS & KEYSCAN_STATUS_SYNCBUSY)) {
// Wait for all synchronizations to finish
}
}
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_syscfg.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_syscfg.h
new file mode 100644
index 000000000..4f417e74d
--- /dev/null
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_syscfg.h
@@ -0,0 +1,89 @@
+/***************************************************************************//**
+ * @file
+ * @brief API defining access to SYSCFG registers
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_HAL_SYSCFG_H
+#define SL_HAL_SYSCFG_H
+
+#include
+
+#if defined(SL_TRUSTZONE_NONSECURE)
+#include "sli_tz_service_syscfg.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @addtogroup syscfg SYSTEM CONFIGURATION - System Configurations
+ * @brief Syscfg API
+ * @details
+ *
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ********************************* DEFINES *********************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ ******************************** ENUMS ************************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ ******************************* STRUCTS ***********************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ ******************************** TZ SERVICES **********************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ * @brief
+ * Reads CHIPREV register.
+ ******************************************************************************/
+uint32_t sl_hal_syscfg_read_chip_rev(void);
+
+/*******************************************************************************
+ * @brief
+ * Set SYSTICEXTCLKEN bit in CFGSYSTIC to one.
+ ******************************************************************************/
+void sl_hal_syscfg_set_systicextclken_cfgsystic(void);
+
+/*******************************************************************************
+ * @brief
+ * Clear SYSTICEXTCLKEN bit in CFGSYSTIC to zero.
+ ******************************************************************************/
+void sl_hal_syscfg_clear_systicextclken_cfgsystic(void);
+
+#ifdef __cplusplus
+}
+#endif
+#endif // SL_HAL_SYSCFG_H
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_sysrtc.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_sysrtc.h
index c15ff49c7..e3a9b8a40 100644
--- a/simplicity_sdk/platform/peripheral/inc/sl_hal_sysrtc.h
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_sysrtc.h
@@ -187,8 +187,7 @@ void sl_hal_sysrtc_disable(void);
* Waits for the SYSRTC to complete all synchronization of register changes
* and commands.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
__INLINE void sl_hal_sysrtc_wait_sync(void)
{
while ((SYSRTC0->EN & SYSRTC_EN_EN) && (SYSRTC0->SYNCBUSY != 0U)) {
@@ -282,8 +281,7 @@ __INLINE void sl_hal_sysrtc_unlock(void)
*
* @return Current SYSRTC counter value.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
__INLINE uint32_t sl_hal_sysrtc_get_counter(void)
{
// Wait for Counter to synchronize before getting value
@@ -329,8 +327,7 @@ void sl_hal_sysrtc_init_group(uint8_t group_number,
* Use a set of interrupt flags OR-ed together to set
* multiple interrupt sources for the given SYSRTC group.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
void sl_hal_sysrtc_enable_group_interrupts(uint8_t group_number,
uint32_t flags);
@@ -343,8 +340,7 @@ void sl_hal_sysrtc_enable_group_interrupts(uint8_t group_number,
* Use a set of interrupt flags OR-ed together to disable
* multiple interrupt sources for the given SYSRTC group.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
void sl_hal_sysrtc_disable_group_interrupts(uint8_t group_number,
uint32_t flags);
@@ -357,8 +353,7 @@ void sl_hal_sysrtc_disable_group_interrupts(uint8_t group_number,
* Use a set of interrupt flags OR-ed together to clear
* multiple interrupt sources for the given SYSRTC group.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
void sl_hal_sysrtc_clear_group_interrupts(uint8_t group_number,
uint32_t flags);
@@ -373,8 +368,7 @@ void sl_hal_sysrtc_clear_group_interrupts(uint8_t group_number,
* Returns a set of interrupt flags OR-ed together for multiple
* interrupt sources in the SYSRTC group.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t sl_hal_sysrtc_get_group_interrupts(uint8_t group_number);
/***************************************************************************//**
@@ -413,8 +407,7 @@ void sl_hal_sysrtc_set_group_interrupts(uint8_t group_number,
*
* @return Compare register value.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t sl_hal_sysrtc_get_group_compare_channel_value(uint8_t group_number,
uint8_t channel);
@@ -427,8 +420,7 @@ uint32_t sl_hal_sysrtc_get_group_compare_channel_value(uint8_t group_number,
*
* @param[in] value Compare register value.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
void sl_hal_sysrtc_set_group_compare_channel_value(uint8_t group_number,
uint8_t channel,
uint32_t value);
@@ -440,8 +432,7 @@ void sl_hal_sysrtc_set_group_compare_channel_value(uint8_t group_number,
*
* @return Capture register value.
******************************************************************************/
-SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PERIPHERAL_SYSRTC,
- SL_CODE_CLASS_TIME_CRITICAL)
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_HAL_SYSRTC, SL_CODE_CLASS_TIME_CRITICAL)
uint32_t sl_hal_sysrtc_get_group_capture_channel_value(uint8_t group_number);
/** @} (end addtogroup sysrtc) */
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_system.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_system.h
new file mode 100644
index 000000000..08e26b9b5
--- /dev/null
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_system.h
@@ -0,0 +1,146 @@
+/***************************************************************************//**
+ * @file
+ * @brief System API
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef _SL_HAL_SYSTEM_H
+#define _SL_HAL_SYSTEM_H
+
+#include "em_device.h"
+#include "sl_hal_system_generic.h"
+#include "sl_enum.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @addtogroup system SYSTEM - System Utils
+ * @brief System API
+ * @details
+ * This module contains functions to read information such as RAM and Flash size,
+ * device unique ID, chip revision, family, and part number from DEVINFO and
+ * SCB blocks. Functions to configure and read status from FPU are available for
+ * compatible devices.
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ******************************** ENUMS ************************************
+ ******************************************************************************/
+
+/// Family identifiers.
+SL_ENUM_GENERIC(sl_hal_system_part_family_t, uint32_t) {
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_21 = DEVINFO_PART_FAMILY_MG | (21 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty Gecko Series 2 Config 1 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_21 = DEVINFO_PART_FAMILY_FG | (21 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 1 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_BLUE_21 = DEVINFO_PART_FAMILY_BG | (21 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Blue Gecko Series 2 Config 1 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_RCP_21 = DEVINFO_PART_FAMILY_MR | (21 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty RCP Series 2 Config 1 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2)
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_22 = DEVINFO_PART_FAMILY_MG | (22 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty Gecko Series 2 Config 2 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_22 = DEVINFO_PART_FAMILY_FG | (22 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 2 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_BLUE_22 = DEVINFO_PART_FAMILY_BG | (22 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Blue Gecko Series 2 Config 2 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_EFM32_PEARL_22 = DEVINFO_PART_FAMILY_PG | (22 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFM32 Pearl Gecko Series 2 Config 2 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_3)
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_23 = DEVINFO_PART_FAMILY_FG | (23 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 3 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_ZEN_23 = DEVINFO_PART_FAMILY_ZG | (23 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Zen Gecko Series 2 Config 3 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_EFM32_PEARL_23 = DEVINFO_PART_FAMILY_PG | (23 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFM32 Pearl Gecko Series 2 Config 3 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_SIDEWALK_23 = DEVINFO_PART_FAMILY_SG | (23 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Side Walk Gecko Series 2 Config 3 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_4)
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_24 = DEVINFO_PART_FAMILY_MG | (24 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty Gecko Series 2 Config 4 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_24 = DEVINFO_PART_FAMILY_FG | (24 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 4 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_BLUE_24 = DEVINFO_PART_FAMILY_BG | (24 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Blue Gecko Series 2 Config 4 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_5)
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_25 = DEVINFO_PART_FAMILY_FG | (25 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 5 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_6)
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_26 = DEVINFO_PART_FAMILY_MG | (26 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty Gecko Series 2 Config 6 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_BLUE_26 = DEVINFO_PART_FAMILY_BG | (26 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Blue Gecko Series 2 Config 6 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_EFM32_PEARL_26 = DEVINFO_PART_FAMILY_PG | (26 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFM32 Pearl Gecko Series 2 Config 6 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_7)
+ SL_HAL_SYSTEM_PART_FAMILY_MIGHTY_27 = DEVINFO_PART_FAMILY_MG | (27 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Mighty Gecko Series 2 Config 7 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_BLUE_27 = DEVINFO_PART_FAMILY_BG | (27 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Blue Gecko Series 2 Config 7 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_8)
+ SL_HAL_SYSTEM_PART_FAMILY_FLEX_28 = DEVINFO_PART_FAMILY_FG | (28 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Flex Gecko Series 2 Config 8 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_ZEN_28 = DEVINFO_PART_FAMILY_ZG | (28 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Zen Gecko Series 2 Config 8 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_SIDEWALK_28 = DEVINFO_PART_FAMILY_SG | (28 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFR32 Side Walk Gecko Series 2 Config 8 Value Device Family
+ SL_HAL_SYSTEM_PART_FAMILY_EFM32_PEARL_28 = DEVINFO_PART_FAMILY_PG | (28 << _DEVINFO_PART_FAMILYNUM_SHIFT), ///< EFM32 Pearl Gecko Series 2 Config 8 Value Device Family
+#endif
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ SL_HAL_SYSTEM_PART_FAMILY_BLUETOOTH_301 = DEVINFO_PART0_PROTOCOL_BLUETOOTH \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 Bluetooth Config 1 Value Device Family (BG)
+ SL_HAL_SYSTEM_PART_FAMILY_PROPRIETARY_301 = DEVINFO_PART0_PROTOCOL_PROPRIETARY \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 Proprietary Config 1 Value Device Family (FG)
+ SL_HAL_SYSTEM_PART_FAMILY_FIFTEENPFOUR_301 = DEVINFO_PART0_PROTOCOL_FIFTEENPFOUR \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 15.4 Config 1 Value Device Family (MG)
+ SL_HAL_SYSTEM_PART_FAMILY_PEARL_301 = DEVINFO_PART0_PROTOCOL_PEARL \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 Pearl Config 1 Value Device Family (PG)
+ SL_HAL_SYSTEM_PART_FAMILY_WIFI_301 = DEVINFO_PART0_PROTOCOL_WIFI \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 Wifi Config 1 Value Device Family (WG)
+ SL_HAL_SYSTEM_PART_FAMILY_ZWAVE_301 = DEVINFO_PART0_PROTOCOL_ZWAVE \
+ | (0x33 << _DEVINFO_PART0_SERIES_SHIFT) \
+ | (0x30 << _DEVINFO_PART0_DIECODE0_SHIFT), ///< SI Series 3 Zwave Config 1 Value Device Family (ZG)
+#endif
+ SL_HAL_SYSTEM_PART_FAMILY_UNKNOWN = 0xFF ///< Unknown Device Family. Family ID is missing on unprogrammed parts.
+};
+
+/***************************************************************************//**
+ * @brief
+ * Get the MCU family identifier.
+ *
+ * @return
+ * Family identifier of MCU.
+ *
+ * @note
+ * This function retrieves family ID by reading the chip's device info
+ * structure in flash memory. Users can retrieve family ID directly
+ * by reading DEVINFO->PART item and decode with mask and shift
+ * \#defines defined in \_devinfo.h (refer to code
+ * below for details).
+ ******************************************************************************/
+sl_hal_system_part_family_t sl_hal_system_get_family(void);
+
+/** @} (end addtogroup system) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef _SL_HAL_SYSTEM_H */
diff --git a/simplicity_sdk/platform/peripheral/inc/sl_hal_system_generic.h b/simplicity_sdk/platform/peripheral/inc/sl_hal_system_generic.h
new file mode 100644
index 000000000..27c6f62c7
--- /dev/null
+++ b/simplicity_sdk/platform/peripheral/inc/sl_hal_system_generic.h
@@ -0,0 +1,341 @@
+/***************************************************************************//**
+ * @file
+ * @brief System API (Generic)
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef _SL_HAL_SYSTEM_GENERIC_H
+#define _SL_HAL_SYSTEM_GENERIC_H
+
+#include "sl_enum.h"
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @addtogroup system SYSTEM - System Utils
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ******************************** ENUMS ************************************
+ ******************************************************************************/
+
+/// Family security capability.
+SL_ENUM(sl_hal_system_security_capability_t) {
+ /// Unknown security capability.
+ SL_SYSTEM_SECURITY_CAPABILITY_UNKNOWN,
+ /// Security capability not applicable.
+ SL_SYSTEM_SECURITY_CAPABILITY_NA,
+ /// Basic security capability.
+ SL_SYSTEM_SECURITY_CAPABILITY_BASIC,
+ /// Root of Trust security capability.
+ SL_SYSTEM_SECURITY_CAPABILITY_ROT,
+ /// Secure Element security capability.
+ SL_SYSTEM_SECURITY_CAPABILITY_SE,
+ /// Secure Vault security capability.
+ SL_SYSTEM_SECURITY_CAPABILITY_VAULT
+};
+
+/// Floating point co-processor access modes.
+SL_ENUM_GENERIC(sl_hal_system_fpu_access_t, uint32_t) {
+ /// Access denied, any attempted access generates a NOCP UsageFault.
+ SL_SYSTEM_FPU_ACCESS_DENIED = (0x0 << 20),
+ /// Privileged access only, an unprivileged access generates a NOCP UsageFault.
+ SL_SYSTEM_FPU_ACCESS_PRIVILEGED_ONLY = (0x5 << 20),
+ /// Reserved.
+ SL_SYSTEM_FPU_ACCESS_RESERVED = (0xA << 20),
+ /// Full access.
+ SL_SYSTEM_FPU_ACCESS_FULL = (0xF << 20)
+};
+
+/*******************************************************************************
+ ******************************* STRUCTS ***********************************
+ ******************************************************************************/
+
+/// Chip revision details.
+typedef struct {
+ uint8_t minor; ///< Minor revision number.
+ uint8_t major; ///< Major revision number.
+ uint16_t part_number; ///< Device part number. (0xFFFF if unavailable)
+ uint16_t family; ///< Device family number. (0xFFFF if unavailable)
+} sl_hal_system_chip_revision_t;
+
+/// ADC Calibration DEVINFO Structures.
+typedef struct sl_hal_system_devinfo_adc_cal_data_t {
+ uint8_t trim_vros0;
+ uint8_t trim_vros1;
+ uint8_t trim_gain_4x;
+ uint8_t trim_gain_0x3_int;
+} sl_hal_system_devinfo_adc_cal_data_t;
+
+typedef struct sl_hal_system_devinfo_adc_offset_t {
+ uint8_t trim_off_1x;
+ uint8_t trim_off_2x;
+ uint8_t trim_off_4x;
+ uint8_t dummy_byte;
+} sl_hal_system_devinfo_adc_offset_t;
+
+typedef struct sl_hal_system_devinfo_adc_t {
+ sl_hal_system_devinfo_adc_cal_data_t cal_data;
+ sl_hal_system_devinfo_adc_offset_t offset;
+} sl_hal_system_devinfo_adc_t;
+
+/// Temperature DEVINFO Structure.
+typedef struct sl_hal_system_devinfo_temperature_t {
+ uint16_t emu_temp_room;
+ uint16_t cal_temp;
+} sl_hal_system_devinfo_temperature_t;
+
+/// Chip features Structure.
+typedef struct sl_hal_system_features {
+ char feature1;
+ char feature2;
+ char feature3;
+} sl_hal_system_features_t;
+
+/*******************************************************************************
+ ************************** GLOBAL CONSTANTS *******************************
+ ******************************************************************************/
+
+extern const sl_hal_system_devinfo_adc_t SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES;
+
+extern const sl_hal_system_devinfo_temperature_t SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES;
+
+/*******************************************************************************
+ ***************************** PROTOTYPES **********************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ * @brief
+ * Get the chip revision.
+ *
+ * @param [out]
+ * rev Pointer to return the chip revision to.
+ *
+ * @warning
+ * The chip revision structure may be returned with either the partnumber or
+ * family unpopulated (0xFFFF) depending on the device.
+ ******************************************************************************/
+void sl_hal_system_get_chip_revision(sl_hal_system_chip_revision_t *rev);
+
+/***************************************************************************//**
+ * @brief
+ * Get DEVINFO revision.
+ *
+ * @return
+ * Revision of the DEVINFO contents.
+ ******************************************************************************/
+uint8_t sl_hal_system_get_devinfo_rev(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the default factory calibration value for HFRCO oscillator.
+ *
+ * @return
+ * HFRCOCAL default value.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrco_default_calibration(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the speed factory calibration value for HFRCO oscillator.
+ *
+ * @return
+ * HFRCOCAL speed value.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrco_speed_calibration(void);
+
+/***************************************************************************//**
+ * @brief Get the HFRCO calibration based on the frequency band.
+ *
+ * @param[in] frequency
+ * Frequency for which to retrieve calibration.
+ *
+ * @return
+ * HFRCOCAL value for the given band.
+ *
+ * @note
+ * Those calibrations are only valid for the HFRCO oscillator when used with
+ * the DPLL module.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrcodpll_band_calibration(uint32_t frequency);
+
+/***************************************************************************//**
+ * @brief
+ * Get a factory calibration value for HFRCOCEM23 oscillator.
+ *
+ * @return
+ * HFRCOEM23 calibration value.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrcoem23_calibration(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get a factory calibration value for HFXOCAL.
+ *
+ * @return
+ * HFXOCAL value.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfxocal(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get family security capability.
+ *
+ * @note
+ * This function retrieves the family security capability based on the
+ * device number.
+ *
+ * @return
+ * Security capability of MCU.
+ ******************************************************************************/
+sl_hal_system_security_capability_t sl_hal_system_get_security_capability(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the unique number for this device.
+ *
+ * @return
+ * Unique number for this device.
+ ******************************************************************************/
+uint64_t sl_hal_system_get_unique(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the production revision for this part.
+ *
+ * @return
+ * Production revision for this part.
+ ******************************************************************************/
+uint8_t sl_hal_system_get_prod_rev(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the SRAM Base Address.
+ *
+ * @return
+ * Base address SRAM (32-bit unsigned integer).
+ ******************************************************************************/
+uint32_t sl_hal_system_get_sram_base_address(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the SRAM size (in KB).
+ *
+ * @note
+ * This function retrieves SRAM size by reading the chip device
+ * info structure. If your binary is made for one specific device only,
+ * use SRAM_SIZE instead.
+ *
+ * @return
+ * Size of internal SRAM (in KB).
+ ******************************************************************************/
+uint16_t sl_hal_system_get_sram_size(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the flash size (in KB).
+ *
+ * @note
+ * This function retrieves flash size by reading the chip device info structure or
+ * DEVINFO->EMBMSIZE (embedded flash. not the case for S3 for now) or
+ * user config (external flash).
+ *
+ * @return
+ * Size of flash (in KB).
+ ******************************************************************************/
+uint16_t sl_hal_system_get_flash_size(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the flash page size in bytes.
+ *
+ * @note
+ * This function retrieves flash page size by reading the SE or
+ * user config (external flash)
+ *
+ * @return
+ * Page size of flash in bytes.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_flash_page_size(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the MCU part number.
+ *
+ * @return
+ * The part number of MCU.
+ ******************************************************************************/
+uint16_t sl_hal_system_get_part_number(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the SoC or MCU features.
+ *
+ * @return
+ * The features of the current SoC or MCU.
+ *
+ * @note The features can be decoded by referring to the SoC or MCU datasheet.
+ ******************************************************************************/
+sl_hal_system_features_t sl_hal_system_get_part_features(void);
+
+/***************************************************************************//**
+ * @brief
+ * Get the temperature information.
+ *
+ * @param[out] info
+ * Pointer to variable where to store the temperature info.
+ ******************************************************************************/
+void sl_hal_system_get_temperature_info(sl_hal_system_devinfo_temperature_t *info);
+
+/***************************************************************************//**
+ * @brief
+ * Set floating point co-processor (FPU) access mode.
+ *
+ * @param[in] accessMode
+ * Floating point co-processor access mode.
+ ******************************************************************************/
+void sl_hal_system_fpu_set_access_mode(sl_hal_system_fpu_access_t access_mode);
+
+/***************************************************************************//**
+ * @brief Get the ADC calibration info.
+ *
+ * @param[out] info
+ * Pointer to variable where to store the adc calibration info.
+ ******************************************************************************/
+void sl_hal_system_get_adc_calibration_info(sl_hal_system_devinfo_adc_t *info);
+
+/** @} (end addtogroup system) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #ifndef _SL_HAL_SYSTEM_GENERIC_H */
diff --git a/simplicity_sdk/platform/peripheral/src/sl_hal_gpio.c b/simplicity_sdk/platform/peripheral/src/sl_hal_gpio.c
index a35e4cd76..c941bc683 100644
--- a/simplicity_sdk/platform/peripheral/src/sl_hal_gpio.c
+++ b/simplicity_sdk/platform/peripheral/src/sl_hal_gpio.c
@@ -81,18 +81,107 @@ extern __INLINE void sl_hal_gpio_enable_debug_swd_io(bool enable);
* Sets the mode for GPIO pin.
******************************************************************************/
void sl_hal_gpio_set_pin_mode(const sl_gpio_t *gpio,
- sl_hal_gpio_mode_t mode,
+ sl_gpio_mode_t mode,
bool output_value)
{
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
- EFM_ASSERT(SL_HAL_GPIO_MODE_VALID(mode));
+ sl_gpio_mode_t gpio_mode = SL_GPIO_MODE_DISABLED;
+
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
EFM_ASSERT(sl_hal_gpio_get_lock_status() == 0);
+ switch (mode) {
+#if defined(_GPIO_P_MODEL_MODE0_DISABLED)
+ case SL_GPIO_MODE_DISABLED:
+ gpio_mode = _GPIO_P_MODEL_MODE0_DISABLED;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUT)
+ case SL_GPIO_MODE_INPUT:
+ gpio_mode = _GPIO_P_MODEL_MODE0_INPUT;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUTPULL)
+ case SL_GPIO_MODE_INPUT_PULL:
+ gpio_mode = _GPIO_P_MODEL_MODE0_INPUTPULL;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUTPULLFILTER)
+ case SL_GPIO_MODE_INPUT_PULL_FILTER:
+ gpio_mode = _GPIO_P_MODEL_MODE0_INPUTPULLFILTER;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_PUSHPULL)
+ case SL_GPIO_MODE_PUSH_PULL:
+ gpio_mode = _GPIO_P_MODEL_MODE0_PUSHPULL;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_PUSHPULLALT)
+ case SL_GPIO_MODE_PUSH_PULL_ALTERNATE:
+ gpio_mode = _GPIO_P_MODEL_MODE0_PUSHPULLALT;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDOR)
+ case SL_GPIO_MODE_WIRED_OR:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDOR;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDORPULLDOWN)
+ case SL_GPIO_MODE_WIRED_OR_PULL_DOWN:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDAND)
+ case SL_GPIO_MODE_WIRED_AND:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDAND;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDFILTER)
+ case SL_GPIO_MODE_WIRED_AND_FILTER:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDFILTER;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDPULLUP)
+ case SL_GPIO_MODE_WIRED_AND_PULLUP:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDPULLUP;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER)
+ case SL_GPIO_MODE_WIRED_AND_PULLUP_FILTER:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALT)
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDALT;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTFILTER)
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_FILTER:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP)
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP;
+ break;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER)
+ case SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP_FILTER:
+ gpio_mode = _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER;
+ break;
+#endif
+ default:
+ EFM_ASSERT(false);
+ break;
+ }
+
+ EFM_ASSERT(SL_HAL_GPIO_MODE_IS_VALID(gpio_mode));
+
// If disabling a pin, do not modify DOUT to reduce the chance of
// a glitch/spike (may not be sufficient precaution in all use cases).
// As mode settings are dependent on DOUT values, setting output value
- // prior to mode. @ref enum - sl_hal_gpio_mode_t
- if (mode != SL_HAL_GPIO_MODE_DISABLED) {
+ // prior to mode. @ref enum - sl_gpio_mode_t
+ if (mode != SL_GPIO_MODE_DISABLED) {
if (output_value) {
sl_hal_gpio_set_pin(gpio);
} else {
@@ -103,15 +192,15 @@ void sl_hal_gpio_set_pin_mode(const sl_gpio_t *gpio,
// There are two registers controlling the pins for each port.
// The MODEL register controls pins 0-7 and MODEH controls pins 8-15.
if (gpio->pin < 8) {
- sl_hal_bus_reg_write_mask(&(GPIO->P[gpio->port].MODEL), 0xFu << (gpio->pin * 4), mode << (gpio->pin * 4));
+ sl_hal_bus_reg_write_mask(&(GPIO->P[gpio->port].MODEL), 0xFu << (gpio->pin * 4), gpio_mode << (gpio->pin * 4));
} else {
- sl_hal_bus_reg_write_mask(&(GPIO->P[gpio->port].MODEH), 0xFu << ((gpio->pin - 8) * 4), mode << ((gpio->pin - 8) * 4));
+ sl_hal_bus_reg_write_mask(&(GPIO->P[gpio->port].MODEH), 0xFu << ((gpio->pin - 8) * 4), gpio_mode << ((gpio->pin - 8) * 4));
}
- // SL_HAL_GPIO_MODE_DISABLED based on DOUT Value (low/high) act as two different configurations.
+ // SL_GPIO_MODE_DISABLED based on DOUT Value (low/high) act as two different configurations.
// By setting mode to disabled first and then modifying the DOUT value, so that
// previous mode configuration on given pin not effected.
- if (mode == SL_HAL_GPIO_MODE_DISABLED) {
+ if (mode == SL_GPIO_MODE_DISABLED) {
if (output_value) {
sl_hal_gpio_set_pin(gpio);
} else {
@@ -123,17 +212,88 @@ void sl_hal_gpio_set_pin_mode(const sl_gpio_t *gpio,
/***************************************************************************//**
* Get the mode for a GPIO pin.
******************************************************************************/
-sl_hal_gpio_mode_t sl_hal_gpio_get_pin_mode(const sl_gpio_t *gpio)
+sl_gpio_mode_t sl_hal_gpio_get_pin_mode(const sl_gpio_t *gpio)
{
- sl_hal_gpio_mode_t mode;
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ sl_gpio_mode_t mode = SL_GPIO_MODE_DISABLED;
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ // Determine the current mode of the GPIO pin based on the pin number.
if (gpio->pin < 8) {
- mode = (sl_hal_gpio_mode_t) ((GPIO->P[gpio->port].MODEL >> (gpio->pin * 4)) & 0xF);
+ mode = (sl_gpio_mode_t) ((GPIO->P[gpio->port].MODEL >> (gpio->pin * 4)) & 0xF);
} else {
- mode = (sl_hal_gpio_mode_t) ((GPIO->P[gpio->port].MODEH >> ((gpio->pin - 8) * 4)) & 0xF);
+ mode = (sl_gpio_mode_t) ((GPIO->P[gpio->port].MODEH >> ((gpio->pin - 8) * 4)) & 0xF);
+ }
+
+ // Map the hardware-specific mode to the corresponding sl_gpio_mode_t value
+ switch (mode) {
+#if defined(_GPIO_P_MODEL_MODE0_DISABLED)
+ case _GPIO_P_MODEL_MODE0_DISABLED:
+ return SL_GPIO_MODE_DISABLED;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUT)
+ case _GPIO_P_MODEL_MODE0_INPUT:
+ return SL_GPIO_MODE_INPUT;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUTPULL)
+ case _GPIO_P_MODEL_MODE0_INPUTPULL:
+ return SL_GPIO_MODE_INPUT_PULL;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_INPUTPULLFILTER)
+ case _GPIO_P_MODEL_MODE0_INPUTPULLFILTER:
+ return SL_GPIO_MODE_INPUT_PULL_FILTER;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_PUSHPULL)
+ case _GPIO_P_MODEL_MODE0_PUSHPULL:
+ return SL_GPIO_MODE_PUSH_PULL;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_PUSHPULLALT)
+ case _GPIO_P_MODEL_MODE0_PUSHPULLALT:
+ return SL_GPIO_MODE_PUSH_PULL_ALTERNATE;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDOR)
+ case _GPIO_P_MODEL_MODE0_WIREDOR:
+ return SL_GPIO_MODE_WIRED_OR;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDORPULLDOWN)
+ case _GPIO_P_MODEL_MODE0_WIREDORPULLDOWN:
+ return SL_GPIO_MODE_WIRED_OR_PULL_DOWN;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDAND)
+ case _GPIO_P_MODEL_MODE0_WIREDAND:
+ return SL_GPIO_MODE_WIRED_AND;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDFILTER)
+ case _GPIO_P_MODEL_MODE0_WIREDANDFILTER:
+ return SL_GPIO_MODE_WIRED_AND_FILTER;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDPULLUP)
+ case _GPIO_P_MODEL_MODE0_WIREDANDPULLUP:
+ return SL_GPIO_MODE_WIRED_AND_PULLUP;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER)
+ case _GPIO_P_MODEL_MODE0_WIREDANDPULLUPFILTER:
+ return SL_GPIO_MODE_WIRED_AND_PULLUP_FILTER;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALT)
+ case _GPIO_P_MODEL_MODE0_WIREDANDALT:
+ return SL_GPIO_MODE_WIRED_AND_ALTERNATE;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTFILTER)
+ case _GPIO_P_MODEL_MODE0_WIREDANDALTFILTER:
+ return SL_GPIO_MODE_WIRED_AND_ALTERNATE_FILTER;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP)
+ case _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUP:
+ return SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP;
+#endif
+#if defined(_GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER)
+ case _GPIO_P_MODEL_MODE0_WIREDANDALTPULLUPFILTER:
+ return SL_GPIO_MODE_WIRED_AND_ALTERNATE_PULLUP_FILTER;
+#endif
+ default:
+ EFM_ASSERT(false);
+ return mode; // returning the default state
}
- return mode;
}
/***************************************************************************//**
@@ -143,11 +303,11 @@ int32_t sl_hal_gpio_configure_external_interrupt(const sl_gpio_t *gpio,
int32_t int_no,
sl_gpio_interrupt_flag_t flags)
{
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
EFM_ASSERT(SL_GPIO_FLAG_IS_VALID(flags));
EFM_ASSERT(sl_hal_gpio_get_lock_status() == 0);
- if (int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) {
+ if (int_no != SL_GPIO_INTERRUPT_UNAVAILABLE && int_no >= 0) {
#if defined(_GPIO_EXTIPINSELL_MASK)
EFM_ASSERT(SL_HAL_GPIO_INTNO_PIN_VALID(int_no, gpio->pin));
#endif
@@ -162,7 +322,7 @@ int32_t sl_hal_gpio_configure_external_interrupt(const sl_gpio_t *gpio,
int_no = sl_hal_gpio_get_external_interrupt_number(gpio->pin, interrupts_enabled);
}
- if (int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) {
+ if (int_no != SL_GPIO_INTERRUPT_UNAVAILABLE && int_no >= 0) {
if (int_no < 8) {
// The EXTIPSELL register controls pins 0-7 of the interrupt configuration.
#if defined(_GPIO_EXTIPSELL_EXTIPSEL0_MASK)
@@ -242,7 +402,7 @@ int32_t sl_hal_gpio_configure_wakeup_em4_external_interrupt(const sl_gpio_t *gpi
int32_t int_no,
bool polarity)
{
- EFM_ASSERT(SL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
+ EFM_ASSERT(SL_HAL_GPIO_PORT_PIN_IS_VALID(gpio->port, gpio->pin));
EFM_ASSERT(sl_hal_gpio_get_lock_status() == 0);
int32_t em4_int_no = sl_hal_gpio_get_em4_interrupt_number(gpio);
@@ -257,7 +417,7 @@ int32_t sl_hal_gpio_configure_wakeup_em4_external_interrupt(const sl_gpio_t *gpi
if (int_no != SL_GPIO_INTERRUPT_UNAVAILABLE) {
// GPIO pin mode set.
- sl_hal_gpio_set_pin_mode(gpio, SL_HAL_GPIO_MODE_INPUT_PULL_FILTER, (unsigned int)!polarity);
+ sl_hal_gpio_set_pin_mode(gpio, SL_GPIO_MODE_INPUT_PULL_FILTER, (unsigned int)!polarity);
// Enable EM4WU function and set polarity.
uint32_t polarityMask = (uint32_t)polarity << (int_no + _GPIO_EM4WUEN_EM4WUEN_SHIFT);
diff --git a/simplicity_sdk/platform/peripheral/src/sl_hal_system.c b/simplicity_sdk/platform/peripheral/src/sl_hal_system.c
new file mode 100644
index 000000000..baa23e80d
--- /dev/null
+++ b/simplicity_sdk/platform/peripheral/src/sl_hal_system.c
@@ -0,0 +1,649 @@
+/***************************************************************************//**
+ * @file
+ * @brief Universal asynchronous receiver/transmitter (EUSART) peripheral API
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sl_hal_system.h"
+#include "sl_hal_syscfg.h"
+#include "em_device.h"
+#include
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+#include "sl_se_manager.h"
+#include "sli_se_manager_device_data.h"
+#endif
+#include "sl_status.h"
+#include "sl_assert.h"
+/***************************************************************************//**
+ * @addtogroup system
+ * @{
+ ******************************************************************************/
+
+/*******************************************************************************
+ ************************** DEFINES *******************************
+ ******************************************************************************/
+
+/** @cond DO_NOT_INCLUDE_WITH_DOXYGEN */
+
+/* Bit mask used to extract the part number value without the new naming
+ * bitfield. */
+#define SYSCFG_CHIPREV_PARTNUMBER1 0xFE0
+#define SYSCFG_CHIPREV_PARTNUMBER0 0xF
+
+/** @endcond */
+
+#define HFRCO_DPLL_FREQUENCY_TABLE_SIZE 11
+
+#define DEVINFO_TEMPERATURE_CALTEMP_INTEGER_SHIFT 4
+
+/*******************************************************************************
+ ******************************* TYPEDEF ***********************************
+ ******************************************************************************/
+
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+typedef struct hfrco_dpll_cal_element {
+ uint32_t min_freq;
+ uint32_t max_freq;
+} hfrco_dpll_cal_element_t;
+#endif
+
+/*******************************************************************************
+ ****************************** CONSTANTS **********************************
+ ******************************************************************************/
+const sl_hal_system_devinfo_adc_t SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES = {
+ .cal_data = {
+ .trim_vros0 = 0,
+ .trim_vros1 = 0,
+ .trim_gain_4x = 0,
+ .trim_gain_0x3_int = 0
+ },
+ .offset = {
+ .trim_off_1x = 0,
+ .trim_off_2x = 0,
+ .trim_off_4x = 0
+ }
+};
+
+const sl_hal_system_devinfo_temperature_t SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES = {
+ .emu_temp_room = 0,
+ .cal_temp = 0
+};
+
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+static const hfrco_dpll_cal_element_t HFRCO_DPLL_FREQUENCY_TABLE[HFRCO_DPLL_FREQUENCY_TABLE_SIZE] = {
+ { .min_freq = 16000000, .max_freq = 20000000 }, // 18MHz calibration central frequency
+ { .min_freq = 20000000, .max_freq = 24500000 }, // 22MHz calibration central frequency
+ { .min_freq = 24500000, .max_freq = 30000000 }, // 27MHz calibration central frequency
+ { .min_freq = 30000000, .max_freq = 36000000 }, // 33MHz calibration central frequency
+ { .min_freq = 36000000, .max_freq = 42500000 }, // 39MHz calibration central frequency
+ { .min_freq = 42500000, .max_freq = 50500000 }, // 46MHz calibration central frequency
+ { .min_freq = 50500000, .max_freq = 60000000 }, // 55MHz calibration central frequency
+ { .min_freq = 60000000, .max_freq = 70000000 }, // 65MHz calibration central frequency
+ { .min_freq = 70000000, .max_freq = 80000000 }, // 75MHz calibration central frequency
+ { .min_freq = 80000000, .max_freq = 90000000 }, // 85MHz calibration central frequency
+ { .min_freq = 90000000, .max_freq = 100000000 } // 95MHz calibration central frequency
+};
+#endif
+
+/*******************************************************************************
+ ****************************** UTILITY *************************************
+ ******************************************************************************/
+
+#if defined(_SILICON_LABS_32B_SERIES_2)
+/***************************************************************************//**
+ * @brief Get the nth ASCII character of a specified number.
+ *
+ * @param[in] input_number
+ * The number where the digit will be taken.
+ *
+ * @param[in] position
+ * The digit position.
+ *
+ * @return
+ * The ASCII value of the specified digit.
+ ******************************************************************************/
+char sli_get_n_digit(uint16_t input_number, uint8_t position)
+{
+ uint32_t exp[] = { 10, 100, 1000, 10000, 100000 };
+ uint32_t number = input_number;
+
+ if (position > 4) {
+ EFM_ASSERT(false);
+ return '0';
+ }
+
+ number = (number % exp[position]);
+
+ if (position != 0) {
+ number = number / (exp[position - 1]);
+ }
+
+ return (char)number + '0';
+}
+#endif
+
+#if defined(_DEVINFO_PART0_DIECODE0_MASK) && defined(_SILICON_LABS_SECURITY_FEATURE_VAULT)
+/***************************************************************************//**
+ * @brief Convert hexadecimal ASCII character to integer value.
+ *
+ * @param[in] character
+ * The character to be coverted to a number.
+ *
+ * @return
+ * The uint8_t value of the character given in parameter.
+ ******************************************************************************/
+uint8_t sli_hex_ascii_to_value(char character)
+{
+ if (character >= '0' && character <= '9') {
+ return character - '0';
+ } else if (character >= 'A' && character <= 'F') {
+ return character - 'A';
+ }
+
+ return 0U;
+}
+#endif
+
+/*******************************************************************************
+ ************************** GLOBAL FUNCTIONS *******************************
+ ******************************************************************************/
+
+/*******************************************************************************
+ * @brief Get CHIPREV register.
+ ******************************************************************************/
+void sl_hal_system_get_chip_revision(sl_hal_system_chip_revision_t *rev)
+{
+#if defined(CMU_CLKEN0_SYSCFG)
+ CMU->CLKEN0_SET = CMU_CLKEN0_SYSCFG;
+#endif
+
+ uint32_t chip_rev = sl_hal_syscfg_read_chip_rev();
+
+ rev->minor = (chip_rev & _SYSCFG_CHIPREV_MINOR_MASK) >> _SYSCFG_CHIPREV_MINOR_SHIFT;
+ rev->major = (chip_rev & _SYSCFG_CHIPREV_MAJOR_MASK) >> _SYSCFG_CHIPREV_MAJOR_SHIFT;
+#if defined(_SYSCFG_CHIPREV_PARTNUMBER_MASK)
+ rev->part_number = ((chip_rev & SYSCFG_CHIPREV_PARTNUMBER1) >> 5) | (chip_rev & SYSCFG_CHIPREV_PARTNUMBER0);
+ rev->family = (uint16_t)0xFFFF;
+#elif defined(_SYSCFG_CHIPREV_FAMILY_MASK)
+ rev->part_number = (uint16_t)0xFFFF;
+ rev->family = (chip_rev & _SYSCFG_CHIPREV_FAMILY_MASK) >> _SYSCFG_CHIPREV_FAMILY_SHIFT;
+#else
+ #error No Chip Revision Part Number or Family
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the MCU family identifier.
+ ******************************************************************************/
+sl_hal_system_part_family_t sl_hal_system_get_family(void)
+{
+#if defined(_DEVINFO_PART_FAMILY_MASK)
+ return (DEVINFO->PART & (_DEVINFO_PART_FAMILY_MASK
+ | _DEVINFO_PART_FAMILYNUM_MASK));
+#else
+ return (DEVINFO->PART0 & (_DEVINFO_PART0_PROTOCOL_MASK
+ | _DEVINFO_PART0_SERIES_MASK
+ | _DEVINFO_PART0_DIECODE0_MASK));
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get DEVINFO revision.
+ ******************************************************************************/
+uint8_t sl_hal_system_get_devinfo_rev(void)
+{
+#if defined(_DEVINFO_INFO_DEVINFOREV_MASK)
+ return (uint8_t)((DEVINFO->INFO & _DEVINFO_INFO_DEVINFOREV_MASK)
+ >> _DEVINFO_INFO_DEVINFOREV_SHIFT);
+#elif defined(_DEVINFO_REVISION_DEVINFOREV_MASK)
+ return (uint8_t)((DEVINFO->REVISION & _DEVINFO_REVISION_DEVINFOREV_MASK)
+ >> _DEVINFO_REVISION_DEVINFOREV_SHIFT);
+#else
+#error (sl_hal_system.c): Location of devinfo revision is not defined.
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the default factory calibration value for HFRCO oscillator.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrco_default_calibration(void)
+{
+#if defined(_DEVINFO_HFRCOCALDEFAULT_MASK)
+ return DEVINFO->HFRCOCALDEFAULT;
+#else
+ return 0;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the speed factory calibration value for HFRCO oscillator.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrco_speed_calibration(void)
+{
+#if defined(_DEVINFO_HFRCOCALSPEED_MASK)
+ return DEVINFO->HFRCOCALSPEED;
+#else
+ return 0;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the HFRCO calibration based on the frequency band.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrcodpll_band_calibration(uint32_t frequency)
+{
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ sl_status_t status;
+ uint8_t band_index = 0xFF;
+ sl_se_command_context_t se_command_ctx;
+ sli_se_device_data_t otp_section_id = (sli_se_device_data_t)(SLI_SE_DEVICE_DATA_DI0 + DEVINFO_GP_FRAGMENT_INDEX);
+ uint32_t offset;
+ uint32_t calibration_value = 0;
+
+ for (uint8_t i = 0; i < HFRCO_DPLL_FREQUENCY_TABLE_SIZE; i++) {
+ if ((frequency >= HFRCO_DPLL_FREQUENCY_TABLE[i].min_freq)
+ && (frequency <= HFRCO_DPLL_FREQUENCY_TABLE[i].max_freq)) {
+ band_index = i;
+ break;
+ }
+ }
+
+ if (band_index >= HFRCO_DPLL_FREQUENCY_TABLE_SIZE) {
+ return 0;
+ }
+
+ // Calculate memory offset based on the band index we want.
+ offset = (band_index * 4) + DEVINFO_GP_HFRCODPLLBAND0_OFFSET;
+
+ // Initialize command context
+ status = sl_se_init_command_context(&se_command_ctx);
+ if (status != SL_STATUS_OK) {
+ return 0;
+ }
+
+ // Send the SE command to retrieve the HFRCODPLL calibration for a given band from the DEVINFO OTP section
+ status = sli_se_device_data_read_word(&se_command_ctx, otp_section_id, offset, &calibration_value);
+ if (status != SL_STATUS_OK) {
+ return 0;
+ }
+
+ return calibration_value;
+#else
+ (void)frequency;
+ return 0;
+#endif
+}
+
+/***************************************************************************//**
+ * Get a factory calibration value for HFRCOCEM23 oscillator.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfrcoem23_calibration(void)
+{
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ sl_status_t status;
+ sl_se_command_context_t se_command_ctx;
+ sli_se_device_data_t otp_section_id = (sli_se_device_data_t)(SLI_SE_DEVICE_DATA_DI0 + DEVINFO_GP_FRAGMENT_INDEX);
+ uint32_t offset = DEVINFO_GP_HFRCOEM23DEFAULT_OFFSET;
+ uint32_t calibration_value = 0;
+
+ // Initialize command context
+ status = sl_se_init_command_context(&se_command_ctx);
+ if (status != SL_STATUS_OK) {
+ return 0;
+ }
+
+ // Send the SE command to retrieve the HFRCOEM23 calibration from the DEVINFO OTP section
+ status = sli_se_device_data_read_word(&se_command_ctx, otp_section_id, offset, &calibration_value);
+ if (status != SL_STATUS_OK) {
+ return 0;
+ }
+
+ return calibration_value;
+#else
+ return 0;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get a factory calibration value for HFXOCAL.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_hfxocal(void)
+{
+#if defined(_DEVINFO_HFXOCAL_MASK)
+ return DEVINFO->HFXOCAL;
+#else
+ return 0;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get family security capability.
+ ******************************************************************************/
+sl_hal_system_security_capability_t sl_hal_system_get_security_capability(void)
+{
+ sl_hal_system_security_capability_t sc = SL_SYSTEM_SECURITY_CAPABILITY_UNKNOWN;
+
+ uint16_t mcu_feature_set_major;
+ uint16_t device_number;
+ device_number = sl_hal_system_get_part_number();
+ mcu_feature_set_major = 'A' + (device_number / 1000);
+#if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2)
+ // override feature set since BRD4182A Rev A00 -> rev B02 are marked "A"
+ mcu_feature_set_major = 'C';
+#endif
+
+ switch (mcu_feature_set_major) {
+ case 'A':
+ sc = SL_SYSTEM_SECURITY_CAPABILITY_SE;
+ break;
+
+ case 'B':
+ sc = SL_SYSTEM_SECURITY_CAPABILITY_VAULT;
+ break;
+
+ case 'C':
+ sc = SL_SYSTEM_SECURITY_CAPABILITY_ROT;
+ break;
+
+ default:
+ sc = SL_SYSTEM_SECURITY_CAPABILITY_UNKNOWN;
+ break;
+ }
+
+ return sc;
+}
+
+/***************************************************************************//**
+ * @brief Get the unique number for this device.
+ ******************************************************************************/
+uint64_t sl_hal_system_get_unique(void)
+{
+ uint32_t tmp = DEVINFO->EUI64L;
+ return ((uint64_t)DEVINFO->EUI64H << 32) | tmp;
+}
+
+/***************************************************************************//**
+ * @brief Get the production revision for this part.
+ ******************************************************************************/
+uint8_t sl_hal_system_get_prod_rev(void)
+{
+#if defined(_DEVINFO_INFO_PRODREV_MASK)
+ return (uint8_t)((DEVINFO->INFO & _DEVINFO_INFO_PRODREV_MASK)
+ >> _DEVINFO_INFO_PRODREV_SHIFT);
+#elif defined(_DEVINFO_REVISION_PRODREV_MASK)
+ return (uint8_t)((DEVINFO->REVISION & _DEVINFO_REVISION_PRODREV_MASK)
+ >> _DEVINFO_REVISION_PRODREV_SHIFT);
+#else
+#error (sl_hal_system.c): Location of production revision is not defined.
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the SRAM Base Address.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_sram_base_address(void)
+{
+ return SRAM_BASE;
+}
+
+/***************************************************************************//**
+ * @brief Get the SRAM size (in KB).
+ ******************************************************************************/
+uint16_t sl_hal_system_get_sram_size(void)
+{
+#if defined(_DEVINFO_MSIZE_SRAM_MASK)
+ return (uint16_t)((DEVINFO->MSIZE & _DEVINFO_MSIZE_SRAM_MASK)
+ >> _DEVINFO_MSIZE_SRAM_SHIFT);
+#elif defined(_DEVINFO_EMBSIZE_RAM_MASK)
+ return (uint16_t)((DEVINFO->EMBSIZE & _DEVINFO_EMBSIZE_RAM_MASK)
+ >> _DEVINFO_EMBSIZE_RAM_SHIFT);
+#else
+ #error (sl_hal_system.c): Location of SRAM Size is not defined.
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the flash size (in KB).
+ ******************************************************************************/
+uint16_t sl_hal_system_get_flash_size(void)
+{
+#if defined(_DEVINFO_MSIZE_FLASH_MASK)
+ return (uint16_t)((DEVINFO->MSIZE & _DEVINFO_MSIZE_FLASH_MASK)
+ >> _DEVINFO_MSIZE_FLASH_SHIFT);
+#elif defined(_DEVINFO_STACKMSIZE_FLASH_MASK)
+ uint16_t stacked_flach_size = (uint16_t)((DEVINFO->STACKMSIZE & _DEVINFO_STACKMSIZE_FLASH_MASK)
+ >> _DEVINFO_STACKMSIZE_FLASH_SHIFT);
+
+ if (stacked_flach_size == 0) {
+ // Defined in linker script for external flash provided by customers.
+ extern uint32_t __flash_size__;
+ // Get flash size in kB.
+ stacked_flach_size = (uint16_t)(uintptr_t)&__flash_size__ / 1024;
+ }
+
+ return stacked_flach_size;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the flash page size in bytes.
+ ******************************************************************************/
+uint32_t sl_hal_system_get_flash_page_size(void)
+{
+#if defined(_DEVINFO_MEMINFO_FLASHPAGESIZE_MASK)
+ uint32_t tmp;
+ tmp = (DEVINFO->MEMINFO & _DEVINFO_MEMINFO_FLASHPAGESIZE_MASK)
+ >> _DEVINFO_MEMINFO_FLASHPAGESIZE_SHIFT;
+ return 1UL << ((tmp + 10UL) & 0x1FUL);
+#else
+ // Defined in linker script for external flash provided by customers.
+ extern uint32_t __flash_page_size__;
+ return (uintptr_t)&__flash_page_size__;
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the MCU part number.
+ ******************************************************************************/
+uint16_t sl_hal_system_get_part_number(void)
+{
+#if defined(_DEVINFO_PART_DEVICENUM_MASK)
+ return (uint16_t)((DEVINFO->PART & _DEVINFO_PART_DEVICENUM_MASK)
+ >> _DEVINFO_PART_DEVICENUM_SHIFT);
+#elif defined(_DEVINFO_PART0_DIECODE0_MASK) && defined(_SILICON_LABS_SECURITY_FEATURE_VAULT)
+ // Encode features to the series 2 format.
+ // Add security level vault high for SIxG301.
+ uint16_t device_number = 1000;
+ uint32_t register_value = (DEVINFO->PART1 & _DEVINFO_PART1_FEATURE1_MASK) >> _DEVINFO_PART1_FEATURE1_SHIFT;
+
+ device_number = sli_hex_ascii_to_value((char)register_value) * 100;
+
+ register_value = (DEVINFO->PART1 & _DEVINFO_PART1_FEATURE2_MASK) >> _DEVINFO_PART1_FEATURE2_SHIFT;
+ device_number += sli_hex_ascii_to_value((char)register_value) * 10;
+
+ register_value = (DEVINFO->PART2 & _DEVINFO_PART2_FEATURE3_MASK) >> _DEVINFO_PART2_FEATURE3_SHIFT;
+ device_number += sli_hex_ascii_to_value((char)register_value);
+
+ return device_number;
+#else
+#error (em_system.c): Location of device part number is not defined.
+#endif
+}
+
+/***************************************************************************//**
+ * @brief Get the SoC or MCU features.
+ ******************************************************************************/
+sl_hal_system_features_t sl_hal_system_get_part_features(void)
+{
+ sl_hal_system_features_t part_features = { .feature1 = '0', .feature2 = '0', .feature3 = '0' };
+
+#if defined(_SILICON_LABS_32B_SERIES_2)
+ uint16_t device_number = ((DEVINFO->PART & _DEVINFO_PART_DEVICENUM_MASK) >> _DEVINFO_PART_DEVICENUM_SHIFT);
+
+ part_features.feature1 = sli_get_n_digit(device_number, 2);
+ part_features.feature2 = sli_get_n_digit(device_number, 1);
+ part_features.feature3 = sli_get_n_digit(device_number, 0);
+
+#elif defined(_SILICON_LABS_32B_SERIES_3)
+
+ part_features.feature1 = (DEVINFO->PART1 & _DEVINFO_PART1_FEATURE1_MASK) >> _DEVINFO_PART1_FEATURE1_SHIFT;
+ part_features.feature2 = (DEVINFO->PART1 & _DEVINFO_PART1_FEATURE2_MASK) >> _DEVINFO_PART1_FEATURE2_SHIFT;
+ part_features.feature3 = (DEVINFO->PART2 & _DEVINFO_PART2_FEATURE3_MASK) >> _DEVINFO_PART2_FEATURE3_SHIFT;
+
+#else
+#error Not defined for this die.
+#endif
+
+ return part_features;
+}
+
+/***************************************************************************//**
+ * @brief Get the temperature information.
+ ******************************************************************************/
+void sl_hal_system_get_temperature_info(sl_hal_system_devinfo_temperature_t *info)
+{
+#if defined(_DEVINFO_CALTEMP_MASK) || defined(_DEVINFO_EMUTEMP_MASK)
+#if defined(_DEVINFO_CALTEMP_TEMP_MASK)
+ info->cal_temp = ((DEVINFO->CALTEMP & _DEVINFO_CALTEMP_TEMP_MASK)
+ >> _DEVINFO_CALTEMP_TEMP_SHIFT);
+#else
+ info->cal_temp = 0;
+#endif
+#if defined(_DEVINFO_EMUTEMP_EMUTEMPROOM_MASK)
+ info->emu_temp_room = ((DEVINFO->EMUTEMP & _DEVINFO_EMUTEMP_EMUTEMPROOM_MASK)
+ >> _DEVINFO_EMUTEMP_EMUTEMPROOM_SHIFT);
+#else
+ info->emu_temp_room = 0;
+#endif
+#elif defined (_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ sl_status_t status;
+ sl_se_command_context_t se_command_ctx;
+ sli_se_device_data_t otp_section_id = (sli_se_device_data_t)(SLI_SE_DEVICE_DATA_DI0 + DEVINFO_GP_FRAGMENT_INDEX);
+ uint32_t offset = DEVINFO_GP_TEMPERATURE_OFFSET;
+
+ // Initialize command context
+ status = sl_se_init_command_context(&se_command_ctx);
+ if (status != SL_STATUS_OK) {
+ *info = SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES;
+ return;
+ }
+
+ // Send the SE command to retrieve the temperature information from the DEVINFO OTP section
+ status = sli_se_device_data_read_word(&se_command_ctx, otp_section_id, offset, (uint32_t*)info);
+ if (status != SL_STATUS_OK) {
+ *info = SL_HAL_SYSTEM_DEVINFO_TEMPERATURE_RESET_VALUES;
+ return;
+ }
+
+ // Divide the temperature by 16 to retrieve only the integer part of the temperature value.
+ info->cal_temp = info->cal_temp >> DEVINFO_TEMPERATURE_CALTEMP_INTEGER_SHIFT;
+#else
+ (void)info;
+#endif
+}
+
+/*******************************************************************************
+ * @brief Reads CHIPREV register.
+ ******************************************************************************/
+uint32_t sl_hal_syscfg_read_chip_rev(void)
+{
+#if defined(SL_TRUSTZONE_NONSECURE)
+ return sli_tz_syscfg_read_chiprev_register();
+#else
+ return SYSCFG->CHIPREV;
+#endif
+}
+
+/*******************************************************************************
+ * @brief Set SYSTICEXTCLKEN bit in CFGSYSTIC to one.
+ ******************************************************************************/
+void sl_hal_syscfg_set_systicextclken_cfgsystic(void)
+{
+#if defined(SL_TRUSTZONE_NONSECURE)
+ sli_tz_syscfg_set_systicextclken_cfgsystic();
+#else
+ SYSCFG->CFGSYSTIC = (SYSCFG->CFGSYSTIC | _SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_MASK);
+#endif
+}
+
+/*******************************************************************************
+ * @brief Clear SYSTICEXTCLKEN bit in CFGSYSTIC to zero.
+ ******************************************************************************/
+void sl_hal_syscfg_clear_systicextclken_cfgsystic(void)
+{
+#if defined(SL_TRUSTZONE_NONSECURE)
+ sli_tz_syscfg_clear_systicextclken_cfgsystic();
+#else
+ SYSCFG->CFGSYSTIC = (SYSCFG->CFGSYSTIC & ~_SYSCFG_CFGSYSTIC_SYSTICEXTCLKEN_MASK);
+#endif
+}
+
+#if defined(__FPU_PRESENT) && (__FPU_PRESENT == 1)
+/***************************************************************************//**
+ * @brief Set floating point co-processor (FPU) access mode.
+ ******************************************************************************/
+void sl_hal_system_fpu_set_access_mode(sl_hal_system_fpu_access_t access_mode)
+{
+ SCB->CPACR = (SCB->CPACR & ~(0xFUL << 20)) | access_mode;
+}
+#endif
+
+/***************************************************************************//**
+ * @brief Get the ADC calibration info.
+ ******************************************************************************/
+void sl_hal_system_get_adc_calibration_info(sl_hal_system_devinfo_adc_t *info)
+{
+#if defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ sl_status_t status;
+ sl_se_command_context_t se_command_ctx;
+ sli_se_device_data_t otp_section_id = (sli_se_device_data_t)(SLI_SE_DEVICE_DATA_DI0 + DEVINFO_GP_FRAGMENT_INDEX);
+ uint32_t offset = DEVINFO_GP_ADC0CALDATA_OFFSET;
+ EFM_ASSERT(info != NULL);
+
+ // Initialize command context
+ status = sl_se_init_command_context(&se_command_ctx);
+ if (status != SL_STATUS_OK) {
+ *info = SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES;
+ return;
+ }
+
+ // Send the SE command to retrieve the ADC calibration from the DEVINFO OTP section
+ status = sli_se_device_data_read_chunk(&se_command_ctx,
+ otp_section_id,
+ offset,
+ sizeof(sl_hal_system_devinfo_adc_offset_t),
+ info);
+ if (status != SL_STATUS_OK) {
+ *info = SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES;
+ return;
+ }
+#else
+ *info = SL_HAL_SYSTEM_DEVINFO_ADC_RESET_VALUES;
+#endif
+}
+
+/** @} (end addtogroup system) */
diff --git a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg1x/rail_chip_specific.h b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg1x/rail_chip_specific.h
index 983c4edf6..f5737d6cd 100644
--- a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg1x/rail_chip_specific.h
+++ b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg1x/rail_chip_specific.h
@@ -1,6 +1,6 @@
/***************************************************************************//**
* @file
- * @brief This file contains the type definitions for efr32xg1x chip-specific
+ * @brief This file contains the type definitions for EFR32xG1x chip-specific
* aspects of RAIL.
*******************************************************************************
* # License
@@ -45,60 +45,49 @@
#include "rail_features.h"
-#if (defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
-// Copied from rail_types.h to satisfy doxygen build.
-/// The RAIL library does not use enumerations because the ARM EABI leaves their
-/// size ambiguous, which causes problems if the application is built
-/// with different flags than the library. Instead, uint8_t typedefs
-/// are used in compiled code for all enumerations. For documentation purposes, this is
-/// converted to an actual enumeration since it's much easier to read in Doxygen.
-#define RAIL_ENUM(name) enum name
-/// This macro is a more generic version of the \ref RAIL_ENUM() macro that
-/// allows the size of the type to be overridden instead of forcing the use of
-/// a uint8_t. See \ref RAIL_ENUM() for more information.
-#define RAIL_ENUM_GENERIC(name, type) enum name
-#endif//(defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
-
#ifdef __cplusplus
extern "C" {
#endif
+/******************************************************************************
+ * General Structures
+ *****************************************************************************/
/**
- * @addtogroup General_EFR32XG1 EFR32xG1
- * @{
- * @brief EFR32xG1-specific initialization data types
+ * @addtogroup General_EFR32XG1X EFR32xG1x
* @ingroup General
+ * @{
+ * @brief Types specific to the EFR32xG1x for general configuration.
*/
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @def RAIL_EFR32XG1_STATE_BUFFER_BYTES
- * @brief The EFR32XG1 series size needed for
+ * @brief The EFR32xG1 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG1_STATE_BUFFER_BYTES 480
+#define RAIL_EFR32XG1_STATE_BUFFER_BYTES 440
/**
* @def RAIL_EFR32XG12_STATE_BUFFER_BYTES
- * @brief The EFR32XG12 series size needed for
+ * @brief The EFR32xG12 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG12_STATE_BUFFER_BYTES 488
+#define RAIL_EFR32XG12_STATE_BUFFER_BYTES 456
/**
* @def RAIL_EFR32XG13_STATE_BUFFER_BYTES
- * @brief The EFR32XG13 series size needed for
+ * @brief The EFR32xG13 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG13_STATE_BUFFER_BYTES 496
+#define RAIL_EFR32XG13_STATE_BUFFER_BYTES 464
/**
* @def RAIL_EFR32XG14_STATE_BUFFER_BYTES
- * @brief The EFR32XG14 series size needed for
+ * @brief The EFR32xG14 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG14_STATE_BUFFER_BYTES 496
+#define RAIL_EFR32XG14_STATE_BUFFER_BYTES 464
/**
* @def RAIL_STATE_BUFFER_BYTES
@@ -119,6 +108,10 @@ extern "C" {
#error "Unsupported platform!"
#endif
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
/**
* @def RAIL_SEQ_IMAGE_1
* @brief A macro for the first sequencer image.
@@ -134,14 +127,14 @@ extern "C" {
#if (_SILICON_LABS_32B_SERIES_1_CONFIG == 3)
/**
* @def RAIL_SEQ_IMAGE_ZWAVE
- * @brief A chip-specific macro for the sequencer image used on EFR32XG13 OPNs
+ * @brief A chip-specific macro for the sequencer image used on EFR32xG13 OPNs
* with ZWave.
*/
#define RAIL_SEQ_IMAGE_ZWAVE RAIL_SEQ_IMAGE_1
/**
* @def RAIL_SEQ_IMAGE_HIGH_BW_PHY
- * @brief A chip-specific macro for the sequencer image used on EFR32XG13 OPNs
+ * @brief A chip-specific macro for the sequencer image used on EFR32xG13 OPNs
* with High BW PHYs supported.
*/
#define RAIL_SEQ_IMAGE_HIGH_BW_PHY RAIL_SEQ_IMAGE_2
@@ -170,16 +163,11 @@ extern "C" {
#define RAIL_SEQ_IMAGE_COUNT 1
#endif //(_SILICON_LABS_32B_SERIES_1_CONFIG == 3)
-/**
- * Redefined here for use in common source code \ref RAIL_RadioStateEfr32_t
- */
-typedef RAIL_RadioStateEfr32_t RAIL_RacRadioState_t;
-
/**
* @typedef RAIL_TimerTick_t
- * @brief Internal RAIL hardware timer tick that drives the RAIL timebase. This
- * wraps at the same time as the RAIL timebase, but at a value before the full
- * 32 bit range.
+ * @brief Internal RAIL hardware timer tick that drives the RAIL timebase.
+ * This wraps at the same time as the RAIL timebase, but at a value before
+ * the full 32 bit range.
*
* @note \ref RAIL_TimerTicksToUs() can be used to convert the delta between
* two \ref RAIL_TimerTick_t values to microseconds.
@@ -199,7 +187,7 @@ typedef uint32_t RAIL_TimerTick_t;
* that drives the RAIL timebase.
*
* @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. On EFR32XG1 family of
+ * clock period, and will simply be a register read. On EFR32xG1x family of
* chips, ticks wrap in about 72 minutes and for all other series 1 they
* wrap in about 17 minutes, since it does not use the full 32-bit range.
* For more details, check the documentation for \ref RAIL_TimerTick_t.
@@ -208,16 +196,13 @@ extern const volatile uint32_t *RAIL_TimerTick;
/**
* A global pointer to the memory address of the internal RAIL hardware timer
- * that captures the latest RX packet reception time. This would not include
- * the RX chain delay, so may not be equal to the packet timestamp, passed to
- * the application, representing the actual on-air time the packet finished.
+ * that captures the latest RX packet reception time.
+ * See \ref RAIL_TimerTick_t for its granularity and range.
*
- * @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. On EFR32XG1 family of
- * chips, ticks wrap in about 72 minutes and for all other series 1 and
- * they wrap in about 17 minutes, since it does not use the full
- * 32-bit range.
- * For more details, check the documentation for \ref RAIL_TimerTick_t.
+ * @note This would not include the RX chain delay, so may not exactly
+ * correspond to the \ref RAIL_Time_t packet timestamp available within
+ * \ref RAIL_RxPacketDetails_t::timeReceived which reflects the actual
+ * on-air time that the packet finished.
*/
extern const volatile uint32_t *RAIL_RxPacketTimestamp;
@@ -239,18 +224,19 @@ RAIL_Time_t RAIL_TimerTicksToUs(RAIL_TimerTick_t startTick,
* \ref RAIL_Time_t time.
*/
RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
+
#endif//DOXYGEN_SHOULD_SKIP_THIS
-/** @} */ // end of group General_EFR32XG1
+/** @} */ // end of group General_EFR32XG1X
-// -----------------------------------------------------------------------------
-// Multiprotocol
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Multiprotocol
+ *****************************************************************************/
/**
- * @addtogroup Multiprotocol_EFR32 EFR32
- * @{
- * @brief EFR32-specific multiprotocol support defines
+ * @addtogroup Multiprotocol_EFR32XG1X EFR32xG1x
* @ingroup Multiprotocol
+ * @{
+ * @brief EFR32xG1x-specific multiprotocol support defines.
*/
/**
@@ -259,21 +245,21 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
*/
#define TRANSITION_TIME_US 430
-/** @} */ // end of group Multiprotocol_EFR32
+/** @} */ // end of group Multiprotocol_EFR32XG1X
-// -----------------------------------------------------------------------------
-// Calibration
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Calibration
+ *****************************************************************************/
/**
- * @addtogroup Calibration_EFR32 EFR32
- * @{
- * @brief EFR32-specific Calibrations
+ * @addtogroup Calibration_EFR32XG1X EFR32xG1x
* @ingroup Calibration
+ * @{
+ * @brief EFR32xG1x-specific Calibrations.
*/
/**
* @def RAIL_RF_PATHS
- * @brief Indicates the number of RF Paths supported
+ * @brief Indicates the number of RF Paths supported.
*/
#define RAIL_RF_PATHS 1
@@ -291,16 +277,16 @@ struct RAIL_ChannelConfigEntryAttr {
RAIL_RxIrCalValues_t calValues;
};
-/** @} */ // end of group Calibration_EFR32
+/** @} */ // end of group Calibration_EFR32XG1X
-// -----------------------------------------------------------------------------
-// Transmit
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Transmit
+ *****************************************************************************/
/**
- * @addtogroup PA_EFR32 EFR32
- * @{
+ * @addtogroup PA_EFR32XG1X EFR32xG1x
* @ingroup PA
- * @brief Types specific to the EFR32 for dealing with the on-chip PAs.
+ * @{
+ * @brief Types specific to the EFR32xG1x for dealing with the on-chip PAs.
*/
/**
@@ -348,7 +334,7 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TX_POWER_LEVEL_SUBGIG_MIN RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN
/**
- * The number of PA's on this chip. (Including Virtual PAs)
+ * The number of PA's on this chip (including Virtual PAs).
*/
#define RAIL_NUM_PA (3U)
@@ -364,14 +350,16 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TX_POWER_MODE_SUBGIG ((RAIL_TxPowerMode_t) RAIL_TX_POWER_MODE_SUBGIG)
#endif//DOXYGEN_SHOULD_SKIP_THIS
-/** @} */ // end of group PA_EFR32
+/** @} */ // end of group PA_EFR32XG1X
/******************************************************************************
* RX Channel Hopping
*****************************************************************************/
/**
- * @addtogroup Rx_Channel_Hopping RX Channel Hopping
+ * @addtogroup Rx_Channel_Hopping_EFR32XG1X EFR32xG1x
+ * @ingroup Rx_Channel_Hopping
* @{
+ * @brief EFR32xG1x-specific RX channel hopping.
*/
/// The static amount of memory needed per channel for channel hopping, measured
@@ -383,11 +371,16 @@ struct RAIL_ChannelConfigEntryAttr {
#error "Update rail_types.h RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL_WORST_CASE"
#endif
-/** @} */ // end of group Rx_Channel_Hopping
+/** @} */ // end of group Rx_Channel_Hopping_EFR32XG1X
+/******************************************************************************
+ * Sleep Structures
+ *****************************************************************************/
/**
- * @addtogroup Sleep
+ * @addtogroup Sleep_EFR32XG1X EFR32xG1x
+ * @ingroup Sleep
* @{
+ * @brief EFR32xG1x-specific Sleeping.
*/
/// Default PRS channel to use when configuring sleep
@@ -401,25 +394,29 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT (0U)
#endif
-/** @} */ // end of group Sleep
+/** @} */ // end of group Sleep_EFR32XG1X
+/******************************************************************************
+ * State Transitions
+ *****************************************************************************/
/**
- * @addtogroup State_Transitions_EFR32 EFR32
- * @{
+ * @addtogroup State_Transitions_EFR32XG1X EFR32xG1x
* @ingroup State_Transitions
+ * @{
+ * @brief EFR32xG1x-specific State Transitions.
*/
/**
* @def RAIL_MINIMUM_TRANSITION_US
- * @brief The minimum value for a consistent RAIL transition
+ * @brief The minimum value for a consistent RAIL transition.
* @note Transitions may need to be slower than this when using longer
- * \ref RAIL_TxPowerConfig_t::rampTime values
+ * \ref RAIL_TxPowerConfig_t::rampTime values.
*/
#define RAIL_MINIMUM_TRANSITION_US (100U)
/**
* @def RAIL_MAXIMUM_TRANSITION_US
- * @brief The maximum value for a consistent RAIL transition
+ * @brief The maximum value for a consistent RAIL transition.
*/
#if (_SILICON_LABS_32B_SERIES_1_CONFIG == 1)
#define RAIL_MAXIMUM_TRANSITION_US (13000U)
@@ -427,7 +424,12 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_MAXIMUM_TRANSITION_US (1000000U)
#endif//(_SILICON_LABS_32B_SERIES_1_CONFIG == 1)
-/** @} */ // end of group State_Transitions_EFR32
+/**
+ * Internal Radio State type mapping for EFR32 chips.
+ */
+typedef RAIL_RadioStateEfr32_t RAIL_RacRadioState_t;
+
+/** @} */ // end of group State_Transitions_EFR32XG1X
#ifdef __cplusplus
}
diff --git a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg2x/rail_chip_specific.h b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg2x/rail_chip_specific.h
index 828212486..b8c3d0d3b 100644
--- a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg2x/rail_chip_specific.h
+++ b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/efr32xg2x/rail_chip_specific.h
@@ -1,6 +1,6 @@
/***************************************************************************//**
* @file
- * @brief This file contains the type definitions for efr32xg2x chip-specific
+ * @brief This file contains the type definitions for EFR32xG2x chip-specific
* aspects of RAIL.
*******************************************************************************
* # License
@@ -48,240 +48,84 @@
#include "rail_chip_specific_internal.h"
#endif
-#if (defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
-// Copied from rail_types.h to satisfy doxygen build.
-/// The RAIL library does not use enumerations because the ARM EABI leaves their
-/// size ambiguous, which causes problems if the application is built
-/// with different flags than the library. Instead, uint8_t typedefs
-/// are used in compiled code for all enumerations. For documentation purposes, this is
-/// converted to an actual enumeration since it's much easier to read in Doxygen.
-#define RAIL_ENUM(name) enum name
-/// This macro is a more generic version of the \ref RAIL_ENUM() macro that
-/// allows the size of the type to be overridden instead of forcing the use of
-/// a uint8_t. See \ref RAIL_ENUM() for more information.
-#define RAIL_ENUM_GENERIC(name, type) enum name
-#endif //(defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
-
#ifdef __cplusplus
extern "C" {
#endif
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-// This section serves as a compatibility layer until sl_gpio is fully supported on Series 2 devices.
-#include "em_gpio.h"
-/** @defgroup GPIO_Modes GPIO_Modes
- * @{
- * @brief GPIO Modes
- */
-#define SL_GPIO_MODE_PUSH_PULL gpioModePushPull ///< Push-Pull mode for GPIO.
-#define SL_GPIO_MODE_DISABLED gpioModeDisabled ///< Disabled mode for GPIO.
-#define SL_GPIO_MODE_INPUT_PULL gpioModeInputPull ///< Input-Pull mode for GPIO.
-#define SL_GPIO_MODE_INPUT gpioModeInput ///< Input mode for GPIO.
-/** @} */
-
-/** @defgroup GPIO_Port_Definitions GPIO_Port_Definitions
- * @{
- * @brief GPIO Port Definitions
- */
-#define sl_gpio_port_t GPIO_Port_TypeDef ///< Typedef for GPIO port.
-#define SL_GPIO_PORT_A gpioPortA ///< Definition for GPIO port A.
-#define SL_GPIO_PORT_IS_VALID GPIO_PORT_VALID ///< Macro to check if GPIO port is valid.
-#define SL_GPIO_PORT_PIN_IS_VALID GPIO_PORT_PIN_VALID ///< Macro to check if GPIO port pin is valid.
-/** @} */
-
-/** @defgroup GPIO_Interrupts GPIO_Interrupts
- * @{
- * @brief GPIO Interrupts
- */
-#define sl_gpio_disable_interrupts GPIO_IntDisable ///< Macro to disable GPIO interrupts.
-#define sl_hal_gpio_clear_interrupts GPIO_IntClear ///< Macro to clear GPIO interrupts.
-/** @} */
-
-/** @defgroup GPIO_Initialization GPIO_Initialization
- * @{
- * @brief GPIO Initialization
- */
-#define sl_gpio_init GPIOINT_Init ///< Macro to initialize GPIO.
-/** @} */
-
-/** @defgroup PRS_Channel_Count PRS_Channel_Count
- * @{
- * @brief PRS Channel Count
- */
-#define SL_HAL_PRS_ASYNC_CHAN_COUNT PRS_ASYNC_CHAN_COUNT ///< PRS asynchronous channel count.
-/** @} */
-
-#ifndef RAIL_UNIT_TEST
-/**
- * @struct sl_gpio_t
- * @brief Structure to define GPIO pin configuration.
- *
- * @var sl_gpio_t::port
- * The GPIO port number.
- *
- * @var sl_gpio_t::pin
- * The GPIO pin number.
- */
-typedef struct {
- uint8_t port;
- uint8_t pin;
-} sl_gpio_t;
-
-/**
- * @brief Sets the mode and output value of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- * @param[in] mode The mode to set for the GPIO pin.
- * @param[in] output_value The output value to set for the GPIO pin if it is an output.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_set_pin_mode(const sl_gpio_t *gpio,
- uint32_t mode,
- bool output_value)
-{
- GPIO_PinModeSet(gpio->port, gpio->pin, mode, output_value);
- return SL_STATUS_OK;
-}
-
-/**
- * @brief Clears the output of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_clear_pin(const sl_gpio_t *gpio)
-{
- GPIO_PinOutClear(gpio->port, gpio->pin);
- return SL_STATUS_OK;
-}
-
-/**
- * @brief Sets the output of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_set_pin(const sl_gpio_t *gpio)
-{
- GPIO_PinOutSet(gpio->port, gpio->pin);
- return SL_STATUS_OK;
-}
-
-/**
- * @brief Gets the output value of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- * @param[out] pin_value Pointer to store the output value of the GPIO pin.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_get_pin_output(const sl_gpio_t *gpio, bool *pin_value)
-{
- *pin_value = GPIO_PinOutGet(gpio->port, gpio->pin);
- return SL_STATUS_OK;
-}
-
-/**
- * @brief Gets the input value of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- * @param[out] pin_value Pointer to store the input value of the GPIO pin.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_get_pin_input(const sl_gpio_t *gpio, bool *pin_value)
-{
- *pin_value = GPIO_PinInGet(gpio->port, gpio->pin);
- return SL_STATUS_OK;
-}
-
-/**
- * @brief Toggles the state of a GPIO pin.
- *
- * @param[in] gpio Pointer to the GPIO structure.
- *
- * @return Returns SL_STATUS_OK on successful operation.
- */
-__STATIC_INLINE sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio)
-{
- GPIO_PinOutToggle(gpio->port, gpio->pin);
- return SL_STATUS_OK;
-}
-#endif //RAIL_UNIT_TEST
-
-#endif // !DOXYGEN_SHOULD_SKIP_THIS
-
/******************************************************************************
* General Structures
*****************************************************************************/
/**
- * @addtogroup General_EFR32XG2X EFR32XG2X
+ * @addtogroup General_EFR32XG2X EFR32xG2x
* @ingroup General
* @{
- * @brief Types specific to the EFR32XG2X for general configuration.
+ * @brief Types specific to the EFR32xG2x for general configuration.
*/
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @def RAIL_EFR32XG21_STATE_BUFFER_BYTES
- * @brief The EFR32XG21 series size needed for
+ * @brief The EFR32xG21 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG21_STATE_BUFFER_BYTES 560
+#define RAIL_EFR32XG21_STATE_BUFFER_BYTES 592
/**
* @def RAIL_EFR32XG22_STATE_BUFFER_BYTES
- * @brief The EFR32XG22 series size needed for
+ * @brief The EFR32xG22 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG22_STATE_BUFFER_BYTES 568
+#define RAIL_EFR32XG22_STATE_BUFFER_BYTES 608
/**
* @def RAIL_EFR32XG23_STATE_BUFFER_BYTES
- * @brief The EFR32XG23 series size needed for
+ * @brief The EFR32xG23 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG23_STATE_BUFFER_BYTES 584
+#define RAIL_EFR32XG23_STATE_BUFFER_BYTES 616
/**
* @def RAIL_EFR32XG24_STATE_BUFFER_BYTES
- * @brief The EFR32XG24 series size needed for
+ * @brief The EFR32xG24 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG24_STATE_BUFFER_BYTES 592
+#define RAIL_EFR32XG24_STATE_BUFFER_BYTES 632
/**
* @def RAIL_EFR32XG25_STATE_BUFFER_BYTES
- * @brief The EFR32XG25 series size needed for
+ * @brief The EFR32xG25 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG25_STATE_BUFFER_BYTES 592
+#define RAIL_EFR32XG25_STATE_BUFFER_BYTES 624
/**
* @def RAIL_EFR32XG26_STATE_BUFFER_BYTES
- * @brief The EFR32XG26 series size needed for
+ * @brief The EFR32xG26 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG26_STATE_BUFFER_BYTES 592
+#define RAIL_EFR32XG26_STATE_BUFFER_BYTES 632
/**
* @def RAIL_EFR32XG27_STATE_BUFFER_BYTES
- * @brief The EFR32XG27 series size needed for
+ * @brief The EFR32xG27 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG27_STATE_BUFFER_BYTES 568
+#define RAIL_EFR32XG27_STATE_BUFFER_BYTES 608
/**
* @def RAIL_EFR32XG28_STATE_BUFFER_BYTES
- * @brief The EFR32XG28 series size needed for
+ * @brief The EFR32xG28 series size needed for
+ * \ref RAIL_StateBufferEntry_t::bufferBytes.
+ */
+#define RAIL_EFR32XG28_STATE_BUFFER_BYTES 624
+
+/**
+ * @def RAIL_EFR32XG29_STATE_BUFFER_BYTES
+ * @brief The EFR32XG29 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_EFR32XG28_STATE_BUFFER_BYTES 584
+#define RAIL_EFR32XG29_STATE_BUFFER_BYTES 608
#ifndef RAIL_STATE_BUFFER_BYTES
/**
@@ -306,6 +150,8 @@ __STATIC_INLINE sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio)
#define RAIL_STATE_BUFFER_BYTES RAIL_EFR32XG27_STATE_BUFFER_BYTES
#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
#define RAIL_STATE_BUFFER_BYTES RAIL_EFR32XG28_STATE_BUFFER_BYTES
+#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 9)
+#define RAIL_STATE_BUFFER_BYTES RAIL_EFR32XG29_STATE_BUFFER_BYTES
#else
#define RAIL_STATE_BUFFER_BYTES 0 // Sate Doxygen
#error "Unsupported platform!"
@@ -320,36 +166,36 @@ __STATIC_INLINE sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio)
* @def RAIL_SEQ_IMAGE_1
* @brief A macro for the first sequencer image.
*/
-#define RAIL_SEQ_IMAGE_1 1
+#define RAIL_SEQ_IMAGE_1 1
/**
* @def RAIL_SEQ_IMAGE_2
* @brief A macro for the second sequencer image.
*/
-#define RAIL_SEQ_IMAGE_2 2
+#define RAIL_SEQ_IMAGE_2 2
#ifndef RAIL_INTERNAL_BUILD
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 4) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6))
/**
* @def RAIL_SEQ_IMAGE_PA_10_DBM
- * @brief A chip-specific macro for the sequencer image used on EFR32XG24 and EFR32XG26 OPNs
+ * @brief A chip-specific macro for the sequencer image used on EFR32xG24 and EFR32xG26 OPNs
* with a 10 dBm PA.
*/
-#define RAIL_SEQ_IMAGE_PA_10_DBM RAIL_SEQ_IMAGE_1
+#define RAIL_SEQ_IMAGE_PA_10_DBM RAIL_SEQ_IMAGE_1
/**
* @def RAIL_SEQ_IMAGE_PA_20_DBM
- * @brief A chip-specific macro for the sequencer image used on EFR32XG24 and EFR32XG26 OPNs
+ * @brief A chip-specific macro for the sequencer image used on EFR32xG24 and EFR32xG26 OPNs
* with a 20 dBm PA.
*/
-#define RAIL_SEQ_IMAGE_PA_20_DBM RAIL_SEQ_IMAGE_2
+#define RAIL_SEQ_IMAGE_PA_20_DBM RAIL_SEQ_IMAGE_2
/**
* @def RAIL_SEQ_IMAGE_COUNT
* @brief A macro for the total number of sequencer images supported on the
* platform.
*/
-#define RAIL_SEQ_IMAGE_COUNT 2
+#define RAIL_SEQ_IMAGE_COUNT 2
#else //((_SILICON_LABS_32B_SERIES_2_CONFIG != 4) && (_SILICON_LABS_32B_SERIES_2_CONFIG != 6))
@@ -358,22 +204,17 @@ __STATIC_INLINE sl_status_t sl_gpio_toggle_pin(const sl_gpio_t *gpio)
* @brief A chip-specific macro for the default sequencer image on platforms
* that support only one sequencer image.
*/
-#define RAIL_SEQ_IMAGE_DEFAULT RAIL_SEQ_IMAGE_1
+#define RAIL_SEQ_IMAGE_DEFAULT RAIL_SEQ_IMAGE_1
/**
* @def RAIL_SEQ_IMAGE_COUNT
* @brief A macro for the total number of sequencer images supported on the
* platform.
*/
-#define RAIL_SEQ_IMAGE_COUNT 1
+#define RAIL_SEQ_IMAGE_COUNT 1
#endif //((_SILICON_LABS_32B_SERIES_2_CONFIG == 4) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6))
#endif //RAIL_INTERNAL_BUILD
-/**
- * Redefined here for use in common source code \ref RAIL_RadioStateEfr32_t
- */
-typedef RAIL_RadioStateEfr32_t RAIL_RacRadioState_t;
-
/**
* @struct RAIL_RffpllConfig_t
* @brief Stores information relevant to the Radio-Friendly Frequency
@@ -381,11 +222,11 @@ typedef RAIL_RadioStateEfr32_t RAIL_RacRadioState_t;
* memory.
*/
typedef struct {
- /** Divider X (Modem Clock), Divider Y (M33 System Clock), and Divider N (Feedback) values */
+ /** Divider X (Modem Clock), Divider Y (M33 System Clock), and Divider N (Feedback) values. */
uint32_t dividers;
- /** Radio clock frequency in Hz */
+ /** Radio clock frequency in Hz. */
uint32_t radioFreqHz;
- /** System clock frequency in Hz */
+ /** System clock frequency in Hz. */
uint32_t sysclkFreqHz;
} RAIL_RffpllConfig_t;
@@ -427,9 +268,9 @@ typedef struct {
/**
* @typedef RAIL_TimerTick_t
- * @brief Internal RAIL hardware timer tick that drives the RAIL timebase. This
- * wraps at the same time as the RAIL timebase, but at a value before the full
- * 32 bit range.
+ * @brief Internal RAIL hardware timer tick that drives the RAIL timebase.
+ * A tick is roughly 0.5 microseconds but it wraps somewhat before
+ * 0xFFFFFFFF giving a time range of about 17 minutes.
*
* @note \ref RAIL_TimerTicksToUs() can be used to convert the delta between
* two \ref RAIL_TimerTick_t values to microseconds.
@@ -437,36 +278,31 @@ typedef struct {
typedef uint32_t RAIL_TimerTick_t;
/**
- * @def RAIL_GetTimerTick(channel)
+ * @def RAIL_GetTimerTick(timerTickType)
* @brief The RAIL hardware timer ticks value.
*
- * @note channel is added for compatibility reasons and is ignored here.
+ * @note timerTickType is added for compatibility reasons and is ignored here;
+ * this gets the equivalent of \ref RAIL_TIMER_TICK_DEFAULT.
*/
-#define RAIL_GetTimerTick(channel) (*RAIL_TimerTick)
+#define RAIL_GetTimerTick(timerTickType) (*RAIL_TimerTick)
/**
- * A global pointer to the memory address of the internal RAIL hardware timer
- * that drives the RAIL timebase.
- *
- * @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. On EFR32XG2X family of
- * chips, ticks wrap in about 17 minutes, since it does not use the full
- * 32-bit range.
- * For more details, check the documentation for \ref RAIL_TimerTick_t.
+ * A global pointer to the memory address of the 32-bit
+ * \ref RAIL_TimerTick_t internal RAIL hardware timer that drives
+ * the RAIL timebase.
+ * Equivalent to \ref RAIL_TimerTick_t for its granularity and range.
*/
extern const volatile uint32_t *RAIL_TimerTick;
/**
* A global pointer to the memory address of the internal RAIL hardware timer
- * that captures the latest RX packet reception time. This would not include
- * the RX chain delay, so may not be equal to the packet timestamp, passed to
- * the application, representing the actual on-air time the packet finished.
+ * that captures the latest RX packet reception time.
+ * See \ref RAIL_TimerTick_t for its granularity and range.
*
- * @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. On EFR32XG2X family of
- * chips, ticks wrap in about 17 minutes, since it does not use the full
- * 32-bit range.
- * For more details, check the documentation for \ref RAIL_TimerTick_t.
+ * @note This would not include the RX chain delay, so may not exactly
+ * correspond to the \ref RAIL_Time_t packet timestamp available within
+ * \ref RAIL_RxPacketDetails_t::timeReceived which reflects the actual
+ * on-air time that the packet finished.
*/
extern const volatile uint32_t *RAIL_RxPacketTimestamp;
@@ -481,13 +317,14 @@ RAIL_Time_t RAIL_TimerTicksToUs(RAIL_TimerTick_t startTick,
RAIL_TimerTick_t endTick);
/**
- * Get \ref RAIL_TimerTick_t tick corresponding to the \ref RAIL_Time_t time.
+ * Get \ref RAIL_TimerTick_t tick corresponding to a \ref RAIL_Time_t time.
*
* @param[in] microseconds Time in microseconds.
* @return The \ref RAIL_TimerTick_t tick corresponding to the
* \ref RAIL_Time_t time.
*/
RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
+
#endif//DOXYGEN_SHOULD_SKIP_THIS
/** @} */ // end of group General_EFR32XG2X
@@ -496,10 +333,10 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
* Multiprotocol
*****************************************************************************/
/**
- * @addtogroup Multiprotocol_EFR32XG2X EFR32XG2X
+ * @addtogroup Multiprotocol_EFR32XG2X EFR32xG2x
* @ingroup Multiprotocol
* @{
- * @brief EFR32XG2X-specific multiprotocol support defines
+ * @brief EFR32xG2x-specific multiprotocol support defines.
*/
/**
@@ -520,21 +357,22 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
* Calibration
*****************************************************************************/
/**
- * @addtogroup Calibration_EFR32XG2X EFR32XG2X
+ * @addtogroup Calibration_EFR32XG2X EFR32xG2x
* @ingroup Calibration
* @{
- * @brief EFR32XG2X-specific Calibrations
+ * @brief EFR32xG2x-specific Calibrations.
*/
/**
* @def RAIL_RF_PATHS_2P4GIG
- * @brief Indicates the number of 2.4 GHz RF Paths suppported
+ * @brief Indicates the number of 2.4 GHz RF Paths suppported.
*/
#ifndef RAIL_RF_PATHS_2P4GIG
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 1) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6))
#define RAIL_RF_PATHS_2P4GIG 2
#elif ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_RF_PATHS_2P4GIG 1
#else
@@ -544,7 +382,7 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
/**
* @def RAIL_RF_PATHS_SUBGIG
- * @brief Indicates the number of sub-GHz RF Paths supported
+ * @brief Indicates the number of Sub-GHz RF Paths supported.
*/
#ifndef RAIL_RF_PATHS_SUBGHZ
#if _SILICON_LABS_32B_SERIES_2_CONFIG == 3
@@ -560,7 +398,7 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
/**
* @def RAIL_RF_PATHS
- * @brief Indicates the number of RF Paths supported
+ * @brief Indicates the number of RF Paths supported.
*/
#define RAIL_RF_PATHS (RAIL_RF_PATHS_SUBGIG + RAIL_RF_PATHS_2P4GIG)
@@ -579,7 +417,7 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
#ifdef DOXYGEN_SHOULD_SKIP_THIS // Leave undefined except for doxygen
#define RADIO_CONFIG_ENABLE_IRCAL_MULTIPLE_RF_PATHS 0
#endif //DOXYGEN_SHOULD_SKIP_THIS
-#endif
+#endif //RAIL_RF_PATHS
/**
* @struct RAIL_ChannelConfigEntryAttr
@@ -601,10 +439,10 @@ struct RAIL_ChannelConfigEntryAttr {
* Transmit
*****************************************************************************/
/**
- * @addtogroup PA_EFR32XG2X EFR32XG2X
+ * @addtogroup PA_EFR32XG2X EFR32xG2x
* @ingroup PA
* @{
- * @brief Types specific to the EFR32 for dealing with the on-chip PAs.
+ * @brief Types specific to the EFR32xG2x for dealing with the on-chip PAs.
*/
#ifndef RAIL_TX_POWER_LEVEL_2P4_HP_MAX
@@ -643,10 +481,10 @@ struct RAIL_ChannelConfigEntryAttr {
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_2P4GIG_HP mode.
- * EFR32XG24: capable of 20dBm max output power has max powerlevel:180
- * EFR32XG24: capable of 10dBm max output power has max powerlevel:90
- * EFR32XG26: capable of 20dBm max output power has max powerlevel:180
- * EFR32XG26: capable of 10dBm max output power has max powerlevel:90
+ * EFR32xG24: capable of 20dBm max output power has max powerlevel:180
+ * EFR32xG24: capable of 10dBm max output power has max powerlevel:90
+ * EFR32xG26: capable of 20dBm max output power has max powerlevel:180
+ * EFR32xG26: capable of 10dBm max output power has max powerlevel:90
*/
#if defined (_SILICON_LABS_EFR32_2G4HZ_HP_PA_PRESENT) \
&& (_SILICON_LABS_EFR32_2G4HZ_HP_PA_MAX_OUTPUT_DBM > 10)
@@ -669,7 +507,9 @@ struct RAIL_ChannelConfigEntryAttr {
* RAIL_TX_POWER_MODE_2P4GIG_LP mode.
*/
#define RAIL_TX_POWER_LEVEL_2P4_LP_MIN (0U)
-#elif ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#elif ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_2P4GIG_HP mode.
@@ -701,7 +541,7 @@ struct RAIL_ChannelConfigEntryAttr {
* RAIL_TX_POWER_MODE_2P4GIG_HP mode.
*/
#define RAIL_TX_POWER_LEVEL_2P4_HP_MIN (1U)
-#else //efr32xg23
+#else //EFR32xG23
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_2P4GIG_HP mode.
@@ -748,7 +588,7 @@ struct RAIL_ChannelConfigEntryAttr {
#if RAIL_SUPPORTS_SUBGHZ_BAND
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when using
- * a SUBGHZ PA mode.
+ * a Sub-GHz PA mode.
*/
#ifndef RAIL_SUBGIG_MAX
#if _SILICON_LABS_32B_SERIES_2_CONFIG == 3 || _SILICON_LABS_32B_SERIES_2_CONFIG == 8
@@ -762,7 +602,7 @@ struct RAIL_ChannelConfigEntryAttr {
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when using
- * a SUBGHZ PA mode.
+ * a Sub-GHz PA mode.
*/
#define RAIL_SUBGIG_MIN 1U
@@ -771,36 +611,43 @@ struct RAIL_ChannelConfigEntryAttr {
* RAIL_TX_POWER_MODE_SUBGIG_HP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_HP_MAX (RAIL_SUBGIG_MAX)
+
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_HP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN (RAIL_SUBGIG_MIN)
+
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_MP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_MP_MAX (RAIL_SUBGIG_MAX)
+
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_MP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_MP_MIN (RAIL_SUBGIG_MIN)
+
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_LP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_LP_MAX (RAIL_SUBGIG_MAX)
+
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_LP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_LP_MIN (RAIL_SUBGIG_MIN)
+
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_LLP mode.
*/
#define RAIL_TX_POWER_LEVEL_SUBGIG_LLP_MAX (RAIL_SUBGIG_MAX)
+
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_SUBGIG_LLP mode.
@@ -814,11 +661,13 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_OFDM_PA_MULT 5U
#define RAIL_OFDM_PA_MIN 0U
#endif
+
/**
* The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE mode.
*/
#define RAIL_TX_POWER_LEVEL_OFDM_PA_MAX (RAIL_OFDM_PA_MAX)
+
/**
* The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
* RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE mode.
@@ -844,13 +693,14 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TX_POWER_LEVEL_SUBGIG_MIN RAIL_TX_POWER_LEVEL_SUBGIG_HP_MIN
/**
- * The number of PA's on this chip. (Including Virtual PAs)
+ * The number of PA's on this chip (including Virtual PAs).
*/
#ifndef RAIL_NUM_PA
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_NUM_PA (2U)
#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 3)
#define RAIL_NUM_PA (4U)
@@ -882,11 +732,6 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TX_POWER_MODE_2P4_HIGHEST ((RAIL_TxPowerMode_t) RAIL_TX_POWER_MODE_2P4_HIGHEST)
#endif//RAIL_SUPPORTS_2P4GHZ_BAND
-/** Convenience macro for any mapping table mode. */
-#define RAIL_POWER_MODE_IS_ANY_DBM_POWERSETTING_MAPPING_TABLE(x) \
- (((x) == RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE) \
- || ((x) == RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE))
-
#if RAIL_SUPPORTS_SUBGHZ_BAND
#if RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE
#define RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE ((RAIL_TxPowerMode_t) RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE)
@@ -907,16 +752,25 @@ struct RAIL_ChannelConfigEntryAttr {
#endif//RAIL_SUPPORTS_OFDM_PA
#endif//DOXYGEN_SHOULD_SKIP_THIS
+/** Convenience macro for any mapping table mode. */
+#define RAIL_POWER_MODE_IS_ANY_DBM_POWERSETTING_MAPPING_TABLE(x) \
+ (((x) == RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE) \
+ || ((x) == RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE))
+
+/** Convenience macro to check if the power mode supports raw setting. */
+#define RAIL_POWER_MODE_SUPPORTS_RAW_SETTING(x) \
+ (((x) != RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE) \
+ && ((x) != RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE))
/** @} */ // end of group PA_EFR32XG2X
/******************************************************************************
* RX Channel Hopping
*****************************************************************************/
/**
- * @addtogroup Rx_Channel_Hopping_EFR32XG2X EFR32XG2X
+ * @addtogroup Rx_Channel_Hopping_EFR32XG2X EFR32xG2x
* @ingroup Rx_Channel_Hopping
* @{
- * @brief EFR32XG2X-specific RX channel hopping.
+ * @brief EFR32xG2x-specific RX channel hopping.
*/
#if _SILICON_LABS_32B_SERIES_2_CONFIG == 8
@@ -940,16 +794,18 @@ struct RAIL_ChannelConfigEntryAttr {
* Sleep Structures
*****************************************************************************/
/**
- * @addtogroup Sleep_EFR32XG2X EFR32XG2X
+ * @addtogroup Sleep_EFR32XG2X EFR32xG2x
* @ingroup Sleep
* @{
- * @brief EFR32XG2X-specific Sleeping.
+ * @brief EFR32xG2x-specific Sleeping.
*/
/// Default PRS channel to use when configuring sleep
#define RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT (7U)
-#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
/// Default RTCC channel to use when configuring sleep
#define RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT (1U)
#else
@@ -963,9 +819,10 @@ struct RAIL_ChannelConfigEntryAttr {
* State Transitions
*****************************************************************************/
/**
- * @addtogroup State_Transitions_EFR32XG2X EFR32XG2X
+ * @addtogroup State_Transitions_EFR32XG2X EFR32xG2x
* @ingroup State_Transitions
* @{
+ * @brief EFR32xG2x-specific State Transitions.
*/
/**
@@ -982,6 +839,11 @@ struct RAIL_ChannelConfigEntryAttr {
*/
#define RAIL_MAXIMUM_TRANSITION_US (1000000U)
+/**
+ * Internal Radio State type mapping for EFR32 chips.
+ */
+typedef RAIL_RadioStateEfr32_t RAIL_RacRadioState_t;
+
/** @} */ // end of group State_Transitions_EFR32XG2X
#ifdef __cplusplus
@@ -992,4 +854,4 @@ struct RAIL_ChannelConfigEntryAttr {
#endif //__RAIL_CHIP_SPECIFIC_H_
-#endif // SLI_LIBRARY_BUILD
+#endif //SLI_LIBRARY_BUILD
diff --git a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/sixg3xx/rail_chip_specific.h b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/sixg3xx/rail_chip_specific.h
index 5a50c1b31..7ad70b028 100644
--- a/simplicity_sdk/platform/radio/rail_lib/chip/efr32/sixg3xx/rail_chip_specific.h
+++ b/simplicity_sdk/platform/radio/rail_lib/chip/efr32/sixg3xx/rail_chip_specific.h
@@ -1,10 +1,10 @@
/***************************************************************************//**
* @file
- * @brief This file contains the type definitions for efr32xg2x chip specific
+ * @brief This file contains the type definitions for SIxx3xx chip-specific
* aspects of RAIL.
*******************************************************************************
* # License
- * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
@@ -29,6 +29,12 @@
*
******************************************************************************/
+#ifdef SLI_LIBRARY_BUILD
+
+// This file should not be included when doing SLI_LIBRARY_BUILDs
+
+#else//!SLI_LIBRARY_BUILD
+
#ifndef __RAIL_CHIP_SPECIFIC_H_
#if !defined(__RAIL_TYPES_H__) && !defined(DOXYGEN_SHOULD_SKIP_THIS)
#warning rail_chip_specific.h should only be included by rail_types.h
@@ -46,30 +52,41 @@
extern "C" {
#endif
+#if (defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
+// Copied from rail_types.h to satisfy doxygen build.
+/// The RAIL library does not use enumerations because the ARM EABI leaves their
+/// size ambiguous, which causes problems if the application is built
+/// with different flags than the library. Instead, uint8_t typedefs
+/// are used in compiled code for all enumerations. For documentation purposes, this is
+/// converted to an actual enumeration since it's much easier to read in Doxygen.
+#define RAIL_ENUM(name) enum name
+/// This macro is a more generic version of the \ref RAIL_ENUM() macro that
+/// allows the size of the type to be overridden instead of forcing the use of
+/// a uint8_t. See \ref RAIL_ENUM() for more information.
+#define RAIL_ENUM_GENERIC(name, type) enum name
+#endif //(defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(RAIL_ENUM))
+
+/******************************************************************************
+ * General Structures
+ *****************************************************************************/
/**
- * @addtogroup General_EFR32XG3 EFR32xG3
- * @{
- * @brief EFR32xG3-specific initialization data types
+ * @addtogroup General_SIXX3XX SIxx3xx
* @ingroup General
+ * @{
+ * @brief Types specific to the SIxx3xx for general configuration.
*/
-/**
- * A placeholder for a chip-specific RAIL handle. Using NULL as a RAIL handle is
- * not recommended. As a result, another value that can't be de-referenced is used.
- *
- * This generic handle can and should be used for RAIL APIs that are called
- * prior to RAIL initialization.
- */
-#define RAIL_EFR32_HANDLE ((RAIL_Handle_t)0xFFFFFFFFUL)
+/** Synonym of \ref RAIL_EFR32_HANDLE for Series 3 */
+#define RAIL_S3LPW_HANDLE RAIL_EFR32_HANDLE
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @def RAIL_SIXG301_STATE_BUFFER_BYTES
- * @brief The SIXG301 series size needed for
+ * @brief The SIxG301 series size needed for
* \ref RAIL_StateBufferEntry_t::bufferBytes.
*/
-#define RAIL_SIXG301_STATE_BUFFER_BYTES 576
+#define RAIL_SIXG301_STATE_BUFFER_BYTES 624
#ifndef RAIL_STATE_BUFFER_BYTES
/**
@@ -78,25 +95,23 @@ extern "C" {
* on this platform for this radio. This compile-time size may be slightly
* larger than what \ref RAIL_GetStateBufferSize() determines at run-time.
*/
-#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 1)
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300)
#define RAIL_STATE_BUFFER_BYTES RAIL_SIXG301_STATE_BUFFER_BYTES
#else
#define RAIL_STATE_BUFFER_BYTES 0 // Sate Doxygen
#error "Unsupported platform!"
-#endif //_SILICON_LABS_32B_SERIES_3_CONFIG
+#endif
#endif //#ifndef RAIL_STATE_BUFFER_BYTES
-/**
- * Redefined to use \ref RAIL_RadioStateSix3x_t instead of \ref RAIL_RadioStateEfr32_t
- */
-#ifdef RAIL_RAC_STATE_NONE
-#undef RAIL_RAC_STATE_NONE
-#define RAIL_RAC_STATE_NONE RAIL_RAC_STATE_SIX3X_NONE
-#endif
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @typedef RAIL_TimerTick_t
* @brief Internal RAIL hardware timer tick that drives the RAIL timebase.
+ * A tick is roughly 0.125 microseconds and it has a full 64-bit range
+ * (i.e, spanning 2^61 microseconds or ~73 millenia).
*
* @note \ref RAIL_TimerTicksToUs() can be used to convert the delta between
* two \ref RAIL_TimerTick_t values to microseconds.
@@ -105,45 +120,37 @@ typedef uint64_t RAIL_TimerTick_t;
/**
* @typedef RAIL_GetTimerTick_t
- * @brief A pointer to a function to RAIL internal timer tick.
+ * @brief A function pointer type for reading RAIL internal timer ticks.
*
- * @param[in] timerChannel \ref RAIL_TimerTickType_t timer tick
- * channel to read.
- * @return RAIL timer tick, type \ref RAIL_TimerTick_t, corresponding to the
- * timer channel.
+ * @param[in] timerTickType A timer tick type to read.
+ * @return RAIL timer tick corresponding to the timerTickType.
*/
-typedef RAIL_TimerTick_t (*RAIL_GetTimerTick_t) (RAIL_TimerTickType_t timerChannel);
+typedef RAIL_TimerTick_t (*RAIL_GetTimerTick_t)(RAIL_TimerTickType_t timerTickType);
/**
- * Function pointer of type \ref RAIL_GetTimerTick_t to get RAIL timer
- * tick.
- *
- * @note This function pointer is only supported for series-3 chips and will be
- * NULL otherwise.
+ * Function pointer of type \ref RAIL_GetTimerTick_t to read RAIL internal
+ * timer ticks.
*/
extern RAIL_GetTimerTick_t RAIL_GetTimerTick;
/**
- * A global pointer to the memory address of the internal RAIL hardware timer
- * that drives the RAIL timebase.
- *
- * @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. The ticks wrap after about
- * 9 minutes on series 3 chips.
- * For more details, check the documentation for \ref RAIL_TimerTick_t.
+ * A global pointer to the memory address of the least significant 32 bits
+ * of the \ref RAIL_TimerTick_t internal RAIL hardware timer that drives
+ * the RAIL timebase.
+ * It's 0.125 microsecond tick range is 2^29 microseconds or ~9 minutes.
*/
extern const volatile uint32_t *RAIL_TimerTick;
/**
- * A global pointer to the memory address of the internal RAIL hardware timer
- * that captures the latest RX packet reception time. This would not include
- * the RX chain delay, so may not be equal to the packet timestamp, passed to
- * the application, representing the actual on-air time the packet finished.
+ * A global pointer to the memory address of the least significant 32 bits
+ * of the \ref RAIL_TimerTick_t internal RAIL hardware timer that captures
+ * the latest RX packet reception time.
+ * It's 0.125 microsecond tick range is 2^29 microseconds or ~9 minutes.
*
- * @note The corresponding timer tick value is not adjusted for overflow or the
- * clock period, and will simply be a register read. The ticks wrap after about
- * 9 minutes on series 3 chips.
- * For more details, check the documentation for \ref RAIL_TimerTick_t.
+ * @note This would not include the RX chain delay, so may not exactly
+ * correspond to the \ref RAIL_Time_t packet timestamp available within
+ * \ref RAIL_RxPacketDetails_t::timeReceived which reflects the actual
+ * on-air time that the packet finished.
*/
extern const volatile uint32_t *RAIL_RxPacketTimestamp;
@@ -158,25 +165,26 @@ RAIL_Time_t RAIL_TimerTicksToUs(RAIL_TimerTick_t startTick,
RAIL_TimerTick_t endTick);
/**
- * Get \ref RAIL_TimerTick_t tick corresponding to the \ref RAIL_Time_t time.
+ * Get \ref RAIL_TimerTick_t tick corresponding to a \ref RAIL_Time_t time.
*
* @param[in] microseconds Time in microseconds.
* @return The \ref RAIL_TimerTick_t tick corresponding to the
* \ref RAIL_Time_t time.
*/
RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
+
#endif//DOXYGEN_SHOULD_SKIP_THIS
-/** @} */ // end of group General_EFR32XG2
+/** @} */ // end of group General_SIXX3XX
-// -----------------------------------------------------------------------------
-// Multiprotocol
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Multiprotocol
+ *****************************************************************************/
/**
- * @addtogroup Multiprotocol_EFR32 EFR32
- * @{
- * @brief EFR32-specific multiprotocol support defines
+ * @addtogroup Multiprotocol_SIXX3XX SIxx3xx
* @ingroup Multiprotocol
+ * @{
+ * @brief SIxx3xx-specific multiprotocol support defines.
*/
/**
@@ -185,23 +193,23 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
*/
#define TRANSITION_TIME_US 510
-/** @} */ // end of group Multiprotocol_EFR32
+/** @} */ // end of group Multiprotocol_SIXX3XX
-// -----------------------------------------------------------------------------
-// Calibration
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Calibration
+ *****************************************************************************/
/**
- * @addtogroup Calibration_EFR32XG3X EFR32XG3X
- * @{
- * @brief EFR32XG3X-specific Calibrations
+ * @addtogroup Calibration_SIXX3XX SIxx3xx
* @ingroup Calibration
+ * @{
+ * @brief SIxx3xx-specific Calibrations.
*/
/**
* @def RAIL_RF_PATHS_2P4GIG
- * @brief Indicates the number of 2.4 GHz RF Paths suppported
+ * @brief Indicates the number of 2.4 GHz RF Paths suppported.
*/
-#if _SILICON_LABS_32B_SERIES_3_CONFIG == 1
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300)
#define RAIL_RF_PATHS_2P4GIG 1
#else
#define RAIL_RF_PATHS_2P4GIG 0
@@ -209,16 +217,20 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
/**
* @def RAIL_RF_PATHS_SUBGIG
- * @brief Indicates the number of sub-GHz RF Paths supported
+ * @brief Indicates the number of Sub-GHz RF Paths supported.
*/
#define RAIL_RF_PATHS_SUBGIG 0
/**
* @def RAIL_RF_PATHS
- * @brief Indicates the number of RF Paths supported
+ * @brief Indicates the number of RF Paths supported.
*/
#define RAIL_RF_PATHS (RAIL_RF_PATHS_SUBGIG + RAIL_RF_PATHS_2P4GIG)
+#if (RAIL_RF_PATHS > RAIL_MAX_RF_PATHS)
+#error "Update rail_types.h RAIL_MAX_RF_PATHS"
+#endif
+
/**
* @def RADIO_CONFIG_ENABLE_IRCAL_MULTIPLE_RF_PATHS
* @brief Indicates this version of RAIL supports IR calibration on multiple RF paths
@@ -229,8 +241,8 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
#else
#ifdef DOXYGEN_SHOULD_SKIP_THIS // Leave undefined except for doxygen
#define RADIO_CONFIG_ENABLE_IRCAL_MULTIPLE_RF_PATHS 0
-#endif//DOXYGEN_SHOULD_SKIP_THIS
-#endif // RAIL_RF_PATHS
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+#endif //RAIL_RF_PATHS
/**
* @struct RAIL_ChannelConfigEntryAttr
@@ -239,52 +251,52 @@ RAIL_TimerTick_t RAIL_UsToTimerTicks(RAIL_Time_t microseconds);
*/
struct RAIL_ChannelConfigEntryAttr {
/** IR calibration attributes specific to each channel configuration entry. */
-#if RAIL_SUPPORTS_OFDM_PA
+ #if RAIL_SUPPORTS_OFDM_PA
RAIL_IrCalValues_t calValues;
#else//!RAIL_SUPPORTS_OFDM_PA
RAIL_RxIrCalValues_t calValues;
#endif//RAIL_SUPPORTS_OFDM_PA
};
-/** @} */ // end of group Calibration_EFR32
+/** @} */ // end of group Calibration_SIXX3XX
-// -----------------------------------------------------------------------------
-// Transmit
-// -----------------------------------------------------------------------------
+/******************************************************************************
+ * Transmit
+ *****************************************************************************/
/**
- * @addtogroup PA_EFR32XG3X EFR32XG3X
- * @{
+ * @addtogroup PA_SIXX3XX SIxx3xx
* @ingroup PA
- * @brief Types specific to the EFR32 for dealing with the on-chip PAs.
+ * @{
+ * @brief Types specific to the SIxx3xx for dealing with the on-chip PAs.
*/
-#if _SILICON_LABS_32B_SERIES_3_CONFIG == 1
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300)
/**
- * The maximum valid value for the \ref RAIL_TxPowerLevel_t for both \ref
- * RAIL_TX_POWER_MODE_2P4GIG_HP and \ref RAIL_TX_POWER_MODE_2P4GIG_LP modes.
+ * The maximum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
+ * RAIL_TX_POWER_MODE_2P4GIG_HP or \ref RAIL_TX_POWER_MODE_2P4GIG_LP modes.
*/
#define RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MAX (95U)
/**
- * The minimum valid value for the \ref RAIL_TxPowerLevel_t for both \ref
- * RAIL_TX_POWER_MODE_2P4GIG_HP and \ref RAIL_TX_POWER_MODE_2P4GIG_LP modes.
+ * The minimum valid value for the \ref RAIL_TxPowerLevel_t when in \ref
+ * RAIL_TX_POWER_MODE_2P4GIG_HP or \ref RAIL_TX_POWER_MODE_2P4GIG_LP modes.
*/
#define RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MIN (0U)
-/**
- * Legacy defines for High Power (HP) and Low Power (LP) modes.
- * These defines are used for setting the minimum and maximum transmit power levels.
- */
+/** Legacy define for High Power (HP) and Low Power (LP) modes. */
#define RAIL_TX_POWER_LEVEL_2P4_LP_MIN (RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MIN)
+/** Legacy define for High Power (HP) and Low Power (LP) modes. */
#define RAIL_TX_POWER_LEVEL_2P4_LP_MAX (RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MAX)
+/** Legacy define for High Power (HP) and Low Power (LP) modes. */
#define RAIL_TX_POWER_LEVEL_2P4_HP_MIN (RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MIN)
+/** Legacy define for High Power (HP) and Low Power (LP) modes. */
#define RAIL_TX_POWER_LEVEL_2P4_HP_MAX (RAIL_TX_POWER_LEVEL_2P4GIG_HP_LP_MAX)
#else
#error "RAIL_TX_POWER_LEVEL not defined for this device"
-#endif //_SILICON_LABS_32B_SERIES_3_CONFIG
+#endif
/**
- * The number of PA's on this chip.
+ * The number of PA's on this chip (including Virtual PAs).
*/
-#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 1)
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300)
#define RAIL_NUM_PA (2U)
#else
#error "RAIL_NUM_PA undefined for platform"
@@ -302,256 +314,406 @@ struct RAIL_ChannelConfigEntryAttr {
#define RAIL_TX_POWER_MODE_2P4GIG_HIGHEST ((RAIL_TxPowerMode_t) RAIL_TX_POWER_MODE_2P4GIG_HIGHEST)
#define RAIL_TX_POWER_MODE_2P4_HIGHEST ((RAIL_TxPowerMode_t) RAIL_TX_POWER_MODE_2P4_HIGHEST)
#endif//RAIL_SUPPORTS_2P4GHZ_BAND
+#endif//DOXYGEN_SHOULD_SKIP_THIS
/** Convenience macro for any mapping table mode. */
#define RAIL_POWER_MODE_IS_ANY_DBM_POWERSETTING_MAPPING_TABLE(x) \
(((x) == RAIL_TX_POWER_MODE_2P4GIG_HP) \
|| ((x) == RAIL_TX_POWER_MODE_2P4GIG_LP))
-#endif//DOXYGEN_SHOULD_SKIP_THIS
-/** @} */ // end of group PA_EFR32
+/** Convenience macro to check if the power mode supports raw setting. */
+#define RAIL_POWER_MODE_SUPPORTS_RAW_SETTING(x) \
+ (((x) == RAIL_TX_POWER_MODE_2P4GIG_HP) || ((x) == RAIL_TX_POWER_MODE_2P4GIG_LP))
+
+/** @} */ // end of group PA_SIXX3XX
/******************************************************************************
- * User Sequencer Structures
+ * RX Channel Hopping
*****************************************************************************/
/**
- * @addtogroup User Sequencer
+ * @addtogroup Rx_Channel_Hopping_SIXX3XX SIxx3xx
+ * @ingroup Rx_Channel_Hopping
* @{
+ * @brief SIxx3xx-specific RX channel hopping.
*/
-/**
- * TODO: Document and cleanup.
- */
-typedef struct RAIL_UserCommonGlobal {
- void *pLocSeqVirtualReg;
- void *pLocSeqTiming;
- void *pLocUserSeqConfig;
- void *pLocRtccsyncConfig;
- void *pLocStateVarConfig;
- void *pLocGenericPhyConfig;
- void *pLocpSeqTimestamp;
-} RAIL_UserCommonGlobal_t;
+/// The static amount of memory needed per channel for channel hopping, measured
+/// in 32 bit words, regardless of the size of radio configuration structures.
+#define RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL (54U)
-/**
- * TODO: Document and cleanup.
- */
-typedef struct UserSeqShMem {
- /**
- * pointer to the start of M33 and sequencer shared memory.
- * TBD: This part of memory should be moved to user memory intead of in generic_seq_common.h
- */
- void *pStart;
- /**
- * size of shared memory in bytes.
- * TBD: This part of memory should be moved to user memory intead of in generic_seq_common.h
- */
- uint32_t szBytes;
-} UserSeqShMem_t;
+#if (RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL \
+ > RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL_WORST_CASE)
+#error "Update rail_types.h RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL_WORST_CASE"
+#endif
+/** @} */ // end of group Rx_Channel_Hopping_SIXX3XX
+
+/******************************************************************************
+ * Sleep Structures
+ *****************************************************************************/
/**
- * @struct RAIL_SeqUserAppInfo_t
- * @brief RAIL sequencer user application structure
- *
- * This structure describe the user application that is loaded on the sequencer.
+ * @addtogroup Sleep_SIXX3XX SIxx3xx
+ * @ingroup Sleep
+ * @{
+ * @brief SIxx3xx-specific Sleeping.
*/
-// TBD: Is this the right place for this strucutre? This should probably stays internal?????
-typedef void (*RAIL_SEQ_UserStartMain_t)(void);
-typedef struct {
- uint32_t version; // Version of the structure? do we need this? how would this work?
- uint8_t *pProgramStartMem;// pointer to the start of user executable in memory
- uint8_t *pProgramStartLoc;// pointer to the start of user executable storage
- uint32_t programSzB; // size of user executable in bytes
- RAIL_SEQ_UserStartMain_t programInitStart;// main user function entry
- uint8_t *pDataStartMem; // pointer to the start of user initialized data in memory
- uint8_t *pDataStartLoc; // pointer to the start of user initialized data storage
- uint32_t dataSzB; // size of user initialized data in bytes
- uint8_t *pScratchStartMem;// pointer to the start of user un-initialized data in memory
- uint32_t scratchSzB; // size of user un-initialized data in bytes
-} RAIL_SeqUserAppInfo_t;
-/** @} */ // end of group User Sequencer
+/// Default PRS channel to use when configuring sleep
+#define RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT (7U)
+
+/// Default RTCC channel to use when configuring sleep
+#define RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT (0U)
+
+/** @} */ // end of group Sleep_SIXX3XX
/******************************************************************************
* State Transitions
*****************************************************************************/
/**
- * @addtogroup State_Transitions
+ * @addtogroup State_Transitions_SIXX3XX SIxx3xx
+ * @ingroup State_Transitions
* @{
+ * @brief SIxx3xx-specific State Transitions.
+ */
+
+/**
+ * @def RAIL_MINIMUM_TRANSITION_US
+ * @brief The minimum value for a consistent RAIL transition
+ * @note Transitions may need to be slower than this when using longer
+ * \ref RAIL_TxPowerConfig_t::rampTime values
*/
+#define RAIL_MINIMUM_TRANSITION_US (100U)
+
+/**
+ * @def RAIL_MAXIMUM_TRANSITION_US
+ * @brief The maximum value for a consistent RAIL transition
+ */
+#define RAIL_MAXIMUM_TRANSITION_US (1000000U)
/**
* @enum RAIL_RadioStateSix3x_t
- * @brief Detailed Series-3 Radio state machine statuses.
+ * @brief Detailed Series 3 Radio state machine states.
*/
RAIL_ENUM(RAIL_RadioStateSix3x_t) {
- RAIL_RAC_STATE_SIX3X_OFF, /**< Radio is off. */
- RAIL_RAC_STATE_SIX3X_RXWARM, /**< Radio is enabling the receiver. */
- RAIL_RAC_STATE_SIX3X_RXSEARCH, /**< Radio is listening for incoming frames. */
- RAIL_RAC_STATE_SIX3X_RXFRAME, /**< Radio is receiving a frame. */
- RAIL_RAC_STATE_SIX3X_RXWRAPUP, /**< Radio is going to RX Wrapup mode after
- receiving a frame. */
- RAIL_RAC_STATE_SIX3X_TXWARM, /**< Radio is enabling transmitter. */
- RAIL_RAC_STATE_SIX3X_TX, /**< Radio is transmitting data. */
- RAIL_RAC_STATE_SIX3X_TXWRAPUP, /**< Radio is going to TX Wrapup mode after
- transmitting a frame. */
- RAIL_RAC_STATE_SIX3X_SHUTDOWN, /**< Radio is powering down receiver and going to
- OFF state. */
- RAIL_RAC_STATE_SIX3X_POR, /**< Radio power-on-reset state (EFR32xG22 and later) */
- RAIL_RAC_STATE_SIX3X_NONE /**< Invalid Radio state, must be the last entry. */
+ /** Radio is off. */
+ RAIL_RAC_STATE_SIX3X_OFF = 0,
+ /** Radio is enabling the receiver. */
+ RAIL_RAC_STATE_SIX3X_RXWARM = 1,
+ /** Radio is listening for incoming frames. */
+ RAIL_RAC_STATE_SIX3X_RXSEARCH = 2,
+ /** Radio is receiving a frame. */
+ RAIL_RAC_STATE_SIX3X_RXFRAME = 3,
+ /** Radio is wrapping up after receiving a frame. */
+ RAIL_RAC_STATE_SIX3X_RXWRAPUP = 4,
+ /** Radio is enabling transmitter. */
+ RAIL_RAC_STATE_SIX3X_TXWARM = 5,
+ /** Radio is transmitting data. */
+ RAIL_RAC_STATE_SIX3X_TX = 6,
+ /** Radio is wrapping up after transmitting a frame. */
+ RAIL_RAC_STATE_SIX3X_TXWRAPUP = 7,
+ /** Radio is powering down and going to OFF state. */
+ RAIL_RAC_STATE_SIX3X_SHUTDOWN = 8,
+ /** Radio power-on-reset state. */
+ RAIL_RAC_STATE_SIX3X_POR = 9,
+ /** Invalid Radio state, must be the last entry. */
+ RAIL_RAC_STATE_SIX3X_NONE
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_RAC_STATE_SIX3X_OFF ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_OFF)
-#define RAIL_RAC_STATE_SIX3X_RXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_RXWARM)
-#define RAIL_RAC_STATE_SIX3X_RXSEARCH ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_RXSEARCH)
-#define RAIL_RAC_STATE_SIX3X_RXFRAME ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_RXFRAME)
-#define RAIL_RAC_STATE_SIX3X_RXWRAPUP ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_RXWRAPUP)
-#define RAIL_RAC_STATE_SIX3X_TXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_TXWARM)
-#define RAIL_RAC_STATE_SIX3X_TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_TX)
-#define RAIL_RAC_STATE_SIX3X_TXWRAPUP ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_TXWRAPUP)
-#define RAIL_RAC_STATE_SIX3X_SHUTDOWN ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_SHUTDOWN)
-#define RAIL_RAC_STATE_SIX3X_POR ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_POR)
-#define RAIL_RAC_STATE_SIX3X_NONE ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SIX3X_NONE)
+#define RAIL_RAC_STATE_SIX3X_OFF ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_OFF)
+#define RAIL_RAC_STATE_SIX3X_RXWARM ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_RXWARM)
+#define RAIL_RAC_STATE_SIX3X_RXSEARCH ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_RXSEARCH)
+#define RAIL_RAC_STATE_SIX3X_RXFRAME ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_RXFRAME)
+#define RAIL_RAC_STATE_SIX3X_RXWRAPUP ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_RXWRAPUP)
+#define RAIL_RAC_STATE_SIX3X_TXWARM ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_TXWARM)
+#define RAIL_RAC_STATE_SIX3X_TX ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_TX)
+#define RAIL_RAC_STATE_SIX3X_TXWRAPUP ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_TXWRAPUP)
+#define RAIL_RAC_STATE_SIX3X_SHUTDOWN ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_SHUTDOWN)
+#define RAIL_RAC_STATE_SIX3X_POR ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_POR)
+#define RAIL_RAC_STATE_SIX3X_NONE ((RAIL_RadioStateSix3x_t) RAIL_RAC_STATE_SIX3X_NONE)
+/**
+ * Redefined to use \ref RAIL_RadioStateSix3x_t instead of \ref RAIL_RadioStateEfr32_t.
+ */
+#ifdef RAIL_RAC_STATE_NONE
+#undef RAIL_RAC_STATE_NONE
+#define RAIL_RAC_STATE_NONE RAIL_RAC_STATE_SIX3X_NONE
+#endif
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
- * Redefined here for use in common source code \ref RAIL_RadioStateSix3x_t
+ * Internal Radio State type mapping for SIxx3xx chips.
*/
typedef RAIL_RadioStateSix3x_t RAIL_RacRadioState_t;
-/** @} */ // end of group State_Transitions
+/** @} */ // end of group State_Transitions_SIXX3XX
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
/******************************************************************************
- * RX Channel Hopping
+ * Sequencer User Structures
*****************************************************************************/
/**
- * @addtogroup Rx_Channel_Hopping RX Channel Hopping
+ * @addtogroup Sequencer_User_SIXX3XX Sequencer User
+ * @ingroup RAIL_API
* @{
+ * @brief Types specific to the SIxx3xx for dealing with the Sequencer User.
*/
-/// The static amount of memory needed per channel for channel hopping, measured
-/// in 32 bit words, regardless of the size of radio configuration structures.
-#define RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL (54U)
-
-/** @} */ // end of group Rx_Channel_Hopping
-
/**
- * @addtogroup Sleep
- * @{
+ * TODO: Document and cleanup.
*/
-
-/// Default PRS channel to use when configuring sleep
-#define RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT (7U)
-
-/// Default RTCC channel to use when configuring sleep
-#define RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT (0U)
-
-/** @} */ // end of group Sleep
+typedef struct RAIL_UserCommonGlobal {
+ void *pLocSeqVirtualReg;
+ void *pLocSeqTiming;
+ void *pLocUserSeqConfig;
+ void *pLocRtccsyncConfig;
+ void *pLocStateVarConfig;
+ void *pLocGenericPhyConfig;
+ void *pLocpSeqTimestamp;
+ void *pLocpSeqMisc;
+ void *pLocpNewFeatureConfig;
+} RAIL_UserCommonGlobal_t;
/**
- * @addtogroup Data_Management_EFR32XG3X EFR32XG3X
- * @{
- * @ingroup Data_Management
+ * TODO: Document and cleanup.
*/
-
-/// Fixed-width type indicating the needed alignment for RX and TX FIFOs. Note
-/// that docs.silabs.com will incorrectly indicate that this is always a
-/// uint8_t, but it does vary across RAIL platforms.
-#if _SILICON_LABS_32B_SERIES_3_CONFIG == 1
-#define RAIL_FIFO_ALIGNMENT_TYPE uint32_t
-#endif
-
-/// Alignment that is needed for the RX and TX FIFOs.
-#define RAIL_FIFO_ALIGNMENT (sizeof(RAIL_FIFO_ALIGNMENT_TYPE))
-
-/** @} */ // end of group Data_Management_EFR32
+typedef struct UserSeqShMem {
+ /**
+ * pointer to the start of M33 and sequencer shared memory.
+ * TBD: This part of memory should be moved to user memory instead of in generic_seq_common.h
+ */
+ void *pStart;
+ /**
+ * size of shared memory in bytes.
+ * TBD: This part of memory should be moved to user memory instead of in generic_seq_common.h
+ */
+ uint32_t szBytes;
+} UserSeqShMem_t;
/**
- * @addtogroup State_Transitions_EFR32XG2X
- * @{
- * @ingroup State_Transitions
+ * TODO: Document and cleanup.
*/
+typedef void (*RAIL_SEQ_UserStartMain_t)(void);
/**
- * @def RAIL_MINIMUM_TRANSITION_US
- * @brief The minimum value for a consistent RAIL transition
- * @note Transitions may need to be slower than this when using longer
- * \ref RAIL_TxPowerConfig_t::rampTime values
+ * @struct RAIL_SeqUserAppInfo_t
+ * @brief RAIL sequencer user application structure.
+ *
+ * This structure describes the user application that is loaded on the sequencer.
*/
-#define RAIL_MINIMUM_TRANSITION_US (100U)
+// TBD: Is this the right place for this structure? This should probably stays internal?????
+typedef struct {
+ /// Version of the structure? do we need this? how would this work?
+ uint32_t version;
+ /// Pointer to the start of user executable in memory.
+ uint8_t *pProgramStartMem;
+ /// Pointer to the start of user executable storage.
+ uint8_t *pProgramStartLoc;
+ /// Size of user executable in bytes.
+ uint32_t programSzB;
+ /// Main user function entry.
+ RAIL_SEQ_UserStartMain_t programInitStart;
+ /// Pointer to the start of user initialized data in memory.
+ uint8_t *pDataStartMem;
+ /// Pointer to the start of user initialized data storage.
+ uint8_t *pDataStartLoc;
+ /// Size of user initialized data in bytes.
+ uint32_t dataSzB;
+ /// Pointer to the start of user un-initialized data in memory.
+ uint8_t *pScratchStartMem;
+ /// Size of user un-initialized data in bytes.
+ uint32_t scratchSzB;
+} RAIL_SeqUserAppInfo_t;
/**
- * @def RAIL_MAXIMUM_TRANSITION_US
- * @brief The maximum value for a consistent RAIL transition
+ * @typedef RAIL_UserCpReqCb_t
+ * @brief Callback function type used to indicate status of user copy request.
+ *
+ * @param[in] pCpReq A non-NULL pointer to the user copy request.
+ * @param[in] reqStatus The status of the request.
*/
-#define RAIL_MAXIMUM_TRANSITION_US (1000000U)
+typedef void(*RAIL_UserCpReqCb_t)(const void *pCpReq,
+ RAIL_Status_t reqStatus);
-/** @} */ // end of group State_Transitions_EFR32
+//FIXME: these are not RAIL_Status_t values, and need doxygen
+#define RAIL_USER_CP_REQ_STATUS_FLAG_STARTED 1U
+#define RAIL_USER_CP_REQ_STATUS_FLAG_COMPLETED 2U
+#define RAIL_USER_CP_REQ_STATUS_FLAG_REQ_HOST 4U
+#define RAIL_USER_CP_REQ_STATUS_FLAG_INVALID_PARAMETER 8U
+
+/**
+ * @struct RAIL_UserCpReq_t
+ * @brief Memory copy request configuration structure.
+ *
+ * This structure describes the user request to copy contents from one memory area to another.
+ */
+typedef struct RAIL_UserCpReq {
+ // Pointer to the next request; NULL if none.
+ struct RAIL_UserCpReq *pNext;
+ // Non-NULL pointer to the location to copy from.
+ const uint8_t *pSrc;
+ // Non-NULL pointer to the location to copy to.
+ uint8_t *pDst;
+ // The number of bytes to copy.
+ uint16_t xferSzBytes;
+ // Status of the request.
+ volatile uint8_t statusFlag;
+ // Reserved.
+ volatile uint8_t reserved;
+ // A pointer to the callback called on completion or error. May be NULL.
+ RAIL_UserCpReqCb_t pCpReqCB;
+} RAIL_UserCpReq_t;
/**
* Load sequencer user application to memory.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pSeqUserApp pointer to the structure describing the sequencer
- * user application metadata.
+ * @param[in] pSeqUserApp A pointer to the structure describing the user
+ * sequencer application metadata.
* @return Status code indicating success of the function call.
*
* Attempts to load sequencer user application to the sequencer memory and
* execute its initialization function.
*/
RAIL_Status_t RAIL_LoadUserSeqApp(RAIL_Handle_t railHandle,
- RAIL_SeqUserAppInfo_t *pSeqUserApp);
+ const RAIL_SeqUserAppInfo_t *pSeqUserApp);
/**
* Send a shutdown message to the sequencer user application.
*
* @param[in] railHandle A RAIL instance handle.
* @return Status code indicating success of the function call.
- *
*/
RAIL_Status_t RAIL_ShutdownUserSeqApp(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports User Sequencer.
+ * Indicate whether this chip supports Sequencer User.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if User Sequencer is supported; false otherwise.
+ * @return true if Sequencer User is supported; false otherwise.
*/
bool RAIL_SupportsUserSequencer(RAIL_Handle_t railHandle);
/**
- * Prints the common global variables.
- *
- * This function sets the pointers of the common global variables to their corresponding values.
+ * Get the sequencer user common global variables.
*
- * @param[in] railHandle A handle of the RAIL instance.
- * @param[in] pCommonGlobal A pointer to the common global variables.
- * @return RAIL_Status_t Returns RAIL_STATUS_NO_ERROR on success or an error code on failure.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[out] pCommonGlobal A non-NULL pointer to store the common global variables.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_USER_printCommonGlobal(RAIL_Handle_t railHandle,
RAIL_UserCommonGlobal_t *pCommonGlobal);
/**
- * TODO: Document and cleanup.
+ * Get sequencer user mailbox message.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pMsg
- * @return RAIL_Status_t Returns RAIL_STATUS_NO_ERROR on success or an error code on failure.
+ * @param[out] pMsg A non-NULL pointer to the message filled in by the call.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_USER_GetMboxMsg(RAIL_Handle_t railHandle,
uint32_t *pMsg);
/**
- * TODO: Document and cleanup.
+ * Send user mailbox message to the sequencer.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] msg
- * @return RAIL_Status_t Returns RAIL_STATUS_NO_ERROR on success or an error code on failure.
+ * @param[in] msg A message to send.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_USER_SendMbox(RAIL_Handle_t railHandle,
uint32_t msg);
+/**
+ * Initialize internal RAIL state used to run a user application on
+ * the sequencer.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
+ */
+RAIL_Status_t RAIL_USER_startSeqCtrl(RAIL_Handle_t railHandle);
+
+/**
+ * Initialize a semaphore.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in,out] pSemaphore A non-NULL pointer to a 32-bit aligned
+ * semaphore location updated to become an unacquired semaphore.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This must be called from the hsot for each semaphore's memory location.
+ */
+RAIL_Status_t RAIL_USER_InitSemaphore(RAIL_Handle_t railHandle,
+ uint32_t *pSemaphore);
+
+/**
+ * Acquire a semaphore lock.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in,out] pSemaphore A non-NULL pointer to the semaphore location
+ * which will be updated if the lock was acquired.
+ * @return Status code indicating success of the function call:
+ * \ref RAIL_STATUS_NO_ERROR if lock was acquired;
+ * \ref RAIL_STATUS_INVALID_PARAMETER if the lock is corrupted (the lock need to be initialized with \ref RAIL_USER_InitSemaphore());
+ * \ref RAIL_STATUS_INVALID_CALL if the lock has been acquired by another processor;
+ * \ref RAIL_STATUS_INVALID_STATE if the lock has been acquired before by the current processor;
+ * \ref RAIL_STATUS_SUSPENDED if the lock has been changed recently, user can try to acuire it again
+ *
+ * This function attempts to acquire (lock) a semaphore that was previously
+ * initialized by \ref RAIL_USER_InitSemaphore().
+ */
+RAIL_Status_t RAIL_USER_TryLockSemaphore(RAIL_Handle_t railHandle,
+ uint32_t *pSemaphore);
+
+/**
+ * Release a semaphore.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in,out] pSemaphore A non-NULL pointer to the semaphore location
+ * which will be updated if the semaphore was released.
+ * @return Status code indicating success of the function call.
+ *
+ * This function releases a semaphore that was previously initialized by
+ * \ref RAIL_USER_InitSemaphore() and acquired by \ref RAIL_USER_TryLockSemaphore().
+ */
+RAIL_Status_t RAIL_USER_ReleaseSemaphore(RAIL_Handle_t railHandle,
+ uint32_t *pSemaphore);
+
+/**
+ * Initilize which DMA to use to copy user data.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] dmaChannel The DMA channel to use.
+ * @return Status code indicating success of the function call.
+ */
+RAIL_Status_t RAIL_USER_InitCp(RAIL_Handle_t railHandle,
+ uint32_t dmaChannel);
+
+/**
+ * Start a request to copy user data.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in,out] pCpReqHead A non-NULL pointer to the start of a chain of user copy request configurations.
+ * @param[in,out] pCpReqTail A non-NULL pointer to the last configuration in the chain.
+ * @return Status code indicating success of the function call.
+ *
+ * This function will initiate copy operations for each element in the linked
+ * list chain between pCpReqHead and pCpReqTail, inclusive. The \ref
+ * RAIL_UserCpReq_t::statusFlag of each element in the chain will be
+ * updated as the operation progresses to completion or failure.
+ *
+ * @note Before using this function, \ref RAIL_USER_InitCp() must be
+ * called once from the host.
+ */
+RAIL_Status_t RAIL_USER_StartCpReq(RAIL_Handle_t railHandle,
+ RAIL_UserCpReq_t *pCpReqHead,
+ RAIL_UserCpReq_t *pCpReqTail);
+
+/** @} */ // end of group Sequencer_User_SIXX3XX
+
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
#ifdef __cplusplus
}
#endif
@@ -559,3 +721,5 @@ RAIL_Status_t RAIL_USER_SendMbox(RAIL_Handle_t railHandle,
#endif //__RAIL_TYPES_H__
#endif //__RAIL_CHIP_SPECIFIC_H_
+
+#endif //SLI_LIBRARY_BUILD
diff --git a/simplicity_sdk/platform/radio/rail_lib/common/rail.h b/simplicity_sdk/platform/radio/rail_lib/common/rail.h
index c08b12061..4cb415c43 100644
--- a/simplicity_sdk/platform/radio/rail_lib/common/rail.h
+++ b/simplicity_sdk/platform/radio/rail_lib/common/rail.h
@@ -45,7 +45,7 @@ extern "C" {
/**
* @addtogroup RAIL_API RAIL API
* @brief This is the primary API layer for the Radio Abstraction Interface
- * Layer (RAIL)
+ * Layer (RAIL).
* @{
*/
@@ -165,15 +165,27 @@ RAIL_Status_t RAIL_AddStateBuffer4(RAIL_Handle_t genericRailHandle);
* Allocate a DMA channel for RAIL to work with.
*
* @param[in] channel The DMA channel to use when copying memory. If a value of
- * RAIL_DMA_INVALID is passed, RAIL will stop using any DMA channel.
+ * \ref RAIL_DMA_INVALID is passed, RAIL will stop using any DMA channel.
* @return Status code indicating success of the function call.
*
* To use this API, the application must initialize the DMA engine
* on the chip and allocate a DMA channel. This channel will be used
* periodically to copy memory more efficiently. Call this function
- * before RAIL_Init to have the most benefit. If the application needs
+ * before \ref RAIL_Init() to have the most benefit. If the application needs
* to take back control of the DMA channel that RAIL is using, this API may be
- * called with a channel of RAIL_DMA_INVALID to tell RAIL to stop using DMA.
+ * called with a channel of \ref RAIL_DMA_INVALID to tell RAIL to stop using DMA.
+ *
+ * @warning To allocate and use a DMA channel for RAIL to work with when
+ * TrustZone is enabled and LDMA is configured as secure peripheral, the
+ * secure application must initialize the DMA engine and call this API. The
+ * non-secure application must provide a non-NULL
+ * \ref RAIL_TZ_Config_t::radioPerformM2mLdmaCallback to
+ * \ref RAIL_TZ_InitNonSecure().
+ * To take back control of the DMA channel when TrustZone is enabled and LDMA
+ * is configured as secure peripheral, the secure application must call this
+ * API with a channel of \ref RAIL_DMA_INVALID. The non-secure application
+ * must provide a NULL \ref RAIL_TZ_Config_t::radioPerformM2mLdmaCallback to
+ * \ref RAIL_TZ_InitNonSecure().
*/
RAIL_Status_t RAIL_UseDma(uint8_t channel);
@@ -187,7 +199,7 @@ RAIL_Status_t RAIL_UseDma(uint8_t channel);
* @return Status code indicating success of the function call.
*
* This function must only be called from within the RAIL callback context of
- * \ref RAILCb_RadioSequencerImageLoad. Otherwise, the function returns \ref
+ * \ref RAILCb_RadioSequencerImageLoad(). Otherwise, the function returns \ref
* RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_LoadSequencerImage1(RAIL_Handle_t genericRailHandle);
@@ -200,7 +212,7 @@ RAIL_Status_t RAIL_LoadSequencerImage1(RAIL_Handle_t genericRailHandle);
* @return Status code indicating success of the function call.
*
* This function must only be called from within the RAIL callback context of
- * \ref RAILCb_RadioSequencerImageLoad. Otherwise, the function returns \ref
+ * \ref RAILCb_RadioSequencerImageLoad(). Otherwise, the function returns \ref
* RAIL_STATUS_INVALID_STATE. On platforms where \ref RAIL_SEQ_IMAGE_COUNT < 2,
* the function returns with \ref RAIL_STATUS_INVALID_CALL.
*/
@@ -213,32 +225,19 @@ RAIL_Status_t RAIL_LoadSequencerImage2(RAIL_Handle_t genericRailHandle);
* @return Status code indicating success of the function call.
*
* This callback is used by RAIL to load a radio sequencer image during \ref
- * RAIL_Init via an API such as \ref RAIL_LoadSequencerImage1. If this
+ * RAIL_Init() via an API such as \ref RAIL_LoadSequencerImage1(). If this
* function is not implemented, a default image will be loaded. On some
- * platforms, (in particular EFR32XG24), not implementing this function may
+ * platforms, (in particular EFR32xG24), not implementing this function may
* result in a larger overall code size due to unused sequencer images not
* being dead stripped.
*
* @note If this function is implemented without a call to an image loading API
- * such as \ref RAIL_LoadSequencerImage1, an assert will occur during
+ * such as \ref RAIL_LoadSequencerImage1(), an assert will occur during
* RAIL initialization. Similarly, if an image is loaded that is
* unsupported by the platform, an assert will occur.
*/
RAIL_Status_t RAILCb_RadioSequencerImageLoad(void);
-/**
- * Load the FSK, OFDM and OQPSK image into the software modem (SFM) sequencer
- * during RAIL initialization.
- *
- * @param[in] genericRailHandle A generic RAIL instance handle.
- * @return Status code indicating success of the function call.
- *
- * This function must only be called from within the RAIL callback context of
- * \ref RAILCb_LoadSfmSequencer. Otherwise, the function returns \ref
- * RAIL_STATUS_INVALID_STATE.
- */
-RAIL_Status_t RAIL_LoadSfmSunFskOfdmOqpsk(RAIL_Handle_t genericRailHandle);
-
/**
* Load the OFDM and OQPSK image into the software modem (SFM) sequencer during
* RAIL initialization.
@@ -247,7 +246,7 @@ RAIL_Status_t RAIL_LoadSfmSunFskOfdmOqpsk(RAIL_Handle_t genericRailHandle);
* @return Status code indicating success of the function call.
*
* This function must only be called from within the RAIL callback context of
- * \ref RAILCb_LoadSfmSequencer. Otherwise, the function returns \ref
+ * \ref RAILCb_LoadSfmSequencer(). Otherwise, the function returns \ref
* RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_LoadSfmSunOfdmOqpsk(RAIL_Handle_t genericRailHandle);
@@ -260,7 +259,7 @@ RAIL_Status_t RAIL_LoadSfmSunOfdmOqpsk(RAIL_Handle_t genericRailHandle);
* @return Status code indicating success of the function call.
*
* This function must only be called from within the RAIL callback context of
- * \ref RAILCb_LoadSfmSequencer. Otherwise, the function returns \ref
+ * \ref RAILCb_LoadSfmSequencer(). Otherwise, the function returns \ref
* RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_LoadSfmSunOfdm(RAIL_Handle_t genericRailHandle);
@@ -273,7 +272,7 @@ RAIL_Status_t RAIL_LoadSfmSunOfdm(RAIL_Handle_t genericRailHandle);
* @return Status code indicating success of the function call.
*
* This function must only be called from within the RAIL callback context of
- * \ref RAILCb_LoadSfmSequencer. Otherwise, the function returns \ref
+ * \ref RAILCb_LoadSfmSequencer(). Otherwise, the function returns \ref
* RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_LoadSfmEmpty(RAIL_Handle_t genericRailHandle);
@@ -284,28 +283,38 @@ RAIL_Status_t RAIL_LoadSfmEmpty(RAIL_Handle_t genericRailHandle);
*
* @return Status code indicating success of the function call.
*
- * This callback is used by RAIL to load a software modem sequencer image during \ref
- * RAIL_Init via an API such as \ref RAIL_LoadSfmSunFskOfdmOqpsk. If this
- * function is not implemented, a default image including FSK, OFDM andd OQPSK
- * modulations will be loaded.
+ * This callback is used by RAIL to load a software modem sequencer image
+ * during \ref RAIL_Init() via an API such as \ref RFHAL_LoadSfmSunOfdmOqpsk().
+ * If this function is not implemented, a default image including OFDM and
+ * OQPSK modulations will be loaded.
*
* @note If this function is implemented without a call to an image loading API
- * such as \ref RAIL_LoadSfmSunFskOfdmOqpsk, an assert will occur during
- * RAIL initialization. Similiarly, if an image is loaded that is
- * unsupported by the platform, an assert will occur.
+ * such as \ref RFHAL_LoadSfmSunOfdmOqpsk(), an assert will occur during RAIL
+ * initialization. Similarly, if an image is loaded that is unsupported by
+ * the platform, an assert will occur.
*/
RAIL_Status_t RAILCb_LoadSfmSequencer(void);
#endif //DOXYGEN_SHOULD_SKIP_THIS
+/**
+ * Reads out device specific data that may be needed by RAIL
+ * and populates appropriate data structures in the library.
+ *
+ * @param[in] genericRailHandle A generic RAIL instance handle.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must be called before calling \ref RAIL_Init()
+ * on any platforms that require this data
+ * and should not be called inside a critical section.
+ * This function does nothing on EFR32 Series 2 devices.
+ */
+RAIL_Status_t RAIL_CopyDeviceInfo(RAIL_Handle_t genericRailHandle);
+
/**
* Initialize RAIL.
*
- * @param[in,out] railCfg The configuration and state structure for setting up
- * the library, which contains memory and other options that RAIL needs.
- * This structure must be allocated in application global read-write
- * memory. RAIL may modify fields within or referenced by this structure
- * during its operation.
+ * @param[in] railCfg The configuration for setting up the protocol.
* @param[in] cb A callback that notifies the application when the radio is
* finished initializing and is ready for further configuration. This
* callback is useful for potential transceiver products that require a
@@ -316,9 +325,11 @@ RAIL_Status_t RAILCb_LoadSfmSequencer(void);
* invalid value was passed in the railCfg.
*
* @note Call this function only once per protocol. If called
- * again, it will do nothing and return NULL.
+ * again, it will do nothing and return NULL. \ref RAIL_CopyDeviceInfo()
+ * should be called once before calling this function for
+ * Silicon Labs Series 3 devices.
*/
-RAIL_Handle_t RAIL_Init(RAIL_Config_t *railCfg,
+RAIL_Handle_t RAIL_Init(const RAIL_Config_t *railCfg,
RAIL_InitCompleteCallbackPtr_t cb);
/**
@@ -327,8 +338,8 @@ RAIL_Handle_t RAIL_Init(RAIL_Config_t *railCfg,
* @return true if the radio has finished initializing and
* false otherwise.
*
- * RAIL APIs, e.g., RAIL_GetTime(), which work only if RAIL_Init() has been called,
- * can use RAIL_IsInitialized() to determine whether RAIL has been initialized or not.
+ * RAIL APIs, e.g., \ref RAIL_GetTime(), which work only if \ref RAIL_Init() has been called,
+ * can use \ref RAIL_IsInitialized() to determine whether RAIL has been initialized or not.
*/
bool RAIL_IsInitialized(void);
@@ -368,12 +379,12 @@ uint16_t RAIL_GetRadioEntropy(RAIL_Handle_t railHandle,
/**
* Configure PTI pin locations, serial protocols, and baud rates.
*
- * @param[in] railHandle A RAIL instance handle, e.g., \ref RAIL_EFR32_HANDLE.
+ * @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[in] ptiConfig A non-NULL pointer to the PTI configuration structure
* to use.
* @return Status code indicating success of the function call.
*
- * This method must be called before RAIL_EnablePti() is called.
+ * This method must be called before \ref RAIL_EnablePti() is called.
* There is only one PTI configuration that can be active on a
* radio, regardless of the number of protocols (unless the application
* updates the configuration upon a protocol switch -- RAIL does not
@@ -383,6 +394,10 @@ uint16_t RAIL_GetRadioEntropy(RAIL_Handle_t railHandle,
*
* @note On EFR32 platforms GPIO configuration must be unlocked
* (see GPIO->LOCK register) to configure or use PTI.
+ *
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_ConfigPti(RAIL_Handle_t railHandle,
const RAIL_PtiConfig_t *ptiConfig);
@@ -390,7 +405,7 @@ RAIL_Status_t RAIL_ConfigPti(RAIL_Handle_t railHandle,
/**
* Get the currently-active PTI configuration.
*
- * @param[in] railHandle A RAIL instance handle, e.g., \ref RAIL_EFR32_HANDLE.
+ * @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[out] ptiConfig A non-NULL pointer to the configuration structure
* to be filled in with the active PTI configuration.
* @return RAIL status indicating success of the function call.
@@ -406,7 +421,7 @@ RAIL_Status_t RAIL_GetPtiConfig(RAIL_Handle_t railHandle,
/**
* Enable Packet Trace Interface (PTI) output of packet data.
*
- * @param[in] railHandle A RAIL instance handle, e.g., \ref RAIL_EFR32_HANDLE.
+ * @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[in] enable PTI is enabled if true; disabled if false.
* @return Status code indicating success of the function call.
*
@@ -424,6 +439,10 @@ RAIL_Status_t RAIL_GetPtiConfig(RAIL_Handle_t railHandle,
* If GPIO configuration locking is desired, PTI must be disabled
* beforehand either with this function or with \ref RAIL_ConfigPti()
* using \ref RAIL_PTI_MODE_DISABLED.
+ *
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_EnablePti(RAIL_Handle_t railHandle,
bool enable);
@@ -472,7 +491,7 @@ RAIL_PtiProtocol_t RAIL_GetPtiProtocol(RAIL_Handle_t railHandle);
* @warning This API must be called before any TX or RX occurs. Otherwise,
* the antenna configurations for those functions will not take effect.
*
- * @param[in] railHandle A RAIL instance handle, e.g., \ref RAIL_EFR32_HANDLE.
+ * @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[in] config A pointer to a configuration structure applied to the relevant Antenna
* Configuration registers. A NULL configuration will produce undefined behavior.
* @return Status code indicating success of the function call.
@@ -553,7 +572,7 @@ RAIL_Status_t RAIL_ConfigRadio(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] length The expected fixed frame length. A value of 0 is infinite.
- * A value of RAIL_SETFIXEDLENGTH_INVALID restores the frame's length back to
+ * A value of \ref RAIL_SETFIXEDLENGTH_INVALID restores the frame's length back to
* the length specified by the default frame type configuration.
* @return The new frame length configured into the hardware
* for use: 0 if in infinite mode, or \ref RAIL_SETFIXEDLENGTH_INVALID if the frame
@@ -562,7 +581,7 @@ RAIL_Status_t RAIL_ConfigRadio(RAIL_Handle_t railHandle,
* Sets the fixed-length configuration for transmit and receive.
* Be careful when using this function in receive and transmit as this
* function changes the default frame configuration and remains in force until
- * it is called again with an input value of RAIL_SETFIXEDLENGTH_INVALID. This
+ * it is called again with an input value of \ref RAIL_SETFIXEDLENGTH_INVALID. This
* function will override any fixed or variable length settings from a radio
* configuration.
*/
@@ -592,6 +611,37 @@ uint16_t RAIL_ConfigChannels(RAIL_Handle_t railHandle,
const RAIL_ChannelConfig_t *config,
RAIL_RadioConfigChangedCallback_t cb);
+/**
+ * Configure the channels supported by this device.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] config A pointer to the channel configuration for your device.
+ * This pointer will be cached in the library so it must
+ * exist for the runtime of the application. Typically, this should be
+ * what is stored in Flash by the configuration tool.
+ * @param[in] cb A pointer to a function called whenever a radio
+ * configuration change occurs. May be NULL if do not need a callback.
+ * @return Status code indicating success of the function call.
+ *
+ * @note Unlike \ref RAIL_ConfigChannels(), this function only caches the
+ * configuration and does not prepare any channel in the configuration. That
+ * action is deferred to the next call to a RAIL API where channel is passed
+ * as a parameter, namely
+ * \ref RAIL_PrepareChannel(), \ref RAIL_StartTx(),
+ * \ref RAIL_StartScheduledTx(), \ref RAIL_StartCcaCsmaTx(),
+ * \ref RAIL_StartCcaLbtTx(), \ref RAIL_StartScheduledCcaCsmaTx(),
+ * \ref RAIL_StartScheduledCcaLbtTx(), \ref RAIL_StartRx(),
+ * \ref RAIL_ScheduleRx(), \ref RAIL_StartAverageRssi(),
+ * \ref RAIL_StartTxStream().
+ *
+ * @note config can be NULL to simply register or unregister the cb callback
+ * function when using RAIL internal protocol-specific radio configuration
+ * APIs for BLE, IEEE 802.15.4, or Z-Wave, which lack callback specification.
+ */
+RAIL_Status_t RAIL_ConfigChannelsAlt(RAIL_Handle_t railHandle,
+ const RAIL_ChannelConfig_t *config,
+ RAIL_RadioConfigChangedCallback_t cb);
+
/**
* Get verbose listing of channel metadata for the current channel configuration.
*
@@ -662,11 +712,11 @@ RAIL_Status_t RAIL_PrepareChannel(RAIL_Handle_t railHandle, uint16_t channel);
* or \ref RAIL_STATUS_INVALID_PARAMETER if channel parameter is NULL.
*
* This function returns the channel most recently specified in API calls that
- * pass in a channel to tune to, namely \ref RAIL_PrepareChannel,
- * \ref RAIL_StartTx, \ref RAIL_StartScheduledTx, \ref RAIL_StartCcaCsmaTx,
- * \ref RAIL_StartCcaLbtTx, \ref RAIL_StartScheduledCcaCsmaTx,
- * \ref RAIL_StartScheduledCcaLbtTx, \ref RAIL_StartRx, \ref RAIL_ScheduleRx,
- * \ref RAIL_StartAverageRssi, \ref RAIL_StartTxStream, \ref RAIL_StartTxStreamAlt.
+ * pass in a channel to tune to, namely \ref RAIL_PrepareChannel(),
+ * \ref RAIL_StartTx(), \ref RAIL_StartScheduledTx(), \ref RAIL_StartCcaCsmaTx(),
+ * \ref RAIL_StartCcaLbtTx(), \ref RAIL_StartScheduledCcaCsmaTx(),
+ * \ref RAIL_StartScheduledCcaLbtTx(), \ref RAIL_StartRx(), \ref RAIL_ScheduleRx(),
+ * \ref RAIL_StartAverageRssi(), \ref RAIL_StartTxStream(), \ref RAIL_StartTxStreamAlt().
* It doesn't follow changes RAIL performs implicitly during channel hopping
* and mode switch.
*/
@@ -793,12 +843,12 @@ RAIL_Status_t RAIL_GetSyncWords(RAIL_Handle_t railHandle,
* @return Status code indicating success of the function call.
*
* When the custom sync word(s) applied by this API are no longer needed, or to
- * revert to default sync word, calling RAIL_ConfigChannels() will re-establish
+ * revert to default sync word, calling \ref RAIL_ConfigChannels() will re-establish
* the sync words specified in the radio configuration.
*
* This function will return \ref RAIL_STATUS_INVALID_STATE if called when BLE
* has been enabled for this railHandle. When changing sync words in BLE mode,
- * use \ref RAIL_BLE_ConfigChannelRadioParams instead.
+ * use \ref RAIL_BLE_ConfigChannelRadioParams() instead.
**/
RAIL_Status_t RAIL_ConfigSyncWords(RAIL_Handle_t railHandle,
const RAIL_SyncWordConfig_t *syncWordConfig);
@@ -897,7 +947,7 @@ RAIL_Status_t RAIL_ResetCrcInitVal(RAIL_Handle_t railHandle);
/// These functions can be used to get information about the current system time
/// or to manipulate the RAIL timer.
///
-/// The system time returned by RAIL_GetTime() is in the same timebase that is
+/// The system time returned by \ref RAIL_GetTime() is in the same timebase that is
/// used throughout RAIL. Any callbacks or structures that provide a timestamp,
/// such as \ref RAIL_RxPacketDetails_t::timeReceived, will use the same timebase
/// as will any APIs that accept an absolute time for scheduling their action.
@@ -910,8 +960,8 @@ RAIL_Status_t RAIL_ResetCrcInitVal(RAIL_Handle_t railHandle);
/// for timing any event in the system, but is especially helpful for
/// timing protocol-based state machines and other systems that interact with
/// the radio. To avoid processing the expiration in interrupt
-/// context, leave the cb parameter passed to RAIL_SetTimer() as NULL and poll
-/// for expiration with the RAIL_IsTimerExpired() function. See below for an
+/// context, leave the cb parameter passed to \ref RAIL_SetTimer() as NULL and poll
+/// for expiration with the \ref RAIL_IsTimerExpired() function. See below for an
/// example of the interrupt driven method of interacting with the timer.
/// @code{.c}
/// void timerCb(RAIL_Handle_t cbArg)
@@ -1022,7 +1072,7 @@ RAIL_Status_t RAIL_DelayUs(RAIL_Time_t microseconds);
* @param[in] time The timer's expiration time in the RAIL timebase.
* @param[in] mode Indicates whether the time argument is an absolute
* RAIL time or relative to the current RAIL time. Specifying mode
- * \ref RAIL_TIME_DISABLED is the same as calling RAIL_CancelTimer().
+ * \ref RAIL_TIME_DISABLED is the same as calling \ref RAIL_CancelTimer().
* @param[in] cb A pointer to a callback function that RAIL will call
* when the timer expires. May be NULL if no callback is desired.
* @return \ref RAIL_STATUS_NO_ERROR on success and
@@ -1051,7 +1101,7 @@ RAIL_Status_t RAIL_SetTimer(RAIL_Handle_t railHandle,
* @return The absolute time that this timer was set to expire.
*
* Provides the absolute time regardless of the \ref RAIL_TimeMode_t that
- * was passed into \ref RAIL_SetTimer. Note that the time might be in the
+ * was passed into \ref RAIL_SetTimer(). Note that the time might be in the
* past if the timer has already expired. The return value is undefined if the
* timer was never set.
*/
@@ -1101,11 +1151,11 @@ bool RAIL_IsTimerRunning(RAIL_Handle_t railHandle);
* so that the user can have as many timers as desired. It is not necessary to
* call this function if the MultiTimer APIs are not used.
*
- * @note This function must be called before calling \ref RAIL_SetMultiTimer.
+ * @note This function must be called before calling \ref RAIL_SetMultiTimer().
* This function is a no-op on multiprotocol as this layer is already used
* under the hood.
* Do not call this function while the RAIL timer is running.
- * Call \ref RAIL_IsTimerRunning before enabling/disabling the multitimer.
+ * Call \ref RAIL_IsTimerRunning() before enabling/disabling the multitimer.
* If the multitimer is not needed, do not call this function to
* allow the multitimer code to be dead stripped. If the multitimer is
* enabled for use, the multitimer and timer APIs can both be used.
@@ -1121,7 +1171,7 @@ bool RAIL_ConfigMultiTimer(bool enable);
* @param[in] expirationMode Select mode of expirationTime. See \ref
* RAIL_TimeMode_t.
* @param[in] callback A function to call on timer expiry. See \ref
- * RAIL_MultiTimerCallback_t. NULL is a legal value.
+ * RAIL_MultiTimerCallback_t. May be NULL if no callback is desired.
* @param[in] cbArg An extra callback function parameter for the user application.
* @return
* \ref RAIL_STATUS_NO_ERROR on success.@n
@@ -1141,12 +1191,12 @@ RAIL_Status_t RAIL_SetMultiTimer(RAIL_MultiTimer_t *tmr,
/**
* Stop the currently scheduled RAIL multitimer.
*
- * @param[in,out] tmr A RAIL timer instance handle.
+ * @param[in,out] tmr A pointer to a RAIL timer instance.
* @return true if the timer was successfully canceled;
* false if the timer was not running.
*
* Cancels the timer. If this function is called before the timer expires,
- * the cb callback specified in the earlier RAIL_SetTimer() call will never
+ * the cb callback specified in the earlier \ref RAIL_SetTimer() call will never
* be called.
*/
bool RAIL_CancelMultiTimer(RAIL_MultiTimer_t *tmr);
@@ -1154,8 +1204,9 @@ bool RAIL_CancelMultiTimer(RAIL_MultiTimer_t *tmr);
/**
* Check if a given timer is running.
*
- * @param[in] tmr A pointer to the timer structure to query.
- * @return true if the timer is running; false if the timer is not running.
+ * @param[in] tmr A pointer to the timer instance.
+ * @return true if the timer is running; false if the timer is not running
+ * or tmr is not a timer instance.
*/
bool RAIL_IsMultiTimerRunning(RAIL_MultiTimer_t *tmr);
@@ -1163,14 +1214,15 @@ bool RAIL_IsMultiTimerRunning(RAIL_MultiTimer_t *tmr);
* Check if a given timer has expired.
*
* @param[in] tmr A pointer to the timer instance.
- * @return true if the timer is expired; false if the timer is running.
+ * @return true if the timer has expired or tmr is not a timer instance;
+ * false if the timer is running.
*/
bool RAIL_IsMultiTimerExpired(RAIL_MultiTimer_t *tmr);
/**
* Get time left before a given timer instance expires.
*
- * @param[in] tmr A pointer to the timer structure to query.
+ * @param[in] tmr A pointer to the timer instance to query.
* @param[in] timeMode Indicates how the function provides the time
* remaining. By choosing \ref
* RAIL_TimeMode_t::RAIL_TIME_ABSOLUTE, the function returns the
@@ -1179,7 +1231,7 @@ bool RAIL_IsMultiTimerExpired(RAIL_MultiTimer_t *tmr);
* amount of time remaining before the timer's expiration.
* @return
* Time left expressed in RAIL's time units.
- * 0 if the soft timer is not running or has already expired.
+ * 0 if the timer is not running or has already expired.
*/
RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
RAIL_TimeMode_t timeMode);
@@ -1200,12 +1252,12 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// synchronized to a running LFCLK and the chip is set to wake up before the
/// next scheduled event.
/// If RAIL has not been configured to use the power manager,
-/// \ref RAIL_Sleep and \ref RAIL_Wake must be called for performing this
+/// \ref RAIL_Sleep() and \ref RAIL_Wake() must be called for performing this
/// synchronization.
/// If RAIL has been configured to use the power manager,
-/// \ref RAIL_InitPowerManager, it will automatically perform timer
+/// \ref RAIL_InitPowerManager(), it will automatically perform timer
/// synchronization based on the selected \ref RAIL_TimerSyncConfig_t. Calls to
-/// \ref RAIL_Sleep and \ref RAIL_Wake are unsupported in such a scenario.
+/// \ref RAIL_Sleep() and \ref RAIL_Wake() are unsupported in such a scenario.
///
/// Following example code snippets demonstrate synchronizing the timebase
/// with and without timer synchronization:
@@ -1216,7 +1268,7 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// LFCLK up and running and leave it running across sleep so that the high
/// frequency clock that drives the RAIL time base can be synchronized to it.
/// The \ref RAIL_Sleep() API will also set up a wake event on the timer to wake
-/// up wakeupTime before the next timer event so that it can run successfully.
+/// up wakeupProcessTime before the next timer event so that it can run successfully.
/// See the \ref efr32_main sections on Low-Frequency Clocks and RAIL Timer
/// Synchronization for more setup details.
///
@@ -1231,7 +1283,7 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
///
/// extern RAIL_Handle_t railHandle;
/// // Wakeup time for your crystal/board/chip combination
-/// extern uint32_t wakeupTime;
+/// extern uint32_t wakeupProcessTime;
///
/// void main(void)
/// {
@@ -1244,7 +1296,8 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// BoardSetupLFCLK()
///
/// // Configure sleep for timer synchronization
-/// status = RAIL_ConfigSleep(railHandle, RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED);
+/// RAIL_TimerSyncConfig_t timerSyncConfig = RAIL_TIMER_SYNC_DEFAULT;
+/// status = RAIL_ConfigSleepAlt(railHandle, &timerSyncConfig);
/// assert(status == RAIL_STATUS_NO_ERROR);
///
/// // Application main loop
@@ -1256,7 +1309,7 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
///
/// // Go critical to assess sleep decisions
/// CORE_ENTER_CRITICAL();
-/// if (RAIL_Sleep(wakeupTime, &sleepAllowed) != RAIL_STATUS_NO_ERROR) {
+/// if (RAIL_Sleep(wakeupProcessTime, &sleepAllowed) != RAIL_STATUS_NO_ERROR) {
/// printf("Error trying to go to sleep!");
/// CORE_EXIT_CRITICAL();
/// continue;
@@ -1289,7 +1342,8 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// // will attempt to auto detect the clock.
/// BoardSetupLFCLK();
/// // Configure sleep for timer synchronization
-/// status = RAIL_ConfigSleep(railHandle, RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED);
+/// RAIL_TimerSyncConfig_t timerSyncConfig = RAIL_TIMER_SYNC_DEFAULT;
+/// status = RAIL_ConfigSleepAlt(railHandle, &timerSyncConfig);
/// assert(status == RAIL_STATUS_NO_ERROR);
/// // Initialize application-level power manager service
/// sl_power_manager_init();
@@ -1308,8 +1362,8 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// }
/// @endcode
///
-/// RAIL APIs such as, \ref RAIL_StartScheduledTx, \ref RAIL_ScheduleRx,
-/// \ref RAIL_SetTimer, \ref RAIL_SetMultiTimer can be used to schedule periodic
+/// RAIL APIs such as, \ref RAIL_StartScheduledTx(), \ref RAIL_ScheduleRx(),
+/// \ref RAIL_SetTimer(), \ref RAIL_SetMultiTimer() can be used to schedule periodic
/// wakeups to perform a scheduled operation. The call to
/// sl_power_manager_sleep() in the main loop ensures that the device sleeps
/// until the scheduled operation is due.
@@ -1317,11 +1371,11 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// indicate radio busy to the power manager to allow the application to
/// service the RAIL event and perform subsequent operations before going to
/// sleep. Therefore, it is important that the application idle the radio by either
-/// calling \ref RAIL_Idle or \ref RAIL_YieldRadio.
+/// calling \ref RAIL_Idle() or \ref RAIL_YieldRadio().
/// If the radio transitions to RX after an RX or TX operation,
-/// always call \ref RAIL_Idle in order transition to a lower sleep state.
+/// always call \ref RAIL_Idle() in order transition to a lower sleep state.
/// If the radio transitions to idle after an RX or TX operation,
-/// \ref RAIL_YieldRadio should suffice in indicating to the power manager
+/// \ref RAIL_YieldRadio() should suffice in indicating to the power manager
/// that the radio is no longer busy and the device can sleep.
///
/// The following example shows scheduling periodic TX on getting a TX completion
@@ -1342,16 +1396,16 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// @endcode
///
/// @note The above code assumes that RAIL automatic state transitions after TX
-/// are idle. Set \ref RAIL_SetTxTransitions to ensure the right state
-/// transitions. Radio must be idle for the device to enter EM2 or lower
+/// are idle. Use \ref RAIL_SetTxTransitions() to ensure the right state
+/// transitions are used. Radio must be idle for the device to enter EM2 or lower
/// energy mode.
///
-/// @note When using the power manager, usage of \ref RAIL_YieldRadio in
+/// @note When using the power manager, usage of \ref RAIL_YieldRadio() in
/// single protocol RAIL is similar to its usage in multiprotocol RAIL.
/// See \ref rail_radio_scheduler_yield for more details.
///
/// @note Back to back scheduled operations do not require an explicit call to
-/// \ref RAIL_YieldRadio if the radio transitions to idle.
+/// \ref RAIL_YieldRadio() if the radio transitions to idle.
///
/// Sleep without timer synchronization:
///
@@ -1373,8 +1427,11 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// RAIL_Status_t status;
/// bool shouldSleep = false;
///
-/// // Configure sleep for timer synchronization
-/// status = RAIL_ConfigSleep(railHandle, RAIL_SLEEP_CONFIG_TIMERSYNC_DISABLED);
+/// // Configure sleep for no timer synchronization
+/// RAIL_TimerSyncConfig_t timerSyncConfig = {
+/// .sleep = RAIL_SLEEP_CONFIG_TIMERSYNC_DISABLED,
+/// };
+/// status = RAIL_ConfigSleepAlt(railHandle, &timerSyncConfig);
/// assert(status == RAIL_STATUS_NO_ERROR);
///
/// // Application main loop
@@ -1420,8 +1477,11 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
/// // you intend to use for RTCC sync before we configure sleep as that function
/// // will attempt to auto detect the clock.
/// BoardSetupLFCLK();
-/// // Configure sleep for timer synchronization
-/// status = RAIL_ConfigSleep(railHandle, RAIL_SLEEP_CONFIG_TIMERSYNC_DISABLED);
+/// // Configure sleep for no timer synchronization
+/// RAIL_TimerSyncConfig_t timerSyncConfig = {
+/// .sleep = RAIL_SLEEP_CONFIG_TIMERSYNC_DISABLED,
+/// };
+/// status = RAIL_ConfigSleepAlt(railHandle, &timerSyncConfig);
/// assert(status == RAIL_STATUS_NO_ERROR);
/// // Initialize application-level power manager service
/// sl_power_manager_init();
@@ -1446,7 +1506,7 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
* structure containing the configuration parameters for timer sync. The
* \ref RAIL_TimerSyncConfig_t::sleep field is ignored in this call.
*
- * This function is called during \ref RAIL_ConfigSleep to allow an application
+ * This function is called during \ref RAIL_ConfigSleep() to allow an application
* to configure the PRS and RTCC channels used for timer sync to values other
* than their defaults. The default channels are populated in timerSyncConfig and
* can be overwritten by the application. If this function is not implemented by the
@@ -1461,7 +1521,7 @@ RAIL_Time_t RAIL_GetMultiTimer(RAIL_MultiTimer_t *tmr,
* }
* @endcode
*
- * If an unsupported channel is selected by the application, \ref RAIL_ConfigSleep
+ * If an unsupported channel is selected by the application, \ref RAIL_ConfigSleep()
* will return \ref RAIL_STATUS_INVALID_PARAMETER.
*/
void RAILCb_ConfigSleepTimerSync(RAIL_TimerSyncConfig_t *timerSyncConfig);
@@ -1472,6 +1532,12 @@ void RAILCb_ConfigSleepTimerSync(RAIL_TimerSyncConfig_t *timerSyncConfig);
* @param[in] railHandle A RAIL instance handle.
* @param[in] sleepConfig A sleep configuration.
* @return Status code indicating success of the function call.
+ *
+ * @warning As this function relies on PRS and SYSRTC access and RAIL is meant
+ * to run in TrustZone non-secure world, it is not supported if PRS or SYSRTC
+ * are configured as secure peripheral and sleepConfig is set to
+ * \ref RAIL_SleepConfig_t::RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED. It will
+ * return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_ConfigSleep(RAIL_Handle_t railHandle,
RAIL_SleepConfig_t sleepConfig);
@@ -1480,14 +1546,20 @@ RAIL_Status_t RAIL_ConfigSleep(RAIL_Handle_t railHandle,
* Initialize RAIL timer synchronization.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] syncConfig A pointer to the timer synchronization configuration.
+ * @param[in] syncConfig A non-NULL pointer to the timer synchronization configuration.
* @return Status code indicating success of the function call.
*
* The default structure used to enable timer synchronization across sleep is
* \ref RAIL_TIMER_SYNC_DEFAULT.
+ *
+ * @warning As this function relies on PRS and SYSRTC access and RAIL is meant
+ * to run in TrustZone non-secure world, it is not supported if PRS or SYSRTC
+ * are configured as secure peripheral and syncConfig->sleep is set to
+ * \ref RAIL_SleepConfig_t::RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED. It will
+ * return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_ConfigSleepAlt(RAIL_Handle_t railHandle,
- RAIL_TimerSyncConfig_t *syncConfig);
+ const RAIL_TimerSyncConfig_t *syncConfig);
/**
* Stop the RAIL timer(s) and prepare RAIL for sleep.
@@ -1512,7 +1584,7 @@ RAIL_Status_t RAIL_Sleep(uint16_t wakeupProcessTime, bool *deepSleepAllowed);
* to the RAIL timer(s) before restarting it(them).
* @return Status code indicating success of the function call.
*
- * If the timer sync was enabled by \ref RAIL_ConfigSleep, synchronize the RAIL
+ * If the timer sync was enabled by \ref RAIL_ConfigSleep(), synchronize the RAIL
* timer(s) using an alternate timer. Otherwise, add elapsedTime to the RAIL
* timer(s).
*
@@ -1534,6 +1606,10 @@ RAIL_Status_t RAIL_Wake(RAIL_Time_t elapsedTime);
* @warning Since EM transition callbacks are not called in a deterministic
* order, it is suggested to not call any RAIL time dependent APIs
* in an EM transition callback.
+ *
+ * @warning As this function relies on EMU access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if EMU is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_InitPowerManager(void);
@@ -1564,13 +1640,11 @@ RAIL_Status_t RAIL_DeinitPowerManager(void);
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] mask A bitmask of events to configure.
- * @param[in] events A bitmask of events to trigger \ref RAIL_Config_t::eventsCallback
- * For a full list of available callbacks, see
- * RAIL_EVENT_* set of defines.
+ * @param[in] events A bitmask of events to trigger \ref RAIL_Config_t::eventsCallback.
* @return Status code indicating success of the function call.
*
* Sets up which radio interrupts generate a RAIL event. The full list of
- * options is in \ref RAIL_Events_t.
+ * events is in \ref RAIL_Events_t.
*/
RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
RAIL_Events_t mask,
@@ -1598,7 +1672,7 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
/// RAIL_DataMethod_t::FIFO_MODE operation but can be used in \ref
/// RAIL_DataMethod_t::PACKET_MODE too.
///
-/// The application can configure RAIL data management through
+/// The application can configure RAIL data management through \ref
/// RAIL_ConfigData(). This function allows the application to specify the type
/// of radio data (\ref RAIL_TxDataSource_t and \ref RAIL_RxDataSource_t) and
/// the method of interacting with data (\ref RAIL_DataMethod_t). By default,
@@ -1608,23 +1682,23 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
/// For transmit, \ref RAIL_DataMethod_t::PACKET_MODE and \ref
/// RAIL_DataMethod_t::FIFO_MODE are functionally the same:
/// - When not actively transmitting, load a packet's initial transmit
-/// data using RAIL_WriteTxFifo() with reset set to true. Alternatively
+/// data using \ref RAIL_WriteTxFifo() with reset set to true. Alternatively
/// this data copying can be avoided by changing the transmit FIFO to an
/// already-loaded section of memory with \ref RAIL_SetTxFifo().
/// - When actively transmitting, load remaining transmit data with
-/// RAIL_WriteTxFifo() with reset set to false.
+/// \ref RAIL_WriteTxFifo() with reset set to false.
/// - If transmit packets exceed the FIFO size, set the transmit FIFO
-/// threshold through RAIL_SetTxFifoThreshold(). The \ref
+/// threshold through \ref RAIL_SetTxFifoThreshold(). The \ref
/// RAIL_Config_t::eventsCallback with \ref RAIL_EVENT_TX_FIFO_ALMOST_EMPTY
/// will occur telling the application to load more TX packet data, if
/// needed, to prevent a \ref RAIL_EVENT_TX_UNDERFLOW event from occurring.
/// One can get how much space is available in the transmit FIFO for more
-/// transmit data through RAIL_GetTxFifoSpaceAvailable().
+/// transmit data through \ref RAIL_GetTxFifoSpaceAvailable().
/// - After transmit completes, the transmit FIFO can be manually reset
-/// with RAIL_ResetFifo(), but this should rarely be necessary.
+/// with \ref RAIL_ResetFifo(), but this should rarely be necessary.
///
/// The transmit FIFO is specified by the application and its size is
-/// the value returned from the most recent call to RAIL_SetTxFifo().
+/// the value returned from the most recent call to \ref RAIL_SetTxFifo().
/// The transmit FIFO is edge-based in that it only provides the \ref
/// RAIL_EVENT_TX_FIFO_ALMOST_EMPTY event once when the threshold is crossed
/// in the emptying direction.
@@ -1642,10 +1716,10 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
/// and can be read out at the end using \ref RAIL_GetRxPacketInfo().
/// - Received packet data is made available on successful packet completion
/// via \ref RAIL_Config_t::eventsCallback with \ref
-/// RAIL_EVENT_RX_PACKET_RECEIVED which can then use RAIL_GetRxPacketInfo()
-/// and RAIL_GetRxPacketDetailsAlt() to access packet information and
-/// RAIL_PeekRxPacket() to access packet data.
-/// - Filtered, Aborted, or FrameError received packet data is automatically
+/// RAIL_EVENT_RX_PACKET_RECEIVED which can then use \ref RAIL_GetRxPacketInfo()
+/// and \ref RAIL_GetRxPacketDetailsAlt() to access packet information and
+/// \ref RAIL_PeekRxPacket() to access packet data.
+/// - FILTERED, ABORTED, or FRAMEERROR received packet data is automatically
/// rolled back (dropped) without the application needing to worry about
/// consuming it.
/// The application can choose to not even be bothered with the events
@@ -1656,52 +1730,54 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
/// - Packet Lengths are determined from the Radio Configurator configuration
/// or by application knowledge of packet payload structure.
/// - Received data can be retrieved prior to packet completion through
-/// RAIL_ReadRxFifo() and is never rolled back on Filtered, Aborted, or
-/// FrameError packets. The application should enable and handle these
+/// \ref RAIL_ReadRxFifo() and is never rolled back on FILTERED, ABORTED, or
+/// FRAMEERROR packets. The application should enable and handle these
/// events so it can flush any packet data it's already retrieved.
-/// - After packet completion, remaining packet data for Filtered, Aborted,
-/// or FrameError packets remains in the FIFO and the appropriate event is
+/// - After packet completion, remaining packet data for FILTERED, ABORTED,
+/// or FRAMEERROR packets remains in the FIFO and the appropriate event is
/// triggered to the user. This data may be consumed in the callback unlike
/// in packet mode where it is automatically rolled back. At the end of the
/// callback all remaining data in the FIFO will be cleaned up as usual.
-/// Keep in mind that RAIL_GetRxPacketDetailsAlt() provides full packet
+/// Keep in mind that \ref RAIL_GetRxPacketDetailsAlt() provides full packet
/// detailed information only for successfully received packets.
///
/// Common receive data management features:
-/// - Set the receive FIFO threshold through RAIL_SetRxFifoThreshold(). The
+/// - Set the receive FIFO threshold through \ref RAIL_SetRxFifoThreshold(). The
/// \ref RAIL_Config_t::eventsCallback with \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL
/// will occur telling the application to consume some RX packet data to
/// prevent a \ref RAIL_EVENT_RX_FIFO_OVERFLOW event from occurring.
/// - Get receive FIFO count information through
-/// RAIL_GetRxPacketInfo(\ref RAIL_RX_PACKET_HANDLE_NEWEST)
-/// (or RAIL_GetRxFifoBytesAvailable()).
+/// \ref RAIL_GetRxPacketInfo(\ref RAIL_RX_PACKET_HANDLE_NEWEST)
+/// (or \ref RAIL_GetRxFifoBytesAvailable()).
/// - After receive completes and all its data has been consumed, the receive
-/// FIFO can be manually reset with RAIL_ResetFifo(), though this should
+/// FIFO can be manually reset with \ref RAIL_ResetFifo(), though this should
/// rarely be necessary and should only be done with the radio idle.
///
/// When trying to determine an appropriate threshold, the application needs
/// to know the size of each FIFO. The default receive FIFO is internal to RAIL
/// with a size of 512 bytes. This can be changed, however, using
/// \ref RAIL_SetRxFifo() and the default may be removed entirely by calling
-/// this from the RAILCb_SetupRxFifo() callback. The receive FIFO event is
+/// this from the \ref RAILCb_SetupRxFifo() callback. The receive FIFO event is
/// level-based in that the \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL event will
/// constantly pend if the threshold is exceeded. This normally means that
/// inside this event's callback, the application should empty enough of the FIFO
/// to go under the threshold. To defer reading the FIFO to main context, the
/// application can disable or re-enable the receive FIFO threshold event using
-/// RAIL_ConfigEvents() with the mask \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL.
+/// \ref RAIL_ConfigEvents() with the mask \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL.
///
/// The receive FIFO can store multiple packets and processing of a packet can
/// be deferred from the RAIL event callback to main-loop processing
-/// by using RAIL_HoldRxPacket() in the event callback and
-/// RAIL_ReleaseRxPacket() in the main-loop.
+/// by using \ref RAIL_HoldRxPacket() in the event callback and
+/// \ref RAIL_ReleaseRxPacket() in the main-loop.
/// On some platforms, the receive FIFO is supplemented by an internal
/// fixed-size packet metadata FIFO that limits the number of packets
/// RAIL and applications can hold onto for deferred processing.
/// See chip-specific documentation, such as \ref efr32_main, for more
-/// information. Note that when using multiprotocol the receive FIFO is reset
-/// prior to a protocol switch so held packets will be lost if not processed
-/// before then.
+/// information.
+///
+/// @note When using multiprotocol the receive FIFO is reset
+/// prior to a protocol switch so held packets will be lost if not processed
+/// before then.
///
/// While \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL occurs solely based on the
/// state of the receive FIFO used for packet data, both
@@ -1713,7 +1789,7 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
/// for new packets/data, reducing the possibility of packet/data loss
/// and \ref RAIL_EVENT_RX_FIFO_OVERFLOW.
///
-/// Before a packet is fully received you can always use
+/// Before a packet is fully received you can always use \ref
/// RAIL_PeekRxPacket() to look at the contents. In FIFO mode, you may also
/// consume its data with \ref RAIL_ReadRxFifo(). Remember that none of these
/// APIs will read across a packet boundary (even in FIFO mode) so you will
@@ -1840,12 +1916,12 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
* sources other than \ref RAIL_RxDataSource_t::RX_PACKET_DATA.
*
* Generally with \ref RAIL_DataMethod_t::FIFO_MODE, the application sets
- * appropriate FIFO thresholds via RAIL_SetTxFifoThreshold() and
- * RAIL_SetRxFifoThreshold() and then enables and handles the
+ * appropriate FIFO thresholds via \ref RAIL_SetTxFifoThreshold() and
+ * \ref RAIL_SetRxFifoThreshold() and then enables and handles the
* \ref RAIL_EVENT_TX_FIFO_ALMOST_EMPTY event callback (to feed more packet
- * data via RAIL_WriteTxFifo() before the FIFO underflows) and the \ref
+ * data via \ref RAIL_WriteTxFifo() before the FIFO underflows) and the \ref
* RAIL_EVENT_RX_FIFO_ALMOST_FULL event callback (to consume packet data
- * via RAIL_ReadRxFifo() before the receive FIFO overflows).
+ * via \ref RAIL_ReadRxFifo() before the receive FIFO overflows).
*
* When configuring TX for \ref RAIL_DataMethod_t::FIFO_MODE, this
* function resets the transmit FIFO. When configuring TX or RX for
@@ -1860,13 +1936,13 @@ RAIL_Status_t RAIL_ConfigEvents(RAIL_Handle_t railHandle,
* to deal with accordingly. On completion of erroneous packets, the
* \ref RAIL_Config_t::eventsCallback with \ref RAIL_EVENT_RX_PACKET_ABORTED,
* \ref RAIL_EVENT_RX_FRAME_ERROR, or \ref RAIL_EVENT_RX_ADDRESS_FILTERED will
- * tell the application it can drop any data it read via RAIL_ReadRxFifo() during reception.
+ * tell the application it can drop any data it read via \ref RAIL_ReadRxFifo() during reception.
* For CRC error packets when the \ref RAIL_RX_OPTION_IGNORE_CRC_ERRORS
* RX option is in effect, the application should check for that from the
- * \ref RAIL_RxPacketStatus_t obtained by calling RAIL_GetRxPacketInfo().
+ * \ref RAIL_RxPacketStatus_t obtained by calling \ref RAIL_GetRxPacketInfo().
* RAIL will automatically flush any remaining packet data after reporting
* one of these packet completion events or the application can explicitly
- * flush it by calling RAIL_ReleaseRxPacket().
+ * flush it by calling \ref RAIL_ReleaseRxPacket().
*
* When \ref RAIL_DataConfig_t::rxMethod is set to \ref
* RAIL_DataMethod_t::PACKET_MODE, the radio will roll back (drop) all packet
@@ -1898,14 +1974,14 @@ RAIL_Status_t RAIL_ConfigData(RAIL_Handle_t railHandle,
* @return The number of bytes written to the transmit FIFO.
*
* This function copies writeLength bytes of data from the provided dataPtr into the
- * transmit FIFO previously established by RAIL_SetTxFifo() or RAIL_Init().
+ * transmit FIFO previously established by \ref RAIL_SetTxFifo() or \ref RAIL_Init().
* If the requested writeLength exceeds the current number of bytes open
* in the transmit FIFO, the function only writes until the transmit FIFO
* is full. The function returns the number of bytes written to the transmit
- * FIFO or returns zero if raiHhandle is NULL or if the transmit FIFO is full.
+ * FIFO or returns zero if railHandle is NULL or if the transmit FIFO is full.
*
* @note The protocol's packet configuration, as set up by the radio
- * configurator or via RAIL_SetFixedLength(), determines how many
+ * configurator or via \ref RAIL_SetFixedLength(), determines how many
* bytes of data are consumed from the transmit FIFO for a successful transmit
* operation, not the writeLength value passed in. If not enough data has
* been put into the transmit FIFO, a \ref RAIL_EVENT_TX_UNDERFLOW event will
@@ -1926,7 +2002,8 @@ uint16_t RAIL_WriteTxFifo(RAIL_Handle_t railHandle,
bool reset);
/**
- * Set the address of the transmit FIFO, a circular buffer used for TX data.
+ * Set the address of the transmit FIFO, a circular buffer used for TX data,
+ * possibly pre-populated with transmit data.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] addr An appropriately-aligned (see below) pointer to a read-write memory
@@ -1951,7 +2028,7 @@ uint16_t RAIL_WriteTxFifo(RAIL_Handle_t railHandle,
* size, the FIFO will be filled up to its size.
*
* A user may write to the custom memory location directly before calling this
- * function, or use \ref RAIL_WriteTxFifo to write to the memory location after
+ * function, or use \ref RAIL_WriteTxFifo() to write to the memory location after
* calling this function. Users must specify the initLength for
* previously-written memory to be set in the transmit FIFO.
*
@@ -1959,7 +2036,7 @@ uint16_t RAIL_WriteTxFifo(RAIL_Handle_t railHandle,
* returned FIFO size, which is used internally as a circular buffer for the
* transmit FIFO. It must be able to hold the entire FIFO size. The caller must
* guarantee that the custom FIFO remains intact and unchanged (except via calls
- * to \ref RAIL_WriteTxFifo) until the next call to this function.
+ * to \ref RAIL_WriteTxFifo()) until the next call to this function.
*
* @note The protocol's packet configuration, as set up by the radio
* configurator or via RAIL_SetFixedLength(), determines how many
@@ -2020,8 +2097,9 @@ uint16_t RAIL_SetTxFifoAlt(RAIL_Handle_t railHandle,
* @param[in,out] addr A pointer to a read-write memory location in RAM used as
* the receive FIFO. This memory must persist until the next call to this
* function.
- * @param[in,out] size A desired size of the receive FIFO in bytes. This will
- * be populated with the actual size during the function call.
+ * @param[in,out] size A pointer to the desired size of the receive
+ * FIFO in bytes. This will be updated with the actual size during the
+ * function call.
* @return Status code indicating success of the function call.
*
* This function sets the memory location for the receive FIFO. It
@@ -2060,16 +2138,16 @@ RAIL_Status_t RAIL_SetRxFifo(RAIL_Handle_t railHandle,
/// @param[in] railHandle A RAIL instance handle.
/// @return Status code indicating success of the function call.
///
-/// This function is called during the \ref RAIL_Init process to set up the FIFO
+/// This callback is called during the \ref RAIL_Init() process to set up the FIFO
/// to use for received packets. If not implemented by the application,
/// a default implementation from within the RAIL library will be used to
/// initialize an internal default 512-byte receive FIFO.
///
-/// If this function returns an error, the RAIL_Init process will fail.
+/// If this function returns an error, the RAIL_Init() process will fail.
///
/// During this function, the application should generally call
-/// \ref RAIL_SetRxFifo. If that does not happen, the application needs to
-/// set up the receive FIFO via a call to \ref RAIL_SetRxFifo before attempting
+/// \ref RAIL_SetRxFifo(). If that does not happen, the application needs to
+/// set up the receive FIFO via a call to \ref RAIL_SetRxFifo() before attempting
/// to receive any packets. An example implementation may look like the following:
/// @code{.c}
/// #define RX_FIFO_BYTES 1024
@@ -2216,7 +2294,7 @@ RAIL_Status_t RAIL_ResetFifo(RAIL_Handle_t railHandle, bool txFifo, bool rxFifo)
/**
* Get the number of bytes used in the receive FIFO.
* Only use this function in RX \ref RAIL_DataMethod_t::FIFO_MODE.
- * Apps should use RAIL_GetRxPacketInfo() instead.
+ * Apps should use \ref RAIL_GetRxPacketInfo() instead.
*
* @param[in] railHandle A RAIL instance handle.
* @return Number of bytes used in the receive FIFO.
@@ -2229,7 +2307,7 @@ RAIL_Status_t RAIL_ResetFifo(RAIL_Handle_t railHandle, bool txFifo, bool rxFifo)
* after successful packet reception and bytes from subsequently received
* packets. It is up to the app to never try to consume more than the
* packet's actual data when using the value returned here in a subsequent
- * call to RAIL_ReadRxFifo(), otherwise the receive FIFO will be corrupted.
+ * call to \ref RAIL_ReadRxFifo(), otherwise the receive FIFO will be corrupted.
*/
uint16_t RAIL_GetRxFifoBytesAvailable(RAIL_Handle_t railHandle);
@@ -2292,8 +2370,9 @@ RAIL_Status_t RAIL_GetRxTransitions(RAIL_Handle_t railHandle,
*
* This function fails if unsupported transitions are passed in or if the
* radio is currently in the TX state. Success and error can each transition
- * to RX or IDLE. For the ability to run repeated transmits, see
- * \ref RAIL_SetNextTxRepeat.
+ * to RX or IDLE only, not TX. For the ability to run repeated transmits, see
+ * \ref RAIL_SetNextTxRepeat(). Calling this function will clear any repeated
+ * transmissions set up by \ref RAIL_SetNextTxRepeat().
*/
RAIL_Status_t RAIL_SetTxTransitions(RAIL_Handle_t railHandle,
const RAIL_StateTransitions_t *transitions);
@@ -2328,15 +2407,16 @@ RAIL_Status_t RAIL_GetTxTransitions(RAIL_Handle_t railHandle,
* will receive events such as \ref RAIL_EVENT_TX_PACKET_SENT as normal.
*
* If a TX error occurs during the repetition, the process will abort and the
- * TX error transition from \ref RAIL_SetTxTransitions will be used. If the
+ * TX error transition from \ref RAIL_SetTxTransitions() will be used. If the
* repetition completes successfully, then the TX success transition from
- * \ref RAIL_SetTxTransitions will be used.
+ * \ref RAIL_SetTxTransitions() will be used.
*
* Use \ref RAIL_GetTxPacketsRemaining() if need to know how many transmit
* completion events are expected before the repeating sequence is done, or
* how many were not performed due to a transmit error.
*
- * Any call to \ref RAIL_Idle or \ref RAIL_StopTx will clear the pending
+ * Any call to \ref RAIL_Idle(), \ref RAIL_StopTx(), or \ref
+ * RAIL_SetTxTransitions() will clear the pending
* repeated transmits. The state will also be cleared by another call to this
* function. A DMP switch will clear this
* state only if the initial transmit triggering the repeated transmits has
@@ -2349,7 +2429,7 @@ RAIL_Status_t RAIL_GetTxTransitions(RAIL_Handle_t railHandle,
* transmit from repeating.
*
* The application is responsible for populating the transmit data to be used
- * by the repeated transmits via \ref RAIL_SetTxFifo or \ref RAIL_WriteTxFifo.
+ * by the repeated transmits via \ref RAIL_SetTxFifo() or \ref RAIL_WriteTxFifo().
* Data will be transmitted from the transmit FIFO. If the transmit FIFO does
* not have sufficient data to transmit, a TX error will be caused and a \ref
* RAIL_EVENT_TX_UNDERFLOW will occur. In order to avoid an underflow, the
@@ -2455,7 +2535,7 @@ RAIL_Status_t RAIL_Idle(RAIL_Handle_t railHandle,
* When transitioning directly from RX to TX or vice-versa, this function
* returns the earlier state.
*
- * @note For a more detailed radio state, see \ref RAIL_GetRadioStateDetail
+ * @note For a more detailed radio state, see \ref RAIL_GetRadioStateDetail().
*/
RAIL_RadioState_t RAIL_GetRadioState(RAIL_Handle_t railHandle);
@@ -2480,7 +2560,7 @@ RAIL_RadioState_t RAIL_GetRadioState(RAIL_Handle_t railHandle);
* returned state bitmask will be set; otherwise, this bit will be clear.
*
* For the most part, the more detailed radio states returned by this API
- * correspond to radio states returned by \ref RAIL_GetRadioState as follows:
+ * correspond to radio states returned by \ref RAIL_GetRadioState() as follows:
*
* \ref RAIL_RadioStateDetail_t \ref RAIL_RadioState_t
* RAIL_RF_STATE_DETAIL_INACTIVE RAIL_RF_STATE_INACTIVE
@@ -2598,14 +2678,14 @@ RAIL_Status_t RAIL_EnableCacheSynthCal(RAIL_Handle_t railHandle, bool enable);
/// that fit their criteria for the trade-off between radio range and
/// power savings, regardless of what dBm power that maps to.
///
-/// \ref RAIL_ConvertRawToDbm and \ref RAIL_ConvertDbmToRaw,
+/// \ref RAIL_ConvertRawToDbm() and \ref RAIL_ConvertDbmToRaw(),
/// which convert between the dBm power and the raw power levels,
/// provide a solution that fits all these applications.
/// The levels of customization are outlined below:
/// 1) No customization needed: for a given dBm value, the result
-/// of RAIL_ConvertDbmToRaw provides an appropriate
+/// of \ref RAIL_ConvertDbmToRaw() provides an appropriate
/// raw power level that, when written to the registers via
-/// RAIL_SetPowerLevel, causes the radio to output at that
+/// \ref RAIL_SetTxPower(), causes the radio to output at that
/// dBm power. In this case, no action is needed by the user,
/// the WEAK versions of the conversion functions can be used
/// and the default include paths in pa_conversions_efr32.h can
@@ -2625,22 +2705,22 @@ RAIL_Status_t RAIL_EnableCacheSynthCal(RAIL_Handle_t railHandle, bool enable);
/// 3) A different level of precision is needed and the fit is bad:
/// If the piecewise-linear line segment fit is not appropriate for
/// your solution, the functions in pa_conversions_efr32.c can be
-/// totally rewritten, as long as RAIL_ConvertDbmToRaw and
-/// RAIL_ConvertRawToDbm have the same signatures. It is completely
+/// totally rewritten, as long as \ref RAIL_ConvertDbmToRaw() and
+/// \ref RAIL_ConvertRawToDbm() have the same signatures. It is completely
/// acceptable to re-write these in a way that makes the
/// pa_curves_efr32.h and pa_curve_types_efr32.h files referenced in
/// pa_conversions_efr32.h unnecessary. Those files are needed solely
/// for the provided conversion methods.
/// 4) dBm values are not necessary: If the application does not require
-/// dBm values at all, overwrite
-/// RAIL_ConvertDbmToRaw and RAIL_ConvertRawToDbm with smaller functions
+/// dBm values at all, overwrite \ref
+/// RAIL_ConvertDbmToRaw() and \ref RAIL_ConvertRawToDbm() with smaller functions
/// (i.e., return 0 or whatever was input). These functions are called
/// from within the RAIL library, so they can never be deadstripped,
/// but making them as small as possible is the best way to reduce code
-/// size. From there, call RAIL_SetTxPower, without
+/// size. From there, call \ref RAIL_SetTxPower(), without
/// converting from a dBm value. To stop the library from coercing the
-/// power based on channels, overwrite RAIL_ConvertRawToDbm
-/// to always return 0 and overwrite RAIL_ConvertDbmToRaw to
+/// power based on channels, overwrite \ref RAIL_ConvertRawToDbm()
+/// to always return 0 and overwrite \ref RAIL_ConvertDbmToRaw() to
/// always return 255.
///
/// The following is example code that shows how to initialize your PA
@@ -2668,14 +2748,13 @@ RAIL_Status_t RAIL_EnableCacheSynthCal(RAIL_Handle_t railHandle, bool enable);
/// // Picks a dBm power to use: 100 deci-dBm = 10 dBm. See docs on RAIL_TxPower_t.
/// RAIL_TxPower_t power = 100;
///
-/// // Gets the config written by RAIL_ConfigTxPower to confirm what was actually set.
+/// // Gets the config written by RAIL_ConfigTxPower() to confirm what was actually set.
/// RAIL_GetTxPowerConfig(railHandle, &txPowerConfig);
///
-/// // RAIL_ConvertDbmToRaw is the default weak version,
+/// // RAIL_ConvertDbmToRaw() is the default weak version,
/// // or the customer version, if overwritten.
-/// RAIL_TxPowerLevel_t powerLevel = RAIL_ConvertDbmToRaw(railHandle,
-/// txPowerConfig.mode,
-/// power);
+/// RAIL_TxPowerLevel_t powerLevel
+/// = RAIL_ConvertDbmToRaw(railHandle, txPowerConfig.mode, power);
///
/// // Writes the result of the conversion to the PA power registers in terms
/// // of raw power levels.
@@ -2683,9 +2762,9 @@ RAIL_Status_t RAIL_EnableCacheSynthCal(RAIL_Handle_t railHandle, bool enable);
/// @endcode
///
/// @note All lines following "RAIL_TxPower_t power = 100;" can be
-/// replaced with the provided utility function, \ref RAIL_SetTxPowerDbm.
+/// replaced with the provided utility function, \ref RAIL_SetTxPowerDbm().
/// However, the full example here was provided for clarity. See the
-/// documentation on \ref RAIL_SetTxPowerDbm for more details.
+/// documentation on \ref RAIL_SetTxPowerDbm() for more details.
///
/// @{
@@ -2693,22 +2772,22 @@ RAIL_Status_t RAIL_EnableCacheSynthCal(RAIL_Handle_t railHandle, bool enable);
* Initialize TX power settings.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] config A pointer to apower config with the desired initial settings
+ * @param[in] config A pointer to a power config with the desired initial settings
* for the TX amplifier.
* @return Status code indicating success of the function call.
*
* These settings include the selection between the multiple TX amplifiers,
* voltage supplied to the TX power amplifier, and ramp times. This must
- * be called before any transmit occurs or \ref RAIL_SetTxPower is called.
+ * be called before any transmit occurs or \ref RAIL_SetTxPower() is called.
* While this function should always be called during initialization,
* it can also be called any time if these settings need to change to adapt
* to a different application/protocol. This API also resets TX power to
- * \ref RAIL_TX_POWER_LEVEL_INVALID, so \ref RAIL_SetTxPower must be called
+ * \ref RAIL_TX_POWER_LEVEL_INVALID, so \ref RAIL_SetTxPower() must be called
* afterwards.
*
* At times, certain combinations of configurations cannot be achieved.
* This API attempts to get as close as possible to the requested settings. The
- * following "RAIL_Get..." API can be used to determine what values were set. A
+ * following "RAIL_GetTxPower..." API can be used to determine what values were set. A
* change in \ref RAIL_TxPowerConfig_t::rampTime may affect the minimum timings
* that can be achieved in \ref RAIL_StateTiming_t::idleToTx and
* \ref RAIL_StateTiming_t::rxToTx. Call \ref RAIL_SetStateTiming() again to
@@ -2721,15 +2800,14 @@ RAIL_Status_t RAIL_ConfigTxPower(RAIL_Handle_t railHandle,
* Get the TX power settings currently used in the amplifier.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[out] config A pointer to memory allocated to hold the current TxPower
- * configuration structure. A NULL configuration will produce undefined
- * behavior.
+ * @param[out] config A non-NULL pointer to a \ref
+ * RAIL_TxPowerConfig_t structure filled in by the function.
* @return Status code indicating success of the function call.
*
* Note that this API does not return the current TX power, which is separately
- * managed by the \ref RAIL_GetTxPower / \ref RAIL_SetTxPower APIs. Use this API
+ * managed by the \ref RAIL_GetTxPower() / \ref RAIL_SetTxPower() APIs. Use this API
* to determine which values were set as a result of
- * \ref RAIL_ConfigTxPower.
+ * \ref RAIL_ConfigTxPower().
*/
RAIL_Status_t RAIL_GetTxPowerConfig(RAIL_Handle_t railHandle,
RAIL_TxPowerConfig_t *config);
@@ -2743,19 +2821,19 @@ RAIL_Status_t RAIL_GetTxPowerConfig(RAIL_Handle_t railHandle,
* @return Status code indicating success of the function call.
*
* To convert between decibels and the integer values that the
- * registers take, call \ref RAIL_ConvertDbmToRaw.
+ * registers take, call \ref RAIL_ConvertDbmToRaw().
* A weak version of this function, which works well with our boards is provided. However,
* customers using a custom board need to characterize
* radio operation on that board and override the function to convert
* appropriately from the desired dB values to raw integer values.
*
- * Depending on the configuration used in \ref RAIL_ConfigTxPower, not all
+ * Depending on the configuration used in \ref RAIL_ConfigTxPower(), not all
* power levels are achievable. This API will get as close as possible to
- * the desired power without exceeding it, and calling \ref RAIL_GetTxPower is
+ * the desired power without exceeding it, and calling \ref RAIL_GetTxPower() is
* the only way to know the exact value written.
*
* Calling this function before configuring the PA (i.e., before a successful
- * call to \ref RAIL_ConfigTxPower) will return an error.
+ * call to \ref RAIL_ConfigTxPower()) will return an error.
*/
RAIL_Status_t RAIL_SetTxPower(RAIL_Handle_t railHandle,
RAIL_TxPowerLevel_t powerLevel);
@@ -2767,16 +2845,16 @@ RAIL_Status_t RAIL_SetTxPower(RAIL_Handle_t railHandle,
* @return The radio-specific \ref RAIL_TxPowerLevel_t value of the current
* transmit power.
*
- * This API returns the raw value that was set by \ref RAIL_SetTxPower.
- * A weak version of \ref RAIL_ConvertRawToDbm that works
+ * This API returns the raw value that was set by \ref RAIL_SetTxPower().
+ * A weak version of \ref RAIL_ConvertRawToDbm() that works
* with Silicon Labs boards to convert the raw values into actual output dBm values is provided.
* However, customers using a custom board need to
* re-characterize the relationship between raw and decibel values and rewrite
* the provided function.
*
* Calling this function before configuring the PA (i.e., before a successful
- * call to \ref RAIL_ConfigTxPower) will return an error
- * (RAIL_TX_POWER_LEVEL_INVALID).
+ * call to \ref RAIL_ConfigTxPower()) will return error \ref
+ * RAIL_TX_POWER_LEVEL_INVALID.
*/
RAIL_TxPowerLevel_t RAIL_GetTxPower(RAIL_Handle_t railHandle);
@@ -2794,8 +2872,8 @@ RAIL_TxPowerLevel_t RAIL_GetTxPower(RAIL_Handle_t railHandle);
* to provide accurate values for our boards. For a
* custom board, the relationship between what is written to the TX amplifier
* and the actual output power should be re-characterized and implemented in an
- * overriding version of \ref RAIL_ConvertRawToDbm. For minimum code size and
- * best speed, use only raw values with the TxPower API and override this
+ * overriding version of \ref RAIL_ConvertRawToDbm(). For minimum code size and
+ * best speed, use only raw values with the \ref RAIL_SetTxPower() API and override this
* function with a smaller function. In the weak version provided with the RAIL
* library, railHandle is only used to indicate to the user from where the
* function was called, so it is okay to use either a real protocol handle, or one
@@ -2814,16 +2892,16 @@ RAIL_TxPower_t RAIL_ConvertRawToDbm(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] mode PA mode for which to do the conversion.
- * @param[in] power Desired dBm values in units of deci-dBm.
+ * @param[in] power Desired dBm value in units of deci-dBm.
* @return deci-dBm value converted to a raw
- * integer value that can be used directly with \ref RAIL_SetTxPower.
+ * integer value that can be used directly with \ref RAIL_SetTxPower().
*
* A weak version of this function is provided that is tuned
* to provide accurate values for our boards. For a
* custom board, the relationship between what is written to the TX amplifier
* and the actual output power should be characterized and implemented in an
- * overriding version of \ref RAIL_ConvertDbmToRaw. For minimum code size and
- * best speed use only raw values with the TxPower API and override this
+ * overriding version of \ref RAIL_ConvertDbmToRaw(). For minimum code size and
+ * best speed use only raw values with the \ref RAIL_SetTxPower() API and override this
* function with a smaller function. In the weak version provided with the RAIL
* library, railHandle is only used to indicate to the user from where the
* function was called, so it is okay to use either a real protocol handle, or one
@@ -2858,11 +2936,10 @@ RAIL_Status_t RAIL_VerifyTxPowerCurves(const struct RAIL_TxPowerCurvesConfigAlt
/// RAIL_TxPower_t power = 100; // 100 deci-dBm, 10 dBm
/// RAIL_TxPowerConfig_t txPowerConfig;
/// RAIL_GetTxPowerConfig(railHandle, &txPowerConfig);
-/// // RAIL_ConvertDbmToRaw will be the weak version provided by Silicon Labs
+/// // RAIL_ConvertDbmToRaw() will be the weak version provided by Silicon Labs
/// // by default, or the customer version, if overwritten.
-/// RAIL_TxPowerLevel_t powerLevel = RAIL_ConvertDbmToRaw(railHandle,
-/// txPowerConfig.mode,
-/// power);
+/// RAIL_TxPowerLevel_t powerLevel
+/// = RAIL_ConvertDbmToRaw(railHandle, txPowerConfig.mode, power);
/// RAIL_SetTxPower(railHandle, powerLevel);
/// @endcode
///
@@ -2883,11 +2960,10 @@ RAIL_Status_t RAIL_SetTxPowerDbm(RAIL_Handle_t railHandle,
/// RAIL_TxPowerLevel_t powerLevel = RAIL_GetTxPower(railHandle);
/// RAIL_TxPowerConfig_t txPowerConfig;
/// RAIL_GetTxPowerConfig(railHandle, &txPowerConfig);
-/// // RAIL_ConvertRawToDbm will be the weak version provided by Silicon Labs
+/// // RAIL_ConvertRawToDbm() will be the weak version provided by Silicon Labs
/// // by default, or the customer version, if overwritten.
-/// RAIL_TxPower_t power = RAIL_ConvertRawToDbm(railHandle,
-/// txPowerConfig.mode,
-/// powerLevel);
+/// RAIL_TxPower_t power
+/// = RAIL_ConvertRawToDbm(railHandle, txPowerConfig.mode, powerLevel);
/// return power;
/// @endcode
///
@@ -2950,17 +3026,17 @@ RAIL_PaPowerSetting_t RAIL_GetPaPowerSetting(RAIL_Handle_t railHandle);
* @return Status code indicating success of the function call.
*
* While PA Automode is enabled, the PA will be chosen and set automatically whenever
- * \ref RAIL_SetTxPowerDbm is called or whenever powers are coerced automatically,
+ * \ref RAIL_SetTxPowerDbm() is called or whenever powers are coerced automatically,
* internally to the RAIL library during a channel change. While PA Auto Mode
- * is enabled, users cannot call \ref RAIL_ConfigTxPower or
- * \ref RAIL_SetTxPower. When entering auto mode, \ref RAIL_SetTxPowerDbm must
+ * is enabled, users cannot call \ref RAIL_ConfigTxPower() or
+ * \ref RAIL_SetTxPower(). When entering auto mode, \ref RAIL_SetTxPowerDbm() must
* be called to specify the desired power. When leaving auto mode,
- * \ref RAIL_ConfigTxPower as well as one of \ref RAIL_SetTxPower or
- * \ref RAIL_SetTxPowerDbm must be called to re-specify the desired PA and power
+ * \ref RAIL_ConfigTxPower() as well as one of \ref RAIL_SetTxPower() or
+ * \ref RAIL_SetTxPowerDbm() must be called to re-specify the desired PA and power
* level combination.
*
* @note: Power conversion curves must be initialized before calling this function.
- * That is, \ref RAIL_ConvertDbmToRaw and \ref RAIL_ConvertRawToDbm most both be
+ * That is, \ref RAIL_ConvertDbmToRaw() and \ref RAIL_ConvertRawToDbm() most both be
* able to operate properly to ensure that PA Auto Mode functions correctly.
* See the PA Conversions plugin or AN1127 for more details.
*/
@@ -2987,7 +3063,7 @@ bool RAIL_IsPaAutoModeEnabled(RAIL_Handle_t railHandle);
* returns will be applied to the radio.
* @param[in] chCfgEntry A pointer to a \ref RAIL_ChannelConfigEntry_t.
* While switching channels, it will be the entry RAIL is switch *to*,
- * during a call to \ref RAIL_SetTxPowerDbm, it will be the entry
+ * during a call to \ref RAIL_SetTxPowerDbm(), it will be the entry
* RAIL is *already on*. Can be NULL if a channel configuration
* was not set or no valid channels are present.
* @return Status code indicating success of the function call. If this
@@ -2998,9 +3074,9 @@ bool RAIL_IsPaAutoModeEnabled(RAIL_Handle_t railHandle);
* will be applied to the PA hardware and used for transmits.
*
* @note The mode and power level provided by this function depends on the
- * RAIL_PaAutoModeConfig provided for the radio. The RAIL_PaAutoModeConfig
- * definition for a radio should tend to all the bands supported by the radio
- * and cover the full range of power to find a valid entry for requested power
+ * \ref RAIL_PaAutoModeConfig provided for the radio. The \ref RAIL_PaAutoModeConfig
+ * definition for a radio should tend to cover all the bands supported by the radio
+ * and cover the full range of power in each to find a valid entry for requested power
* for a specific band.
*/
RAIL_Status_t RAILCb_PaAutoModeDecision(RAIL_Handle_t railHandle,
@@ -3210,6 +3286,8 @@ RAIL_Status_t RAIL_StartCcaLbtTx(RAIL_Handle_t railHandle,
* If changing channels, the channel is changed immediately and any ongoing
* packet reception is aborted.
*
+ * Returns an error if a scheduled RX is still in progress.
+ *
* In multiprotocol, ensure that the radio is properly yielded after this
* operation completes. See \ref rail_radio_scheduler_yield for more details.
*/
@@ -3251,6 +3329,8 @@ RAIL_Status_t RAIL_StartScheduledCcaCsmaTx(RAIL_Handle_t railHandle,
* If changing channels, the channel is changed immediately and any ongoing
* packet reception is aborted.
*
+ * Returns an error if a scheduled RX is still in progress.
+ *
* In multiprotocol, ensure that the radio is properly yielded after this
* operation completes. See \ref rail_radio_scheduler_yield for more details.
*/
@@ -3273,7 +3353,7 @@ RAIL_Status_t RAIL_StartScheduledCcaLbtTx(RAIL_Handle_t railHandle,
* operation to stop.
*
* @note When mode includes \ref RAIL_STOP_MODE_ACTIVE, this can also stop
- * an active auto-ACK transmit. When an active transmit is stopped, \ref
+ * an active Auto-Ack transmit. When an active transmit is stopped, \ref
* RAIL_EVENT_TX_ABORTED or \ref RAIL_EVENT_TXACK_ABORTED should occur.
* When mode includes \ref RAIL_STOP_MODE_PENDING this can also stop
* a \ref RAIL_TX_OPTION_CCA_ONLY transmit operation. When a pending
@@ -3288,7 +3368,7 @@ RAIL_Status_t RAIL_StopTx(RAIL_Handle_t railHandle, RAIL_StopMode_t mode);
* @param[in] ccaThresholdDbm The CCA threshold in dBm.
* @return Status code indicating success of the function call.
*
- * Unlike RAIL_StartCcaCsmaTx() or RAIL_StartCcaLbtTx(), which can cause a
+ * Unlike \ref RAIL_StartCcaCsmaTx() or \ref RAIL_StartCcaLbtTx(), which can cause a
* transmit, this function only modifies the CCA threshold. A possible
* use case for this function involves setting the CCA threshold to invalid RSSI
* of -128 which blocks transmission by preventing clear channel assessments
@@ -3305,7 +3385,7 @@ RAIL_Status_t RAIL_SetCcaThreshold(RAIL_Handle_t railHandle,
* RAIL_TxPacketDetails_t corresponding to the transmit event.
* The isAck and timeSent fields totalPacketBytes and timePosition
* must be initialized prior to each call:
- * - isAck true to obtain details about the most recent ACK transmit,
+ * - isAck true to obtain details about the most recent Ack transmit,
* false to obtain details about the most recent app-initiated transmit.
* - totalPacketBytes with the total number of bytes of the transmitted
* packet for RAIL to use when calculating the specified timestamp.
@@ -3331,7 +3411,7 @@ RAIL_Status_t RAIL_GetTxPacketDetails(RAIL_Handle_t railHandle,
* Get detailed information about the last packet transmitted.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] isAck true to obtain details about the most recent ACK transmit.
+ * @param[in] isAck true to obtain details about the most recent Ack transmit.
* false to obtain details about the most recent app-initiated transmit.
* @param[out] pPacketTime An application-provided non-NULL pointer to store a
* RAIL_Time_t corresponding to the transmit event. This will be populated
@@ -3360,16 +3440,16 @@ RAIL_Status_t RAIL_GetTxPacketDetailsAlt(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails An application-provided pointer to store
- * RAIL_TxPacketDetails_t corresponding to the transmit event.
+ * \ref RAIL_TxPacketDetails_t corresponding to the transmit event.
* The isAck field must be initialized prior to each call:
- * - isAck true to obtain details about the most recent ACK transmit,
+ * - isAck true to obtain details about the most recent Ack transmit,
* false to obtain details about the most recent app-initiated transmit.
* The timeSent field packetTime will be populated with a timestamp
* corresponding to a default location in the packet. The timeSent field
* timePosition will be populated with a \ref RAIL_PacketTimePosition_t value
* specifying that default packet location.
- * Call \ref RAIL_GetTxTimePreambleStartAlt,
- * \ref RAIL_GetTxTimeSyncWordEndAlt, or \ref RAIL_GetTxTimeFrameEndAlt to
+ * Call \ref RAIL_GetTxTimePreambleStartAlt(),
+ * \ref RAIL_GetTxTimeSyncWordEndAlt(), or \ref RAIL_GetTxTimeFrameEndAlt() to
* adjust the timestamp for different locations in the packet.
* @return \ref RAIL_STATUS_NO_ERROR if pPacketDetails was filled in,
* or an appropriate error code otherwise.
@@ -3393,7 +3473,7 @@ RAIL_Status_t RAIL_GetTxPacketDetailsAlt2(RAIL_Handle_t railHandle,
* and Sync word(s), including CRC bytes. Pass \ref RAIL_TX_STARTED_BYTES
* to retrieve the start-of-normal-TX timestamp (see below).
* @param[in,out] pPacketTime This points to the \ref RAIL_Time_t returned
- * from a previous call to \ref RAIL_GetTxPacketDetailsAlt for this same
+ * from a previous call to \ref RAIL_GetTxPacketDetailsAlt() for this same
* packet. That time will be updated with the time that the preamble for
* this packet started on air.
* Must be non-NULL.
@@ -3405,7 +3485,7 @@ RAIL_Status_t RAIL_GetTxPacketDetailsAlt2(RAIL_Handle_t railHandle,
* \ref RAIL_GetTxPacketDetailsAlt() is called.
*
* This function may be called when handling the \ref RAIL_EVENT_TX_STARTED
- * event to retrieve that event's start-of-normal-TX timestamp. (ACK
+ * event to retrieve that event's start-of-normal-TX timestamp. (Ack
* transmits currently have no equivalent event or associated timestamp.)
* In this case, totalPacketBytes must be \ref RAIL_TX_STARTED_BYTES, and
* pPacketTime is an output-only parameter filled in with that time (so no
@@ -3424,7 +3504,7 @@ RAIL_Status_t RAIL_GetTxTimePreambleStart(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetTxPacketDetailsAlt2 for this same packet.
+ * a previous call to \ref RAIL_GetTxPacketDetailsAlt2() for this same packet.
* The application must update the timeSent field totalPacketBytes to be
* the total number of bytes of the sent packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -3440,7 +3520,7 @@ RAIL_Status_t RAIL_GetTxTimePreambleStart(RAIL_Handle_t railHandle,
* \ref RAIL_GetTxPacketDetailsAlt2() is called.
*
* This function may be called when handling the \ref RAIL_EVENT_TX_STARTED
- * event to retrieve that event's start-of-normal-TX timestamp. (ACK
+ * event to retrieve that event's start-of-normal-TX timestamp. (Ack
* transmits currently have no equivalent event or associated timestamp.)
* In this case, the timeSent field totalPacketBytes must be
* \ref RAIL_TX_STARTED_BYTES, and the timeSent field packetTime is an
@@ -3460,7 +3540,7 @@ RAIL_Status_t RAIL_GetTxTimePreambleStartAlt(RAIL_Handle_t railHandle,
* should account for all bytes transmitted over the air after the Preamble
* and Sync word(s), including CRC bytes.
* @param[in,out] pPacketTime The time that was returned in a
- * \ref RAIL_Time_t from a previous call to \ref RAIL_GetTxPacketDetailsAlt
+ * \ref RAIL_Time_t from a previous call to \ref RAIL_GetTxPacketDetailsAlt()
* for this same packet. After this function, the time at that location will
* be updated with the time that the sync word for this packet finished on
* air. Must be non-NULL.
@@ -3480,7 +3560,7 @@ RAIL_Status_t RAIL_GetTxTimeSyncWordEnd(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetTxPacketDetailsAlt2 for this same packet.
+ * a previous call to \ref RAIL_GetTxPacketDetailsAlt2() for this same packet.
* The application must update the timeSent field totalPacketBytes to be
* the total number of bytes of the sent packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -3507,7 +3587,7 @@ RAIL_Status_t RAIL_GetTxTimeSyncWordEndAlt(RAIL_Handle_t railHandle,
* should account for all bytes transmitted over the air after the Preamble
* and Sync word(s), including CRC bytes.
* @param[in,out] pPacketTime The time that was returned in a
- * \ref RAIL_Time_t from a previous call to \ref RAIL_GetTxPacketDetailsAlt
+ * \ref RAIL_Time_t from a previous call to \ref RAIL_GetTxPacketDetailsAlt()
* for this same packet. After this function, the time at that location will
* be updated with the time that this packet finished on air. Must be
* non-NULL.
@@ -3527,7 +3607,7 @@ RAIL_Status_t RAIL_GetTxTimeFrameEnd(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetTxPacketDetailsAlt2 for this same packet.
+ * a previous call to \ref RAIL_GetTxPacketDetailsAlt2() for this same packet.
* The application must update the timeSent field totalPacketBytes to be
* the total number of bytes of the sent packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -3558,7 +3638,7 @@ RAIL_Status_t RAIL_GetTxTimeFrameEndAlt(RAIL_Handle_t railHandle,
* events.
*
* @note This function does not affect a transmit that has already started.
- * To stop an already-started transmission, use RAIL_Idle() with
+ * To stop an already-started transmission, use \ref RAIL_Idle() with
* \ref RAIL_IDLE_ABORT.
*/
RAIL_Status_t RAIL_EnableTxHoldOff(RAIL_Handle_t railHandle, bool enable);
@@ -3569,7 +3649,7 @@ RAIL_Status_t RAIL_EnableTxHoldOff(RAIL_Handle_t railHandle, bool enable);
* @param[in] railHandle A RAIL instance handle.
* @return true if TX hold off is enabled, false otherwise.
*
- * TX hold off can be enabled/disabled using \ref RAIL_EnableTxHoldOff.
+ * TX hold off can be enabled/disabled using \ref RAIL_EnableTxHoldOff().
* Attempting to transmit with the TX hold off enabled will block the
* transmission and result in \ref RAIL_EVENT_TX_BLOCKED
* and/or \ref RAIL_EVENT_TXACK_BLOCKED events.
@@ -3628,11 +3708,10 @@ RAIL_Status_t RAIL_ConfigRxOptions(RAIL_Handle_t railHandle,
* @param[in] railHandle A RAIL instance handle.
* @return Status code indicating success of the function call.
*
- * This function must be called before \ref RAIL_ConfigChannels to allow configurations
- * using a frame type based length setup. In RAIL 2.x, it is called by default
- * in the \ref RAILCb_ConfigFrameTypeLength API which can be overridden to save
- * code space. In future versions, the user may be required to call this API
- * explicitly.
+ * This function must be called before \ref RAIL_ConfigChannels() to allow configurations
+ * using a frame type based length setup. It is called by default
+ * in the \ref RAILCb_ConfigFrameTypeLength() API which can be overridden to save
+ * code space.
*/
RAIL_Status_t RAIL_IncludeFrameTypeLength(RAIL_Handle_t railHandle);
@@ -3686,7 +3765,7 @@ RAIL_Status_t RAIL_StartRx(RAIL_Handle_t railHandle,
* at the specified time and end at the given end time. If you do not specify
* an end time, you may call this API later with an end time as long as you set
* the start time to disabled. You can also terminate the receive
- * operation immediately using the RAIL_Idle() function. Note that relative
+ * operation immediately using the \ref RAIL_Idle() function. Note that relative
* end times are always relative to the start unless no start time is
* specified. If changing channels, the channel is changed immediately and
* will abort any ongoing packet transmission or reception.
@@ -3702,27 +3781,26 @@ RAIL_Status_t RAIL_ScheduleRx(RAIL_Handle_t railHandle,
const RAIL_SchedulerInfo_t *schedulerInfo);
/**
- * Enable automatic LNA bypass for external FEM.
+ * Enable automatic PRS LNA bypass for external FEM.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @param[in] enable Enable/Disable automatic LNA bypass.
- * @param[in] pAutoLnaBypassConfig A pointer to an automatic LNA bypass
+ * @param[in] enable Enable/Disable automatic PRS LNA bypass.
+ * @param[in] pPrsLnaBypassConfig A pointer to an automatic PRS LNA bypass
* configuration structure. It must be non-NULL to enable the feature.
* @return Status code indicating success of the function call.
*
- * If automatic LNA bypass is enabled on chip that supports the feature
- * (\ref RAIL_SUPPORTS_AUTO_LNA_BYPASS), GPIO is used to bypass external
- * FEM LNA when the received power exceed a threshold. The bypass is turned off
- * after frame reception or after timeout if no frame has been detected.
- *
- * @note As this automatic LNA bypass relies on GPIO and RAIL is meant to run
- * in TrustZone non-secure world, the feature is not supported if GPIO is
- * configured as secure peripheral.
+ * If automatic PRS LNA bypass is enabled on chip that supports the feature
+ * (\ref RAIL_SUPPORTS_PRS_LNA_BYPASS), a level is generated on a PRS channel
+ * when the received power exceed a threshold. It is turned off after frame
+ * reception or after timeout if no frame has been detected.
*
+ * @warning As this function relies on PRS access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if PRS is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
-RAIL_Status_t RAIL_EnableAutoLnaBypass(RAIL_Handle_t railHandle,
- bool enable,
- const RAIL_AutoLnaBypassConfig_t *pAutoLnaBypassConfig);
+RAIL_Status_t RAIL_EnablePrsLnaBypass(RAIL_Handle_t railHandle,
+ bool enable,
+ const RAIL_PrsLnaBypassConfig_t *pPrsLnaBypassConfig);
/******************************************************************************
* Packet Information (RX)
@@ -3788,7 +3866,7 @@ RAIL_Status_t RAIL_EnableAutoLnaBypass(RAIL_Handle_t railHandle,
* integrity checking. Also note that the packet could be aborted, canceled, or
* fail momentarily, invalidating its data in Packet mode. Furthermore, there
* is a small chance towards the end of packet reception that the filled-in
- * RAIL_RxPacketInfo_t could include not only packet data received so far,
+ * \ref RAIL_RxPacketInfo_t could include not only packet data received so far,
* but also some raw radio-appended info detail bytes that RAIL's
* packet-completion processing will subsequently deal with. It's up to the
* application to know its packet format well enough to avoid confusing such
@@ -3821,7 +3899,7 @@ RAIL_RxPacketHandle_t RAIL_GetRxPacketInfo(RAIL_Handle_t railHandle,
* it has not yet passed any CRC integrity checking. Also note that the
* packet could be aborted, canceled, or fail momentarily, invalidating
* its data in Packet mode. Furthermore, there is a small chance towards
- * the end of packet reception that the filled-in RAIL_RxPacketInfo_t
+ * the end of packet reception that the filled-in \ref RAIL_RxPacketInfo_t
* could include not only packet data received so far, but also some raw
* radio-appended info detail bytes that RAIL's packet-completion
* processing will subsequently deal with. It's up to the application to
@@ -3846,7 +3924,7 @@ RAIL_Status_t RAIL_GetRxIncomingPacketInfo(RAIL_Handle_t railHandle,
* check the validity of its arguments,
* so don't pass either as NULL, and don't
* pass a pDest pointer to a buffer that's too small for the packet's data.
- * @note If only a portion of the packet is needed, use RAIL_PeekRxPacket()
+ * @note If only a portion of the packet is needed, use \ref RAIL_PeekRxPacket()
* instead.
*/
static inline
@@ -3907,8 +3985,8 @@ RAIL_Status_t RAIL_GetRxPacketDetails(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] packetHandle A packet handle for the unreleased packet as
- * returned from a previous call to RAIL_GetRxPacketInfo() or
- * RAIL_HoldRxPacket(), or sentinel values \ref RAIL_RX_PACKET_HANDLE_OLDEST
+ * returned from a previous call to \ref RAIL_GetRxPacketInfo() or
+ * \ref RAIL_HoldRxPacket(), or sentinel values \ref RAIL_RX_PACKET_HANDLE_OLDEST
* \ref RAIL_RX_PACKET_HANDLE_OLDEST_COMPLETE or
* \ref RAIL_RX_PACKET_HANDLE_NEWEST.
* @param[out] pPacketDetails A non-NULL application-provided pointer to
@@ -3918,8 +3996,8 @@ RAIL_Status_t RAIL_GetRxPacketDetails(RAIL_Handle_t railHandle,
* corresponding to a default location in the packet. The timeReceived field
* timePosition will be populated with a \ref RAIL_PacketTimePosition_t value
* specifying that default packet location. Call
- * \ref RAIL_GetRxTimePreambleStart, \ref RAIL_GetRxTimeSyncWordEnd, or
- * \ref RAIL_GetRxTimeFrameEnd to adjust that timestamp for different
+ * \ref RAIL_GetRxTimePreambleStart(), \ref RAIL_GetRxTimeSyncWordEnd(), or
+ * \ref RAIL_GetRxTimeFrameEnd() to adjust that timestamp for different
* locations in the packet.
* @return \ref RAIL_STATUS_NO_ERROR if pPacketDetails was filled in,
* or an appropriate error code otherwise.
@@ -3972,7 +4050,7 @@ RAIL_Status_t RAIL_GetRxTimePreambleStart(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetRxPacketDetailsAlt for this same packet.
+ * a previous call to \ref RAIL_GetRxPacketDetailsAlt() for this same packet.
* The application must update the timeReceived field totalPacketBytes to be
* the total number of bytes of the received packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -3981,9 +4059,6 @@ RAIL_Status_t RAIL_GetRxTimePreambleStart(RAIL_Handle_t railHandle,
* updated with the time that the preamble for this packet started on air.
* @return \ref RAIL_STATUS_NO_ERROR if the packet time was successfully
* calculated, or an appropriate error code otherwise.
- *
- * Call this API while the given railHandle is active, or it will
- * return an error code of \ref RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_GetRxTimePreambleStartAlt(RAIL_Handle_t railHandle,
RAIL_RxPacketDetails_t *pPacketDetails);
@@ -4020,7 +4095,7 @@ RAIL_Status_t RAIL_GetRxTimeSyncWordEnd(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetRxPacketDetailsAlt for this same packet.
+ * a previous call to \ref RAIL_GetRxPacketDetailsAlt() for this same packet.
* The application must update the timeReceived field totalPacketBytes to be
* the total number of bytes of the received packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -4029,9 +4104,6 @@ RAIL_Status_t RAIL_GetRxTimeSyncWordEnd(RAIL_Handle_t railHandle,
* updated with the time that the sync word for this packet finished on air.
* @return \ref RAIL_STATUS_NO_ERROR if the packet time was successfully
* calculated, or an appropriate error code otherwise.
- *
- * Call this API while the given railHandle is active, or it will
- * return an error code of \ref RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_GetRxTimeSyncWordEndAlt(RAIL_Handle_t railHandle,
RAIL_RxPacketDetails_t *pPacketDetails);
@@ -4068,7 +4140,7 @@ RAIL_Status_t RAIL_GetRxTimeFrameEnd(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] pPacketDetails A non-NULL pointer to the details that were returned from
- * a previous call to \ref RAIL_GetRxPacketDetailsAlt for this same packet.
+ * a previous call to \ref RAIL_GetRxPacketDetailsAlt() for this same packet.
* The application must update the timeReceived field totalPacketBytes to be
* the total number of bytes of the received packet for RAIL to use when
* calculating the specified timestamp. This should account for all bytes
@@ -4077,9 +4149,6 @@ RAIL_Status_t RAIL_GetRxTimeFrameEnd(RAIL_Handle_t railHandle,
* updated with the time that the packet finished on air.
* @return \ref RAIL_STATUS_NO_ERROR if the packet time was successfully
* calculated, or an appropriate error code otherwise.
- *
- * Call this API while the given railHandle is active, or it will
- * return an error code of \ref RAIL_STATUS_INVALID_STATE.
*/
RAIL_Status_t RAIL_GetRxTimeFrameEndAlt(RAIL_Handle_t railHandle,
RAIL_RxPacketDetails_t *pPacketDetails);
@@ -4121,7 +4190,7 @@ RAIL_RxPacketHandle_t RAIL_HoldRxPacket(RAIL_Handle_t railHandle);
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] packetHandle A packet handle as returned from a previous
- * RAIL_GetRxPacketInfo() or RAIL_HoldRxPacket() call, or
+ * \ref RAIL_GetRxPacketInfo() or \ref RAIL_HoldRxPacket() call, or
* sentinel values \ref RAIL_RX_PACKET_HANDLE_OLDEST,
* \ref RAIL_RX_PACKET_HANDLE_OLDEST_COMPLETE
* or \ref RAIL_RX_PACKET_HANDLE_NEWEST.
@@ -4136,8 +4205,8 @@ RAIL_RxPacketHandle_t RAIL_HoldRxPacket(RAIL_Handle_t railHandle);
* available packet data (though there is a small chance it might
* for a \ref RAIL_RX_PACKET_HANDLE_NEWEST packet at the very end of
* still being received). Nor can one peek into already-consumed data read
- * by RAIL_ReadRxFifo(). len and offset are relative to the remaining data
- * available in the packet, if any was already consumed by RAIL_ReadRxFifo().
+ * by \ref RAIL_ReadRxFifo(). len and offset are relative to the remaining data
+ * available in the packet, if any was already consumed by \ref RAIL_ReadRxFifo().
*/
uint16_t RAIL_PeekRxPacket(RAIL_Handle_t railHandle,
RAIL_RxPacketHandle_t packetHandle,
@@ -4146,18 +4215,18 @@ uint16_t RAIL_PeekRxPacket(RAIL_Handle_t railHandle,
uint16_t offset);
/**
- * Release RAIL's resources for the packet previously held in the receive FIFO
+ * Release RAIL's resources for a packet previously held in the receive FIFO
* and internal receive metadata FIFO.
*
* This function must be called for any packet previously held via
- * RAIL_HoldRxPacket(). It may optionally be called within a
+ * \ref RAIL_HoldRxPacket(). It may optionally be called within a
* callback context to release RAIL resources sooner than at
* callback completion time when not holding the packet.
* This function can be used in any RX mode.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] packetHandle A packet handle as returned from a previous
- * RAIL_HoldRxPacket() call, or sentinel values
+ * \ref RAIL_HoldRxPacket() call, or sentinel values
* \ref RAIL_RX_PACKET_HANDLE_OLDEST,
* \ref RAIL_RX_PACKET_HANDLE_OLDEST_COMPLETE
* or \ref RAIL_RX_PACKET_HANDLE_NEWEST.
@@ -4195,7 +4264,7 @@ RAIL_Status_t RAIL_ReleaseRxPacket(RAIL_Handle_t railHandle,
* wait is true.
*
* In multiprotocol, this function returns \ref RAIL_RSSI_INVALID
- * immediately if railHandle is not the current active \ref RAIL_Handle_t.
+ * immediately if railHandle is not the currently active \ref RAIL_Handle_t.
* Additionally, 'wait' should never be set 'true' in multiprotocol
* as the wait time is not consistent, so scheduling a scheduler
* slot cannot be done accurately. Rather if waiting for a valid RSSI is
@@ -4225,7 +4294,7 @@ int16_t RAIL_GetRssi(RAIL_Handle_t railHandle, bool wait);
* If equal to \ref RAIL_GET_RSSI_WAIT_WITHOUT_TIMEOUT waits for a valid RSSI
* with no maximum timeout.
* @return \ref RAIL_RSSI_INVALID if the receiver is disabled and an RSSI
- * value can't be obtained. Otherwise, return the RSSI in quarter dBm, dbm*4.
+ * value can't be obtained. Otherwise, return the RSSI in quarter dBm (dBm*4).
*
* Gets the current RSSI value. This value represents the current energy of the
* channel. It can change rapidly, and will be low if no RF energy is
@@ -4245,7 +4314,7 @@ int16_t RAIL_GetRssi(RAIL_Handle_t railHandle, bool wait);
* this function can take a significantly longer time when waitTimeout is non-zero.
*
* In multiprotocol, this function returns \ref RAIL_RSSI_INVALID
- * immediately if railHandle is not the current active \ref RAIL_Handle_t.
+ * immediately if railHandle is not the currently active \ref RAIL_Handle_t.
* Additionally, waitTimeout should never be set to a value other than
* \ref RAIL_GET_RSSI_NO_WAIT in multiprotocol as the integration between this
* feature and the radio scheduler has not been implemented.
@@ -4258,7 +4327,7 @@ int16_t RAIL_GetRssi(RAIL_Handle_t railHandle, bool wait);
* the RSSI value returned could come from either antenna and vary between antennas.
*
* @note If RX channel hopping is turned on, do not use this API.
- * Instead, see RAIL_GetChannelHoppingRssi().
+ * Instead, see \ref RAIL_GetChannelHoppingRssi().
*/
int16_t RAIL_GetRssiAlt(RAIL_Handle_t railHandle, RAIL_Time_t waitTimeout);
@@ -4280,15 +4349,15 @@ int16_t RAIL_GetRssiAlt(RAIL_Handle_t railHandle, RAIL_Time_t waitTimeout);
* In multiprotocol, this is a scheduled event. It will start when railHandle
* becomes active. railHandle needs to stay active until the averaging
* completes. If the averaging is interrupted, calls to
- * \ref RAIL_GetAverageRssi will return \ref RAIL_RSSI_INVALID.
+ * \ref RAIL_GetAverageRssi() will return \ref RAIL_RSSI_INVALID.
*
- * Also in multiprotocol, the user is required to call \ref RAIL_YieldRadio
+ * Also in multiprotocol, the user is required to call \ref RAIL_YieldRadio()
* after this event completes (i.e., when \ref RAIL_EVENT_RSSI_AVERAGE_DONE
* occurs).
*
* @note If the radio is idled while RSSI averaging is still in effect, a
* \ref RAIL_EVENT_RSSI_AVERAGE_DONE event may not occur and
- * \ref RAIL_IsAverageRssiReady may never return true.
+ * \ref RAIL_IsAverageRssiReady() may never return true.
*
* @note Completion of RSSI averaging, marked by RAIL event
* \ref RAIL_EVENT_RSSI_AVERAGE_DONE, will return the radio to idle state.
@@ -4319,8 +4388,8 @@ bool RAIL_IsAverageRssiReady(RAIL_Handle_t railHandle);
* @return The RSSI in quarter-dBm (dBm * 4), or \ref RAIL_RSSI_INVALID
* if the receiver is disabled or an an RSSI value couldn't be obtained.
*
- * Gets the hardware RSSI average after issuing RAIL_StartAverageRssi.
- * Use after \ref RAIL_StartAverageRssi.
+ * Gets the hardware RSSI average after issuing \ref RAIL_StartAverageRssi().
+ * Use after \ref RAIL_StartAverageRssi().
*/
int16_t RAIL_GetAverageRssi(RAIL_Handle_t railHandle);
@@ -4347,13 +4416,13 @@ int16_t RAIL_GetAverageRssi(RAIL_Handle_t railHandle);
*
* @note: Setting a large rssiOffset may still cause the RSSI readings to
* underflow. If that happens, the RSSI value returned by
- * \ref RAIL_GetRssi, \ref RAIL_GetAverageRssi,
- * \ref RAIL_GetChannelHoppingRssi etc. will be \ref RAIL_RSSI_LOWEST
+ * \ref RAIL_GetRssi(), \ref RAIL_GetAverageRssi(),
+ * \ref RAIL_GetChannelHoppingRssi() etc. will be \ref RAIL_RSSI_LOWEST.
*
* @note: During \ref Rx_Channel_Hopping this API will not update the
* RSSI offset immediately if channel hopping has already been configured.
- * A subsequent call to \ref RAIL_ZWAVE_ConfigRxChannelHopping or
- * \ref RAIL_ConfigRxChannelHopping is required for the new RSSI offset to
+ * A subsequent call to \ref RAIL_ZWAVE_ConfigRxChannelHopping() or
+ * \ref RAIL_ConfigRxChannelHopping() is required for the new RSSI offset to
* take effect.
*/
RAIL_Status_t RAIL_SetRssiOffset(RAIL_Handle_t railHandle, int8_t rssiOffset);
@@ -4380,7 +4449,7 @@ int8_t RAIL_GetRssiOffset(RAIL_Handle_t railHandle);
* \ref RAIL_EVENT_DETECT_RSSI_THRESHOLD is triggered.
* @return Status code indicating success of the function call.
* Returns \ref RAIL_STATUS_INVALID_STATE in multiprotocol,
- * if the requested \ref RAIL_Handle_t is not active.
+ * if the requested railHandle is not active.
* Returns \ref RAIL_STATUS_INVALID_CALL if called on parts on which this function
* is not supported.
*
@@ -4396,7 +4465,7 @@ int8_t RAIL_GetRssiOffset(RAIL_Handle_t railHandle);
* \ref RAIL_EVENT_DETECT_RSSI_THRESHOLD occurs, this function needs to be
* called again to reactivate the RSSI threshold detection.
*
- * This function is only available on EFR32 Series 2 Sub-GHz parts EFR32XG23 and EFR32XG25.
+ * This function is only available on EFR32 Series 2 Sub-GHz parts EFR32xG23 and EFR32xG25.
*/
RAIL_Status_t RAIL_SetRssiDetectThreshold(RAIL_Handle_t railHandle,
int8_t rssiThresholdDbm);
@@ -4408,14 +4477,27 @@ RAIL_Status_t RAIL_SetRssiDetectThreshold(RAIL_Handle_t railHandle,
* @return The RSSI threshold in dBm corresponding to the railHandle.
*
* @note: The function returns \ref RAIL_RSSI_INVALID_DBM when
- * \ref RAIL_SetRssiDetectThreshold is not supported or disabled.
+ * \ref RAIL_SetRssiDetectThreshold() is not supported or disabled.
* In multiprotocol, the function returns \ref RAIL_RSSI_INVALID_DBM if railHandle
* is not active.
*
- * This function is only available on EFR32 Series 2 Sub-GHz parts EFR32XG23 and EFR32XG25.
+ * This function is only available on EFR32 Series 2 Sub-GHz parts EFR32xG23 and EFR32xG25.
*/
int8_t RAIL_GetRssiDetectThreshold(RAIL_Handle_t railHandle);
+/**
+ * Return the RSSI associated with the incoming packet.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @return The RSSI on the incoming packet in dBm,
+ * or \ref RAIL_RSSI_INVALID_DBM if not available.
+ *
+ * This function can only be called from callback context, e.g.,
+ * when handling \ref RAIL_EVENT_RX_FILTER_PASSED or
+ * \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND.
+ */
+int8_t RAIL_GetRxIncomingPacketRssi(RAIL_Handle_t railHandle);
+
/**
* Set up a callback function capable of converting a RX packet's LQI value
* before being consumed by application code.
@@ -4438,22 +4520,22 @@ RAIL_Status_t RAIL_ConvertLqi(RAIL_Handle_t railHandle,
*
* The address filtering code examines the packet as follows.
*
- * | `Bytes: 0 - 255` | `0 - 8` | `0 - 255` | `0 - 8` | `Variable` |
- * |:----------------:|---------:|----------:|---------:|:----------:|
- * | `Data0` | `Field0` | `Data1` | `Field1` | `Data2` |
+ * | `Bytes: 0 - 255` | `0 - 8` | `0 - 255` | `0 - 8` | `Variable` |
+ * |:----------------:|----------:|----------:|----------:|:----------:|
+ * | `Data_0` | `Field_0` | `Data_1` | `Field_1` | `Data_2` |
*
- * In the above structure, anything listed as DataN is an optional section of
- * bytes that RAIL will not process for address filtering. The FieldN segments
+ * In the above structure, anything listed as Data_# is an optional section of
+ * bytes that RAIL will not process for address filtering. The Field_# segments
* reference specific sections in the packet that will each be interpreted
* as an address during address filtering. The application may submit up to
* four addresses to attempt to match each field segment and each address may
* have a size of up to 8 bytes. To set up address filtering, first configure
* the locations and length of the addresses in the packet. Next, configure
- * which combinations of matches in Field0 and Field1 should constitute an
+ * which combinations of matches in Field_0 and Field_1 should constitute an
* address match. Last, enter addresses into tables for each field and
* enable them. The first two of these are part of the \ref RAIL_AddrConfig_t
* structure while the second part is configured at runtime using the
- * RAIL_SetAddressFilterAddress() API. A brief description of each
+ * \ref RAIL_SetAddressFilterAddress() API. A brief description of each
* configuration is listed below.
*
* The offsets and sizes of the fields
@@ -4461,27 +4543,27 @@ RAIL_Status_t RAIL_ConvertLqi(RAIL_Handle_t railHandle,
* arrays for these values in the sizes and offsets entries in the
* \ref RAIL_AddrConfig_t structure. A size of zero indicates that a field is
* disabled. The start offset for a field is relative to the previous start
- * offset and, if you're using FrameType decoding, the first start offset is
+ * offset and, if you're using frame type decoding, the first start offset is
* relative to the end of the byte containing the frame type.
*
- * Configuring which combinations of Field0 and Field1 constitute a match is
+ * Configuring which combinations of Field_0 and Field_1 constitute a match is
* the most complex portion of the address filter. The easiest way to think
* about this is with a truth table. If you consider each of the four possible
* address entries in a field, you can have a match on any one of those or a
* match for none of them. This is shown in the 5x5 truth table below where
- * Field0 matches are the rows and Field1 matches are the columns.
+ * Field_0 matches are the rows and Field_1 matches are the columns.
*
* | | No Match | Address 0 | Address 1 | Address 2 | Address 3 |
* |----------------|----------|-----------|-----------|-----------|-----------|
- * | __No Match__ | bit0 | bit1 | bit2 | bit3 | bit4 |
- * | __Address 0__ | bit5 | bit6 | bit7 | bit8 | bit9 |
- * | __Address 1__ | bit10 | bit11 | bit12 | bit13 | bit14 |
- * | __Address 2__ | bit15 | bit16 | bit17 | bit18 | bit19 |
- * | __Address 3__ | bit20 | bit21 | bit22 | bit23 | bit24 |
+ * | __No Match__ | bit 0 | bit 1 | bit 2 | bit 3 | bit 4 |
+ * | __Address 0__ | bit 5 | bit 6 | bit 7 | bit 8 | bit 9 |
+ * | __Address 1__ | bit 10 | bit 11 | bit 12 | bit 13 | bit 14 |
+ * | __Address 2__ | bit 15 | bit 16 | bit 17 | bit 18 | bit 19 |
+ * | __Address 3__ | bit 20 | bit 21 | bit 22 | bit 23 | bit 24 |
*
* Because this is only 25 bits, it can be represented in one 32-bit integer
* where 1 indicates a filter pass and 0 indicates a filter fail. This is the
- * matchTable parameter in the configuration structure and is used during
+ * \ref RAIL_AddrConfig_t::matchTable field and is used during
* filtering. For common simple configurations, two defines are provided with
* the truth tables as shown below. The first is \ref
* ADDRCONFIG_MATCH_TABLE_SINGLE_FIELD, which can be used if only using
@@ -4555,7 +4637,7 @@ RAIL_Status_t RAIL_ResetAddressFilter(RAIL_Handle_t railHandle);
* @param[in] index Indicates a match entry for this address for a
* given field.
* @param[in] value A pointer to the address data. This must be at least as
- * long as the size specified in RAIL_ConfigAddressFilter(). The first byte,
+ * long as the size specified in \ref RAIL_ConfigAddressFilter(). The first byte,
* value[0], will be compared to the first byte received over the air for this
* address field.
* @param[in] enable A boolean to indicate whether this address should be
@@ -4564,7 +4646,7 @@ RAIL_Status_t RAIL_ResetAddressFilter(RAIL_Handle_t railHandle);
*
* This function loads the given address into hardware for filtering and
* starts filtering if you set the enable parameter to true. Otherwise,
- * call RAIL_EnableAddressFilterAddress() to turn it on later.
+ * call \ref RAIL_EnableAddressFilterAddress() to turn it on later.
*/
RAIL_Status_t RAIL_SetAddressFilterAddress(RAIL_Handle_t railHandle,
uint8_t field,
@@ -4578,7 +4660,7 @@ RAIL_Status_t RAIL_SetAddressFilterAddress(RAIL_Handle_t railHandle,
* @param[in] railHandle A RAIL instance handle.
* @param[in] field Indicates an address field for this address bit mask.
* @param[in] bitMask A pointer to the address bitmask. This must be at least
- * as long as the size specified in RAIL_ConfigAddressFilter(). The first
+ * as long as the size specified in \ref RAIL_ConfigAddressFilter(). The first
* byte, bitMask[0], will be applied to the first byte received over the air
* for this address field. Bits set to 1 in the bit mask indicate which bit
* positions in the incoming packet to compare against the stored addresses
@@ -4592,7 +4674,7 @@ RAIL_Status_t RAIL_SetAddressFilterAddress(RAIL_Handle_t railHandle,
* set to 1 during hardware initialization and when either \ref
* RAIL_ConfigAddressFilter() or \ref RAIL_ResetAddressFilter() are called.
*
- * @note This feature/API is not supported on the EFR32XG21.
+ * @note This feature/API is not supported on the EFR32xG21.
* Use the compile time symbol \ref
* RAIL_SUPPORTS_ADDR_FILTER_ADDRESS_BIT_MASK or the runtime call \ref
* RAIL_SupportsAddrFilterAddressBitMask() to check whether the platform
@@ -4622,17 +4704,17 @@ RAIL_Status_t RAIL_EnableAddressFilterAddress(RAIL_Handle_t railHandle,
/** @} */ // end of group Receive
/******************************************************************************
- * Auto-ACKing
+ * Auto-Acking
*****************************************************************************/
-/// @addtogroup Auto_Ack Auto-ACK
-/// @brief APIs for configuring auto-ACK functionality
+/// @addtogroup Auto_Ack Auto-Ack
+/// @brief APIs for configuring Auto-Ack functionality
///
/// These APIs configure the radio for automatic acknowledgment
-/// features. Auto-ACK inherently changes how the underlying state machine
-/// behaves so users should not modify RAIL_SetRxTransitions() and
-/// RAIL_SetTxTransitions() while using auto-ACK features.
+/// features. Auto-Ack inherently changes how the underlying state machine
+/// behaves so users should not modify \ref RAIL_SetRxTransitions() and
+/// \ref RAIL_SetTxTransitions() while using Auto-Ack features.
/// @code{.c}
-/// // Go to RX after ACK operation.
+/// // Go to RX after Ack operation.
/// RAIL_AutoAckConfig_t autoAckConfig = {
/// .enable = true,
/// .ackTimeout = 1000,
@@ -4657,99 +4739,101 @@ RAIL_Status_t RAIL_EnableAddressFilterAddress(RAIL_Handle_t railHandle,
///
/// The acknowledgment transmits based on the frame format configured via
/// the Radio Configurator. For example, if the frame format is using a variable
-/// length scheme, the ACK will be sent according to that scheme. If a 10-byte
-/// packet is loaded into the ACK, but the variable length field of the ACK
-/// payload specifies a length of 5, only 5 bytes will transmit for the ACK.
+/// length scheme, the Ack will be sent according to that scheme. If a 10-byte
+/// packet is loaded into the Ack, but the variable length field of the Ack
+/// payload specifies a length of 5, only 5 bytes will transmit for the Ack.
/// The converse is also true, if the frame length is configured to be a fixed
-/// 10-byte packet but only 5 bytes are loaded into the ACK buffer, a TX
-/// underflow occurs during the ACK transmit.
+/// 10-byte packet but only 5 bytes are loaded into the Ack buffer, a TX
+/// underflow occurs during the Ack transmit.
///
-/// Unlike in non-auto-ACK mode, auto-ACK mode will always return to a single
-/// state after all ACK sequences complete, regardless of whether
-/// the ACK was successfully received/sent or not. See the documentation
+/// Unlike in non-Auto-Ack mode, Auto-Ack mode will always return to a single
+/// state after all Ack sequences complete, regardless of whether
+/// the Ack was successfully received/sent or not. See the documentation
/// of \ref RAIL_ConfigAutoAck() for configuration information. To
/// suspend automatic acknowledgment of a series of packets after transmit
-/// or receive call RAIL_PauseTxAutoAck() or RAIL_PauseRxAutoAck() respectively
-/// with the pause parameter set to true. When auto-ACKing is paused, after
+/// or receive call \ref RAIL_PauseTxAutoAck() or \ref RAIL_PauseRxAutoAck() respectively
+/// with the pause parameter set to true. When Auto-Acking is paused, after
/// receiving or transmitting a packet (regardless of success), the radio
-/// transitions to the same state it would use while ACKing. To return to
-/// normal state transition logic outside of ACKing, call \ref
+/// transitions to the same state it would use while Acking. To return to
+/// normal state transition logic outside of Acking, call \ref
/// RAIL_ConfigAutoAck() with the \ref RAIL_AutoAckConfig_t::enable field false
/// and specify the desired transitions in the \ref
/// RAIL_AutoAckConfig_t::rxTransitions and RAIL_AutoAckConfig_t::txTransitions
-/// fields. To get out of a paused state and resume auto-ACKing, call
-/// RAIL_PauseTxAutoAck() and/or RAIL_PauseRxAutoAck() with the pause parameter
+/// fields. To get out of a paused state and resume Auto-Acking, call \ref
+/// RAIL_PauseTxAutoAck() and/or \ref RAIL_PauseRxAutoAck() with the pause parameter
/// set to false.
///
-/// Applications can cancel the transmission of an ACK with
+/// Applications can cancel the transmission of an Ack with \ref
/// RAIL_CancelAutoAck(). Conversely, applications can control if a transmit
-/// operation should wait for an ACK after transmitting by using
+/// operation should wait for an Ack after transmitting by using
/// the \ref RAIL_TX_OPTION_WAIT_FOR_ACK option.
///
-/// When \ref Antenna_Control is used for multiple antennas, ACKs are
+/// When \ref Antenna_Control is used for multiple antennas, Acks are
/// transmitted on the antenna that was selected to receive the packet
-/// being acknowledged. When receiving an ACK, the
+/// being acknowledged. When receiving an Ack, the
/// \ref RAIL_RxOptions_t antenna options are used just like for any other
/// receive.
///
-/// If the ACK payload is dynamic, the application must call
-/// RAIL_WriteAutoAckFifo() with the appropriate ACK payload after the
-/// application processes the receive. RAIL can auto-ACK from the normal
-/// transmit buffer if RAIL_UseTxFifoForAutoAck() is called before the radio
-/// transmits the ACK. Ensure the transmit buffer contains data loaded by
+/// If the Ack payload is dynamic, the application must call \ref
+/// RAIL_WriteAutoAckFifo() with the appropriate Ack payload after the
+/// application processes the receive. RAIL can Auto-Ack from the normal
+/// transmit buffer if \ref RAIL_UseTxFifoForAutoAck() is called before the radio
+/// transmits the Ack. Ensure the transmit buffer contains data loaded by \ref
/// RAIL_WriteTxFifo().
///
-/// Standard-based protocols that contain auto-ACK functionality are normally
+/// Standard-based protocols that contain Auto-Ack functionality are normally
/// configured in the protocol-specific configuration function. For example,
-/// RAIL_IEEE802154_Init() provides auto-ACK configuration parameters in \ref
+/// \ref RAIL_IEEE802154_Init() provides Auto-Ack configuration parameters in \ref
/// RAIL_IEEE802154_Config_t and should only be configured through that
-/// function. It is not advisable to call both RAIL_IEEE802154_Init() and \ref
-/// RAIL_ConfigAutoAck(). However, ACK modification functions are still valid to
-/// use with protocol-specific ACKs. To cancel an IEEE 802.15.4 ACK transmit,
-/// use RAIL_CancelAutoAck().
+/// function. It is not advisable to call both \ref RAIL_IEEE802154_Init() and \ref
+/// RAIL_ConfigAutoAck(). However, Ack modification functions are still valid to
+/// use with protocol-specific Acks. To cancel an IEEE 802.15.4 Ack transmit,
+/// use \ref RAIL_CancelAutoAck().
///
/// @{
/// Configure and enable automatic acknowledgment.
///
/// @param[in] railHandle A RAIL instance handle.
-/// @param[in] config A pointer to an Auto-ACK configuration structure.
+/// @param[in] config A pointer to an Auto-Ack configuration structure.
/// @return Status code indicating success of the function call.
///
/// Configures the RAIL state machine for hardware-accelerated automatic
-/// acknowledgment. ACK timing parameters are defined in the configuration
+/// acknowledgment. Ack timing parameters are defined in the configuration
/// structure.
///
-/// While auto-ACKing is enabled, do not call the following RAIL functions:
-/// - RAIL_SetRxTransitions()
-/// - RAIL_SetTxTransitions()
-/// Indeed, when auto-ACKing is enabled, only one state transition can be defined
+/// While Auto-Acking is enabled, do not call the following RAIL functions:
+/// - \ref RAIL_SetRxTransitions()
+/// - \ref RAIL_SetTxTransitions()
+///
+/// When Auto-Acking is enabled, only one state transition can be defined
/// (without notion of success or error).
-/// Thus if you are enabling auto-ACK (i.e., "config.enable" field is true)
-/// the "error" fields of config.rxTransitions and config.txTransitions are ignored.
-/// After all ACK sequences, (success or fail) the state machine will return
+/// Thus if you are enabling Auto-Ack (i.e., config->enable field is true)
+/// the "error" states of config->rxTransitions and config->txTransitions are ignored.
+/// After all Ack sequences, (success or fail) the state machine will return
/// the radio to the "success" state, which can be either
/// \ref RAIL_RF_STATE_RX or \ref RAIL_RF_STATE_IDLE (returning to
/// \ref RAIL_RF_STATE_TX is not supported).
-/// On the oppsite, if you are disabling auto-ACK (i.e., "config.enable" field is
-/// false), transitions are reconfigured using all fields of config.rxTransitions
-/// and config.txTransitions.
+/// Alternatively when Auto-Acking is disabled (i.e., config->enable field is
+/// false), transitions are reconfigured using all fields of config->rxTransitions
+/// and config->txTransitions. When disabling, the "ackTimeout" field isn't used.
+///
/// If you need information about the
-/// actual success of the ACK sequence, use RAIL events such as
-/// \ref RAIL_EVENT_TXACK_PACKET_SENT to make sure an ACK was sent, or
-/// \ref RAIL_EVENT_RX_ACK_TIMEOUT to make sure that an ACK was received
+/// actual success of the Ack sequence, use RAIL events such as
+/// \ref RAIL_EVENT_TXACK_PACKET_SENT to make sure an Ack was sent, or
+/// \ref RAIL_EVENT_RX_ACK_TIMEOUT to make sure that an Ack was received
/// within the specified timeout.
///
/// To set a certain turnaround time (i.e., txToRx and rxToTx
/// in \ref RAIL_StateTiming_t), make txToRx lower than
-/// desired to ensure you get to RX in time to receive the ACK.
+/// desired to ensure you get to RX in time to receive the Ack.
/// Silicon Labs recommends setting 10 us lower than desired:
/// @code{.c}
/// void setAutoAckStateTimings(void)
/// {
/// RAIL_StateTiming_t timings;
///
-/// // User is already in auto-ACK and wants a turnaround of 192 us.
+/// // User is already in Auto-Ack and wants a turnaround of 192 us.
/// timings.rxToTx = 192;
/// timings.txToRx = 192 - 10;
///
@@ -4763,43 +4847,37 @@ RAIL_Status_t RAIL_EnableAddressFilterAddress(RAIL_Handle_t railHandle,
/// }
/// @endcode
///
-/// As opposed to an explicit "Disable" API, set the "enable"
-/// field of the RAIL_AutoAckConfig_t to false. Then, auto-ACK will be
-/// disabled and state transitions will be returned to the values set
-/// in \ref RAIL_AutoAckConfig_t. When disabling, the "ackTimeout" field
-/// isn't used.
-///
-/// @note Auto-ACKing may not be enabled while RX Channel Hopping is enabled,
+/// @note Auto-Acking may not be enabled while RX Channel Hopping is enabled,
/// or when BLE is enabled.
///
RAIL_Status_t RAIL_ConfigAutoAck(RAIL_Handle_t railHandle,
const RAIL_AutoAckConfig_t *config);
/**
- * Return the enable status of the auto-ACK feature.
+ * Return the enable status of the Auto-Ack feature.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if auto-ACK is enabled, false if disabled.
+ * @return true if Auto-Ack is enabled, false if disabled.
*/
bool RAIL_IsAutoAckEnabled(RAIL_Handle_t railHandle);
/**
- * Load the auto-ACK buffer with ACK data.
+ * Load the Auto-Ack buffer with Ack data.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] ackData A pointer to ACK data to transmit.
+ * @param[in] ackData A pointer to Ack data to transmit.
* This may be NULL, in which case it's assumed the data has already
- * been emplaced into the ACK buffer and RAIL just needs to be told
+ * been emplaced into the Ack buffer and RAIL just needs to be told
* how many bytes are there. Use \ref RAIL_GetAutoAckFifo() to get
- * the address of RAIL's auto-ACK buffer in RAM and its size.
- * @param[in] ackDataLen The number of bytes in ACK data.
+ * the address of RAIL's Auto-Ack buffer in RAM and its size.
+ * @param[in] ackDataLen The number of bytes in Ack data.
* @return Status code indicating success of the function call.
*
- * If the ACK buffer is available for updates, load the ACK buffer with data.
+ * If the Ack buffer is available for updates, load the Ack buffer with data.
* If it is not available, \ref RAIL_STATUS_INVALID_STATE is returned.
* If ackDataLen exceeds \ref RAIL_AUTOACK_MAX_LENGTH then
* \ref RAIL_STATUS_INVALID_PARAMETER will be returned and nothing is
- * written to the ACK buffer (unless ackData is NULL in which case this
+ * written to the Ack buffer (unless ackData is NULL in which case this
* indicates the application has already likely corrupted RAM).
*/
RAIL_Status_t RAIL_WriteAutoAckFifo(RAIL_Handle_t railHandle,
@@ -4807,17 +4885,17 @@ RAIL_Status_t RAIL_WriteAutoAckFifo(RAIL_Handle_t railHandle,
uint16_t ackDataLen);
/**
- * Get the address and size of the auto-ACK transmit buffer for direct access.
+ * Get the address and size of the Auto-Ack transmit buffer for direct access.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in,out] ackBuffer A pointer to a uint8_t pointer that will be
- * updated to the RAM base address of the auto-ACK FIFO buffer.
+ * updated to the RAM base address of the Auto-Ack FIFO buffer.
* @param[in,out] ackBufferBytes A pointer to a uint16_t that will be
- * updated to the size of the auto-ACK FIFO buffer, in bytes,
+ * updated to the size of the Auto-Ack FIFO buffer, in bytes,
* currently \ref RAIL_AUTOACK_MAX_LENGTH.
* @return Status code indicating success of the function call.
*
- * Applications can use this to more flexibly write auto-ACK data into
+ * Applications can use this to more flexibly write Auto-Ack data into
* the buffer directly and in pieces, passing NULL ackData parameter to
* \ref RAIL_WriteAutoAckFifo() or \ref RAIL_IEEE802154_WriteEnhAck()
* to inform RAIL of its final length.
@@ -4827,99 +4905,99 @@ RAIL_Status_t RAIL_GetAutoAckFifo(RAIL_Handle_t railHandle,
uint16_t *ackBufferBytes);
/**
- * Pause/resume RX auto-ACK functionality.
+ * Pause/resume RX Auto-Ack functionality.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pause Pause or resume RX auto-ACKing.
+ * @param[in] pause Pause or resume RX Auto-Acking.
* @return Status code indicating success of the function call.
*
- * When RX auto-ACKing is paused, the radio transitions to
+ * When RX Auto-Acking is paused, the radio transitions to
* \ref RAIL_AutoAckConfig_t::rxTransitions's
* \ref RAIL_StateTransitions_t::success state after receiving a packet and
- * does not transmit an ACK. When RX auto-ACK is resumed, the radio resumes
- * automatically ACKing every successfully received packet.
+ * does not transmit an Ack. When RX Auto-Ack is resumed, the radio resumes
+ * automatically Acking every successfully received packet.
*/
RAIL_Status_t RAIL_PauseRxAutoAck(RAIL_Handle_t railHandle,
bool pause);
/**
- * Return whether the RX auto-ACK is paused.
+ * Return whether the RX Auto-Ack is paused.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if RX auto-ACK is paused, false if not paused.
+ * @return true if RX Auto-Ack is paused, false if not paused.
*/
bool RAIL_IsRxAutoAckPaused(RAIL_Handle_t railHandle);
/**
- * Pause/resume TX auto-ACK functionality.
+ * Pause/resume TX Auto-Ack functionality.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pause Pause or resume TX auto-ACKing.
+ * @param[in] pause Pause or resume TX Auto-Acking.
* @return Status code indicating success of the function call.
*
- * When TX auto-ACKing is paused, the radio transitions to
+ * When TX Auto-Acking is paused, the radio transitions to
* \ref RAIL_AutoAckConfig_t::txTransitions's
* \ref RAIL_StateTransitions_t::success state after transmitting a packet and
- * does not wait for an ACK. When TX auto-ACK is resumed, the radio resumes
- * automatically waiting for an ACK after a successful transmit.
+ * does not wait for an Ack. When TX Auto-Ack is resumed, the radio resumes
+ * automatically waiting for an Ack after a successful transmit.
*/
RAIL_Status_t RAIL_PauseTxAutoAck(RAIL_Handle_t railHandle, bool pause);
/**
- * Return whether the TX auto-ACK is paused.
+ * Return whether the TX Auto-Ack is paused.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if TX auto-ACK is paused, false if not paused.
+ * @return true if TX Auto-Ack is paused, false if not paused.
*/
bool RAIL_IsTxAutoAckPaused(RAIL_Handle_t railHandle);
/**
- * Modify the upcoming ACK to use the transmit FIFO.
+ * Modify the upcoming Ack to use the transmit FIFO.
*
* @param[in] railHandle A RAIL instance handle.
* @return Status code indicating success of the function call. The call will
- * fail if it is too late to modify the outgoing ACK.
+ * fail if it is too late to modify the outgoing Ack.
*
* This function allows the application to use the normal transmit FIFO as
- * the data source for the upcoming ACK. The ACK modification to use the
- * transmit FIFO only applies to one ACK transmission.
+ * the data source for the upcoming Ack. The Ack modification to use the
+ * transmit FIFO only applies to one Ack transmission.
*
* This function only returns true if the following conditions are met:
- * - Radio has not already decided to use the ACK buffer AND
+ * - Radio has not already decided to use the Ack buffer AND
* - Radio is either looking for sync, receiving the packet after sync, or in
- * the Rx2Tx turnaround before the ACK is sent.
+ * the \ref RAIL_StateTiming_t::rxToTx turnaround before the Ack is sent.
*
- * @note The transmit FIFO must not be used for auto-ACK when IEEE 802.15.4,
+ * @note The transmit FIFO must not be used for Auto-Ack when IEEE 802.15.4,
* Z-Wave, or BLE protocols are active.
*/
RAIL_Status_t RAIL_UseTxFifoForAutoAck(RAIL_Handle_t railHandle);
/**
- * Cancel the upcoming ACK.
+ * Cancel the upcoming Ack.
*
* @param[in] railHandle A RAIL instance handle.
* @return Status code indicating success of the function call. This call will
- * fail if it is too late to modify the outgoing ACK.
+ * fail if it is too late to modify the outgoing Ack.
*
* This function allows the application to cancel the upcoming automatic
* acknowledgment.
*
* This function only returns true if the following conditions are met:
- * - Radio has not already decided to transmit the ACK AND
+ * - Radio has not already decided to transmit the Ack, and
* - Radio is either looking for sync, receiving the packet after sync or in
- * the Rx2Tx turnaround before the ACK is sent.
+ * the \ref RAIL_StateTiming_t::rxToTx turnaround before the Ack is sent.
*/
RAIL_Status_t RAIL_CancelAutoAck(RAIL_Handle_t railHandle);
/**
- * Return whether the radio is currently waiting for an ACK.
+ * Return whether the radio is currently waiting for an Ack.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if radio is waiting for ACK, false if radio is not waiting for
- * an ACK.
+ * @return true if radio is waiting for Ack, false if radio is not waiting for
+ * an Ack.
*
* This function allows the application to query whether the radio is currently
- * waiting for an ACK after a transmit operation.
+ * waiting for an Ack after a transmit operation.
*/
bool RAIL_IsAutoAckWaitingForAck(RAIL_Handle_t railHandle);
@@ -4934,23 +5012,39 @@ bool RAIL_IsAutoAckWaitingForAck(RAIL_Handle_t railHandle);
///
/// These APIs calibrate the radio. The RAIL library
/// determines which calibrations are necessary. Calibrations can
-/// be enabled/disabled with the RAIL_CalMask_t parameter.
+/// be enabled/disabled with the \ref RAIL_CalMask_t parameter.
///
/// Some calibrations produce values that can be saved and reapplied to
/// avoid repeating the calibration process.
///
-/// Calibrations can either be run with \ref RAIL_Calibrate, or with the
+/// Calibrations can either be run with \ref RAIL_Calibrate(), or with the
/// individual chip-specific calibration routines. An example for running code
-/// with \ref RAIL_Calibrate looks like the following:
+/// with \ref RAIL_Calibrate() looks like the following:
/// @code{.c}
/// static RAIL_CalValues_t calValues = RAIL_CALVALUES_UNINIT;
+/// static volatile bool calibrateRadio = false;
///
/// void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events)
/// {
/// // Omitting other event handlers
/// if (events & RAIL_EVENT_CAL_NEEDED) {
-/// // Run all pending calibrations, and save the results
-/// RAIL_Calibrate(railHandle, &calValues, RAIL_CAL_ALL_PENDING);
+/// calibrateRadio = true;
+/// }
+/// }
+///
+/// void main(void)
+/// {
+/// // Initialize RAIL ...
+///
+/// // Application main loop
+/// while (1) {
+/// ...
+/// if (calibrateRadio) {
+/// // Run all pending calibrations, and save the results
+/// RAIL_Calibrate(railHandle, &calValues, RAIL_CAL_ALL_PENDING);
+/// calibrateRadio = false;
+/// }
+/// ...
/// }
/// }
/// @endcode
@@ -4971,7 +5065,8 @@ bool RAIL_IsAutoAckWaitingForAck(RAIL_Handle_t railHandle);
/// },
/// };
///
-/// void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events) {
+/// void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events)
+/// {
/// // Omitting other event handlers
/// if (events & RAIL_EVENT_CAL_NEEDED) {
/// RAIL_CalMask_t pendingCals = RAIL_GetPendingCal(railHandle);
@@ -5031,12 +5126,13 @@ RAIL_Status_t RAIL_ConfigCal(RAIL_Handle_t railHandle,
* call this function with a calibration values structure containing valid
* calibration values after a reset).
*
+ * Silicon Labs recommends calling this function from the application main loop.
+ *
* If multiple protocols are used, this function will make the given railHandle
* active, if not already, and perform calibration. If called during a protocol
* switch, to perform an IR calibration for the first time, it will
* return \ref RAIL_STATUS_INVALID_STATE, in which case the application must
- * defer calibration until after the protocol switch is complete. Silicon Labs
- * recommends calling this function from the application main loop.
+ * defer calibration until after the protocol switch is complete.
*
* @note Instead of this function, consider using the individual calibration-specific
* functions. Using the individual functions will allow for better
@@ -5083,7 +5179,7 @@ RAIL_Status_t RAIL_ApplyIrCalibration(RAIL_Handle_t railHandle,
uint32_t imageRejection);
/**
- * Apply a given image rejection calibration value.
+ * Apply given image rejection calibration values.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] imageRejection A pointer to the image rejection values to apply.
@@ -5091,12 +5187,12 @@ RAIL_Status_t RAIL_ApplyIrCalibration(RAIL_Handle_t railHandle,
* @return Status code indicating success of the function call.
*
* Take image rejection calibration values and apply them. These values should be
- * determined from a previous run of \ref RAIL_CalibrateIrAlt on the same
+ * determined from a previous run of \ref RAIL_CalibrateIrAlt() on the same
* physical device with the same radio configuration. The imageRejection values
* will also be stored to the \ref RAIL_ChannelConfigEntry_t::attr, if possible.
*
* @note: To make sure the imageRejection values are stored/configured correctly,
- * \ref RAIL_ConfigAntenna should be called before calling this API.
+ * \ref RAIL_ConfigAntenna() should be called before calling this API.
*
* If multiple protocols are used, this function will return
* \ref RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is
@@ -5119,15 +5215,15 @@ RAIL_Status_t RAIL_ApplyIrCalibrationAlt(RAIL_Handle_t railHandle,
* \ref RAIL_ChannelConfigEntry_t::attr, if possible. This is a long-running
* calibration that adds significant code space when run and can be run with a
* separate firmware image on each device to save code space in the
- * final image.
+ * final image. Silicon Labs recommends calling this function from the
+ * application main loop.
*
* If multiple protocols are used, this function will make the given railHandle
* active, if not already, and perform calibration. If called during a protocol
* switch, it will return \ref RAIL_STATUS_INVALID_STATE. In this case,
* \ref RAIL_ApplyIrCalibration may be called to apply a previously determined
* IR calibration value, or the app must defer calibration until the
- * protocol switch is complete. Silicon Labs recommends calling this function
- * from the application main loop.
+ * protocol switch is complete.
*
* @deprecated Please use \ref RAIL_CalibrateIrAlt instead.
*/
@@ -5148,9 +5244,11 @@ RAIL_Status_t RAIL_CalibrateIr(RAIL_Handle_t railHandle,
* \ref RAIL_ChannelConfigEntry_t::attr, if possible. This is a long-running
* calibration that adds significant code space when run and can be run with a
* separate firmware image on each device to save code space in the
- * final image.
+ * final image. Silicon Labs recommends calling this function from the
+ * application main loop.
+ *
* @note: To make sure the imageRejection values are stored/configured correctly,
- * \ref RAIL_ConfigAntenna should be called before calling this API.
+ * \ref RAIL_ConfigAntenna() should be called before calling this API.
*
* If multiple protocols are used, this function will return
* \ref RAIL_STATUS_INVALID_STATE if it is called and the given railHandle is
@@ -5222,7 +5320,7 @@ RAIL_Status_t RAIL_CalibrateHFXO(RAIL_Handle_t railHandle, int8_t *crystalPPMErr
* on initialization, which can override the default state of the feature.
*
* @note Call this function before \ref RAIL_ConfigTxPower() if this
- * feature is desired.
+ * feature is not desired.
*/
void RAIL_EnablePaCal(bool enable);
@@ -5256,7 +5354,7 @@ void RAIL_EnablePaCal(bool enable);
* within either or both the 2.4 GHz and Sub-GHz bands and trigger an event
* if that energy is continuously present for certain durations of time. An
* application can check when RF energy is sensed either by enabling the event
- * \ref RAIL_EVENT_RF_SENSED, by polling on the \ref RAIL_IsRfSensed API, or
+ * \ref RAIL_EVENT_RF_SENSED, by polling on the \ref RAIL_IsRfSensed() API, or
* by using the cb callback.
*
* @note After RF energy has been sensed, the RF Sense is automatically
@@ -5292,7 +5390,7 @@ RAIL_Time_t RAIL_StartRfSense(RAIL_Handle_t railHandle,
///
/// Some radios support Selective RF energy detection (OOK mode) where the
/// user can program the radio to look for a particular sync word pattern
-/// (1byte - 4bytes) sent using OOK and wake only when that is detected.
+/// (1-4 bytes) sent using OOK and wake only when that is detected.
/// See chip-specific documentation for more details.
///
/// The following code gives an example of how to use RF Sense functionality
@@ -5302,6 +5400,8 @@ RAIL_Time_t RAIL_StartRfSense(RAIL_Handle_t railHandle,
/// #define NUM_SYNC_WORD_BYTES (2U)
/// // Sync word value.
/// #define SYNC_WORD (0xB16FU)
+/// // Desired RF band
+/// RAIL_RfSenseBand_t rfBand = RAIL_RFSENSE_2_4GHZ;
///
/// // Configure the transmitting node for sending the wakeup packet.
/// RAIL_Idle(railHandle, RAIL_IDLE_ABORT, true);
@@ -5309,12 +5409,12 @@ RAIL_Time_t RAIL_StartRfSense(RAIL_Handle_t railHandle,
/// RAIL_SetRfSenseSelectiveOokWakeupPayload(railHandle, NUM_SYNC_WORD_BYTES, SYNC_WORD);
/// RAIL_StartTx(railHandle, channel, RAIL_TX_OPTIONS_DEFAULT, NULL);
///
-/// // Configure the receiving node (EFR32XG22) for RF Sense.
+/// // Configure the receiving node (EFR32xG22) for RF Sense.
/// RAIL_RfSenseSelectiveOokConfig_t config = {
/// .band = rfBand,
/// .syncWordNumBytes = NUM_SYNC_WORD_BYTES,
/// .syncWord = SYNC_WORD,
-/// .cb = &RAILCb_SensedRf
+/// .cb = NULL // Use RAIL_EVENT_RF_SENSED event or poll RAIL_IsRfSensed()
/// };
/// RAIL_StartSelectiveOokRfSense(railHandle, &config);
/// @endcode
@@ -5350,7 +5450,7 @@ RAIL_Status_t RAIL_StartSelectiveOokRfSense(RAIL_Handle_t railHandle,
*
* @note The user must also set up the transmit FIFO, via
* \ref RAIL_SetRfSenseSelectiveOokWakeupPayload, post this function call to
- * include the first byte as the Preamble Byte, followed by the
+ * include the first byte as the Preamble byte, followed by the
* Sync word (1-4 bytes).
* See chip-specific documentation for more details.
*/
@@ -5367,7 +5467,6 @@ RAIL_Status_t RAIL_ConfigRfSenseSelectiveOokWakeupPhy(RAIL_Handle_t railHandle);
*
* @note You must call this function after the chip has been set up with the
* RF Sense Selective(OOK) PHY, using \ref RAIL_ConfigRfSenseSelectiveOokWakeupPhy.
- *
*/
RAIL_Status_t RAIL_SetRfSenseSelectiveOokWakeupPayload(RAIL_Handle_t railHandle,
uint8_t numSyncwordBytes,
@@ -5377,10 +5476,10 @@ RAIL_Status_t RAIL_SetRfSenseSelectiveOokWakeupPayload(RAIL_Handle_t railHandle,
* Check whether the RF was sensed.
*
* @param[in] railHandle A RAIL instance handle.
- * @return true if RF was sensed since the last call to \ref RAIL_StartRfSense.
+ * @return true if RF was sensed since the last call to \ref RAIL_StartRfSense().
* false otherwise.
*
- * This function is useful if \ref RAIL_StartRfSense is called with a NULL
+ * This function is useful if \ref RAIL_StartRfSense() is called with a NULL
* callback. It is generally used after EM4 reboot but can be used any time.
*/
bool RAIL_IsRfSensed(RAIL_Handle_t railHandle);
@@ -5398,23 +5497,24 @@ bool RAIL_IsRfSensed(RAIL_Handle_t railHandle);
*
* Channel hopping provides a hardware accelerated method for
* scanning across multiple channels quickly, as part of a receive protocol.
- * While it is possible to call \ref RAIL_StartRx on different channels,
+ * While it is possible to call \ref RAIL_StartRx() on different channels,
* back to back, and listen on many channels sequentially in that way, the
* time it takes to switch channels with that method may be too long for some
* protocols. This API pre-computes necessary channel change operations
* for a given list of channels, so that the radio can move from channel
* to channel much faster. Additionally, it leads to more succinct code
* as channel changes will be done implicitly, without requiring numerous calls
- * to \ref RAIL_StartRx. Currently, while this feature is enabled, the radio
+ * to \ref RAIL_StartRx(). Currently, while this feature is enabled, the radio
* will hop channels in the given sequence each time it enters RX.
* Note that RX Channel hopping and EFR32xG25's concurrent mode / collision
* detection are mutually exclusive.
*
- * The channel hopping buffer requires RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL
+ * The channel hopping buffer requires \ref RAIL_CHANNEL_HOPPING_BUFFER_SIZE_PER_CHANNEL
* number of 32-bit words of overhead per channel, plus 3 words overall plus the
- * twice the size of the radioConfigDeltaSubtract of the whole radio configuration,
- * plus the twice the sum of the sizes of all the radioConfigDeltaAdd's of
- * all the channel hopping channels.
+ * twice the size of the \ref RAIL_ChannelConfig_t::phyConfigDeltaSubtract
+ * of the whole radio configuration, plus the twice the sum of the sizes of all
+ * the \ref RAIL_ChannelConfigEntry_t::phyConfigDeltaAdd in all the channel
+ * hopping channels.
*
* The following code gives an example of how to use
* the RX Channel Hopping API.
@@ -5467,7 +5567,7 @@ bool RAIL_IsRfSensed(RAIL_Handle_t railHandle);
* the platform supports this feature.
*
* @note Calling this function will overwrite any settings configured with
- * \ref RAIL_ConfigRxDutyCycle.
+ * \ref RAIL_ConfigRxDutyCycle().
*/
RAIL_Status_t RAIL_ConfigRxChannelHopping(RAIL_Handle_t railHandle,
RAIL_RxChannelHoppingConfig_t *config);
@@ -5485,28 +5585,29 @@ RAIL_Status_t RAIL_ConfigRxChannelHopping(RAIL_Handle_t railHandle,
* Enable or disable Channel Hopping. Additionally, specify whether hopping
* should be reset to start from the first channel index, or continue
* from the channel last hopped to. The radio should not be on when
- * this API is called. \ref RAIL_ConfigRxChannelHopping must be called
+ * this API is called. \ref RAIL_ConfigRxChannelHopping() must be called
* successfully before this API is called.
*
* @note Use the compile time symbol \ref RAIL_SUPPORTS_CHANNEL_HOPPING or
* the runtime call \ref RAIL_SupportsChannelHopping() to check whether
* the platform supports this feature.
*
- * @note RX Channel Hopping may not be enabled while auto-ACKing is enabled.
+ * @note RX Channel Hopping may not be enabled while Auto-Acking is enabled.
*
* @note Calling this function will overwrite any settings configured with
- * \ref RAIL_EnableRxDutyCycle.
+ * \ref RAIL_EnableRxDutyCycle().
*/
RAIL_Status_t RAIL_EnableRxChannelHopping(RAIL_Handle_t railHandle,
bool enable,
bool reset);
+
/**
* Get RSSI in deci-dBm of one channel in the channel hopping sequence, during
* channel hopping.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] channelIndex Index in the channel hopping sequence of the
- * channel of interest
+ * channel of interest.
* @return Latest RSSI in deci-dBm for the channel at the specified index.
*
* @note Use the compile time symbol \ref RAIL_SUPPORTS_CHANNEL_HOPPING or
@@ -5514,15 +5615,15 @@ RAIL_Status_t RAIL_EnableRxChannelHopping(RAIL_Handle_t railHandle,
* the platform supports this feature.
*
* @note In multiprotocol, this function returns \ref RAIL_RSSI_INVALID
- * immediately if railHandle is not the current active \ref RAIL_Handle_t.
+ * immediately if railHandle is not the currently active \ref RAIL_Handle_t.
*
- * @note \ref RAIL_ConfigRxChannelHopping must be called successfully
+ * @note \ref RAIL_ConfigRxChannelHopping() must be called successfully
* before this API is called.
*
* @note When the Z-Wave protocol is active, running
- * \ref RAIL_GetChannelHoppingRssi() on the 9.6kbps PHY returns the RSSI
- * measurement of the 40kpbs PHY. This is because the 9.6kbps PHY has
- * trouble with RSSI measurements on EFR32XG2 family of chips.
+ * \ref RAIL_GetChannelHoppingRssi() on the 9.6 kbps PHY returns the RSSI
+ * measurement of the 40kpbs PHY. This is because the 9.6 kbps PHY has
+ * trouble with RSSI measurements on EFR32xG2x family of chips.
*/
int16_t RAIL_GetChannelHoppingRssi(RAIL_Handle_t railHandle,
uint8_t channelIndex);
@@ -5626,7 +5727,7 @@ int16_t RAIL_GetChannelHoppingRssi(RAIL_Handle_t railHandle,
/// the platform supports this feature.
///
/// @note Calling this function will overwrite any settings configured with
-/// \ref RAIL_ConfigRxChannelHopping.
+/// \ref RAIL_ConfigRxChannelHopping().
///
RAIL_Status_t RAIL_ConfigRxDutyCycle(RAIL_Handle_t railHandle,
const RAIL_RxDutyCycleConfig_t *config);
@@ -5640,7 +5741,7 @@ RAIL_Status_t RAIL_ConfigRxDutyCycle(RAIL_Handle_t railHandle,
*
* Enable or disable RX duty cycle mode. After this is called, the radio
* will begin duty cycling each time it enters RX, based on the
- * configuration passed to \ref RAIL_ConfigRxDutyCycle. This API must not
+ * configuration passed to \ref RAIL_ConfigRxDutyCycle(). This API must not
* be called while the radio is on.
*
* @note Use the compile time symbol \ref RAIL_SUPPORTS_CHANNEL_HOPPING or
@@ -5648,7 +5749,7 @@ RAIL_Status_t RAIL_ConfigRxDutyCycle(RAIL_Handle_t railHandle,
* the platform supports this feature.
*
* @note Calling this function will overwrite any settings configured with
- * \ref RAIL_EnableRxChannelHopping.
+ * \ref RAIL_EnableRxChannelHopping().
*/
RAIL_Status_t RAIL_EnableRxDutyCycle(RAIL_Handle_t railHandle,
bool enable);
@@ -5701,7 +5802,7 @@ RAIL_Status_t RAIL_GetDefaultRxDutyCycleConfig(RAIL_Handle_t railHandle,
* delayed. It is also possible to call the \ref RAIL_Idle() API to
* both terminate the operation and idle the radio. In single protocol RAIL
* this API does nothing, however, if RAIL Power Manager is initialized,
- * calling \ref RAIL_YieldRadio after scheduled TX/RX and instantaneous TX
+ * calling \ref RAIL_YieldRadio() after scheduled TX/RX and instantaneous TX
* completion, is required, to indicate to the Power Manager that the the radio
* is no longer busy and can be idled for sleeping.
*
@@ -5751,7 +5852,7 @@ RAIL_Status_t RAIL_GetSchedulerStatusAlt(RAIL_Handle_t railHandle,
*
* While the application can use this function however it likes, a major use
* case is being able to increase an infinite receive priority while receiving
- * a packet. In other words, a given RAIL_Handle_t can maintain a very low
+ * a packet. In other words, a given \ref RAIL_Handle_t can maintain a very low
* priority background receive, but upon getting a
* \ref RAIL_EVENT_RX_SYNC1_DETECT_SHIFT or
* \ref RAIL_EVENT_RX_SYNC2_DETECT_SHIFT event, the app can call this function
@@ -5805,11 +5906,11 @@ void RAIL_SetTransitionTime(RAIL_Time_t transitionTime);
* RAIL_DirectModeConfig_t defaultConfig = {
* .syncRx = false,
* .syncTx = false,
- * .doutPort = gpioPortA,
+ * .doutPort = SL_GPIO_PORT_A,
* .doutPin = 5,
- * .dinPort = gpioPortA,
+ * .dinPort = SL_GPIO_PORT_A,
* .dinPin = 7,
- * .dclkPort = gpioPortA,
+ * .dclkPort = SL_GPIO_PORT_A,
* .dclkPin = 6,
* };
* @endcode
@@ -5829,14 +5930,16 @@ RAIL_Status_t RAIL_ConfigDirectMode(RAIL_Handle_t railHandle,
* See \ref RAIL_EnableDirectModeAlt() for more detailed function
* description.
*
- * @warning New applications should consider using RAIL_EnableDirectModeAlt() for
+ * @warning New applications should consider using \ref RAIL_EnableDirectModeAlt() for
* this functionality.
*
* @note This feature is only available on certain devices.
* \ref RAIL_SupportsDirectMode() can be used to check if a particular
* device supports this feature or not.
*
- * @warning This API is not safe to use in a multiprotocol app.
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_EnableDirectMode(RAIL_Handle_t railHandle,
bool enable);
@@ -5849,10 +5952,10 @@ RAIL_Status_t RAIL_EnableDirectMode(RAIL_Handle_t railHandle,
* of the radio.
* @param[in] enableDirectRx Enable direct mode for data being received from
* the radio.
- * @return \ref RAIL_STATUS_NO_ERROR on success and an error code on failure.
+ * @return \ref RAIL_STATUS_NO_ERROR on success or an error code on failure.
*
* This API enables or disables the modem and GPIOs for direct mode operation.
- * see \ref RAIL_ConfigDirectMode for information on selecting the
+ * see \ref RAIL_ConfigDirectMode() for information on selecting the
* correct hardware configuration. If direct mode is enabled,
* packets are output and input directly to the radio via GPIO
* and RAIL packet handling is ignored.
@@ -5862,6 +5965,10 @@ RAIL_Status_t RAIL_EnableDirectMode(RAIL_Handle_t railHandle,
* chip supports this feature or not.
*
* @warning This API is not safe to use in a multiprotocol app.
+ *
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_EnableDirectModeAlt(RAIL_Handle_t railHandle,
bool enableDirectTx,
@@ -5895,7 +6002,7 @@ uint32_t RAIL_GetRadioClockFreqHz(RAIL_Handle_t railHandle);
* peripheral timing.
* @note This API sets CTUNEXIANA and internally
* CTUNEXOANA = CTUNEXIANA + delta where delta is set or changed by
- * \ref RAIL_SetTuneDelta. The default delta may not be 0 on some devices.
+ * \ref RAIL_SetTuneDelta(). The default delta may not be 0 on some devices.
*/
RAIL_Status_t RAIL_SetTune(RAIL_Handle_t railHandle, uint32_t tune);
@@ -5918,10 +6025,10 @@ uint32_t RAIL_GetTune(RAIL_Handle_t railHandle);
* @param[in] delta A chip-dependent crystal capacitor bank tuning delta.
* @return Status code indicating success of the function call.
*
- * Set the CTUNEXOANA delta for \ref RAIL_SetTune to use:
- * CTUNEXOANA = CTUNEXIANA + delta. This function does not change CTUNE values;
- * call \ref RAIL_SetTune to put a new delta into effect.
- *
+ * Set the CTUNEXOANA delta for \ref RAIL_SetTune() to use:
+ * CTUNEXOANA = CTUNEXIANA + delta (subject to field-size limitations).
+ * This function does not change CTUNE values;
+ * call \ref RAIL_SetTune() to put a new delta into effect.
*/
RAIL_Status_t RAIL_SetTuneDelta(RAIL_Handle_t railHandle, int32_t delta);
@@ -5931,8 +6038,8 @@ RAIL_Status_t RAIL_SetTuneDelta(RAIL_Handle_t railHandle, int32_t delta);
* @param[in] railHandle A RAIL instance handle.
* @return A chip-dependent crystal capacitor bank tuning delta.
*
- * Retrieves the current tuning delta used by \ref RAIL_SetTune.
- * @note The default delta if \ref RAIL_SetTuneDelta has never been called
+ * Retrieves the current tuning delta used by \ref RAIL_SetTune().
+ * @note The default delta if \ref RAIL_SetTuneDelta() has never been called
* is device-dependent and may not be 0.
*/
int32_t RAIL_GetTuneDelta(RAIL_Handle_t railHandle);
@@ -6023,7 +6130,7 @@ RAIL_Status_t RAIL_StartTxStreamAlt(RAIL_Handle_t railHandle,
* @param[in] railHandle A RAIL instance handle.
* @return Status code indicating success of the function call.
*
- * Halts the transmission started by RAIL_StartTxStream().
+ * Halts the transmission started by \ref RAIL_StartTxStream().
*/
RAIL_Status_t RAIL_StopTxStream(RAIL_Handle_t railHandle);
@@ -6052,7 +6159,7 @@ RAIL_Status_t RAIL_StopInfinitePreambleTx(RAIL_Handle_t railHandle);
* RAIL to perform radio state verification. This structure must be
* allocated in application global read-write memory. RAIL may modify
* fields within or referenced by this structure during its operation.
- * @param[in] radioConfig A radioConfig (pointer) that is to be used as a
+ * @param[in] radioConfig A radio configuration (pointer) that is to be used as a
* white list for verifying memory contents.
* @param[in] cb A callback that notifies the application of a mismatch in
* expected vs actual memory contents. A NULL parameter may be passed in
@@ -6074,7 +6181,7 @@ RAIL_Status_t RAIL_ConfigVerification(RAIL_Handle_t railHandle,
* previously established by \ref RAIL_ConfigVerification().
* @param[in] durationUs The duration (in microseconds) for how long memory
* verification should occur before returning to the application. A value of
- * RAIL_VERIFY_DURATION_MAX indicates that all memory contents should be
+ * \ref RAIL_VERIFY_DURATION_MAX indicates that all memory contents should be
* verified before returning to the application.
* @param[in] restart This flag only has meaning if a previous call of this
* function returned \ref RAIL_STATUS_SUSPENDED. By restarting (true), the
@@ -6085,7 +6192,7 @@ RAIL_Status_t RAIL_ConfigVerification(RAIL_Handle_t railHandle,
* memory locations have been verified.
* \ref RAIL_STATUS_SUSPENDED is returned if the provided test duration
* expired but the time was not sufficient to verify all memory contents.
- * By calling \ref RAIL_Verify again, further verification will commence.
+ * By calling \ref RAIL_Verify() again, further verification will commence.
* \ref RAIL_STATUS_INVALID_PARAMETER is returned if the provided
* verifyConfig structure pointer is not configured for use by the active
* RAIL handle.
@@ -6097,6 +6204,7 @@ RAIL_Status_t RAIL_Verify(RAIL_VerifyConfig_t *configVerify,
bool restart);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
/**
* Enable radio state change interrupt.
*
@@ -6106,11 +6214,18 @@ RAIL_Status_t RAIL_Verify(RAIL_VerifyConfig_t *configVerify,
* \ref RAIL_STATUS_NO_ERROR once the interrupt has been enabled or disabled.
*
* @note If enabled, state change events are reported through the separate
- * RAILCb_RadioStateChanged() callback.
+ * \ref RAILCb_RadioStateChanged() callback.
*/
RAIL_Status_t RAIL_EnableRadioStateChanged(RAIL_Handle_t railHandle,
bool enable);
+/**
+ * Callback on radio state changes.
+ *
+ * @param[in] state The current radio state.
+ */
+void RAILCb_RadioStateChanged(uint8_t state);
+
/**
* Get the current radio state.
*
@@ -6136,7 +6251,7 @@ RAIL_RadioStateEfr32_t RAIL_GetRadioStateAlt(RAIL_Handle_t railHandle);
* Front End Module at a specific time in a Tx packet. This information allows
* optimizations to power configuration, and monitoring FEM performance.
*
- * @note VDET is only supported with EFR32XG25 devices.
+ * @note VDET is only supported with EFR32xG25 devices.
* @{
*/
@@ -6148,8 +6263,12 @@ RAIL_RadioStateEfr32_t RAIL_GetRadioStateAlt(RAIL_Handle_t railHandle);
* configuration data for the VDET.
* @return \ref RAIL_Status_t
* \retval RAIL_STATUS_NO_ERROR - All went well
- * \retval RAIL_STATUS_INVALID_STATE - VDET is enabled. Must be disabled first.
+ * \retval RAIL_STATUS_INVALID_STATE - VDET is enabled. Must be disabled first.
* \retval RAIL_STATUS_INVALID_PARAMETER - mode/resolution/delayUs out-of-bounds.
+ *
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_ConfigVdet(RAIL_Handle_t genericRailHandle,
const RAIL_VdetConfig_t *config);
@@ -6160,11 +6279,12 @@ RAIL_Status_t RAIL_ConfigVdet(RAIL_Handle_t genericRailHandle,
* @param[in] genericRailHandle A radio-generic RAIL handle.
* @param[out] config A pointer to a \ref RAIL_VdetConfig_t struct that will
* return configuration data for the VDET.
- * @return RAIL_Status_t
+ * @return \ref RAIL_Status_t
* \retval RAIL_STATUS_NO_ERROR - All went well.
*/
RAIL_Status_t RAIL_GetVdetConfig(RAIL_Handle_t genericRailHandle,
RAIL_VdetConfig_t *config);
+
/**
* Enable the VDET plugin.
*
@@ -6175,6 +6295,10 @@ RAIL_Status_t RAIL_GetVdetConfig(RAIL_Handle_t genericRailHandle,
* \retval RAIL_STATUS_NO_ERROR - All went well, VDET is enabled or disabled.
* \retval RAIL_STATUS_INVALID_STATE - VDET has not been configured or VDET was not idle.
* VDET is disabled.
+ *
+ * @warning As this function relies on HFXO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if HFXO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_EnableVdet(RAIL_Handle_t genericRailHandle,
bool enable);
@@ -6203,6 +6327,10 @@ bool RAIL_IsVdetEnabled(RAIL_Handle_t genericRailHandle);
* \retval RAIL_STATUS_INVALID_PARAMETER - In \ref RAIL_VDET_MODE_IMMEDIATE, resend \ref RAIL_EnableVdet().\n
* \retval RAIL_STATUS_SUSPENDED - Blocked by AuxADC contention. Wait until next packet
and try reading again.
+ *
+ * @warning As this function relies on HFXO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if HFXO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_GetVdet(RAIL_Handle_t genericRailHandle,
uint32_t *pVdetMv);
@@ -6226,7 +6354,7 @@ RAIL_Status_t RAIL_GetVdet(RAIL_Handle_t genericRailHandle,
* @param[in] chipTempConfig A pointer to a \ref RAIL_ChipTempConfig_t that contains
* the configuration to be applied.
* @return Status code indicating the result of the function call.
- * Returns RAIL_STATUS_INVALID_PARAMETER if enable field from \ref RAIL_ChipTempConfig_t
+ * Returns \ref RAIL_STATUS_INVALID_PARAMETER if enable field from \ref RAIL_ChipTempConfig_t
* is set to false when an EFF is present on the board.
*
* When the temperature threshold minus a precise number of degrees
@@ -6248,7 +6376,7 @@ RAIL_Status_t RAIL_ConfigThermalProtection(RAIL_Handle_t genericRailHandle,
*
* @param[in] genericRailHandle A radio-generic RAIL handle.
* @param[out] chipTempConfig A non-NULL pointer to a \ref RAIL_ChipTempConfig_t that will
- * by updated with the current configuration.
+ * be updated with the current configuration.
* @return Status code indicating the result of the function call.
*/
RAIL_Status_t RAIL_GetThermalProtection(RAIL_Handle_t genericRailHandle,
@@ -6263,21 +6391,22 @@ RAIL_Status_t RAIL_GetThermalProtection(RAIL_Handle_t genericRailHandle,
/**
* Get the different temperature measurements in Kelvin done by sequencer or host.
- * Values that are not populated yet or incorrect are set to 0.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[out] tempBuffer The address of the array that will contain temperatures.
+ * This array must have at least \ref RAIL_TEMP_MEASURE_COUNT entries.
+ * @param[in] reset true to reset the temperature statistics, false otherwise.
+ * @return Status code indicating success of the function call.
*
* Temperatures, in Kelvin, are stored in tempBuffer such as:
- * tempBuffer[0] is the chip temperature
- * tempBuffer[1] is the minimal chip temperature
- * tempBuffer[2] is the maximal chip temperature
+ * - tempBuffer[0] is the chip temperature
+ * - tempBuffer[1] is the minimal chip temperature
+ * - tempBuffer[2] is the maximal chip temperature
+ *
+ * Values that are not populated yet or incorrect are set to 0.
*
* If \ref RAIL_SUPPORTS_HFXO_COMPENSATION
* tempBuffer[3] is the HFXO temperature
- *
- * @param[in] railHandle A RAIL instance handle.
- * @param[in] reset Reset the temperature statistics.
- * @param[out] tempBuffer The address of the array that will contain temperatures.
- * tempBuffer array must be at least \ref RAIL_TEMP_MEASURE_COUNT int16_t.
- * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_GetTemperature(RAIL_Handle_t railHandle,
int16_t tempBuffer[RAIL_TEMP_MEASURE_COUNT],
@@ -6408,7 +6537,7 @@ uint32_t RAIL_GetSchedBufferSize(RAIL_Handle_t genericRailHandle);
* However, with the callback, each assert is given a unique error code so that
* they can be handled on a more case-by-case basis. For documentation on each
* of the errors, see the rail_assert_error_codes.h file.
- * RAIL_ASSERT_ERROR_MESSAGES[errorCode] gives the explanation of the error.
+ * \ref RAIL_ASSERT_ERROR_MESSAGES[errorCode] gives the explanation of the error.
* With asserts built into the library, users can choose how to handle each
* error inside the callback.
*
@@ -6446,21 +6575,26 @@ void RAILCb_AssertFailed(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
* @return Status code indicating success of the function call.
- * Returns RAIL_STATUS_INVALID_STATE if the thermistor is started while the
+ * Returns \ref RAIL_STATUS_INVALID_STATE if the thermistor is started while the
* radio is transmitting.
*
* To get the thermistor impedance, call the
- * function \ref RAIL_GetThermistorImpedance. On platforms having
+ * function \ref RAIL_GetThermistorImpedance(). On platforms having
* \ref RAIL_SUPPORTS_EXTERNAL_THERMISTOR, this function reconfigures
* GPIO_THMSW_EN_PIN located in GPIO_THMSW_EN_PORT.
* To locate this pin, refer to the data sheet or appropriate header files
- * of the device. For proper operation, \ref RAIL_Init must be called before
+ * of the device. For proper operation, \ref RAIL_Init() must be called before
* using this function.
*
* @note When an EFF is attached, this function must not be called during
* transmit.
*
* @warning This API is not safe to use in a multiprotocol app.
+ *
+ * @warning As this function relies on EMU, GPIO and HFXO access and RAIL is
+ * meant to run in TrustZone non-secure world, it is not supported if EMU,
+ * GPIO or HFXO are configured as secure peripheral and it will return
+ * \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_StartThermistorMeasurement(RAIL_Handle_t railHandle);
@@ -6487,7 +6621,7 @@ RAIL_Status_t RAIL_GetThermistorImpedance(RAIL_Handle_t railHandle,
* @param[in] thermistorImpedance Current thermistor impedance measurement in
* Ohms.
* @param[out] thermistorTemperatureC A non-NULL pointer to an int16_t updated
- * with the current thermistor temperature in eighth of Celsius degrees.
+ * with the current thermistor temperature in eighth of Celsius degrees.
* @return Status code indicating success of the function call.
*
* A version of this function is provided in the \ref rail_util_thermistor
@@ -6505,7 +6639,7 @@ RAIL_Status_t RAIL_ConvertThermistorImpedance(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[in] crystalTemperatureC Current crystal temperature, in Celsius.
- * @param[out] crystalPPMError A non-NULL pointer to an int16_t updated
+ * @param[out] crystalPPMError A non-NULL pointer to an int8_t updated
* with the current ppm error in ppm units.
* @return Status code indicating success of the function call.
*
@@ -6523,12 +6657,16 @@ RAIL_Status_t RAIL_ComputeHFXOPPMError(RAIL_Handle_t railHandle,
* Configure the GPIO for thermistor usage.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @param[in] pHfxoThermistorConfig A pointer to the thermistor configuration
+ * @param[in] pHfxoThermistorConfig A non-NULL pointer to the thermistor configuration
* indicating the GPIO port and pin to use.
* @return Status code indicating the result of the function call.
*
* @note The port and pin that must be passed in \ref RAIL_HFXOThermistorConfig_t
* are GPIO_THMSW_EN_PORT and GPIO_THMSW_EN_PIN respectively.
+ *
+ * @warning As this function relies on GPIO access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if GPIO is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_ConfigHFXOThermistor(RAIL_Handle_t railHandle,
const RAIL_HFXOThermistorConfig_t *pHfxoThermistorConfig);
@@ -6537,11 +6675,11 @@ RAIL_Status_t RAIL_ConfigHFXOThermistor(RAIL_Handle_t railHandle,
* Configure the temperature parameters for HFXO compensation.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pHfxoCompensationConfig A pointer to HFXO compensation parameters
+ * @param[in] pHfxoCompensationConfig A non-NULL pointer to HFXO compensation parameters
* indicating the temperature variations used to trigger a compensation.
* @return Status code indicating the result of the function call.
*
- * @note This function must be called after \ref RAIL_ConfigHFXOThermistor to succeed.
+ * @note This function must be called after \ref RAIL_ConfigHFXOThermistor() to succeed.
*
* In \ref RAIL_HFXOCompensationConfig_t, deltaNominal and
* deltaCritical define the temperature variation triggering
@@ -6553,8 +6691,8 @@ RAIL_Status_t RAIL_ConfigHFXOThermistor(RAIL_Handle_t railHandle,
* are exceeded, RAIL raises
* event \ref RAIL_EVENT_CAL_NEEDED with \ref RAIL_CAL_TEMP_HFXO bit set.
* The API \ref RAIL_StartThermistorMeasurement() must be called afterwards.
- * The latter will raise RAIL_EVENT_THERMISTOR_DONE with calibration bit
- * \ref RAIL_CAL_COMPENSATE_HFXO set and RAIL_CalibrateHFXO() must follow.
+ * The latter will raise \ref RAIL_EVENT_THERMISTOR_DONE with calibration bit
+ * \ref RAIL_CAL_COMPENSATE_HFXO set and a call to \ref RAIL_CalibrateHFXO() must follow.
*
* @note Set deltaNominal and deltaCritical to 0 to perform
* compensation after each transmit.
@@ -6585,8 +6723,244 @@ RAIL_Status_t RAIL_GetHFXOCompensationConfig(RAIL_Handle_t railHandle,
* \ref RAIL_SUPPORTS_EXTERNAL_THERMISTOR alongside \ref RAIL_SUPPORTS_HFXO_COMPENSATION.
*/
RAIL_Status_t RAIL_CompensateHFXO(RAIL_Handle_t railHandle, int8_t crystalPPMError);
+
/** @} */ // end of group External_Thermistor
+/******************************************************************************
+ * TrustZone
+ *****************************************************************************/
+/**
+ * @addtogroup TrustZone
+ * @brief APIs to use RAIL with TrustZone enabled and peripherals configured
+ * as secure.
+ *
+ * RAIL internally accesses CMU, EMU, GPIO, LDMA, HFXO, PRS and SYSRTC.
+ * If some of them are configured as secure peripherals, some RAIL code must be
+ * executed as secure code. To do so, callbacks gathered in
+ * \ref RAIL_TZ_Config_t must be implemented and passed to RAIL through
+ * \ref RAIL_TZ_InitNonSecure(). Each callback must do the non-secure/secure
+ * transition, call \ref RAIL_TZ_CheckPeripheralsSecureStates() and then call
+ * the corresponding RAIL API from secure world:
+ *
+ * | Secure peripheral | Callbacks to implement |
+ * |-------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | CMU | \ref RAIL_TZ_Config_t::changedDcdcCallback, \ref RAIL_TZ_Config_t::configAntennaGpioCallback, \ref RAIL_TZ_Config_t::radioClockEnableCallback, \ref RAIL_TZ_Config_t::getRadioClockFreqHzCallback, \ref RAIL_TZ_Config_t::rfecaClockEnableCallback, \ref RAIL_TZ_Config_t::rfecaIsClockEnabledCallback |
+ * | EMU | \ref RAIL_TZ_Config_t::readInternalTemperatureCallback, \ref RAIL_TZ_Config_t::enableSecureRadioIrqsCallback, \ref RAIL_TZ_Config_t::disableSecureRadioIrqsCallback |
+ * | GPIO | \ref RAIL_TZ_Config_t::configAntennaGpioCallback |
+ * | LDMA | \ref RAIL_TZ_Config_t::radioPerformM2mLdmaCallback |
+ * | HFXO | \ref RAIL_TZ_Config_t::configureHfxoCallback |
+ *
+ * RAIL internally calls platform functions that access CMU, EMU, GPIO, LDMA
+ * HFXO and PRS.
+ * If some of them are configured as secure peripherals, some functions must be
+ * executed as secure code. To do so, those functions are prepended with weak
+ * symbols and must be overwritten to do the non-secure/secure transition and
+ * call the corresponding platform function from secure world:
+ *
+ * | Secure peripheral | Platform functions to overwrite |
+ * |-------------------|-----------------------------------------------------------------------------------------------|
+ * | CMU | CMU_ClockEnable, EMU_DCDCSetPFMXTimeoutMaxCtrl (DCDC access: SL_TRUSTZONE_PERIPHERAL_DCDC_S) |
+ * | HFXO | CMU_HFXOCTuneSet, CMU_HFXOCTuneGet, CMU_HFXOCoreBiasCurrentCalibrate |
+ * | PRS | PRS_SourceAsyncSignalSet, PRS_GetFreeChannel, PRS_ConnectConsumer, PRS_PinOutput, PRS_Combine |
+ *
+ * When there is a combination of secure and non-secure peripherals, defines
+ * must be added in secure application slcp file so non-secure peripherals can
+ * properly accessed by secure code. Example with only CMU non-secure:
+ *
+ * @code{.slcp}
+ * define:
+ * - name: SL_TRUSTZONE_PERIPHERAL_CMU_S
+ * value: 0
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_EMU_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_GPIO_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_LDMA_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_HFXO0_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_PRS_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * - name: SL_TRUSTZONE_PERIPHERAL_SYSRTC_S
+ * value: 1
+ * condition: [trustzone_secure]
+ * @endcode
+ *
+ * Some RAIL API are not suppoted with EMU, GPIO, LDMA, HFXO, PRS or SYSRTC
+ * configured secure:
+ *
+ * | Secure peripheral | Unsupported RAIL API/features |
+ * |-------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+ * | EMU | \ref RAIL_StartThermistorMeasurement(), \ref RAIL_InitPowerManager() |
+ * | GPIO | \ref RAIL_EnableDirectMode(), \ref RAIL_EnableDirectModeAlt(), \ref RAIL_EnablePti(), \ref RAIL_ConfigPti(), \ref RAIL_ConfigHFXOThermistor(), \ref RAIL_StartThermistorMeasurement(), \ref RAIL_ConfigVdet() |
+ * | LDMA | \ref RAIL_IEEE802154_SUPPORTS_RX_CHANNEL_SWITCHING (\ref RAIL_IEEE802154_ConfigRxChannelSwitching() and \ref RAIL_RX_OPTION_CHANNEL_SWITCHING) |
+ * | HFXO | \ref RAIL_StartThermistorMeasurement(), \ref RAIL_EnableVdet(), \ref RAIL_GetVdet() |
+ * | PRS | \ref RAIL_EnablePrsLnaBypass() |
+ * | SYSRTC | \ref RAIL_ConfigSleep() with \ref RAIL_SleepConfig_t::RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED, \ref RAIL_ConfigSleepAlt() with \ref RAIL_SleepConfig_t::RAIL_SLEEP_CONFIG_TIMERSYNC_ENABLED |
+ *
+ * @{
+ */
+
+/**
+ * Init RAIL TrustZone feature for non-secure world
+ *
+ * @param[in] pTzConfig A non-NULL pointer to a \ref RAIL_TZ_Config_t
+ * structure.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from non-secure world (only if
+ * TrustZone is activated) on platforms having
+ * \ref RAIL_SUPPORTS_TRUSTZONE_SECURE_PERIPHERALS. It must be called
+ * before \ref RAIL_Init() and it must be called again with updated
+ * \ref RAIL_TZ_Config_t if peripherals secure configuration has changed.
+ */
+RAIL_Status_t RAIL_TZ_InitNonSecure(const RAIL_TZ_Config_t *pTzConfig);
+
+/**
+ * Init RAIL TrustZone feature for secure world
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world (only if TrustZone
+ * is activated) on platforms having
+ * \ref RAIL_SUPPORTS_TRUSTZONE_SECURE_PERIPHERALS. It must be called
+ * before starting the non-secure application.
+ */
+RAIL_Status_t RAIL_TZ_InitSecure(void);
+
+/**
+ * Check the secure state of peripherals used by RAIL.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world and it must be
+ * called at the beginning of each RAIL TrustZone callbacks
+ * (\ref RAIL_TZ_Config_t) secure code to avoid secure fault.
+ */
+RAIL_Status_t RAIL_TZ_CheckPeripheralsSecureStates(void);
+
+/**
+ * Enable radio clocks.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when CMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_RadioClockEnable(void);
+
+/**
+ * Enable RFECA clocks.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when CMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_RfecaClockEnable(void);
+
+/**
+ * Indicate whether RFECA clocks are enabled.
+ *
+ * @return true if RFECA clocks are enabled; false otherwise
+ *
+ * @note This function must only be called from secure world when CMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+bool RAIL_TZ_RfecaIsClockEnabled(void);
+
+/**
+ * Read the internal temperature.
+ *
+ * @param[out] internalTemperatureKelvin A pointer to the internal temperature
+ * in Kelvin.
+ * @param[in] enableTemperatureInterrupts Indicate whether temperature
+ * interrupts are enabled.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when EMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_ReadInternalTemperature(uint16_t *internalTemperatureKelvin,
+ bool enableTemperatureInterrupts);
+
+/**
+ * Enable secure peripheral interrupts needed by the radio.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when EMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_EnableSecureRadioIrqs(void);
+
+/**
+ * Disable secure peripheral interrupts needed by the radio.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when EMU is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_DisableSecureRadioIrqs(void);
+
+/**
+ * Perform ldma transfer for the radio.
+ *
+ * @param[in] pDest A pointer to the destination data.
+ * @param[in] pSrc A pointer to the source data.
+ * @param[in] numWords Number of words to transfer.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when LDMA is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_RadioPerformM2mLdma(uint32_t *pDest,
+ const uint32_t *pSrc,
+ uint32_t numWords);
+
+/**
+ * Configure HFXO.
+ *
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when HFXO is
+ * configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_ConfigureHfxo(void);
+
+/**
+ * Set GPIO for antenna config.
+ *
+ * @param[in] config A pointer to a configuration structure applied to the relevant Antenna
+ * Configuration registers. A NULL configuration will produce undefined behavior.
+ * @return Status code indicating success of the function call.
+ *
+ * @note This function must only be called from secure world when CMU or GPIO
+ * are configured as secure TrustZone peripheral.
+ *
+ */
+RAIL_Status_t RAIL_TZ_ConfigAntennaGpio(const RAIL_AntennaConfig_t *config);
+
+/** @} */ // end of group TrustZone
+
+/******************************************************************************
+ * Features
+ *****************************************************************************/
/**
* @addtogroup Features
* @{
@@ -6899,8 +7273,8 @@ bool RAIL_SupportsTxPowerMode(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
* @param[in,out] powerMode A pointer to PA power mode to check if supported.
- * For platforms that support \ref RAIL_TX_POWER_MODE_2P4GIG_HIGHEST or
- * \ref RAIL_TX_POWER_MODE_SUBGIG_HIGHEST the powerMode is updated
+ * If \ref RAIL_TX_POWER_MODE_2P4GIG_HIGHEST or \ref
+ * RAIL_TX_POWER_MODE_SUBGIG_HIGHEST is passed in, it will be updated
* to the highest corresponding PA available on the chip.
* @param[out] maxPowerLevel A pointer to a \ref RAIL_TxPowerLevel_t that
* if non-NULL will be filled in with the power mode's highest power level
@@ -6909,6 +7283,8 @@ bool RAIL_SupportsTxPowerMode(RAIL_Handle_t railHandle,
* if non-NULL will be filled in with the power mode's lowest power level
* allowed if this function returns true.
* @return true if powerMode is supported; false otherwise.
+ *
+ * This function has no compile-time equivalent.
*/
bool RAIL_SupportsTxPowerModeAlt(RAIL_Handle_t railHandle,
RAIL_TxPowerMode_t *powerMode,
@@ -6936,30 +7312,30 @@ bool RAIL_SupportsTxToTx(RAIL_Handle_t railHandle);
bool RAIL_SupportsProtocolBLE(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports BLE 1Mbps Non-Viterbi PHY.
+ * Indicate whether this chip supports BLE 1 Mbps Non-Viterbi PHY.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 1Mbps Non-Viterbi is supported; false otherwise.
+ * @return true if BLE 1 Mbps Non-Viterbi is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_1MBPS_NON_VITERBI.
*/
bool RAIL_BLE_Supports1MbpsNonViterbi(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports BLE 1Mbps Viterbi PHY.
+ * Indicate whether this chip supports BLE 1 Mbps Viterbi PHY.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 1Mbps Viterbi is supported; false otherwise.
+ * @return true if BLE 1 Mbps Viterbi is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_1MBPS_VITERBI.
*/
bool RAIL_BLE_Supports1MbpsViterbi(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports BLE 1Mbps operation.
+ * Indicate whether this chip supports BLE 1 Mbps operation.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 1Mbps operation is supported; false otherwise.
+ * @return true if BLE 1 Mbps operation is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_1MBPS.
*/
@@ -6972,30 +7348,30 @@ bool RAIL_BLE_Supports1Mbps(RAIL_Handle_t railHandle)
}
/**
- * Indicate whether this chip supports BLE 2Mbps Non-Viterbi PHY.
+ * Indicate whether this chip supports BLE 2 Mbps Non-Viterbi PHY.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 2Mbps Non-Viterbi is supported; false otherwise.
+ * @return true if BLE 2 Mbps Non-Viterbi is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_2MBPS_NON_VITERBI.
*/
bool RAIL_BLE_Supports2MbpsNonViterbi(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports BLE 2Mbps Viterbi PHY.
+ * Indicate whether this chip supports BLE 2 Mbps Viterbi PHY.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 2Mbps Viterbi is supported; false otherwise.
+ * @return true if BLE 2 Mbps Viterbi is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_2MBPS_VITERBI.
*/
bool RAIL_BLE_Supports2MbpsViterbi(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports BLE 2Mbps operation.
+ * Indicate whether this chip supports BLE 2 Mbps operation.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if BLE 2Mbps operation is supported; false otherwise.
+ * @return true if BLE 2 Mbps operation is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_2MBPS.
*/
@@ -7049,7 +7425,7 @@ bool RAIL_BLE_SupportsCte(RAIL_Handle_t railHandle);
* Runtime refinement of compile-time \ref RAIL_BLE_SUPPORTS_CS.
*/
bool RAIL_BLE_SupportsCs(RAIL_Handle_t railHandle);
-#endif
+#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
* Indicate whether this chip supports BLE IQ Sampling needed for
@@ -7094,7 +7470,7 @@ bool RAIL_BLE_SupportsSignalIdentifier(RAIL_Handle_t railHandle);
/**
* Indicate whether this chip supports BLE Simulscan PHY used for simultaneous
- * BLE 1Mbps and Coded PHY reception.
+ * BLE 1 Mbps and Coded PHY reception.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
* @return true if BLE Simulscan PHY is supported; false otherwise.
@@ -7115,10 +7491,10 @@ bool RAIL_SupportsProtocolIEEE802154(RAIL_Handle_t railHandle);
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
- * Indicate whether this chip supports the IEEE 802.15.4 2Mbps PHY.
+ * Indicate whether this chip supports the IEEE 802.15.4 2 Mbps PHY.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if the 802.15.4 2Mbps PHY is supported; false otherwise.
+ * @return true if the 802.15.4 2 Mbps PHY is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_IEEE802154_SUPPORTS_2MBPS_PHY.
*/
@@ -7193,7 +7569,7 @@ bool RAIL_IEEE802154_SupportsFemPhy(RAIL_Handle_t railHandle);
* Indicate whether this chip supports canceling the frame-pending lookup
* event \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND when the radio
* transitions to a state that renders the the reporting of this event moot
- * (i.e., too late for the stack to influence the outgoing ACK).
+ * (i.e., too late for the stack to influence the outgoing Ack).
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
* @return true if canceling the lookup event is supported; false otherwise.
@@ -7227,10 +7603,10 @@ bool RAIL_IEEE802154_SupportsEarlyFramePendingLookup(RAIL_Handle_t railHandle);
bool RAIL_IEEE802154_SupportsDualPaConfig(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports IEEE 802.15.4E-2012 Enhanced ACKing.
+ * Indicate whether this chip supports IEEE 802.15.4E-2012 Enhanced Acking.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if 802.15.4E Enhanced ACKing is supported; false otherwise.
+ * @return true if 802.15.4E Enhanced Acking is supported; false otherwise.
*
* Runtime refinement of compile-time \ref
* RAIL_IEEE802154_SUPPORTS_E_ENHANCED_ACK.
@@ -7403,10 +7779,10 @@ bool RAIL_ZWAVE_SupportsRegionPti(RAIL_Handle_t railHandle);
bool RAIL_IEEE802154_SupportsSignalIdentifier(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports fast RX2RX.
+ * Indicate whether this chip supports fast RX-to-RX.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if fast RX2RX is supported; false otherwise.
+ * @return true if fast RX-to-RX is supported; false otherwise.
*
* Runtime refinement of compile-time \ref RAIL_SUPPORTS_FAST_RX2RX.
*/
@@ -7433,14 +7809,26 @@ bool RAIL_SupportsCollisionDetection(RAIL_Handle_t railHandle);
bool RAIL_SupportsProtocolSidewalk(RAIL_Handle_t railHandle);
/**
- * Indicate whether this chip supports automatic LNA bypass for external FEM.
+ * Indicate whether this chip supports TrustZone secure configuration of
+ * peripherals used by RAIL.
+ *
+ * @param[in] railHandle A radio-generic or real RAIL instance handle.
+ * @return true if secure mode is supported; false otherwise.
+ *
+ * Runtime refinement of compile-time \ref RAIL_SUPPORTS_TRUSTZONE_SECURE_PERIPHERALS.
+ */
+bool RAIL_SupportsTrustZoneSecurePeripherals(RAIL_Handle_t railHandle);
+
+/**
+ * Indicate whether this chip supports automatic PRS LNA bypass for external
+ * FEM.
*
* @param[in] railHandle A radio-generic or real RAIL instance handle.
- * @return true if automatic LNA bypass is supported; false otherwise.
+ * @return true if automatic PRS LNA bypass is supported; false otherwise.
*
- * Runtime refinement of compile-time \ref RAIL_SUPPORTS_AUTO_LNA_BYPASS.
+ * Runtime refinement of compile-time \ref RAIL_SUPPORTS_PRS_LNA_BYPASS.
*/
-bool RAIL_SupportsAutoLnaBypass(RAIL_Handle_t railHandle);
+bool RAIL_SupportsPrsLnaBypass(RAIL_Handle_t railHandle);
/** @} */ // end of group Features
diff --git a/simplicity_sdk/platform/radio/rail_lib/common/rail_assert_error_codes.h b/simplicity_sdk/platform/radio/rail_lib/common/rail_assert_error_codes.h
index 760f3be44..6ed194884 100644
--- a/simplicity_sdk/platform/radio/rail_lib/common/rail_assert_error_codes.h
+++ b/simplicity_sdk/platform/radio/rail_lib/common/rail_assert_error_codes.h
@@ -1,7 +1,7 @@
/***************************************************************************//**
* @file
- * @brief Definition of error codes that occur in rail for use in
- * RAILCb_AssertFailed. This file is purely informational and optional -
+ * @brief Definition of error codes that occur in RAIL.
+ * This file is purely informational and optional -
* it need not be included even if rail_assert libraries are included.
*******************************************************************************
* # License
@@ -45,7 +45,7 @@ extern "C" {
*/
/**
- * Enumeration of all possible error codes from RAIL_ASSERT
+ * Enumeration of all possible error codes from RAIL_ASSERT.
*/
RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
{
@@ -69,8 +69,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TX_FIFO = 8,
/** Reached unexpected state while handling TX ACK FIFO events. */
RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TXACK_FIFO = 9,
- /** Invalid assert, no longer used. */
- RAIL_ASSERT_UNUSED_10 = 10,
+ /** Invalid memory region accessed. */
+ RAIL_ASSERT_INVALID_MEMORY_ACCESS = 10,
/** Invalid assert, no longer used. */
RAIL_ASSERT_UNUSED_11 = 11,
/** Invalid assert, no longer used. */
@@ -125,8 +125,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
RAIL_ASSERT_UNUSED_36 = 36,
/** Invalid assert, no longer used. */
RAIL_ASSERT_UNUSED_37 = 37,
- /** Invalid assert, no longer used. */
- RAIL_ASSERT_UNUSED_38 = 38,
+ /** Failed to enable synth for transmit. */
+ RAIL_ASSERT_FAILED_TX_SYNTH_ENABLE = 38,
/** This function is deprecated and must not be called. */
RAIL_ASSERT_DEPRECATED_FUNCTION = 39,
/** Multiprotocol task started with no event to run. */
@@ -141,8 +141,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
RAIL_ASSERT_CANT_USE_HARDWARE = 44,
/** Pointer parameter was passed as NULL. */
RAIL_ASSERT_NULL_PARAMETER = 45,
- /** Invalid assert, no longer used. */
- RAIL_ASSERT_UNUSED_46 = 46,
+ /** Secure Element fault */
+ RAIL_ASSERT_SECURE_ELEMENT_FAULT = 46,
/** Synth radio config buffer for channel hopping too small. */
RAIL_ASSERT_SMALL_SYNTH_RADIO_CONFIG_BUFFER = 47,
/** Buffer provided for RX Channel Hopping is too small. */
@@ -155,8 +155,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
RAIL_ASSERT_CHANNEL_CHANGE_FAILED = 51,
/** Attempted to read invalid register. */
RAIL_ASSERT_INVALID_REGISTER = 52,
- /** Invalid assert, no longer used. */
- RAIL_ASSERT_UNUSED_53 = 53,
+ /** CP/DMA Invalid error. */
+ RAIL_ASSERT_CP_DMA_INTERNAL_GENERIC_ERROR = 53,
/** DMP radio config caching failed. */
RAIL_ASSERT_CACHE_CONFIG_FAILED = 54,
/** NULL was supplied as a RAIL_StateTransitions_t argument. */
@@ -183,8 +183,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
RAIL_ASSERT_FAILED_INVALID_CHANNEL_CONFIG = 65,
/** Radio Calculator configuration HFXO frequency mismatch with chip */
RAIL_ASSERT_INVALID_XTAL_FREQUENCY = 66,
- /** Invalid assert, no longer used. */
- RAIL_ASSERT_UNUSED_67 = 67,
+ /** Internal error. */
+ RAIL_ASSERT_INTERNAL_GENERIC_ERROR = 67,
/** Software modem image does not support requested modulation */
RAIL_ASSERT_UNSUPPORTED_SOFTWARE_MODEM_MODULATION = 68,
/** Failed to disable RTCC synchronization. */
@@ -237,7 +237,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
#define RAIL_ASSERT_FAILED_UNEXPECTED_STATE_RXLEN_FIFO ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_UNEXPECTED_STATE_RXLEN_FIFO)
#define RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TX_FIFO ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TX_FIFO)
#define RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TXACK_FIFO ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_UNEXPECTED_STATE_TXACK_FIFO)
-#define RAIL_ASSERT_UNUSED_10 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_10)
+#define RAIL_ASSERT_INVALID_MEMORY_ACCESS ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_INVALID_MEMORY_ACCESS)
#define RAIL_ASSERT_UNUSED_11 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_11)
#define RAIL_ASSERT_UNUSED_12 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_12)
#define RAIL_ASSERT_FAILED_RTCC_POST_WAKEUP ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_RTCC_POST_WAKEUP)
@@ -265,7 +265,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
#define RAIL_ASSERT_UNUSED_35 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_35)
#define RAIL_ASSERT_UNUSED_36 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_36)
#define RAIL_ASSERT_UNUSED_37 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_37)
-#define RAIL_ASSERT_UNUSED_38 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_38)
+#define RAIL_ASSERT_FAILED_TX_SYNTH_ENABLE ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_TX_SYNTH_ENABLE)
#define RAIL_ASSERT_DEPRECATED_FUNCTION ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_DEPRECATED_FUNCTION)
#define RAIL_ASSERT_MULTIPROTOCOL_NO_EVENT ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_MULTIPROTOCOL_NO_EVENT)
#define RAIL_ASSERT_FAILED_INVALID_INTERRUPT_ENABLED ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_INVALID_INTERRUPT_ENABLED)
@@ -273,14 +273,14 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
#define RAIL_ASSERT_DIVISION_BY_ZERO ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_DIVISION_BY_ZERO)
#define RAIL_ASSERT_CANT_USE_HARDWARE ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CANT_USE_HARDWARE)
#define RAIL_ASSERT_NULL_PARAMETER ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_NULL_PARAMETER)
-#define RAIL_ASSERT_UNUSED_46 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_46)
+#define RAIL_ASSERT_SECURE_ELEMENT_FAULT ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_SECURE_ELEMENT_FAULT)
#define RAIL_ASSERT_SMALL_SYNTH_RADIO_CONFIG_BUFFER ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_SMALL_SYNTH_RADIO_CONFIG_BUFFER)
#define RAIL_ASSERT_CHANNEL_HOPPING_BUFFER_TOO_SHORT ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CHANNEL_HOPPING_BUFFER_TOO_SHORT)
#define RAIL_ASSERT_INVALID_MODULE_ACTION ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_INVALID_MODULE_ACTION)
#define RAIL_ASSERT_CHANNEL_HOPPING_INVALID_RADIO_CONFIG ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CHANNEL_HOPPING_INVALID_RADIO_CONFIG)
#define RAIL_ASSERT_CHANNEL_CHANGE_FAILED ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CHANNEL_CHANGE_FAILED)
#define RAIL_ASSERT_INVALID_REGISTER ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_INVALID_REGISTER)
-#define RAIL_ASSERT_UNUSED_53 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_53)
+#define RAIL_ASSERT_CP_DMA_INTERNAL_GENERIC_ERROR ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CP_DMA_INTERNAL_GENERIC_ERROR)
#define RAIL_ASSERT_CACHE_CONFIG_FAILED ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_CACHE_CONFIG_FAILED)
#define RAIL_ASSERT_NULL_TRANSITIONS ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_NULL_TRANSITIONS)
#define RAIL_ASSERT_BAD_LDMA_TRANSFER ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_BAD_LDMA_TRANSFER)
@@ -294,7 +294,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
#define RAIL_ASSERT_SEQ_INVALID_PA_SELECTED ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_SEQ_INVALID_PA_SELECTED)
#define RAIL_ASSERT_FAILED_INVALID_CHANNEL_CONFIG ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_INVALID_CHANNEL_CONFIG)
#define RAIL_ASSERT_INVALID_XTAL_FREQUENCY ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_INVALID_XTAL_FREQUENCY)
-#define RAIL_ASSERT_UNUSED_67 ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNUSED_67)
+#define RAIL_ASSERT_INTERNAL_GENERIC_ERROR ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_INTERNAL_GENERIC_ERROR)
#define RAIL_ASSERT_UNSUPPORTED_SOFTWARE_MODEM_MODULATION ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_UNSUPPORTED_SOFTWARE_MODEM_MODULATION)
#define RAIL_ASSERT_FAILED_RTCC_SYNC_STOP ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_RTCC_SYNC_STOP)
#define RAIL_ASSERT_FAILED_MULTITIMER_CORRUPT ((RAIL_AssertErrorCodes_t) RAIL_ASSERT_FAILED_MULTITIMER_CORRUPT)
@@ -321,9 +321,8 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/// detailed error strings related to a particular assert error code if desired.
/// For example, you could implement your assert failed callback as follows to
/// make use of this.
-///
/// @code{.c}
-/// void RAILCb_AssertFailed(RAIL_Handle_t railHandle, uint32_t errorCode)
+/// void RAILCb_AssertFailed(RAIL_Handle_t railHandle, RAIL_AssertErrorCodes_t errorCode)
/// {
/// static const char* railErrorMessages[] = RAIL_ASSERT_ERROR_MESSAGES;
/// const char *errorMessage = "Unknown";
@@ -333,7 +332,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/// if (errorCode < (sizeof(railErrorMessages) / sizeof(char*))) {
/// errorMessage = railErrorMessages[errorCode];
/// }
-/// printf(errorMessage);
+/// printf("RAIL ASSERT %u: %s\n", errorCode, errorMessage);
///
/// // Reset the chip since an assert is a fatal error
/// NVIC_SystemReset();
@@ -379,7 +378,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/*35*/ "Invalid assert, no longer used", \
/*36*/ "Invalid assert, no longer used", \
/*37*/ "Invalid assert, no longer used", \
- /*38*/ "Invalid assert, no longer used", \
+ /*38*/ "Failed to enable synth for transmit.", \
/*39*/ "This function is deprecated and must not be called", \
/*40*/ "Multiprotocol task started with no event to run", \
/*41*/ "Invalid interrupt enabled", \
@@ -387,14 +386,14 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/*43*/ "Division by zero", \
/*44*/ "Function cannot be called without access to the hardware", \
/*45*/ "Pointer parameter was passed as NULL", \
- /*46*/ "Invalid assert, no longer used", \
+ /*46*/ "Secure Element fault", \
/*47*/ "Synth radio config buffer for channel hopping too small", \
/*48*/ "Buffer provided for RX Channel Hopping is too small", \
/*49*/ "Invalid action was attempted on a module", \
/*50*/ "The radio config for this channel is not compatible with channel hopping", \
/*51*/ "Channel change failed", \
/*52*/ "Attempted to read invalid register", \
- /*53*/ "Invalid assert, no longer used", \
+ /*53*/ "CP/DMA Generic internal error", \
/*54*/ "DMP radio config caching failed", \
/*55*/ "NULL was supplied as a RAIL_StateTransitions_t argument", \
/*56*/ "LDMA transfer failed", \
@@ -408,7 +407,7 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/*64*/ "The sequencer selected an invalid PA", \
/*65*/ "Invalid/unsupported channel config", \
/*66*/ "Radio Calculator configuration HFXO frequency mismatch with chip", \
- /*67*/ "Invalid assert, no longer used", \
+ /*67*/ "Generic internal error", \
/*68*/ "Software modem image does not support requested modulation", \
/*69*/ "Failed to disable RTCC synchronization", \
/*70*/ "Multitimer linked list corrupted", \
@@ -430,9 +429,14 @@ RAIL_ENUM_GENERIC(RAIL_AssertErrorCodes_t, uint32_t)
/*86*/ "The sequencer user generated error", \
}
-/**
- * @}
- */
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Undocumented RAIL 2.x internal symbol renaming
+#define RAIL_AssertErrorCode sli_rail_assert_error_code
+#define RAIL_AssertLineNumber sli_rail_assert_line_number
+#define RAIL_AssertRailHandle sli_rail_assert_rail_handle
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+/** @} */ // end of Assertions
#ifdef __cplusplus
}
diff --git a/simplicity_sdk/platform/radio/rail_lib/common/rail_features.h b/simplicity_sdk/platform/radio/rail_lib/common/rail_features.h
index a78bfdb0a..53790ce26 100644
--- a/simplicity_sdk/platform/radio/rail_lib/common/rail_features.h
+++ b/simplicity_sdk/platform/radio/rail_lib/common/rail_features.h
@@ -39,7 +39,7 @@ extern "C" {
#endif
/**
- * @addtogroup RAIL_API RAIL API
+ * @addtogroup RAIL_API
* @{
*/
@@ -54,7 +54,7 @@ extern "C" {
* these defines hold true for chip families. Your specific part
* may have further restrictions (band limitations, power amplifier
* restrictions, and so on) on top of those listed below, for which
- * runtime RAIL_Supports*() APIs can be used to check availability
+ * runtime RAIL_*Supports*() APIs can be used to check availability
* on a particular chip (after \ref RAIL_Init() has been called).
* In general, an attempt to call an API that is not supported on your
* chip family as listed below will result in a
@@ -62,7 +62,7 @@ extern "C" {
* @{
*/
-/// Boolean to indicate whether the selected chip supports both SubGHz and 2.4 GHz bands.
+/// Boolean to indicate whether the selected chip supports both Sub-GHz and 2.4 GHz bands.
/// See also runtime refinement \ref RAIL_SupportsDualBand().
#if ((_SILICON_LABS_EFR32_RADIO_TYPE == _SILICON_LABS_EFR32_RADIO_DUALBAND) \
|| ((FEAT_RF_2G4 == 1) && (FEAT_RF_SUBG == 1)))
@@ -85,7 +85,7 @@ extern "C" {
/// Backwards-compatible synonym of \ref RAIL_SUPPORTS_2P4GHZ_BAND.
#define RAIL_FEAT_2G4_RADIO RAIL_SUPPORTS_2P4GHZ_BAND
-/// Boolean to indicate whether the selected chip supports SubGHz bands.
+/// Boolean to indicate whether the selected chip supports Sub-GHz bands.
/// See also runtime refinement \ref RAIL_SupportsSubGHzBand().
#if (((_SILICON_LABS_EFR32_RADIO_TYPE == _SILICON_LABS_EFR32_RADIO_DUALBAND) \
|| (_SILICON_LABS_EFR32_RADIO_TYPE == _SILICON_LABS_EFR32_RADIO_SUBGHZ)) \
@@ -108,7 +108,9 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// bit masked address filtering.
/// See also runtime refinement \ref RAIL_SupportsAddrFilterAddressBitMask().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG >= 2) || (_SILICON_LABS_32B_SERIES_3_CONFIG == 1)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG >= 2) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300))
#define RAIL_SUPPORTS_ADDR_FILTER_ADDRESS_BIT_MASK 1
#else
#define RAIL_SUPPORTS_ADDR_FILTER_ADDRESS_BIT_MASK 0
@@ -128,9 +130,9 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// alternate power settings for the Power Amplifier.
/// See also runtime refinement \ref RAIL_SupportsAlternateTxPower().
-#if (_SILICON_LABS_32B_SERIES_1_CONFIG > 1) \
+#if ((_SILICON_LABS_32B_SERIES_1_CONFIG > 1) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_SUPPORTS_ALTERNATE_TX_POWER 1
#else
#define RAIL_SUPPORTS_ALTERNATE_TX_POWER 0
@@ -146,12 +148,14 @@ extern "C" {
#else
#define RAIL_SUPPORTS_ANTENNA_DIVERSITY 0
#endif
+
/// Backwards-compatible synonym of \ref RAIL_SUPPORTS_ANTENNA_DIVERSITY.
#define RAIL_FEAT_ANTENNA_DIVERSITY RAIL_SUPPORTS_ANTENNA_DIVERSITY
-/// Boolean to indicate whether the selected chip supports RF path diversity.
+/// Boolean to indicate whether the selected chip supports internal RF path diversity.
/// See also runtime refinement \ref RAIL_SupportsPathDiversity().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_SUPPORTS_PATH_DIVERSITY 1
#else
#define RAIL_SUPPORTS_PATH_DIVERSITY 0
@@ -159,7 +163,9 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports channel hopping.
/// See also runtime refinement \ref RAIL_SupportsChannelHopping().
-#if ((_SILICON_LABS_32B_SERIES_1_CONFIG >= 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG >= 1) || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
+#if ((_SILICON_LABS_32B_SERIES_1_CONFIG >= 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG >= 1) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_SUPPORTS_CHANNEL_HOPPING 1
#else
#define RAIL_SUPPORTS_CHANNEL_HOPPING 0
@@ -198,7 +204,8 @@ extern "C" {
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 5) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_SUPPORTS_EXTERNAL_THERMISTOR 1
#else
#define RAIL_SUPPORTS_EXTERNAL_THERMISTOR 0
@@ -216,9 +223,12 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports AUXADC measurements.
/// See also runtime refinement \ref RAIL_SupportsAuxAdc().
-#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 5) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 5) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_SUPPORTS_AUXADC 1
#else
#define RAIL_SUPPORTS_AUXADC 0
@@ -228,7 +238,10 @@ extern "C" {
/// LFRCO.
/// Best to use the runtime refinement \ref RAIL_SupportsPrecisionLFRCO()
/// because some chip revisions do not support it.
-#if ((_SILICON_LABS_32B_SERIES_1_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#if ((_SILICON_LABS_32B_SERIES_1_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_SUPPORTS_PRECISION_LFRCO 1
#else
#define RAIL_SUPPORTS_PRECISION_LFRCO 0
@@ -245,7 +258,10 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// RFSENSE Energy Detection Mode.
/// See also runtime refinement \ref RAIL_SupportsRfSenseEnergyDetection().
-#if ((_SILICON_LABS_32B_SERIES == 1) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#if ((_SILICON_LABS_32B_SERIES == 1) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_SUPPORTS_RFSENSE_ENERGY_DETECTION 1
#else
#define RAIL_SUPPORTS_RFSENSE_ENERGY_DETECTION 0
@@ -254,7 +270,9 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// RFSENSE Selective(OOK) Mode.
/// See also runtime refinement \ref RAIL_SupportsRfSenseSelectiveOok().
-#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_SUPPORTS_RFSENSE_SELECTIVE_OOK 1
#else
#define RAIL_SUPPORTS_RFSENSE_SELECTIVE_OOK 0
@@ -274,8 +292,8 @@ extern "C" {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/// Boolean to indicate whether the selected chip supports the User Sequencer
-/// See also runtime refinement RAIL_SupportsUserSequencer().
-#if (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1)
+/// See also runtime refinement \ref RAIL_SupportsUserSequencer().
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300)
#define RAIL_SUPPORTS_USER_SEQUENCER 1
#else
#define RAIL_SUPPORTS_USER_SEQUENCER 0
@@ -294,7 +312,7 @@ extern "C" {
#define RAIL_SUPPORTS_PROTOCOL_BLE 0
#endif
-/// Boolean to indicate whether the selected chip supports BLE 1Mbps
+/// Boolean to indicate whether the selected chip supports BLE 1 Mbps
/// Non-Viterbi PHY.
/// See also runtime refinement \ref RAIL_BLE_Supports1MbpsNonViterbi().
#if (_SILICON_LABS_32B_SERIES_1_CONFIG >= 1)
@@ -303,7 +321,7 @@ extern "C" {
#define RAIL_BLE_SUPPORTS_1MBPS_NON_VITERBI 0
#endif
-/// Boolean to indicate whether the selected chip supports BLE 1Mbps Viterbi
+/// Boolean to indicate whether the selected chip supports BLE 1 Mbps Viterbi
/// PHY.
/// See also runtime refinement \ref RAIL_BLE_Supports1MbpsViterbi().
#if (_SILICON_LABS_32B_SERIES_1_CONFIG != 1)
@@ -312,12 +330,12 @@ extern "C" {
#define RAIL_BLE_SUPPORTS_1MBPS_VITERBI 0
#endif
-/// Boolean to indicate whether the selected chip supports BLE 1Mbps operation.
+/// Boolean to indicate whether the selected chip supports BLE 1 Mbps operation.
/// See also runtime refinement \ref RAIL_BLE_Supports1Mbps().
#define RAIL_BLE_SUPPORTS_1MBPS \
(RAIL_BLE_SUPPORTS_1MBPS_NON_VITERBI || RAIL_BLE_SUPPORTS_1MBPS_VITERBI)
-/// Boolean to indicate whether the selected chip supports BLE 2Mbps
+/// Boolean to indicate whether the selected chip supports BLE 2 Mbps
/// Non-Viterbi PHY.
/// See also runtime refinement \ref RAIL_BLE_Supports2MbpsNonViterbi().
#if (_SILICON_LABS_32B_SERIES_1_CONFIG >= 2)
@@ -326,7 +344,7 @@ extern "C" {
#define RAIL_BLE_SUPPORTS_2MBPS_NON_VITERBI 0
#endif
-/// Boolean to indicate whether the selected chip supports BLE 2Mbps Viterbi
+/// Boolean to indicate whether the selected chip supports BLE 2 Mbps Viterbi
/// PHY.
/// See also runtime refinement \ref RAIL_BLE_Supports2MbpsViterbi().
#if (_SILICON_LABS_32B_SERIES_1_CONFIG != 1)
@@ -335,7 +353,7 @@ extern "C" {
#define RAIL_BLE_SUPPORTS_2MBPS_VITERBI 0
#endif
-/// Boolean to indicate whether the selected chip supports BLE 2Mbps operation.
+/// Boolean to indicate whether the selected chip supports BLE 2 Mbps operation.
/// See also runtime refinement \ref RAIL_BLE_Supports2Mbps().
#define RAIL_BLE_SUPPORTS_2MBPS \
(RAIL_BLE_SUPPORTS_2MBPS_NON_VITERBI || RAIL_BLE_SUPPORTS_2MBPS_VITERBI)
@@ -347,7 +365,7 @@ extern "C" {
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_BLE_SUPPORTS_ANTENNA_SWITCHING RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_ANTENNA_SWITCHING 0
@@ -362,7 +380,8 @@ extern "C" {
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_BLE_SUPPORTS_CODED_PHY RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_CODED_PHY 0
@@ -371,14 +390,14 @@ extern "C" {
#define RAIL_FEAT_BLE_CODED RAIL_BLE_SUPPORTS_CODED_PHY
/// Boolean to indicate whether the selected chip supports the BLE Simulscan PHY
-/// used for simultaneous BLE 1Mbps and Coded PHY reception.
+/// used for simultaneous BLE 1 Mbps and Coded PHY reception.
/// See also runtime refinement \ref RAIL_BLE_SupportsSimulscanPhy().
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
-
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_BLE_SUPPORTS_SIMULSCAN_PHY RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_SIMULSCAN_PHY 0
@@ -390,9 +409,10 @@ extern "C" {
/// See also runtime refinement \ref RAIL_BLE_SupportsCte().
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_BLE_SUPPORTS_CTE RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_CTE 0
@@ -401,7 +421,9 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports the
/// Quuppa PHY.
/// See also runtime refinement \ref RAIL_BLE_SupportsQuuppa().
-#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
#define RAIL_BLE_SUPPORTS_QUUPPA RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_QUUPPA 0
@@ -413,7 +435,7 @@ extern "C" {
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1))
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_BLE_SUPPORTS_IQ_SAMPLING RAIL_SUPPORTS_PROTOCOL_BLE
#else
#define RAIL_BLE_SUPPORTS_IQ_SAMPLING 0
@@ -437,7 +459,7 @@ extern "C" {
#else
#define RAIL_BLE_SUPPORTS_CS 0
#endif
-#endif
+#endif//DOXYGEN_SHOULD_SKIP_THIS
/// Boolean to indicate whether the selected chip supports BLE PHY switch to RX
/// functionality, which is used to switch BLE PHYs at a specific time
@@ -563,9 +585,10 @@ extern "C" {
/// dynamic FEC
/// See also runtime refinement \ref
/// RAIL_IEEE802154_SupportsGDynFec().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG > 1 || _SILICON_LABS_32B_SERIES_3_CONFIG >= 1)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG > 1) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_IEEE802154_SUPPORTS_G_DYNFEC \
- RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 // limit to SUBGHZ for now
+ RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 // limit to Sub-GHz for now
#else
#define RAIL_IEEE802154_SUPPORTS_G_DYNFEC 0
#endif
@@ -577,7 +600,7 @@ extern "C" {
#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 5) \
|| (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_IEEE802154_SUPPORTS_G_MODESWITCH \
- RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 // limit to SUBGHZ for now
+ RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 // limit to Sub-GHz for now
#else
#define RAIL_IEEE802154_SUPPORTS_G_MODESWITCH 0
#endif
@@ -667,7 +690,8 @@ extern "C" {
#endif
/// Boolean to indicate whether the selected chip supports the pa power setting table.
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 5) || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 5) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300))
#define RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE 1
#else
#define RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE 0
@@ -678,7 +702,7 @@ extern "C" {
/// This feature is available when the configuration for Silicon Labs Series 3
/// devices is set to 1, enabling the use of a unified Power Amplifier (PA) interface
/// across different configurations.
-#if (_SILICON_LABS_32B_SERIES_3_CONFIG >= 1)
+#if (_SILICON_LABS_32B_SERIES_3_CONFIG >= 300)
#define RAIL_SUPPORTS_COMMON_PA_INTERFACE 1
#else
#define RAIL_SUPPORTS_COMMON_PA_INTERFACE 0
@@ -690,7 +714,11 @@ extern "C" {
/// IEEE802.15.4 2.4 GHz at 2 Mbps
/// See also runtime refinement \ref
/// RAIL_IEEE802154_Supports2MbpsPhy().
-#if (_SILICON_LABS_32B_SERIES_1_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 1) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6)
+#if (_SILICON_LABS_32B_SERIES_1_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 1) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300)
#define RAIL_IEEE802154_SUPPORTS_2MBPS_PHY \
(RAIL_SUPPORTS_PROTOCOL_IEEE802154 && RAIL_SUPPORTS_2P4GHZ_BAND)
#else
@@ -700,7 +728,8 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports IEEE 802.15.4 PHY
/// with custom settings
-#if ((_SILICON_LABS_32B_SERIES_1_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_1_CONFIG == 3))
+#if ((_SILICON_LABS_32B_SERIES_1_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_1_CONFIG == 3))
#define RAIL_IEEE802154_SUPPORTS_CUSTOM1_PHY (RAIL_SUPPORTS_PROTOCOL_IEEE802154 && RAIL_SUPPORTS_2P4GHZ_BAND)
#else
#define RAIL_IEEE802154_SUPPORTS_CUSTOM1_PHY 0
@@ -757,7 +786,8 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports concurrent PHY.
/// See also runtime refinement \ref RAIL_ZWAVE_SupportsConcPhy().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_ZWAVE_SUPPORTS_CONC_PHY RAIL_SUPPORTS_PROTOCOL_ZWAVE
#else
#define RAIL_ZWAVE_SUPPORTS_CONC_PHY 0
@@ -765,9 +795,11 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports SQ-based PHY.
/// See also runtime refinement \ref RAIL_SupportsSQPhy().
-#if (((_SILICON_LABS_32B_SERIES_2_CONFIG >= 3) \
- && (_SILICON_LABS_32B_SERIES_2_CONFIG != 7)) \
- || (_SILICON_LABS_32B_SERIES_3_CONFIG == 1))
+#if (((_SILICON_LABS_32B_SERIES_2_CONFIG >= 3) \
+ && (_SILICON_LABS_32B_SERIES_2_CONFIG != 7) \
+ && (_SILICON_LABS_32B_SERIES_2_CONFIG != 9)) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300))
#define RAIL_SUPPORTS_SQ_PHY 1
#else
#define RAIL_SUPPORTS_SQ_PHY 0
@@ -775,7 +807,7 @@ extern "C" {
/// Boolean to indicate whether the code supports Z-Wave
/// region information in PTI and
-/// newer RAIL_ZWAVE_RegionConfig_t structure
+/// newer \ref RAIL_ZWAVE_RegionConfig_t structure
/// See also runtime refinement \ref RAIL_ZWAVE_SupportsRegionPti().
#if 1
#define RAIL_ZWAVE_SUPPORTS_REGION_PTI RAIL_SUPPORTS_PROTOCOL_ZWAVE
@@ -808,7 +840,8 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// RX direct mode data to FIFO.
/// See also runtime refinement \ref RAIL_SupportsRxDirectModeDataToFifo().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_SUPPORTS_RX_DIRECT_MODE_DATA_TO_FIFO 1
#else
#define RAIL_SUPPORTS_RX_DIRECT_MODE_DATA_TO_FIFO 0
@@ -817,33 +850,37 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports
/// MFM protocol.
/// See also runtime refinement \ref RAIL_SupportsMfm().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_SUPPORTS_MFM 1
#else
#define RAIL_SUPPORTS_MFM 0
#endif
-#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 4) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6))
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 4) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 6) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 301) \
+ || (_SILICON_LABS_32B_SERIES_3_CONFIG == 300))
/// Boolean to indicate whether the selected chip supports
/// 802.15.4 signal detection
- #define RAIL_IEEE802154_SUPPORTS_SIGNAL_IDENTIFIER (RAIL_SUPPORTS_PROTOCOL_IEEE802154)
+#define RAIL_IEEE802154_SUPPORTS_SIGNAL_IDENTIFIER (RAIL_SUPPORTS_PROTOCOL_IEEE802154)
/// Boolean to indicate whether the selected chip supports
/// BLE signal detection
- #define RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER (RAIL_SUPPORTS_PROTOCOL_BLE)
+#define RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER (RAIL_SUPPORTS_PROTOCOL_BLE)
#else
/// Boolean to indicate whether the selected chip supports
/// 802.15.4 signal detection
- #define RAIL_IEEE802154_SUPPORTS_SIGNAL_IDENTIFIER 0
+#define RAIL_IEEE802154_SUPPORTS_SIGNAL_IDENTIFIER 0
/// Boolean to indicate whether the selected chip supports
/// BLE signal detection
- #define RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER 0
+#define RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER 0
#endif
/// Boolean to indicate whether the selected chip supports
/// configurable RSSI threshold set by \ref RAIL_SetRssiDetectThreshold().
/// See also runtime refinement \ref RAIL_SupportsRssiDetectThreshold().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 5)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 5))
#define RAIL_SUPPORTS_RSSI_DETECT_THRESHOLD (1U)
#else
#define RAIL_SUPPORTS_RSSI_DETECT_THRESHOLD (0U)
@@ -858,7 +895,7 @@ extern "C" {
#define RAIL_SUPPORTS_THERMAL_PROTECTION (0U)
#endif
-/// Boolean to indicate whether the selected chip supports fast RX2RX enabled by
+/// Boolean to indicate whether the selected chip supports fast RX-to-RX enabled by
/// \ref RAIL_RX_OPTION_FAST_RX2RX.
/// See also runtime refinement \ref RAIL_SupportsFastRx2Rx().
#if (_SILICON_LABS_32B_SERIES_2_CONFIG >= 2)
@@ -868,7 +905,7 @@ extern "C" {
#endif
/// Boolean to indicate whether the selected chip supports collision detection
-/// enabled by RAIL_RX_OPTION_ENABLE_COLLISION_DETECTION
+/// enabled by \ref RAIL_RX_OPTION_ENABLE_COLLISION_DETECTION
/// See also runtime refinement \ref RAIL_SupportsCollisionDetection().
#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 5)
#define RAIL_SUPPORTS_COLLISION_DETECTION (1U)
@@ -878,20 +915,30 @@ extern "C" {
/// Boolean to indicate whether the selected chip supports Sidewalk protocol.
/// See also runtime refinement \ref RAIL_SupportsProtocolSidewalk().
-#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
- || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+#if ((_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8))
#define RAIL_SUPPORTS_PROTOCOL_SIDEWALK (1U)
#else
#define RAIL_SUPPORTS_PROTOCOL_SIDEWALK (0U)
#endif
-/// Boolean to indicate whether the selected chip supports automatic LNA bypass
-/// for external FEM.
-/// See also runtime refinement \ref RAIL_SupportsAutoLnaBypass().
+/// Boolean to indicate whether the selected chip supports TrustZone secure
+/// configuration of peripherals used by RAIL.
+/// See also runtime refinement \ref RAIL_SupportsTrustZoneSecurePeripherals().
+#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 3) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
+ #define RAIL_SUPPORTS_TRUSTZONE_SECURE_PERIPHERALS (1U)
+#else
+ #define RAIL_SUPPORTS_TRUSTZONE_SECURE_PERIPHERALS (0U)
+#endif
+
+/// Boolean to indicate whether the selected chip supports automatic PRS LNA
+/// bypass for external FEM.
+/// See also runtime refinement \ref RAIL_SupportsPrsLnaBypass().
#if (_SILICON_LABS_32B_SERIES_2_CONFIG == 5)
- #define RAIL_SUPPORTS_AUTO_LNA_BYPASS (1U)
+ #define RAIL_SUPPORTS_PRS_LNA_BYPASS (1U)
#else
- #define RAIL_SUPPORTS_AUTO_LNA_BYPASS (0U)
+ #define RAIL_SUPPORTS_PRS_LNA_BYPASS (0U)
#endif
/** @} */ // end of group Features
@@ -902,8 +949,4 @@ extern "C" {
}
#endif
-#ifdef RAIL_INTERNAL_BUILD
-#include "rail_features_internal.h"
-#endif
-
#endif // __RAIL_FEATURES_H__
diff --git a/simplicity_sdk/platform/radio/rail_lib/common/rail_mfm.h b/simplicity_sdk/platform/radio/rail_lib/common/rail_mfm.h
index eee8c7b7b..7a78a2f85 100644
--- a/simplicity_sdk/platform/radio/rail_lib/common/rail_mfm.h
+++ b/simplicity_sdk/platform/radio/rail_lib/common/rail_mfm.h
@@ -63,37 +63,29 @@ extern "C" {
/// \ref RAIL_ConfigData() and is activated when transmit is started by
/// \ref RAIL_StartTx(). Once transmitting the data in the ping-pong buffers,
/// RAIL will manage them so it looks like a continuous transmission to the
-/// receiver. Every time one of the ping-ping buffers has been transmitted,
+/// receiver. Every time one of the ping-pong buffers has been transmitted,
/// \ref RAIL_EVENT_MFM_TX_BUFFER_DONE is triggered so the application can
/// update the data in that buffer without the need to start/stop the
/// transmission. \ref RAIL_EVENT_MFM_TX_BUFFER_DONE can be enable with \ref
/// RAIL_ConfigEvents().
/// Use \ref RAIL_StopTx() to finish transmitting.
-///
/// @code{.c}
+/// #define MFM_RAW_BUF_WORDS 128
+/// extern RAIL_Handle_t railHandle;
/// uint8_t txCount = 0;
+/// uint32_t mfmPingPongBuffers[2][MFM_RAW_BUF_WORDS];
///
-/// typedef struct RAIL_MFM_Config_App {
+/// typedef struct mfmConfigApp {
/// RAIL_MFM_PingPongBufferConfig_t buffer;
/// RAIL_StateTiming_t timings;
-/// } RAIL_MFM_Config_App_t;
+/// RAIL_DataConfig_t dataConfig;
+/// } mfmConfigApp_t;
///
-/// // Main RAIL_EVENT callback
-/// static void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events)
-/// {
-/// // Increment TX counter
-/// if (events & RAIL_EVENT_MFM_BUF_DONE) {
-/// txCount++;
-/// return;
-/// }
-/// }
-/// }
-///
-/// static const RAIL_MFM_Config_App_t mfmConfig = {
+/// static mfmConfigApp_t mfmConfig = {
/// .buffer = {
-/// .pBuffer0 = (&channelHoppingBufferSpace[0]),
-/// .pBuffer1 = (&channelHoppingBufferSpace[MFM_RAW_BUF_SZ_BYTES / 4]),
-/// .bufferSizeWords = (MFM_RAW_BUF_SZ_BYTES / 4)
+/// .pBuffer0 = (&mfmPingPongBuffers[0]),
+/// .pBuffer1 = (&mfmPingPongBuffers[1]),
+/// .bufferSizeWords = MFM_RAW_BUF_WORDS,
/// },
/// .timings = {
/// .idleToTx = 100,
@@ -102,16 +94,33 @@ extern "C" {
/// .txToRx = 0,
/// .rxSearchTimeout = 0,
/// .txToRxSearchTimeout = 0
+/// },
+/// .dataConfig = {
+/// .txSource = TX_MFM_DATA,
+/// .rxSource = RX_PACKET_DATA,
+/// .txMethod = PACKET_MODE,
+/// .rxMethod = PACKET_MODE,
+/// },
/// };
///
-/// RAIL_Status_t mfmInit(void)
+/// // Main RAIL events handler callback
+/// static void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events)
+/// {
+/// // Increment TX counter
+/// if (events & RAIL_EVENT_MFM_BUF_DONE) {
+/// txCount++;
+/// return;
+/// }
+/// }
+/// }
+///
+/// void mfmInit(void)
/// {
/// // initialize MFM
/// uint32_t idx;
-/// uint32_t *pDst0 = mfmConfig.pBuffer0;
-/// uint32_t *pDst1 = mfmConfig.pBuffer1;
-/// RAIL_Status_t status;
-/// for (idx = 0; idx < (MFM_RAW_BUF_SZ_BYTES / 16); idx++) {
+/// uint32_t *pDst0 = mfmConfig.buffer.pBuffer0;
+/// uint32_t *pDst1 = mfmConfig.buffer.pBuffer1;
+/// for (idx = 0; idx < (mfmConfig.buffer.bufferSizeWords / 4); idx++) {
/// pDst0[4 * idx + 0] = 0x755A3100;
/// pDst1[4 * idx + 0] = 0x755A3100;
/// pDst0[4 * idx + 1] = 0x315A757F;
@@ -123,38 +132,30 @@ extern "C" {
/// }
///
/// RAIL_Status_t status;
-/// railDataConfig.txSource = TX_MFM_DATA;
-/// status = RAIL_SetMfmPingPongFifo(railHandle,
-/// &(config->buffer));
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return (status);
-/// }
+/// status = RAIL_SetMfmPingPongFifo(railHandle, &mfmConfig.buffer);
+/// assert(status == RAIL_STATUS_NO_ERROR);
///
+/// status = RAIL_SetStateTiming(railHandle, &mfmConfig.timings);
+/// assert(status == RAIL_STATUS_NO_ERROR);
///
-/// status = RAIL_ConfigData(railHandle, &railDataConfig);
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return (status);
-/// }
-///
-/// status = RAIL_SetStateTiming(railHandle, &(config->timings));
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return (status);
-/// }
+/// mfmConfig.dataConfig.txSource = TX_MFM_DATA;
+/// status = RAIL_ConfigData(railHandle, &mfmConfig.dataConfig);
+/// assert(status == RAIL_STATUS_NO_ERROR);
///
/// // start transmitting
-/// return (RAIL_StartTx(railHandle, 0, 0, &schedulerInfo));
+/// status = RAIL_StartTx(railHandle, 0, 0, NULL);
+/// assert(status == RAIL_STATUS_NO_ERROR);
/// }
///
-/// RAIL_Status_t mfmDeInit(void)
+/// void mfmDeInit(void)
/// {
/// RAIL_Status_t status;
/// status = RAIL_StopTx(railHandle, RAIL_STOP_MODES_ALL);
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return (status);
-/// }
+/// assert(status == RAIL_STATUS_NO_ERROR);
///
-/// railDataConfig.txSource = TX_PACKET_DATA;
-/// return (RAIL_ConfigData(railHandle, &railDataConfig));
+/// mfmConfig.dataConfig.txSource = TX_PACKET_DATA;
+/// status = RAIL_ConfigData(railHandle, &mfmConfig.dataConfig);
+/// assert(status == RAIL_STATUS_NO_ERROR);
/// }
/// @endcode
///
@@ -165,11 +166,11 @@ extern "C" {
* @brief A configuration structure for MFM Ping-pong buffer in RAIL.
*/
typedef struct RAIL_MFM_PingPongBufferConfig {
- /** pointer to buffer0. Must be 32-bit aligned. */
+ /** Pointer to buffer 0. Must be 32-bit aligned. */
uint32_t *pBuffer0;
- /** pointer to buffer1. Must be 32-bit aligned. */
+ /** Pointer to buffer 1. Must be 32-bit aligned. */
uint32_t *pBuffer1;
- /** size of each buffer A and B in 32-bit words. */
+ /** Size of each buffer in 32-bit words. */
uint32_t bufferSizeWords;
} RAIL_MFM_PingPongBufferConfig_t;
@@ -177,9 +178,8 @@ typedef struct RAIL_MFM_PingPongBufferConfig {
* Set MFM ping-pong buffer.
*
* @param[in] railHandle A handle of RAIL instance.
- * @param[in] config A MFM ping-pong buffer configuration structure.
- * @return A status code indicating success of the function call.
- *
+ * @param[in] config A non-NULL pointer to the MFM ping-pong buffer configuration structure.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_SetMfmPingPongFifo(RAIL_Handle_t railHandle,
const RAIL_MFM_PingPongBufferConfig_t *config);
diff --git a/simplicity_sdk/platform/radio/rail_lib/common/rail_types.h b/simplicity_sdk/platform/radio/rail_lib/common/rail_types.h
index 6149bd7b3..d11fba6cf 100644
--- a/simplicity_sdk/platform/radio/rail_lib/common/rail_types.h
+++ b/simplicity_sdk/platform/radio/rail_lib/common/rail_types.h
@@ -36,6 +36,7 @@
#include
#include
#include
+#include "sl_status.h"
#ifdef __cplusplus
extern "C" {
@@ -77,33 +78,33 @@ extern "C" {
/**
* @struct RAIL_Version_t
* @brief Contains RAIL Library Version Information.
- * It is filled in by RAIL_GetVersion().
+ * It is filled in by \ref RAIL_GetVersion().
*/
typedef struct RAIL_Version {
/** Git hash */
uint32_t hash;
/** Major number */
- uint8_t major;
+ uint8_t major;
/** Minor number */
- uint8_t minor;
+ uint8_t minor;
/** Revision number */
- uint8_t rev;
+ uint8_t rev;
/** Build number */
- uint8_t build;
+ uint8_t build;
/** Build flags */
- uint8_t flags;
+ uint8_t flags;
/** Boolean to indicate whether this is a multiprotocol library or not. */
- bool multiprotocol;
+ bool multiprotocol;
} RAIL_Version_t;
/**
* @typedef RAIL_Handle_t
- * @brief A generic handle to a particular radio (e.g. RAIL_EFR32_HANDLE),
- * or a real handle of a RAIL instance, as returned from RAIL_Init().
+ * @brief A radio-generic handle (e.g., \ref RAIL_EFR32_HANDLE),
+ * or a real RAIL instance handle as returned from \ref RAIL_Init().
*
* Generic handles should be used for certain RAIL APIs that are called
* prior to RAIL initialization. However, once RAIL has been initialized,
- * the real handle returned by RAIL_Init() should be used instead.
+ * the real handle returned by \ref RAIL_Init() should be used instead.
*/
typedef void *RAIL_Handle_t;
@@ -118,46 +119,40 @@ typedef void *RAIL_Handle_t;
#define RAIL_EFR32_HANDLE ((RAIL_Handle_t)0xFFFFFFFFUL)
/**
- * @enum RAIL_Status_t
+ * @typedef RAIL_Status_t
* @brief A status returned by many RAIL API calls indicating their success or
- * failure.
+ * failure. It is a subset of sl_status_t.
*/
-RAIL_ENUM(RAIL_Status_t) {
- /** RAIL function reports no error. */
- RAIL_STATUS_NO_ERROR,
- /** Call to RAIL function threw an error because of an invalid parameter. */
- RAIL_STATUS_INVALID_PARAMETER,
- /**
- * Call to RAIL function threw an error because it was called during
- * an invalid radio state.
- */
- RAIL_STATUS_INVALID_STATE,
- /** RAIL function is called in an invalid order. */
- RAIL_STATUS_INVALID_CALL,
- /** RAIL function did not finish in the allotted time. */
- RAIL_STATUS_SUSPENDED,
- /**
- * RAIL function could not be scheduled by the Radio scheduler.
- * Only issued when using a Multiprotocol application.
- */
- RAIL_STATUS_SCHED_ERROR,
-};
+typedef sl_status_t RAIL_Status_t;
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_STATUS_NO_ERROR ((RAIL_Status_t) RAIL_STATUS_NO_ERROR)
-#define RAIL_STATUS_INVALID_PARAMETER ((RAIL_Status_t) RAIL_STATUS_INVALID_PARAMETER)
-#define RAIL_STATUS_INVALID_STATE ((RAIL_Status_t) RAIL_STATUS_INVALID_STATE)
-#define RAIL_STATUS_INVALID_CALL ((RAIL_Status_t) RAIL_STATUS_INVALID_CALL)
-#define RAIL_STATUS_SUSPENDED ((RAIL_Status_t) RAIL_STATUS_SUSPENDED)
-#define RAIL_STATUS_SCHED_ERROR ((RAIL_Status_t) RAIL_STATUS_SCHED_ERROR)
-#endif//DOXYGEN_SHOULD_SKIP_THIS
+/** RAIL function reports no error. */
+#define RAIL_STATUS_NO_ERROR SL_STATUS_OK // 0x0000
+
+/** Call to RAIL function threw an error because of an invalid parameter. */
+#define RAIL_STATUS_INVALID_PARAMETER SL_STATUS_INVALID_PARAMETER // 0x0021
+
+/**
+ * Call to RAIL function threw an error because it was called during
+ * an invalid radio state.
+ */
+#define RAIL_STATUS_INVALID_STATE SL_STATUS_INVALID_STATE // 0x0002
+
+/** RAIL function is called in an invalid order. */
+#define RAIL_STATUS_INVALID_CALL SL_STATUS_NOT_AVAILABLE // 0x000E
+
+/** RAIL function did not finish in the allotted time. */
+#define RAIL_STATUS_SUSPENDED SL_STATUS_IN_PROGRESS // 0x0005
+
+/**
+ * RAIL function could not be scheduled by the Radio scheduler.
+ * Only issued when using a Multiprotocol application.
+ */
+#define RAIL_STATUS_SCHED_ERROR SL_STATUS_ABORT // 0x0006
/**
- * A pointer to init complete callback function
+ * A pointer to an initialization complete callback function.
*
* @param[in] railHandle The initialized RAIL instance handle.
- *
*/
typedef void (*RAIL_InitCompleteCallbackPtr_t)(RAIL_Handle_t railHandle);
@@ -281,7 +276,7 @@ typedef void (*RAIL_MultiTimerCallback_t)(struct RAIL_MultiTimer *tmr,
/**
* @struct RAIL_MultiTimer_t
- * @brief RAIL timer state structure
+ * @brief RAIL timer state structure.
*
* This structure is filled out and maintained internally only.
* The user/application should not alter any elements of this structure.
@@ -307,7 +302,7 @@ typedef struct RAIL_MultiTimer {
/**
* @enum RAIL_PacketTimePosition_t
- * @brief The available packet timestamp position choices
+ * @brief The available packet timestamp position choices.
*/
RAIL_ENUM(RAIL_PacketTimePosition_t) {
/**
@@ -319,8 +314,10 @@ RAIL_ENUM(RAIL_PacketTimePosition_t) {
/**
* Request the choice most expedient for RAIL to calculate,
* which may depend on the radio and/or its configuration.
- * The actual choice would always be reflected in the timePosition
- * field of \ref RAIL_RxPacketDetails_t or \ref RAIL_TxPacketDetails_t
+ * The actual choice would always be reflected in the \ref
+ * RAIL_PacketTimeStamp_t::timePosition field of the \ref
+ * RAIL_RxPacketDetails_t::timeReceived or \ref
+ * RAIL_TxPacketDetails_t::timeSent
* returned and would never be one of the _USED_TOTAL values.
*/
RAIL_PACKET_TIME_DEFAULT = 1,
@@ -360,8 +357,8 @@ RAIL_ENUM(RAIL_PacketTimePosition_t) {
* Indicate that timestamp did require using totalPacketBytes.
*/
RAIL_PACKET_TIME_AT_PACKET_END_USED_TOTAL = 7,
- /** A count of the choices in this enumeration. */
- RAIL_PACKET_TIME_COUNT = 8,
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_PACKET_TIME_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -394,7 +391,7 @@ typedef struct RAIL_PacketTimeStamp {
*/
uint16_t totalPacketBytes;
/**
- * A RAIL_PacketTimePosition_t value specifying the packet position
+ * A \ref RAIL_PacketTimePosition_t value specifying the packet position
* to return in the packetTime field.
* If this is \ref RAIL_PACKET_TIME_DEFAULT, this field will be
* updated with the actual position corresponding to the packetTime
@@ -402,18 +399,17 @@ typedef struct RAIL_PacketTimeStamp {
*/
RAIL_PacketTimePosition_t timePosition;
/**
- * In RX for EFR32xG25 only :
+ * In RX for EFR32xG25 only:
* A value specifying the on-air duration of the data packet,
- * starting with the first bit of the PHR (i.e. end of sync word).
- * Preamble and sync word duration are hence excluded.
+ * starting with the first bit of the PHR (i.e., end of sync word);
+ * preamble and sync word duration are hence excluded.
*
- * In Tx for all EFR32 except EFR32xG21 :
+ * In Tx for all platforms:
* A value specifying the on-air duration of the data packet,
- * starting at the preamble (i.e. includes preamble, sync word, PHR, payload and FCS).
- * This value can be use to compute duty cycles.
- *
- * At the present time, this field is set to zero for EFR32xG21,
- * and also for transmission of auto-ack.
+ * starting at the preamble (i.e. includes preamble, sync word, PHR,
+ * payload and FCS). This value can be used to compute duty cycles.
+ * @note This field is currently valid only for normal transmits but
+ * not Auto-Ack transmits which set the field to zero.
*/
RAIL_Time_t packetDurationUs;
} RAIL_PacketTimeStamp_t;
@@ -470,7 +466,7 @@ typedef struct RAIL_TimerSyncConfig {
RAIL_SleepConfig_t sleep;
} RAIL_TimerSyncConfig_t;
-/// Default timer synchronization configuration
+/// Default timer synchronization configuration.
#define RAIL_TIMER_SYNC_DEFAULT { \
.prsChannel = RAIL_TIMER_SYNC_PRS_CHANNEL_DEFAULT, \
.rtccChannel = RAIL_TIMER_SYNC_RTCC_CHANNEL_DEFAULT, \
@@ -503,14 +499,14 @@ typedef struct RAIL_SchedulerInfo {
*/
uint8_t priority;
/**
- * The amount of time in us that this operation can slip by into the future
+ * The amount of time in microseconds that this operation can slip by into the future
* and still be run. This time is relative to the start time which may be
* the current time for relative transmits. If the scheduler can't start the
* operation by this time, it will be considered a failure.
*/
RAIL_Time_t slipTime;
/**
- * The transaction time in us for this operation. Since transaction times may
+ * The transaction time in microseconds for this operation. Since transaction times may
* not be known exactly, use a minimum or an expected
* guess for this time. The scheduler will use the value entered here to look
* for overlaps between low-priority and high-priority tasks and attempt to
@@ -519,19 +515,19 @@ typedef struct RAIL_SchedulerInfo {
RAIL_Time_t transactionTime;
} RAIL_SchedulerInfo_t;
-/** Radio Scheduler Status mask*/
+/** Radio Scheduler Status mask within \ref RAIL_SchedulerStatus_t values. */
#define RAIL_SCHEDULER_STATUS_MASK 0x0FU
-/** Radio Scheduler Status shift*/
+/** Radio Scheduler Status shift within \ref RAIL_SchedulerStatus_t values. */
#define RAIL_SCHEDULER_STATUS_SHIFT 0
-/** Radio Scheduler Task mask*/
+/** Radio Scheduler Task mask within \ref RAIL_SchedulerStatus_t values. */
#define RAIL_SCHEDULER_TASK_MASK 0xF0U
-/** Radio Scheduler Task shift*/
+/** Radio Scheduler Task shift within \ref RAIL_SchedulerStatus_t values. */
#define RAIL_SCHEDULER_TASK_SHIFT 4
/**
* @enum RAIL_SchedulerStatus_t
- * @brief Multiprotocol scheduler status returned by RAIL_GetSchedulerStatus().
+ * @brief Multiprotocol scheduler status returned by \ref RAIL_GetSchedulerStatus().
*
* \ref Multiprotocol scheduler status is a combination of the upper 4 bits which
* constitute the type of scheduler task and the lower 4 bits which constitute
@@ -557,7 +553,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL = (3U << RAIL_SCHEDULER_STATUS_SHIFT),
/**
* Calling the RAIL API associated with the Radio scheduler task returned
- * an error code. See \ref RAIL_GetSchedulerStatus or \ref RAIL_GetSchedulerStatusAlt
+ * an error code. See \ref RAIL_GetSchedulerStatus() or \ref RAIL_GetSchedulerStatusAlt()
* for more information about \ref RAIL_Status_t status.
*/
RAIL_SCHEDULER_STATUS_TASK_FAIL = (4U << RAIL_SCHEDULER_STATUS_SHIFT),
@@ -626,7 +622,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol scheduled TX scheduling error. */
RAIL_SCHEDULER_SCHEDULED_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SCHEDULED_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartScheduledTx() operation interrupted */
+ /** \ref RAIL_StartScheduledTx() operation interrupted. */
RAIL_SCHEDULER_SCHEDULED_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SCHEDULED_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -636,7 +632,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol instantaneous TX scheduling error. */
RAIL_SCHEDULER_SINGLE_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SINGLE_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartTx() operation interrupted */
+ /** \ref RAIL_StartTx() operation interrupted. */
RAIL_SCHEDULER_SINGLE_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SINGLE_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -646,7 +642,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol single CSMA transmit scheduling error. */
RAIL_SCHEDULER_SINGLE_CCA_CSMA_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartCcaCsmaTx() operation interrupted */
+ /** \ref RAIL_StartCcaCsmaTx() operation interrupted. */
RAIL_SCHEDULER_SINGLE_CCA_CSMA_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -656,7 +652,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol single LBT transmit scheduling error. */
RAIL_SCHEDULER_SINGLE_CCA_LBT_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartCcaLbtTx() operation interrupted */
+ /** \ref RAIL_StartCcaLbtTx() operation interrupted. */
RAIL_SCHEDULER_SINGLE_CCA_LBT_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -669,7 +665,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol scheduled CSMA transmit scheduling error. */
RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartScheduledCcaCsmaTx() operation interrupted */
+ /** \ref RAIL_StartScheduledCcaCsmaTx() operation interrupted. */
RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -682,7 +678,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol scheduled LBT transmit scheduling error. */
RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartScheduledCcaLbtTx() operation interrupted */
+ /** \ref RAIL_StartScheduledCcaLbtTx() operation interrupted. */
RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERRUPTED = (RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -692,7 +688,7 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol stream transmit scheduling error. */
RAIL_SCHEDULER_TX_STREAM_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_TX_STREAM
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartTxStream() operation interrupted */
+ /** \ref RAIL_StartTxStream() operation interrupted. */
RAIL_SCHEDULER_TX_STREAM_INTERRUPTED = (RAIL_SCHEDULER_TASK_TX_STREAM
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
@@ -702,77 +698,77 @@ RAIL_ENUM(RAIL_SchedulerStatus_t) {
/** Multiprotocol RSSI average scheduling error. */
RAIL_SCHEDULER_AVERAGE_RSSI_SCHEDULING_ERROR = (RAIL_SCHEDULER_TASK_AVERAGE_RSSI
| RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL),
- /** \ref RAIL_StartAverageRssi() operation interrupted */
+ /** \ref RAIL_StartAverageRssi() operation interrupted. */
RAIL_SCHEDULER_AVERAGE_RSSI_INTERRUPTED = (RAIL_SCHEDULER_TASK_AVERAGE_RSSI
| RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED),
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_SCHEDULER_STATUS_NO_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_NO_ERROR)
-#define RAIL_SCHEDULER_STATUS_UNSUPPORTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_UNSUPPORTED)
-#define RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED)
-#define RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL)
-#define RAIL_SCHEDULER_STATUS_SCHEDULED_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULED_TX_FAIL)
-#define RAIL_SCHEDULER_STATUS_SINGLE_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SINGLE_TX_FAIL)
-#define RAIL_SCHEDULER_STATUS_CCA_CSMA_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_CCA_CSMA_TX_FAIL)
-#define RAIL_SCHEDULER_STATUS_CCA_LBT_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_CCA_LBT_TX_FAIL)
-#define RAIL_SCHEDULER_STATUS_SCHEDULED_RX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULED_RX_FAIL)
-#define RAIL_SCHEDULER_STATUS_TX_STREAM_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_TX_STREAM_FAIL)
-#define RAIL_SCHEDULER_STATUS_AVERAGE_RSSI_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_AVERAGE_RSSI_FAIL)
-#define RAIL_SCHEDULER_STATUS_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_INTERNAL_ERROR)
-
-#define RAIL_SCHEDULER_TASK_EMPTY ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_EMPTY)
-#define RAIL_SCHEDULER_TASK_SCHEDULED_RX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_RX)
-#define RAIL_SCHEDULER_TASK_SCHEDULED_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX)
-#define RAIL_SCHEDULER_TASK_SINGLE_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_TX)
-#define RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX)
-#define RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX)
-#define RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX)
-#define RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX)
-#define RAIL_SCHEDULER_TASK_TX_STREAM ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_TX_STREAM)
-#define RAIL_SCHEDULER_TASK_AVERAGE_RSSI ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_AVERAGE_RSSI)
-
-#define RAIL_SCHEDULER_SCHEDULED_RX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_RX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_RX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_INTERRUPTED)
-#define RAIL_SCHEDULER_SCHEDULED_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_SINGLE_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_SINGLE_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_SINGLE_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_CCA_CSMA_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_CCA_CSMA_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_CCA_CSMA_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_CCA_LBT_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_CCA_LBT_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_CCA_LBT_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_FAIL)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_FAIL)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERRUPTED)
-#define RAIL_SCHEDULER_TX_STREAM_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_TX_STREAM_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_TX_STREAM_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_INTERRUPTED)
-#define RAIL_SCHEDULER_AVERAGE_RSSI_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_INTERNAL_ERROR)
-#define RAIL_SCHEDULER_AVERAGE_RSSI_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_SCHEDULING_ERROR)
-#define RAIL_SCHEDULER_AVERAGE_RSSI_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_INTERRUPTED)
+#define RAIL_SCHEDULER_STATUS_NO_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_NO_ERROR)
+#define RAIL_SCHEDULER_STATUS_UNSUPPORTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_UNSUPPORTED)
+#define RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_EVENT_INTERRUPTED)
+#define RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULE_FAIL)
+#define RAIL_SCHEDULER_STATUS_SCHEDULED_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULED_TX_FAIL)
+#define RAIL_SCHEDULER_STATUS_SINGLE_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SINGLE_TX_FAIL)
+#define RAIL_SCHEDULER_STATUS_CCA_CSMA_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_CCA_CSMA_TX_FAIL)
+#define RAIL_SCHEDULER_STATUS_CCA_LBT_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_CCA_LBT_TX_FAIL)
+#define RAIL_SCHEDULER_STATUS_SCHEDULED_RX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_SCHEDULED_RX_FAIL)
+#define RAIL_SCHEDULER_STATUS_TX_STREAM_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_TX_STREAM_FAIL)
+#define RAIL_SCHEDULER_STATUS_AVERAGE_RSSI_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_AVERAGE_RSSI_FAIL)
+#define RAIL_SCHEDULER_STATUS_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_STATUS_INTERNAL_ERROR)
+
+#define RAIL_SCHEDULER_TASK_EMPTY ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_EMPTY)
+#define RAIL_SCHEDULER_TASK_SCHEDULED_RX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_RX)
+#define RAIL_SCHEDULER_TASK_SCHEDULED_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX)
+#define RAIL_SCHEDULER_TASK_SINGLE_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_TX)
+#define RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_CCA_CSMA_TX)
+#define RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SINGLE_CCA_LBT_TX)
+#define RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_CCA_CSMA_TX)
+#define RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_SCHEDULED_CCA_LBT_TX)
+#define RAIL_SCHEDULER_TASK_TX_STREAM ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_TX_STREAM)
+#define RAIL_SCHEDULER_TASK_AVERAGE_RSSI ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TASK_AVERAGE_RSSI)
+
+#define RAIL_SCHEDULER_SCHEDULED_RX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_RX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_RX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_RX_INTERRUPTED)
+#define RAIL_SCHEDULER_SCHEDULED_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_SINGLE_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_SINGLE_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_SINGLE_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SINGLE_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_CCA_CSMA_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_CCA_CSMA_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_CCA_CSMA_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_CSMA_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_CCA_LBT_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_CCA_LBT_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_CCA_LBT_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_CCA_LBT_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_FAIL)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_CSMA_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_FAIL ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_FAIL)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_SCHEDULED_CCA_LBT_TX_INTERRUPTED)
+#define RAIL_SCHEDULER_TX_STREAM_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_TX_STREAM_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_TX_STREAM_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_TX_STREAM_INTERRUPTED)
+#define RAIL_SCHEDULER_AVERAGE_RSSI_INTERNAL_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_INTERNAL_ERROR)
+#define RAIL_SCHEDULER_AVERAGE_RSSI_SCHEDULING_ERROR ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_SCHEDULING_ERROR)
+#define RAIL_SCHEDULER_AVERAGE_RSSI_INTERRUPTED ((RAIL_SchedulerStatus_t) RAIL_SCHEDULER_AVERAGE_RSSI_INTERRUPTED)
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
* @enum RAIL_TaskType_t
* @brief Multiprotocol radio operation task types, used with
- * RAIL_SetTaskPriority.
+ * \ref RAIL_SetTaskPriority().
*/
RAIL_ENUM(RAIL_TaskType_t) {
- /** Indicate a task started using RAIL_StartRx */
+ /** Indicate a task started using \ref RAIL_StartRx(). */
RAIL_TASK_TYPE_START_RX = 0,
- /** Indicate a task started functions other than RAIL_StartRx */
+ /** Indicate a task started functions other than \ref RAIL_StartRx(). */
RAIL_TASK_TYPE_OTHER = 1,
};
@@ -800,155 +796,154 @@ RAIL_ENUM(RAIL_TaskType_t) {
RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
// RX Event Bit Shifts
- /** Shift position of \ref RAIL_EVENT_RSSI_AVERAGE_DONE bit */
+ /** Shift position of \ref RAIL_EVENT_RSSI_AVERAGE_DONE bit. */
RAIL_EVENT_RSSI_AVERAGE_DONE_SHIFT = 0,
- /** Shift position of \ref RAIL_EVENT_RX_ACK_TIMEOUT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_ACK_TIMEOUT bit. */
RAIL_EVENT_RX_ACK_TIMEOUT_SHIFT = 1,
- /** Shift position of \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL bit */
+ /** Shift position of \ref RAIL_EVENT_RX_FIFO_ALMOST_FULL bit. */
RAIL_EVENT_RX_FIFO_ALMOST_FULL_SHIFT = 2,
- /** Shift position of \ref RAIL_EVENT_RX_PACKET_RECEIVED bit */
+ /** Shift position of \ref RAIL_EVENT_RX_PACKET_RECEIVED bit. */
RAIL_EVENT_RX_PACKET_RECEIVED_SHIFT = 3,
- /** Shift position of \ref RAIL_EVENT_RX_PREAMBLE_LOST bit */
+ /** Shift position of \ref RAIL_EVENT_RX_PREAMBLE_LOST bit. */
RAIL_EVENT_RX_PREAMBLE_LOST_SHIFT = 4,
- /** Shift position of \ref RAIL_EVENT_RX_PREAMBLE_DETECT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_PREAMBLE_DETECT bit. */
RAIL_EVENT_RX_PREAMBLE_DETECT_SHIFT = 5,
- /** Shift position of \ref RAIL_EVENT_RX_SYNC1_DETECT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_SYNC1_DETECT bit. */
RAIL_EVENT_RX_SYNC1_DETECT_SHIFT = 6,
- /** Shift position of \ref RAIL_EVENT_RX_SYNC2_DETECT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_SYNC2_DETECT bit. */
RAIL_EVENT_RX_SYNC2_DETECT_SHIFT = 7,
- /** Shift position of \ref RAIL_EVENT_RX_FRAME_ERROR bit */
+ /** Shift position of \ref RAIL_EVENT_RX_FRAME_ERROR bit. */
RAIL_EVENT_RX_FRAME_ERROR_SHIFT = 8,
- /** Shift position of \ref RAIL_EVENT_RX_FIFO_FULL bit */
+ /** Shift position of \ref RAIL_EVENT_RX_FIFO_FULL bit. */
RAIL_EVENT_RX_FIFO_FULL_SHIFT = 9,
- /** Shift position of \ref RAIL_EVENT_RX_FIFO_OVERFLOW bit */
+ /** Shift position of \ref RAIL_EVENT_RX_FIFO_OVERFLOW bit. */
RAIL_EVENT_RX_FIFO_OVERFLOW_SHIFT = 10,
- /** Shift position of \ref RAIL_EVENT_RX_ADDRESS_FILTERED bit */
+ /** Shift position of \ref RAIL_EVENT_RX_ADDRESS_FILTERED bit. */
RAIL_EVENT_RX_ADDRESS_FILTERED_SHIFT = 11,
- /** Shift position of \ref RAIL_EVENT_RX_TIMEOUT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_TIMEOUT bit. */
RAIL_EVENT_RX_TIMEOUT_SHIFT = 12,
- /** Shift position of \ref RAIL_EVENT_SCHEDULED_RX_STARTED bit */
+ /** Shift position of \ref RAIL_EVENT_SCHEDULED_RX_STARTED bit. */
RAIL_EVENT_SCHEDULED_RX_STARTED_SHIFT = 13,
- /** Shift position of \ref RAIL_EVENT_RX_SCHEDULED_RX_END bit */
+ /** Shift position of \ref RAIL_EVENT_RX_SCHEDULED_RX_END bit. */
RAIL_EVENT_RX_SCHEDULED_RX_END_SHIFT = 14,
- /** Shift position of \ref RAIL_EVENT_RX_SCHEDULED_RX_MISSED bit */
+ /** Shift position of \ref RAIL_EVENT_RX_SCHEDULED_RX_MISSED bit. */
RAIL_EVENT_RX_SCHEDULED_RX_MISSED_SHIFT = 15,
- /** Shift position of \ref RAIL_EVENT_RX_PACKET_ABORTED bit */
+ /** Shift position of \ref RAIL_EVENT_RX_PACKET_ABORTED bit. */
RAIL_EVENT_RX_PACKET_ABORTED_SHIFT = 16,
- /** Shift position of \ref RAIL_EVENT_RX_FILTER_PASSED bit */
+ /** Shift position of \ref RAIL_EVENT_RX_FILTER_PASSED bit. */
RAIL_EVENT_RX_FILTER_PASSED_SHIFT = 17,
- /** Shift position of \ref RAIL_EVENT_RX_TIMING_LOST bit */
+ /** Shift position of \ref RAIL_EVENT_RX_TIMING_LOST bit. */
RAIL_EVENT_RX_TIMING_LOST_SHIFT = 18,
- /** Shift position of \ref RAIL_EVENT_RX_TIMING_DETECT bit */
+ /** Shift position of \ref RAIL_EVENT_RX_TIMING_DETECT bit. */
RAIL_EVENT_RX_TIMING_DETECT_SHIFT = 19,
- /** Shift position of \ref RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE bit */
+ /** Shift position of \ref RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE bit. */
RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE_SHIFT = 20,
- /** Shift position of \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND bit */
+ /** Shift position of \ref RAIL_EVENT_RX_DUTY_CYCLE_RX_END bit. */
+ RAIL_EVENT_RX_DUTY_CYCLE_RX_END_SHIFT = RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE_SHIFT,
+ /** Shift position of \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND bit. */
RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT = 21,
+ /** Shift position of \ref RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND_SHIFT bit. */
+ RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND_SHIFT = RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT,
+ /** Shift position of \ref RAIL_EVENT_MFM_TX_BUFFER_DONE bit. */
+ RAIL_EVENT_MFM_TX_BUFFER_DONE_SHIFT = RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT,
// TX Event Bit Shifts
- /** Shift position of \ref RAIL_EVENT_ZWAVE_BEAM bit */
+ /** Shift position of \ref RAIL_EVENT_ZWAVE_BEAM bit. */
RAIL_EVENT_ZWAVE_BEAM_SHIFT = 22,
- /** Shift position of \ref RAIL_EVENT_TX_FIFO_ALMOST_EMPTY bit */
+ /** Shift position of \ref RAIL_EVENT_TX_FIFO_ALMOST_EMPTY bit. */
RAIL_EVENT_TX_FIFO_ALMOST_EMPTY_SHIFT = 23,
- /** Shift position of \ref RAIL_EVENT_TX_PACKET_SENT bit */
+ /** Shift position of \ref RAIL_EVENT_TX_PACKET_SENT bit. */
RAIL_EVENT_TX_PACKET_SENT_SHIFT = 24,
- /** Shift position of \ref RAIL_EVENT_TXACK_PACKET_SENT bit */
+ /** Shift position of \ref RAIL_EVENT_TXACK_PACKET_SENT bit. */
RAIL_EVENT_TXACK_PACKET_SENT_SHIFT = 25,
- /** Shift position of \ref RAIL_EVENT_TX_ABORTED bit */
+ /** Shift position of \ref RAIL_EVENT_TX_ABORTED bit. */
RAIL_EVENT_TX_ABORTED_SHIFT = 26,
- /** Shift position of \ref RAIL_EVENT_TXACK_ABORTED bit */
+ /** Shift position of \ref RAIL_EVENT_TXACK_ABORTED bit. */
RAIL_EVENT_TXACK_ABORTED_SHIFT = 27,
- /** Shift position of \ref RAIL_EVENT_TX_BLOCKED bit */
+ /** Shift position of \ref RAIL_EVENT_TX_BLOCKED bit. */
RAIL_EVENT_TX_BLOCKED_SHIFT = 28,
- /** Shift position of \ref RAIL_EVENT_TXACK_BLOCKED bit */
+ /** Shift position of \ref RAIL_EVENT_TXACK_BLOCKED bit. */
RAIL_EVENT_TXACK_BLOCKED_SHIFT = 29,
- /** Shift position of \ref RAIL_EVENT_TX_UNDERFLOW bit */
+ /** Shift position of \ref RAIL_EVENT_TX_UNDERFLOW bit. */
RAIL_EVENT_TX_UNDERFLOW_SHIFT = 30,
- /** Shift position of \ref RAIL_EVENT_TXACK_UNDERFLOW bit */
+ /** Shift position of \ref RAIL_EVENT_TXACK_UNDERFLOW bit. */
RAIL_EVENT_TXACK_UNDERFLOW_SHIFT = 31,
- /** Shift position of \ref RAIL_EVENT_TX_CHANNEL_CLEAR bit */
+ /** Shift position of \ref RAIL_EVENT_TX_CHANNEL_CLEAR bit. */
RAIL_EVENT_TX_CHANNEL_CLEAR_SHIFT = 32,
- /** Shift position of \ref RAIL_EVENT_TX_CHANNEL_BUSY bit */
+ /** Shift position of \ref RAIL_EVENT_TX_CHANNEL_BUSY bit. */
RAIL_EVENT_TX_CHANNEL_BUSY_SHIFT = 33,
- /** Shift position of \ref RAIL_EVENT_TX_CCA_RETRY bit */
+ /** Shift position of \ref RAIL_EVENT_TX_CCA_RETRY bit. */
RAIL_EVENT_TX_CCA_RETRY_SHIFT = 34,
- /** Shift position of \ref RAIL_EVENT_TX_START_CCA bit */
+ /** Shift position of \ref RAIL_EVENT_TX_START_CCA bit. */
RAIL_EVENT_TX_START_CCA_SHIFT = 35,
- /** Shift position of \ref RAIL_EVENT_TX_STARTED bit */
+ /** Shift position of \ref RAIL_EVENT_TX_STARTED bit. */
RAIL_EVENT_TX_STARTED_SHIFT = 36,
- /** Shift position of \ref RAIL_EVENT_TX_SCHEDULED_TX_MISSED bit */
+ /** Shift position of \ref RAIL_EVENT_SCHEDULED_TX_STARTED bit. */
+ RAIL_EVENT_SCHEDULED_TX_STARTED_SHIFT = RAIL_EVENT_SCHEDULED_RX_STARTED_SHIFT,
+ /** Shift position of \ref RAIL_EVENT_TX_SCHEDULED_TX_MISSED bit. */
RAIL_EVENT_TX_SCHEDULED_TX_MISSED_SHIFT = 37,
// Scheduler Event Bit Shifts
- /** Shift position of \ref RAIL_EVENT_CONFIG_UNSCHEDULED bit */
+ /** Shift position of \ref RAIL_EVENT_CONFIG_UNSCHEDULED bit. */
RAIL_EVENT_CONFIG_UNSCHEDULED_SHIFT = 38,
- /** Shift position of \ref RAIL_EVENT_CONFIG_SCHEDULED bit */
+ /** Shift position of \ref RAIL_EVENT_CONFIG_SCHEDULED bit. */
RAIL_EVENT_CONFIG_SCHEDULED_SHIFT = 39,
- /** Shift position of \ref RAIL_EVENT_SCHEDULER_STATUS bit */
+ /** Shift position of \ref RAIL_EVENT_SCHEDULER_STATUS bit. */
RAIL_EVENT_SCHEDULER_STATUS_SHIFT = 40,
// Other Event Bit Shifts
- /** Shift position of \ref RAIL_EVENT_CAL_NEEDED bit */
+ /** Shift position of \ref RAIL_EVENT_CAL_NEEDED bit. */
RAIL_EVENT_CAL_NEEDED_SHIFT = 41,
- /** Shift position of \ref RAIL_EVENT_RF_SENSED bit */
+ /** Shift position of \ref RAIL_EVENT_RF_SENSED bit. */
RAIL_EVENT_RF_SENSED_SHIFT = 42,
- /** Shift position of \ref RAIL_EVENT_PA_PROTECTION bit */
+ /** Shift position of \ref RAIL_EVENT_PA_PROTECTION bit. */
RAIL_EVENT_PA_PROTECTION_SHIFT = 43,
- /** Shift position of \ref RAIL_EVENT_SIGNAL_DETECTED bit */
+ /** Shift position of \ref RAIL_EVENT_SIGNAL_DETECTED bit. */
RAIL_EVENT_SIGNAL_DETECTED_SHIFT = 44,
- /** Shift position of \ref RAIL_EVENT_IEEE802154_MODESWITCH_START bit */
+ /** Shift position of \ref RAIL_EVENT_IEEE802154_MODESWITCH_START bit. */
RAIL_EVENT_IEEE802154_MODESWITCH_START_SHIFT = 45,
- /** Shift position of \ref RAIL_EVENT_IEEE802154_MODESWITCH_END bit */
+ /** Shift position of \ref RAIL_EVENT_IEEE802154_MODESWITCH_END bit. */
RAIL_EVENT_IEEE802154_MODESWITCH_END_SHIFT = 46,
- /** Shift position of \ref RAIL_EVENT_DETECT_RSSI_THRESHOLD bit */
+ /** Shift position of \ref RAIL_EVENT_DETECT_RSSI_THRESHOLD bit. */
RAIL_EVENT_DETECT_RSSI_THRESHOLD_SHIFT = 47,
- /** Shift position of \ref RAIL_EVENT_THERMISTOR_DONE bit */
+ /** Shift position of \ref RAIL_EVENT_THERMISTOR_DONE bit. */
RAIL_EVENT_THERMISTOR_DONE_SHIFT = 48,
- /** Shift position of \ref RAIL_EVENT_TX_BLOCKED_TOO_HOT bit */
+ /** Shift position of \ref RAIL_EVENT_TX_BLOCKED_TOO_HOT bit. */
RAIL_EVENT_TX_BLOCKED_TOO_HOT_SHIFT = 49,
- /** Shift position of \ref RAIL_EVENT_TEMPERATURE_TOO_HOT bit */
+ /** Shift position of \ref RAIL_EVENT_TEMPERATURE_TOO_HOT bit. */
RAIL_EVENT_TEMPERATURE_TOO_HOT_SHIFT = 50,
- /** Shift position of \ref RAIL_EVENT_TEMPERATURE_COOL_DOWN bit */
+ /** Shift position of \ref RAIL_EVENT_TEMPERATURE_COOL_DOWN bit. */
RAIL_EVENT_TEMPERATURE_COOL_DOWN_SHIFT = 51,
- /** Shift position of \ref RAIL_EVENT_USER_MBOX bit */
+ /** Shift position of \ref RAIL_EVENT_USER_MBOX bit. */
RAIL_EVENT_USER_MBOX_SHIFT = 52,
};
-/** Shift position of \ref RAIL_EVENT_SCHEDULED_TX_STARTED bit */
-#define RAIL_EVENT_SCHEDULED_TX_STARTED_SHIFT RAIL_EVENT_SCHEDULED_RX_STARTED_SHIFT
-/** Shift position of \ref RAIL_EVENT_RX_DUTY_CYCLE_RX_END bit */
-#define RAIL_EVENT_RX_DUTY_CYCLE_RX_END_SHIFT RAIL_EVENT_RX_CHANNEL_HOPPING_COMPLETE_SHIFT
-/** Shift position of \ref RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND_SHIFT bit */
-#define RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND_SHIFT RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT
-/** Shift position of \ref RAIL_EVENT_MFM_TX_BUFFER_DONE bit */
-#define RAIL_EVENT_MFM_TX_BUFFER_DONE_SHIFT RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT
-
// RAIL_Event_t bitmasks
-/** A value representing no events */
+/** A value representing no events. */
#define RAIL_EVENTS_NONE 0ULL
/**
* Occurs when the hardware-averaged RSSI is done in response to
- * RAIL_StartAverageRssi() to indicate that the hardware has completed
+ * \ref RAIL_StartAverageRssi() to indicate that the hardware has completed
* averaging.
*
- * Call RAIL_GetAverageRssi() to get the result.
+ * Call \ref RAIL_GetAverageRssi() to get the result.
*/
#define RAIL_EVENT_RSSI_AVERAGE_DONE (1ULL << RAIL_EVENT_RSSI_AVERAGE_DONE_SHIFT)
/**
- * Occurs when the ACK timeout expires while waiting to receive the
- * sync word of an expected ACK. If the timeout occurs within packet
+ * Occurs when the Ack timeout expires while waiting to receive the
+ * sync word of an expected Ack. If the timeout occurs within packet
* reception, this event won't be signaled until after packet
- * completion has determined the packet wasn't the expected ACK.
+ * completion has determined the packet wasn't the expected Ack.
* See \ref RAIL_RxPacketDetails_t::isAck for the definition of an
- * expected ACK.
+ * expected Ack.
*
- * This event only occurs after calling RAIL_ConfigAutoAck() and after
+ * This event only occurs after calling \ref RAIL_ConfigAutoAck() and after
* transmitting a packet with \ref RAIL_TX_OPTION_WAIT_FOR_ACK set.
*/
#define RAIL_EVENT_RX_ACK_TIMEOUT (1ULL << RAIL_EVENT_RX_ACK_TIMEOUT_SHIFT)
@@ -957,9 +952,9 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Keeps occurring as long as the number of bytes in the receive FIFO
* exceeds the configured threshold value.
*
- * Call RAIL_GetRxFifoBytesAvailable() to get the number of
+ * Call \ref RAIL_GetRxFifoBytesAvailable() to get the number of
* bytes available. When using this event, the threshold should be set via
- * RAIL_SetRxFifoThreshold().
+ * \ref RAIL_SetRxFifoThreshold().
*
* How to avoid sticking in the event handler (even in idle state):
* 1. Disable the event (via the config events API or the
@@ -974,10 +969,10 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs whenever a packet is received with \ref RAIL_RX_PACKET_READY_SUCCESS
* or \ref RAIL_RX_PACKET_READY_CRC_ERROR.
*
- * Call RAIL_GetRxPacketInfo() to get
+ * Call \ref RAIL_GetRxPacketInfo() to get
* basic information about the packet along with a handle to this packet for
- * subsequent use with RAIL_PeekRxPacket(), RAIL_GetRxPacketDetails(),
- * RAIL_HoldRxPacket(), and RAIL_ReleaseRxPacket() as needed.
+ * subsequent use with \ref RAIL_PeekRxPacket(), \ref RAIL_GetRxPacketDetails(),
+ * \ref RAIL_HoldRxPacket(), and \ref RAIL_ReleaseRxPacket() as needed.
*/
#define RAIL_EVENT_RX_PACKET_RECEIVED (1ULL << RAIL_EVENT_RX_PACKET_RECEIVED_SHIFT)
@@ -1083,7 +1078,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs when a receive is aborted with \ref RAIL_RX_PACKET_ABORT_FILTERED
* because its address does not match the filtering settings.
*
- * This event can only occur after calling RAIL_EnableAddressFilter().
+ * This event can only occur after calling \ref RAIL_EnableAddressFilter().
*/
#define RAIL_EVENT_RX_ADDRESS_FILTERED (1ULL << RAIL_EVENT_RX_ADDRESS_FILTERED_SHIFT)
@@ -1091,33 +1086,26 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs when an RX event times out.
*
* This event can only occur if the
- * RAIL_StateTiming_t::rxSearchTimeout passed to RAIL_SetStateTiming() is
+ * RAIL_StateTiming_t::rxSearchTimeout passed to \ref RAIL_SetStateTiming() is
* not zero.
*/
#define RAIL_EVENT_RX_TIMEOUT (1ULL << RAIL_EVENT_RX_TIMEOUT_SHIFT)
/**
* Occurs when a scheduled RX begins turning on the receiver.
- * This event has the same numerical value as RAIL_EVENT_SCHEDULED_TX_STARTED
+ * This event has the same numerical value as \ref RAIL_EVENT_SCHEDULED_TX_STARTED
* because one cannot schedule both RX and TX simultaneously.
*/
#define RAIL_EVENT_SCHEDULED_RX_STARTED (1ULL << RAIL_EVENT_SCHEDULED_RX_STARTED_SHIFT)
-/**
- * Occurs when a scheduled TX begins turning on the transmitter.
- * This event has the same numerical value as RAIL_EVENT_SCHEDULED_RX_STARTED
- * because one cannot schedule both RX and TX simultaneously.
- */
-#define RAIL_EVENT_SCHEDULED_TX_STARTED (1ULL << RAIL_EVENT_SCHEDULED_TX_STARTED_SHIFT)
-
/**
* Occurs when the scheduled RX window ends.
*
* This event only occurs in response
- * to a scheduled receive timeout after calling RAIL_ScheduleRx(). If
+ * to a scheduled receive timeout after calling \ref RAIL_ScheduleRx(). If
* RAIL_ScheduleRxConfig_t::rxTransitionEndSchedule was passed as false,
* this event will occur unless the receive is aborted (due to a call to
- * RAIL_Idle() or a scheduler preemption, for instance). If
+ * \ref RAIL_Idle() or a scheduler preemption, for instance). If
* RAIL_ScheduleRxConfig_t::rxTransitionEndSchedule was passed as true,
* any of the \ref RAIL_EVENTS_RX_COMPLETION events occurring will also cause
* this event not to occur, since the scheduled receive will end with the
@@ -1128,7 +1116,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_RX_SCHEDULED_RX_END (1ULL << RAIL_EVENT_RX_SCHEDULED_RX_END_SHIFT)
/**
- * Occurs when start of a scheduled receive is missed
+ * Occurs when start of a scheduled receive is missed.
*
* This can occur if the radio is put to sleep and not woken up with enough time
* to configure the scheduled receive event.
@@ -1224,15 +1212,15 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Indicate a Data Request is received when using IEEE 802.15.4
* functionality.
*
- * It occurs when the command byte of an incoming ACK-requesting MAC Control
+ * It occurs when the command byte of an incoming Ack-requesting MAC Control
* frame is for a data request. This callback is called before
* the packet is fully received to allow the node to have more time to decide
- * whether to indicate a frame is pending in the outgoing ACK. This event only
+ * whether to indicate a frame is pending in the outgoing Ack. This event only
* occurs if the RAIL IEEE 802.15.4 functionality is enabled, but will never
- * occur if promiscuous mode is enabled via
+ * occur if promiscuous mode is enabled via \ref
* RAIL_IEEE802154_SetPromiscuousMode().
*
- * Call RAIL_IEEE802154_GetAddress() to get the source address of the packet.
+ * Call \ref RAIL_IEEE802154_GetAddress() to get the source address of the packet.
*/
#define RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND (1ULL << RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND_SHIFT)
@@ -1244,7 +1232,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* This event is used in lieu of \ref RAIL_EVENT_RX_PACKET_RECEIVED,
* which is reserved for Z-Wave packets other than Beams.
*
- * Call RAIL_ZWAVE_GetBeamNodeId() to get the NodeId to which the Beam was
+ * Call \ref RAIL_ZWAVE_GetBeamNodeId() to get the Node Id to which the Beam was
* targeted, which would be either the broadcast id 0xFF or the node's own
* single-cast id.
*
@@ -1265,12 +1253,12 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_MFM_TX_BUFFER_DONE (1ULL << RAIL_EVENT_MFM_TX_BUFFER_DONE_SHIFT)
/**
- * Indicate a request for populating Z-Wave LR ACK packet.
+ * Indicate a request for populating Z-Wave LR Ack packet.
* This event only occurs if the RAIL Z-Wave functionality is enabled.
*
* Following this event, the application must call \ref RAIL_ZWAVE_SetLrAckData()
* to populate noise floor, TX power and receive RSSI fields of the Z-Wave
- * Long Range ACK packet.
+ * Long Range Ack packet.
*/
#define RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND (1ULL << RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND_SHIFT)
@@ -1282,9 +1270,9 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* \ref RAIL_EVENT_RX_SYNC2_DETECT,
* exactly one of the following events will occur. When one of these events
* occurs, a state transition will take place based on the parameter passed to
- * RAIL_SetRxTransitions(). The RAIL_StateTransitions_t::success transition
+ * \ref RAIL_SetRxTransitions(). The \ref RAIL_StateTransitions_t::success transition
* will be followed only if the \ref RAIL_EVENT_RX_PACKET_RECEIVED event occurs.
- * Any of the other events will trigger the RAIL_StateTransitions_t::error
+ * Any of the other events will trigger the \ref RAIL_StateTransitions_t::error
* transition.
*/
#define RAIL_EVENTS_RX_COMPLETION (RAIL_EVENT_RX_PACKET_RECEIVED \
@@ -1301,11 +1289,11 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* configured threshold value.
*
* This event does not occur on initialization or after resetting the transmit
- * FIFO with RAIL_ResetFifo().
+ * FIFO with \ref RAIL_ResetFifo().
*
- * Call RAIL_GetTxFifoSpaceAvailable() to get the
+ * Call \ref RAIL_GetTxFifoSpaceAvailable() to get the
* number of bytes available in the transmit FIFO at the time of the callback
- * dispatch. When using this event, the threshold should be set via
+ * dispatch. When using this event, the threshold should be set via \ref
* RAIL_SetTxFifoThreshold().
*/
#define RAIL_EVENT_TX_FIFO_ALMOST_EMPTY (1ULL << RAIL_EVENT_TX_FIFO_ALMOST_EMPTY_SHIFT)
@@ -1313,30 +1301,30 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
/**
* Occurs after a packet has been transmitted.
*
- * Call RAIL_GetTxPacketDetails()
+ * Call \ref RAIL_GetTxPacketDetails()
* to get information about the packet that was transmitted.
*
- * @note RAIL_GetTxPacketDetails() is only valid to call during the time frame
- * of the RAIL_Config_t::eventsCallback.
+ * @note \ref RAIL_GetTxPacketDetails() is only valid to call during the time frame
+ * of the \ref RAIL_Config_t::eventsCallback.
*/
#define RAIL_EVENT_TX_PACKET_SENT (1ULL << RAIL_EVENT_TX_PACKET_SENT_SHIFT)
/**
- * Occurs after an ACK packet has been transmitted.
+ * Occurs after an Ack packet has been transmitted.
*
- * Call RAIL_GetTxPacketDetails()
+ * Call \ref RAIL_GetTxPacketDetails()
* to get information about the packet that was transmitted. This event can only occur
- * after calling RAIL_ConfigAutoAck().
+ * after calling \ref RAIL_ConfigAutoAck().
*
- * @note RAIL_GetTxPacketDetails() is only valid to call during the time frame
- * of the RAIL_Config_t::eventsCallback.
+ * @note \ref RAIL_GetTxPacketDetails() is only valid to call during the time frame
+ * of the \ref RAIL_Config_t::eventsCallback.
*/
#define RAIL_EVENT_TXACK_PACKET_SENT (1ULL << RAIL_EVENT_TXACK_PACKET_SENT_SHIFT)
/**
* Occurs when a transmit is aborted by the user.
*
- * This can happen due to calling RAIL_Idle() or due to a scheduler
+ * This can happen due to calling \ref RAIL_Idle() or due to a scheduler
* preemption.
*
* @note The Transmit FIFO is left in an indeterminate state and should be
@@ -1346,17 +1334,17 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_TX_ABORTED (1ULL << RAIL_EVENT_TX_ABORTED_SHIFT)
/**
- * Occurs when an ACK transmit is aborted by the user.
+ * Occurs when an Ack transmit is aborted by the user.
*
* This event can only
- * occur after calling RAIL_ConfigAutoAck(), which can happen due to calling
- * RAIL_Idle() or due to a scheduler preemption.
+ * occur after calling \ref RAIL_ConfigAutoAck(), which can happen due to calling
+ * \ref RAIL_Idle() or due to a scheduler preemption.
*/
#define RAIL_EVENT_TXACK_ABORTED (1ULL << RAIL_EVENT_TXACK_ABORTED_SHIFT)
/**
* Occurs when a transmit is blocked from occurring because
- * RAIL_EnableTxHoldOff() was called.
+ * \ref RAIL_EnableTxHoldOff() was called.
*
* @note Since the transmit never started, the Transmit FIFO remains intact
* after this event -- no packet data was consumed from it. Contrast this
@@ -1365,10 +1353,10 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_TX_BLOCKED (1ULL << RAIL_EVENT_TX_BLOCKED_SHIFT)
/**
- * Occurs when an ACK transmit is blocked from occurring because
- * RAIL_EnableTxHoldOff() was called.
+ * Occurs when an Ack transmit is blocked from occurring because
+ * \ref RAIL_EnableTxHoldOff() was called.
*
- * This event can only occur after calling RAIL_ConfigAutoAck().
+ * This event can only occur after calling \ref RAIL_ConfigAutoAck().
*/
#define RAIL_EVENT_TXACK_BLOCKED (1ULL << RAIL_EVENT_TXACK_BLOCKED_SHIFT)
@@ -1377,7 +1365,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
*
* This can happen due to the
* transmitted packet specifying an unintended length based on the current
- * radio configuration or due to RAIL_WriteTxFifo() calls not keeping up with
+ * radio configuration or due to \ref RAIL_WriteTxFifo() calls not keeping up with
* the transmit rate if the entire packet isn't loaded at once.
*
* @note The Transmit FIFO is left in an indeterminate state and should be
@@ -1387,14 +1375,14 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_TX_UNDERFLOW (1ULL << RAIL_EVENT_TX_UNDERFLOW_SHIFT)
/**
- * Occurs when the ACK transmit buffer underflows.
+ * Occurs when the Ack transmit buffer underflows.
*
* This can happen due to the
* transmitted packet specifying an unintended length based on the current
- * radio configuration or due to RAIL_WriteAutoAckFifo() not being called at
- * all before an ACK transmit.
+ * radio configuration or due to \ref RAIL_WriteAutoAckFifo() not being called at
+ * all before an Ack transmit.
*
- * This event can only occur after calling RAIL_ConfigAutoAck().
+ * This event can only occur after calling \ref RAIL_ConfigAutoAck().
*/
#define RAIL_EVENT_TXACK_UNDERFLOW (1ULL << RAIL_EVENT_TXACK_UNDERFLOW_SHIFT)
@@ -1402,8 +1390,8 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs when Carrier Sense Multiple Access (CSMA) or Listen Before Talk (LBT)
* succeeds.
*
- * This event can only happen after calling RAIL_StartCcaCsmaTx() or
- * RAIL_StartCcaLbtTx().
+ * This event can only happen after calling \ref RAIL_StartCcaCsmaTx() or
+ * \ref RAIL_StartCcaLbtTx() or their scheduled equivalent.
*/
#define RAIL_EVENT_TX_CHANNEL_CLEAR (1ULL << RAIL_EVENT_TX_CHANNEL_CLEAR_SHIFT)
@@ -1411,8 +1399,8 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs when Carrier Sense Multiple Access (CSMA) or Listen Before Talk (LBT)
* fails.
*
- * This event can only happen after calling RAIL_StartCcaCsmaTx() or
- * RAIL_StartCcaLbtTx().
+ * This event can only happen after calling \ref RAIL_StartCcaCsmaTx() or
+ * \ref RAIL_StartCcaLbtTx() or their scheduled equivalent.
*
* @note Since the transmit never started, the Transmit FIFO remains intact
* after this event -- no packet data was consumed from it.
@@ -1426,7 +1414,8 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
*
* This event can occur multiple times based on the configuration
* of the ongoing CSMA or LBT transmission. It can only happen after
- * calling RAIL_StartCcaCsmaTx() or RAIL_StartCcaLbtTx().
+ * calling \ref RAIL_StartCcaCsmaTx() or \ref RAIL_StartCcaLbtTx()
+ * or their scheduled equivalent.
*/
#define RAIL_EVENT_TX_CCA_RETRY (1ULL << RAIL_EVENT_TX_CCA_RETRY_SHIFT)
@@ -1438,8 +1427,8 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* the \ref RAIL_StateTiming_t::idleToRx time (subject to
* \ref RAIL_MINIMUM_TRANSITION_US). It can
* occur multiple times based on the configuration of the ongoing CSMA or LBT
- * transmission. It can only happen after calling RAIL_StartCcaCsmaTx()
- * or RAIL_StartCcaLbtTx().
+ * transmission. It can only happen after calling \ref RAIL_StartCcaCsmaTx()
+ * or \ref RAIL_StartCcaLbtTx() or their scheduled equivalent.
*/
#define RAIL_EVENT_TX_START_CCA (1ULL << RAIL_EVENT_TX_START_CCA_SHIFT)
@@ -1450,9 +1439,9 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* retrieved by calling \ref RAIL_GetTxTimePreambleStart() passing \ref
* RAIL_TX_STARTED_BYTES for its totalPacketBytes parameter.
*
- * @note This event does not apply to ACK transmits. Currently there
+ * @note This event does not apply to Ack transmits. Currently there
* is no equivalent event or timestamp captured for the start of an
- * ACK transmit.
+ * Ack transmit.
*/
#define RAIL_EVENT_TX_STARTED (1ULL << RAIL_EVENT_TX_STARTED_SHIFT)
@@ -1462,6 +1451,13 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
*/
#define RAIL_TX_STARTED_BYTES 0U
+/**
+ * Occurs when a scheduled TX begins turning on the transmitter.
+ * This event has the same numerical value as \ref RAIL_EVENT_SCHEDULED_RX_STARTED
+ * because one cannot schedule both RX and TX simultaneously.
+ */
+#define RAIL_EVENT_SCHEDULED_TX_STARTED (1ULL << RAIL_EVENT_SCHEDULED_TX_STARTED_SHIFT)
+
/**
* Occurs when the start of a scheduled transmit is missed
*
@@ -1478,10 +1474,10 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* packet. After a \ref RAIL_STATUS_NO_ERROR return value
* from one of the transmit functions, exactly one of the following
* events will occur. When one of these events occurs, a state transition
- * takes place based on the parameter passed to RAIL_SetTxTransitions().
+ * takes place based on the parameter passed to \ref RAIL_SetTxTransitions().
* The RAIL_StateTransitions_t::success transition will be followed only
* if the \ref RAIL_EVENT_TX_PACKET_SENT event occurs. Any of the other
- * events will trigger the RAIL_StateTransitions_t::error transition.
+ * events will trigger the \ref RAIL_StateTransitions_t::error transition.
*/
#define RAIL_EVENTS_TX_COMPLETION (RAIL_EVENT_TX_PACKET_SENT \
| RAIL_EVENT_TX_ABORTED \
@@ -1492,11 +1488,11 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
/**
* A mask representing all events that determine the end of a transmitted
- * ACK packet. After an ACK-requesting receive, exactly one of the
+ * Ack packet. After an Ack-requesting receive, exactly one of the
* following events will occur. When one of these events occurs, a state
* transition takes place based on the RAIL_AutoAckConfig_t::rxTransitions
- * passed to RAIL_ConfigAutoAck(). The receive transitions are used because the
- * transmitted ACK packet is considered a part of the ACK-requesting received
+ * passed to \ref RAIL_ConfigAutoAck(). The receive transitions are used because the
+ * transmitted Ack packet is considered a part of the Ack-requesting received
* packet. The RAIL_StateTransitions_t::success transition will be followed
* only if the \ref RAIL_EVENT_TXACK_PACKET_SENT event occurs. Any of the other
* events will trigger the RAIL_StateTransitions_t::error transition.
@@ -1513,7 +1509,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
*
* This event will occur in dynamic multiprotocol scenarios each
* time a protocol is shutting down. When it does occur, it will be
- * the only event passed to RAIL_Config_t::eventsCallback. Therefore,
+ * the only event passed to \ref RAIL_Config_t::eventsCallback. Therefore,
* to optimize protocol switch time, this event should be handled
* among the first in that callback, and then the application can return
* immediately.
@@ -1528,7 +1524,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
*
* This event will occur in dynamic multiprotocol scenarios each time
* a protocol is starting up. When it does occur, it will
- * be the only event passed to RAIL_Config_t::eventsCallback. Therefore, in
+ * be the only event passed to \ref RAIL_Config_t::eventsCallback. Therefore, in
* order to optimize protocol switch time, this event should be handled among
* the first in that callback, and then the application can return immediately.
*
@@ -1540,15 +1536,15 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
/**
* Occurs when the scheduler has a status to report.
*
- * The exact status can be found with RAIL_GetSchedulerStatus().
+ * The exact status can be found with \ref RAIL_GetSchedulerStatus().
* See \ref RAIL_SchedulerStatus_t for more details. When this event
- * does occur, it will be the only event passed to RAIL_Config_t::eventsCallback.
+ * does occur, it will be the only event passed to \ref RAIL_Config_t::eventsCallback.
* Therefore, to optimize protocol switch time, this event should
* be handled among the first in that callback, and then the application
* can return immediately.
*
- * @note RAIL_GetSchedulerStatus() is only valid to call during the time frame
- * of the RAIL_Config_t::eventsCallback.
+ * @note \ref RAIL_GetSchedulerStatus() is only valid to call during the time frame
+ * of the \ref RAIL_Config_t::eventsCallback.
*
* @note: To minimize protocol switch time, Silicon Labs recommends this event
* event being turned off unless it is used.
@@ -1561,15 +1557,14 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
* Occurs when the application needs to run a calibration, as
* determined by the RAIL library.
*
- * The application determines the opportune time to call RAIL_Calibrate().
+ * The application determines the opportune time to call \ref RAIL_Calibrate().
*/
#define RAIL_EVENT_CAL_NEEDED (1ULL << RAIL_EVENT_CAL_NEEDED_SHIFT)
/**
* Occurs when RF energy is sensed from the radio. This event can be used as
- * an alternative to the callback passed as \ref RAIL_RfSense_CallbackPtr_t.
- *
- * Alternatively, the application can poll using \ref RAIL_IsRfSensed().
+ * an alternative to the callback passed as \ref RAIL_RfSense_CallbackPtr_t
+ * or the application polling with \ref RAIL_IsRfSensed().
*
* @note This event will not occur when waking up from EM4. Prefer
* \ref RAIL_IsRfSensed() when waking from EM4.
@@ -1582,8 +1577,8 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
#define RAIL_EVENT_PA_PROTECTION (1ULL << RAIL_EVENT_PA_PROTECTION_SHIFT)
/**
- * Occurs after enabling the signal detection using \ref RAIL_BLE_EnableSignalDetection
- * or \ref RAIL_IEEE802154_EnableSignalDetection when a signal is detected.
+ * Occurs after enabling the signal detection using \ref RAIL_BLE_EnableSignalDetection()
+ * or \ref RAIL_IEEE802154_EnableSignalDetection() when a signal is detected.
* This is only used on platforms that support signal identifier, where
* \ref RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER or
* \ref RAIL_IEEE802154_SUPPORTS_SIGNAL_IDENTIFIER is true.
@@ -1628,7 +1623,7 @@ RAIL_ENUM_GENERIC(RAIL_Events_t, uint64_t) {
/**
* Occurs when a Tx has been blocked because of temperature exceeding
* the safety threshold.
- * @deprecated
+ * @deprecated but reserved for possible future use.
*/
#define RAIL_EVENT_TX_BLOCKED_TOO_HOT (1ULL << RAIL_EVENT_TX_BLOCKED_TOO_HOT_SHIFT)
@@ -1736,7 +1731,7 @@ typedef int16_t RAIL_TxPower_t;
#define RAIL_TX_POWER_DBM_SCALING_FACTOR 10
/**
- * Raw power levels used directly by the RAIL_Get/SetTxPower API where a higher
+ * Raw power levels used directly by \ref RAIL_GetTxPower() and \ref RAIL_SetTxPower() where a higher
* numerical value corresponds to a higher output power. These are referred to
* as 'raw (values/units)'. On EFR32, they can range from one of \ref
* RAIL_TX_POWER_LEVEL_2P4_LP_MIN, \ref RAIL_TX_POWER_LEVEL_2P4_HP_MIN, or
@@ -1748,27 +1743,27 @@ typedef int16_t RAIL_TxPower_t;
typedef uint8_t RAIL_TxPowerLevel_t;
/**
- * Invalid RAIL_TxPowerLevel_t value returned when an error occurs
- * with RAIL_GetTxPower.
+ * Invalid \ref RAIL_TxPowerLevel_t value returned when an error occurs
+ * with \ref RAIL_GetTxPower().
*/
#define RAIL_TX_POWER_LEVEL_INVALID (255U)
/**
- * Sentinel value that can be passed to RAIL_SetTxPower to set
+ * Sentinel value that can be passed to \ref RAIL_SetTxPower() to set
* the highest power level available on the current PA, regardless
* of which one is selected.
*/
#define RAIL_TX_POWER_LEVEL_MAX (254U)
/**
- * PA power setting used directly by the \ref RAIL_GetPaPowerSetting() and
- * \ref RAIL_SetPaPowerSetting() APIs which is decoded to the actual
+ * PA power setting used directly by \ref RAIL_GetPaPowerSetting() and
+ * \ref RAIL_SetPaPowerSetting() which is decoded to the actual
* hardware register value(s).
*/
typedef uint32_t RAIL_PaPowerSetting_t;
/**
- * Returned by \ref RAIL_GetPaPowerSetting when the device does
+ * Returned by \ref RAIL_GetPaPowerSetting() when the device does
* not support the dBm to power setting mapping table.
*/
#define RAIL_TX_PA_POWER_SETTING_UNSUPPORTED (0U)
@@ -1831,12 +1826,12 @@ RAIL_ENUM(RAIL_TxPowerMode_t) {
* PA for all Sub-GHz dBm values in range, using \ref
* RAIL_PaPowerSetting_t table.
* Only supported on platforms with \ref
- * RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE (e.g. EFR32xG25).
+ * RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE (e.g., EFR32xG25).
*/
RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE = 5U,
/**
* High-power Sub-GHz amplifier (Class D mode)
- * Supported on FR32xG23 and EFR32xG28.
+ * Supported on EFR32xG23 and EFR32xG28.
* Not supported other Sub-GHz-incapable platforms or those with \ref
* RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE.
*/
@@ -1873,13 +1868,13 @@ RAIL_ENUM(RAIL_TxPowerMode_t) {
* RAIL_PaPowerSetting_t table.
* Supported only on platforms with both \ref
* RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE and \ref
- * RAIL_SUPPORTS_OFDM_PA (e.g. EFR32xG25).
+ * RAIL_SUPPORTS_OFDM_PA (e.g., EFR32xG25).
*/
RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE = 11U,
/** @deprecated Please use \ref RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE instead. */
RAIL_TX_POWER_MODE_OFDM_PA = RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE,
- /** Invalid amplifier Selection */
- RAIL_TX_POWER_MODE_NONE // Must be last
+ /** Invalid amplifier Selection. Must be last. */
+ RAIL_TX_POWER_MODE_NONE
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -1890,7 +1885,7 @@ RAIL_ENUM(RAIL_TxPowerMode_t) {
/**
* @def RAIL_TX_POWER_MODE_NAMES
- * @brief The names of the TX power modes
+ * @brief The names of the TX power modes.
*
* A list of the names for the TX power modes on EFR32 parts. This
* macro is useful for test applications and debugging output.
@@ -1925,16 +1920,16 @@ typedef struct RAIL_TxPowerConfig {
* Battery supply ~ 3300 mV (3.3 V)
*/
uint16_t voltage;
- /** The amount of time to spend ramping for TX in uS. */
+ /** The amount of time to spend ramping for TX in microseconds. */
uint16_t rampTime;
} RAIL_TxPowerConfig_t;
/** Convenience macro for any OFDM mapping table mode. */
#define RAIL_POWER_MODE_IS_DBM_POWERSETTING_MAPPING_TABLE_OFDM(x) \
- (((x) == RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE))
+ ((x) == RAIL_TX_POWER_MODE_OFDM_PA_POWERSETTING_TABLE)
/** Convenience macro for any Sub-GHz mapping table mode. */
#define RAIL_POWER_MODE_IS_DBM_POWERSETTING_MAPPING_TABLE_SUBGIG(x) \
- (((x) == RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE))
+ ((x) == RAIL_TX_POWER_MODE_SUBGIG_POWERSETTING_TABLE)
/** Convenience macro for any OFDM mode. */
#define RAIL_POWER_MODE_IS_ANY_OFDM(x) \
RAIL_POWER_MODE_IS_DBM_POWERSETTING_MAPPING_TABLE_OFDM(x)
@@ -1966,13 +1961,14 @@ typedef const uint32_t *RAIL_RadioConfig_t;
*/
typedef struct RAIL_FrameType {
/**
- * A pointer to an array of frame lengths for each frame type. The length of this
- * array should be equal to the number of frame types. The array that
- * frameLen points to should not change location or be modified.
+ * A pointer to an array of frame byte lengths for each frame type.
+ * The number of elements in this array should be equal to the number of
+ * frame types. The memory to which frameLen points should not
+ * change location or be modified.
*/
uint16_t *frameLen;
/**
- * Zero-indexed location of the byte containing the frame type field.
+ * Zero-indexed byte offset location of the byte containing the frame type field.
*/
uint8_t offset;
/**
@@ -1986,7 +1982,7 @@ typedef struct RAIL_FrameType {
/**
* A bitmask that marks if each frame is valid or should be filtered. Frame type
* 0 corresponds to the lowest bit in isValid. If the frame is filtered, a
- * RAIL_EVENT_RX_PACKET_ABORTED will be raised.
+ * \ref RAIL_EVENT_RX_PACKET_ABORTED will be raised.
*/
uint8_t isValid;
/**
@@ -1998,9 +1994,9 @@ typedef struct RAIL_FrameType {
/**
* @def RAIL_SETFIXEDLENGTH_INVALID
- * @brief An invalid return value when calling RAIL_SetFixedLength().
+ * @brief An invalid return value when calling \ref RAIL_SetFixedLength().
*
- * An invalid return value when calling RAIL_SetFixedLength() while the radio is
+ * An invalid return value when calling \ref RAIL_SetFixedLength() while the radio is
* not in fixed-length mode.
*/
#define RAIL_SETFIXEDLENGTH_INVALID (0xFFFFU)
@@ -2015,7 +2011,7 @@ typedef struct RAIL_ChannelConfigEntryAttr RAIL_ChannelConfigEntryAttr_t;
/**
* @enum RAIL_ChannelConfigEntryType_t
* @brief Define if the channel support using concurrent PHY during channel
- * hopping. RAIL_RX_CHANNEL_HOPPING_MODE_CONC and RAIL_RX_CHANNEL_HOPPING_MODE_VT
+ * hopping. \ref RAIL_RX_CHANNEL_HOPPING_MODE_CONC and \ref RAIL_RX_CHANNEL_HOPPING_MODE_VT
* can only be used if the channel supports it.
*/
RAIL_ENUM(RAIL_ChannelConfigEntryType_t) {
@@ -2066,18 +2062,9 @@ typedef struct RAIL_AlternatePhy {
uint16_t minBaseIf_kHz;
/** Indicates that OFDM modem is used by this alternate PHY. */
bool isOfdmModem;
- /** rate Info of the alternate PHY. */
+ /** Rate info of the alternate PHY. */
uint32_t rateInfo;
- /**
- * AGC_CTRL1 configuration for CCA with hw modem.
- * Concurrent phy's AGC CCA-related registers are configured for CCA with
- * OFDM modem. To perform a CCA with hw modem, AGC CTRL1 and CTRL7 need to
- * be reconfigured.
- * CTRL7_SUBPERIOD bit is set to 0 before the CCA and retored to 1 after.
- * CTRL1 is reconfigured using hwModemAgcCtrl1 before the CCA and restore
- * after using pSeqFrcConfig->agcCtrl1 where ofdm MODEM CCA configurations
- * have been stored.
- */
+ /** Used to adjust the AGC for CCA between hard and soft modems. */
uint32_t hwModemAgcCtrl1;
} RAIL_AlternatePhy_t;
@@ -2122,8 +2109,8 @@ typedef struct RAIL_ChannelConfigEntry {
/** to align to 32-bit boundary. */
uint8_t reserved[3];
/**
- * Array containing information according to the protocolId value,
- * first byte of this array. The first 2 fields are common to all
+ * Array containing information according to the \ref RAIL_PtiProtocol_t in
+ * the first byte of this array. The first 2 fields are common to all
* protocols and accessible by RAIL, others are ignored by RAIL
* and only used by the application. Common fields are listed in
* \ref RAIL_StackInfoCommon_t.
@@ -2135,11 +2122,11 @@ typedef struct RAIL_ChannelConfigEntry {
/// @struct RAIL_ChannelConfig_t
/// @brief A channel configuration structure, which defines the channel meaning
-/// when a channel number is passed into a RAIL function, e.g., RAIL_StartTx()
-/// and RAIL_StartRx().
+/// when a channel number is passed into a RAIL function, e.g., \ref RAIL_StartTx()
+/// and \ref RAIL_StartRx().
///
-/// A RAIL_ChannelConfig_t structure defines the channel scheme that an
-/// application uses when registered in RAIL_ConfigChannels().
+/// A \ref RAIL_ChannelConfig_t structure defines the channel scheme that an
+/// application uses when registered in \ref RAIL_ConfigChannels().
///
/// These are a few examples of different channel configurations:
/// @code{.c}
@@ -2350,9 +2337,9 @@ typedef struct RAIL_ChannelConfig {
* channel entries back to base configuration.
*/
RAIL_RadioConfig_t phyConfigDeltaSubtract;
- /** Pointer to an array of RAIL_ChannelConfigEntry_t entries. */
+ /** Pointer to an array of \ref RAIL_ChannelConfigEntry_t entries. */
const RAIL_ChannelConfigEntry_t *configs;
- /** Number of RAIL_ChannelConfigEntry_t entries. */
+ /** Number of \ref RAIL_ChannelConfigEntry_t entries. */
uint32_t length;
/** Signature for this structure. Only used on modules. */
uint32_t signature;
@@ -2375,12 +2362,12 @@ typedef struct RAIL_ChannelMetadata {
/**
* @struct RAIL_StackInfoCommon_t
- * @brief StackInfo fields common to all protocols.
+ * @brief Stack info fields common to all protocols.
*/
typedef struct RAIL_StackInfoCommon {
- /** Same as \ref RAIL_PtiProtocol_t */
+ /** Same as \ref RAIL_PtiProtocol_t. */
uint8_t protocolId;
- /** PHY Id depending on the protocol_id value */
+ /** PHY Id depending on the protocolId value. */
uint8_t phyId;
} RAIL_StackInfoCommon_t;
@@ -2484,14 +2471,14 @@ RAIL_ENUM(RAIL_PtiProtocol_t) {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_PTI_PROTOCOL_CUSTOM ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_CUSTOM)
-#define RAIL_PTI_PROTOCOL_THREAD ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_THREAD)
-#define RAIL_PTI_PROTOCOL_BLE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_BLE)
-#define RAIL_PTI_PROTOCOL_CONNECT ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_CONNECT)
-#define RAIL_PTI_PROTOCOL_ZIGBEE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_ZIGBEE)
-#define RAIL_PTI_PROTOCOL_ZWAVE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_ZWAVE)
-#define RAIL_PTI_PROTOCOL_802154 ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_802154)
-#define RAIL_PTI_PROTOCOL_SIDEWALK ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_SIDEWALK)
+#define RAIL_PTI_PROTOCOL_CUSTOM ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_CUSTOM)
+#define RAIL_PTI_PROTOCOL_THREAD ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_THREAD)
+#define RAIL_PTI_PROTOCOL_BLE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_BLE)
+#define RAIL_PTI_PROTOCOL_CONNECT ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_CONNECT)
+#define RAIL_PTI_PROTOCOL_ZIGBEE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_ZIGBEE)
+#define RAIL_PTI_PROTOCOL_ZWAVE ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_ZWAVE)
+#define RAIL_PTI_PROTOCOL_802154 ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_802154)
+#define RAIL_PTI_PROTOCOL_SIDEWALK ((RAIL_PtiProtocol_t) RAIL_PTI_PROTOCOL_SIDEWALK)
#endif//DOXYGEN_SHOULD_SKIP_THIS
/** @} */ // end of group PTI
@@ -2525,8 +2512,8 @@ RAIL_ENUM(RAIL_TxDataSource_t) {
* Z-Wave).
*/
TX_MFM_DATA = 1,
- /** A count of the choices in this enumeration. */
- RAIL_TX_DATA_SOURCE_COUNT // Must be last
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_TX_DATA_SOURCE_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -2568,8 +2555,8 @@ RAIL_ENUM(RAIL_RxDataSource_t) {
* Only efr32xg23, efr32xg25, or efr32xg28 have this mode.
*/
RX_DIRECT_SYNCHRONOUS_MODE_DATA = 5,
- /** A count of the choices in this enumeration. */
- RAIL_RX_DATA_SOURCE_COUNT // Must be last
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_RX_DATA_SOURCE_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -2589,7 +2576,7 @@ RAIL_ENUM(RAIL_RxDataSource_t) {
*
* For Transmit the distinction between \ref RAIL_DataMethod_t::PACKET_MODE
* and \ref RAIL_DataMethod_t::FIFO_MODE has become more cosmetic than
- * functional, as the RAIL_WriteTxFifo() and RAIL_SetTxFifoThreshold() APIs
+ * functional, as the \ref RAIL_WriteTxFifo() and \ref RAIL_SetTxFifoThreshold() APIs
* and related \ref RAIL_EVENT_TX_FIFO_ALMOST_EMPTY event can be used in
* either mode. For Receive the distinction is functionally important because
* in \ref RAIL_DataMethod_t::PACKET_MODE rollback occurs automatically for
@@ -2605,8 +2592,8 @@ RAIL_ENUM(RAIL_DataMethod_t) {
PACKET_MODE = 0,
/** FIFO-based data method. */
FIFO_MODE = 1,
- /** A count of the choices in this enumeration. */
- RAIL_DATA_METHOD_COUNT // Must be last
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_DATA_METHOD_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -2744,7 +2731,7 @@ RAIL_ENUM(RAIL_RadioState_t) {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @enum RAIL_RadioStateEfr32_t
- * @brief Detailed EFR32 Radio state machine statuses.
+ * @brief Detailed EFR32 Radio state machine states.
*/
RAIL_ENUM(RAIL_RadioStateEfr32_t) {
/** Radio is off. */
@@ -2773,33 +2760,33 @@ RAIL_ENUM(RAIL_RadioStateEfr32_t) {
RAIL_RAC_STATE_TX2RX = 11,
/** Radio is preparing a transmission after the previous transmission was ended. */
RAIL_RAC_STATE_TX2TX = 12,
- /** Radio is powering down receiver and going to OFF state. */
+ /** Radio is powering down and going to OFF state. */
RAIL_RAC_STATE_SHUTDOWN = 13,
- /** Radio power-on-reset state (EFR32xG22 and later) */
+ /** Radio power-on-reset state (EFR32xG22 and later). */
RAIL_RAC_STATE_POR = 14,
/** Invalid Radio state, must be the last entry. */
RAIL_RAC_STATE_NONE
};
-#endif//DOXYGEN_SHOULD_SKIP_THIS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_RAC_STATE_OFF ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_OFF)
-#define RAIL_RAC_STATE_RXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXWARM)
-#define RAIL_RAC_STATE_RXSEARCH ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXSEARCH)
-#define RAIL_RAC_STATE_RXFRAME ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXFRAME)
-#define RAIL_RAC_STATE_RXPD ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXPD)
-#define RAIL_RAC_STATE_RX2RX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RX2RX)
-#define RAIL_RAC_STATE_RXOVERFLOW ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXOVERFLOW)
-#define RAIL_RAC_STATE_RX2TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RX2TX)
-#define RAIL_RAC_STATE_TXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TXWARM)
-#define RAIL_RAC_STATE_TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX)
-#define RAIL_RAC_STATE_TXPD ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TXPD)
-#define RAIL_RAC_STATE_TX2RX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX2RX)
-#define RAIL_RAC_STATE_TX2TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX2TX)
-#define RAIL_RAC_STATE_SHUTDOWN ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SHUTDOWN)
-#define RAIL_RAC_STATE_POR ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_POR)
-#define RAIL_RAC_STATE_NONE ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_NONE)
+#define RAIL_RAC_STATE_OFF ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_OFF)
+#define RAIL_RAC_STATE_RXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXWARM)
+#define RAIL_RAC_STATE_RXSEARCH ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXSEARCH)
+#define RAIL_RAC_STATE_RXFRAME ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXFRAME)
+#define RAIL_RAC_STATE_RXPD ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXPD)
+#define RAIL_RAC_STATE_RX2RX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RX2RX)
+#define RAIL_RAC_STATE_RXOVERFLOW ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RXOVERFLOW)
+#define RAIL_RAC_STATE_RX2TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_RX2TX)
+#define RAIL_RAC_STATE_TXWARM ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TXWARM)
+#define RAIL_RAC_STATE_TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX)
+#define RAIL_RAC_STATE_TXPD ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TXPD)
+#define RAIL_RAC_STATE_TX2RX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX2RX)
+#define RAIL_RAC_STATE_TX2TX ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_TX2TX)
+#define RAIL_RAC_STATE_SHUTDOWN ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_SHUTDOWN)
+#define RAIL_RAC_STATE_POR ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_POR)
+#define RAIL_RAC_STATE_NONE ((RAIL_RadioStateEfr32_t) RAIL_RAC_STATE_NONE)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
@@ -2844,20 +2831,20 @@ typedef struct RAIL_StateTransitions {
* (e.g., performing CCA) is currently ongoing, and clear otherwise.
*/
RAIL_ENUM(RAIL_RadioStateDetail_t) {
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_IDLE_STATE bit */
- RAIL_RF_STATE_DETAIL_IDLE_STATE_SHIFT = 0u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_RX_STATE bit */
- RAIL_RF_STATE_DETAIL_RX_STATE_SHIFT = 1u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_TX_STATE bit */
- RAIL_RF_STATE_DETAIL_TX_STATE_SHIFT = 2u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_TRANSITION bit */
- RAIL_RF_STATE_DETAIL_TRANSITION_SHIFT = 3u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_ACTIVE bit */
- RAIL_RF_STATE_DETAIL_ACTIVE_SHIFT = 4u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_NO_FRAMES bit */
- RAIL_RF_STATE_DETAIL_NO_FRAMES_SHIFT = 5u,
- /** Shift position of \ref RAIL_RF_STATE_DETAIL_LBT bit */
- RAIL_RF_STATE_DETAIL_LBT_SHIFT = 6u,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_IDLE_STATE bit. */
+ RAIL_RF_STATE_DETAIL_IDLE_STATE_SHIFT = 0,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_RX_STATE bit. */
+ RAIL_RF_STATE_DETAIL_RX_STATE_SHIFT = 1,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_TX_STATE bit. */
+ RAIL_RF_STATE_DETAIL_TX_STATE_SHIFT = 2,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_TRANSITION bit. */
+ RAIL_RF_STATE_DETAIL_TRANSITION_SHIFT = 3,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_ACTIVE bit. */
+ RAIL_RF_STATE_DETAIL_ACTIVE_SHIFT = 4,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_NO_FRAMES bit. */
+ RAIL_RF_STATE_DETAIL_NO_FRAMES_SHIFT = 5,
+ /** Shift position of \ref RAIL_RF_STATE_DETAIL_LBT bit. */
+ RAIL_RF_STATE_DETAIL_LBT_SHIFT = 6,
};
/** Radio is inactive. */
@@ -3027,9 +3014,9 @@ typedef struct RAIL_TxChannelHoppingConfig {
* @brief Stop radio operation options bit mask
*/
RAIL_ENUM(RAIL_StopMode_t) {
- /** Shift position of \ref RAIL_STOP_MODE_ACTIVE bit */
+ /** Shift position of \ref RAIL_STOP_MODE_ACTIVE bit. */
RAIL_STOP_MODE_ACTIVE_SHIFT = 0,
- /** Shift position of \ref RAIL_STOP_MODE_PENDING bit */
+ /** Shift position of \ref RAIL_STOP_MODE_PENDING bit. */
RAIL_STOP_MODE_PENDING_SHIFT = 1,
};
@@ -3047,28 +3034,28 @@ RAIL_ENUM(RAIL_StopMode_t) {
* @brief Transmit options, in reality a bitmask.
*/
RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
- /** Shift position of \ref RAIL_TX_OPTION_WAIT_FOR_ACK bit */
+ /** Shift position of \ref RAIL_TX_OPTION_WAIT_FOR_ACK bit. */
RAIL_TX_OPTION_WAIT_FOR_ACK_SHIFT = 0,
- /** Shift position of \ref RAIL_TX_OPTION_REMOVE_CRC bit */
+ /** Shift position of \ref RAIL_TX_OPTION_REMOVE_CRC bit. */
RAIL_TX_OPTION_REMOVE_CRC_SHIFT = 1,
- /** Shift position of \ref RAIL_TX_OPTION_SYNC_WORD_ID bit */
+ /** Shift position of \ref RAIL_TX_OPTION_SYNC_WORD_ID bit. */
RAIL_TX_OPTION_SYNC_WORD_ID_SHIFT = 2,
- /** Shift position of \ref RAIL_TX_OPTION_ANTENNA0 bit */
+ /** Shift position of \ref RAIL_TX_OPTION_ANTENNA0 bit. */
RAIL_TX_OPTION_ANTENNA0_SHIFT = 3,
- /** Shift position of \ref RAIL_TX_OPTION_ANTENNA1 bit */
+ /** Shift position of \ref RAIL_TX_OPTION_ANTENNA1 bit. */
RAIL_TX_OPTION_ANTENNA1_SHIFT = 4,
- /** Shift position of \ref RAIL_TX_OPTION_ALT_PREAMBLE_LEN bit */
+ /** Shift position of \ref RAIL_TX_OPTION_ALT_PREAMBLE_LEN bit. */
RAIL_TX_OPTION_ALT_PREAMBLE_LEN_SHIFT = 5,
- /** Shift position of \ref RAIL_TX_OPTION_CCA_PEAK_RSSI bit */
+ /** Shift position of \ref RAIL_TX_OPTION_CCA_PEAK_RSSI bit. */
RAIL_TX_OPTION_CCA_PEAK_RSSI_SHIFT = 6,
- /** Shift position of \ref RAIL_TX_OPTION_CCA_ONLY bit */
+ /** Shift position of \ref RAIL_TX_OPTION_CCA_ONLY bit. */
RAIL_TX_OPTION_CCA_ONLY_SHIFT = 7,
- /** Shift position of \ref RAIL_TX_OPTION_RESEND bit */
+ /** Shift position of \ref RAIL_TX_OPTION_RESEND bit. */
RAIL_TX_OPTION_RESEND_SHIFT = 8,
- /** Shift position of \ref RAIL_TX_OPTION_CONCURRENT_PHY_ID bit */
+ /** Shift position of \ref RAIL_TX_OPTION_CONCURRENT_PHY_ID bit. */
RAIL_TX_OPTION_CONCURRENT_PHY_ID_SHIFT = 9,
- /** A count of the choices in this enumeration. */
- RAIL_TX_OPTIONS_COUNT // Must be last
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_TX_OPTIONS_COUNT
};
/** A value representing no options enabled. */
@@ -3078,16 +3065,16 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
#define RAIL_TX_OPTIONS_DEFAULT RAIL_TX_OPTIONS_NONE
/**
- * An option when auto-ACK has been configured, enabled, and not TX paused, to
- * configure whether or not the transmitting node will listen for an ACK
+ * An option when Auto-Ack has been configured, enabled, and not TX paused, to
+ * configure whether or not the transmitting node will listen for an Ack
* response.
- * If this is false, the isAck flag in RAIL_RxPacketDetails_t of a received
+ * If this is false, the \ref RAIL_RxPacketDetails_t::isAck flag of a received
* packet will always be false.
- * If auto-ACK is enabled, for instance using \ref RAIL_ConfigAutoAck() or
+ * If Auto-Ack is enabled, for instance using \ref RAIL_ConfigAutoAck() or
* \ref RAIL_IEEE802154_Init(), and if this option is false, the radio
* transitions to \ref RAIL_AutoAckConfig_t::txTransitions's
* \ref RAIL_StateTransitions_t::success state directly after transmitting a
- * packet and does not wait for an ACK.
+ * packet and does not wait for an Ack.
*/
#define RAIL_TX_OPTION_WAIT_FOR_ACK (1UL << RAIL_TX_OPTION_WAIT_FOR_ACK_SHIFT)
@@ -3105,7 +3092,7 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
*
* This option should not be used when only one sync word has been configured.
*
- * @note There are a few special radio configurations (e.g. BLE Viterbi) that do
+ * @note There are a few special radio configurations (e.g., BLE Viterbi) that do
* not support transmitting different sync words.
*/
#define RAIL_TX_OPTION_SYNC_WORD_ID (1UL << RAIL_TX_OPTION_SYNC_WORD_ID_SHIFT)
@@ -3115,7 +3102,7 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
* option is not set or if both antenna options are set, then the transmit
* will occur on either antenna depending on the last receive or transmit
* selection. This option is only valid on platforms that support
- * \ref Antenna_Control and have been configured via RAIL_ConfigAntenna().
+ * \ref Antenna_Control and have been configured via \ref RAIL_ConfigAntenna().
*
* @note These TX antenna options do not control the antenna used for
* \ref Auto_Ack transmissions, which always occur on the same antenna
@@ -3128,7 +3115,7 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
* option is not set or if both antenna options are set, then the transmit
* will occur on either antenna depending on the last receive or transmit
* selection. This option is only valid on platforms that support
- * \ref Antenna_Control and have been configured via RAIL_ConfigAntenna().
+ * \ref Antenna_Control and have been configured via \ref RAIL_ConfigAntenna().
*
* @note These TX antenna options do not control the antenna used for
* \ref Auto_Ack transmissions, which always occur on the same antenna
@@ -3145,20 +3132,20 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
/**
* An option to use peak rather than average RSSI energy detected during
- * CSMA's RAIL_CsmaConfig_t::ccaDuration or LBT's
+ * CSMA's \ref RAIL_CsmaConfig_t::ccaDuration or LBT's \ref
* RAIL_LbtConfig_t::lbtDuration to determine whether the channel is clear
* or busy. This option is only valid when calling one of the CCA transmit
- * routines: \ref RAIL_StartCcaCsmaTx, \ref RAIL_StartCcaLbtTx, \ref
- * RAIL_StartScheduledCcaCsmaTx, or \ref RAIL_StartScheduledCcaLbtTx.
+ * routines: \ref RAIL_StartCcaCsmaTx(), \ref RAIL_StartCcaLbtTx(), \ref
+ * RAIL_StartScheduledCcaCsmaTx(), or \ref RAIL_StartScheduledCcaLbtTx().
*/
#define RAIL_TX_OPTION_CCA_PEAK_RSSI (1UL << RAIL_TX_OPTION_CCA_PEAK_RSSI_SHIFT)
/**
* An option to only perform the CCA (CSMA/LBT) operation but *not*
* automatically transmit if the channel is clear. This option is only valid
- * when calling one of the CCA transmit routines: \ref RAIL_StartCcaCsmaTx,
- * \ref RAIL_StartCcaLbtTx, \ref RAIL_StartScheduledCcaCsmaTx, or \ref
- * RAIL_StartScheduledCcaLbtTx.
+ * when calling one of the CCA transmit routines: \ref RAIL_StartCcaCsmaTx(),
+ * \ref RAIL_StartCcaLbtTx(), \ref RAIL_StartScheduledCcaCsmaTx(), or \ref
+ * RAIL_StartScheduledCcaLbtTx().
*
* Application can then use the \ref RAIL_EVENT_TX_CHANNEL_CLEAR to
* initiate transmit manually, e.g., giving it the opportunity to adjust
@@ -3167,7 +3154,7 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
* @note Configured state transitions to Rx or Idle are suspended during
* this CSMA/LBT operation. If packet reception occurs, the radio will
* return to the state it was in just prior to the CSMA/LBT operation
- * when that reception (including any auto-ACK response) is complete.
+ * when that reception (including any Auto-Ack response) is complete.
*/
#define RAIL_TX_OPTION_CCA_ONLY (1UL << RAIL_TX_OPTION_CCA_ONLY_SHIFT)
@@ -3206,13 +3193,13 @@ RAIL_ENUM_GENERIC(RAIL_TxOptions_t, uint32_t) {
typedef struct RAIL_TxPacketDetails {
/**
* The timestamp of the transmitted packet in the RAIL timebase,
- * filled in by RAIL_GetTxPacketDetails().
+ * filled in by \ref RAIL_GetTxPacketDetails().
*/
RAIL_PacketTimeStamp_t timeSent;
/**
- * Indicate whether the transmitted packet was an automatic ACK. In a generic
- * sense, an automatic ACK is defined as a packet sent in response to a
- * received ACK-requesting frame when auto-ACK is enabled. In a protocol
+ * Indicate whether the transmitted packet was an automatic Ack. In a generic
+ * sense, an automatic Ack is defined as a packet sent in response to a
+ * received Ack-requesting frame when Auto-Ack is enabled. In a protocol
* specific sense this definition may be more or less restrictive to match the
* specification and you should refer to that protocol's documentation.
*/
@@ -3224,7 +3211,7 @@ typedef struct RAIL_TxPacketDetails {
* @brief Enumerates the possible outcomes of what will occur if a
* scheduled TX ends up firing during RX. Because RX and TX can't
* happen at the same time, it is up to the user how the TX should be
- * handled. This enumeration is passed into RAIL_StartScheduledTx()
+ * handled. This enumeration is passed into \ref RAIL_StartScheduledTx()
* as part of \ref RAIL_ScheduleTxConfig_t.
*/
RAIL_ENUM(RAIL_ScheduledTxDuringRx_t) {
@@ -3367,7 +3354,7 @@ typedef struct RAIL_CsmaConfig {
* follow up with a random backoff operation starting at \ref csmaMinBoExp
* = 1 for the remaining iterations.
*/
- uint8_t csmaMinBoExp;
+ uint8_t csmaMinBoExp;
/**
* The maximum exponent for CSMA random backoff (2^exp - 1).
* It can range from 0 to \ref RAIL_MAX_CSMA_EXPONENT and must be greater
@@ -3375,26 +3362,28 @@ typedef struct RAIL_CsmaConfig {
* \n If both exponents are 0, a non-random fixed backoff of \ref ccaBackoff
* duration results.
*/
- uint8_t csmaMaxBoExp;
+ uint8_t csmaMaxBoExp;
/**
* The number of backoff-then-CCA iterations that can fail before reporting
* \ref RAIL_EVENT_TX_CHANNEL_BUSY. Typically ranges from 1 to \ref
* RAIL_MAX_LBT_TRIES; higher values are disallowed. A value 0 always
* transmits immediately without performing CSMA, similar to calling
- * RAIL_StartTx().
+ * \ref RAIL_StartTx().
*/
- uint8_t csmaTries;
+ uint8_t csmaTries;
/**
* The CCA RSSI threshold, in dBm, above which the channel is
* considered 'busy'.
*/
- int8_t ccaThreshold;
+ int8_t ccaThreshold;
/**
* The backoff unit period in RAIL's microsecond time base. It is
* multiplied by the random backoff exponential controlled by \ref
* csmaMinBoExp and \ref csmaMaxBoExp to determine the overall backoff
- * period. For random backoffs, any value above 511 microseconds will
- * be truncated. For fixed backoffs it can go up to 65535 microseconds.
+ * period. For random backoffs, any value above 32768 microseconds for
+ * the 'EFR Series 2' and 8192 microseconds for the 'Series 3' will be truncated
+ * for a single backoff period. Up to 255 backoff periods are supported.
+ * For fixed backoffs it can go up to 65535 microseconds.
*/
uint16_t ccaBackoff;
/**
@@ -3404,7 +3393,7 @@ typedef struct RAIL_CsmaConfig {
*
* @note Depending on the radio configuration, due to hardware constraints,
* the actual duration may be longer. Also, if the requested duration
- * is too large for the radio to accommodate, RAIL_StartCcaCsmaTx()
+ * is too large for the radio to accommodate, \ref RAIL_StartCcaCsmaTx()
* will fail returning \ref RAIL_STATUS_INVALID_PARAMETER.
*/
uint16_t ccaDuration;
@@ -3419,11 +3408,11 @@ typedef struct RAIL_CsmaConfig {
/**
* @def RAIL_CSMA_CONFIG_802_15_4_2003_2p4_GHz_OQPSK_CSMA
- * @brief RAIL_CsmaConfig_t initializer configuring CSMA per IEEE 802.15.4-2003
- * on 2.4 GHz OSPSK, commonly used by ZigBee.
+ * @brief \ref RAIL_CsmaConfig_t initializer configuring CSMA per IEEE 802.15.4-2003
+ * on 2.4 GHz OSPSK, commonly used by Zigbee.
*/
#define RAIL_CSMA_CONFIG_802_15_4_2003_2p4_GHz_OQPSK_CSMA { \
- /* CSMA per 802.15.4-2003 on 2.4 GHz OSPSK, commonly used by ZigBee */ \
+ /* CSMA per 802.15.4-2003 on 2.4 GHz OSPSK, commonly used by Zigbee */ \
.csmaMinBoExp = 3, /* 2^3-1 for 0..7 backoffs on 1st try */ \
.csmaMaxBoExp = 5, /* 2^5-1 for 0..31 backoffs on 3rd+ tries */ \
.csmaTries = 5, /* 5 tries overall (4 re-tries) */ \
@@ -3435,7 +3424,7 @@ typedef struct RAIL_CsmaConfig {
/**
* @def RAIL_CSMA_CONFIG_SINGLE_CCA
- * @brief RAIL_CsmaConfig_t initializer configuring a single CCA prior to TX.
+ * @brief \ref RAIL_CsmaConfig_t initializer configuring a single CCA prior to TX.
* It can be used to as a basis for implementing other channel access schemes
* with custom backoff delays. Users can override ccaBackoff with a fixed
* delay on each use.
@@ -3486,33 +3475,35 @@ typedef struct RAIL_LbtConfig {
/**
* The minimum backoff random multiplier.
*/
- uint8_t lbtMinBoRand;
+ uint8_t lbtMinBoRand;
/**
* The maximum backoff random multiplier.
* It must be greater than or equal to \ref lbtMinBoRand.
* \n If both backoff multipliers are identical, a non-random fixed backoff
* of \ref lbtBackoff times the multiplier (minimum 1) duration results.
*/
- uint8_t lbtMaxBoRand;
+ uint8_t lbtMaxBoRand;
/**
* The number of LBT iterations that can fail before reporting
* \ref RAIL_EVENT_TX_CHANNEL_BUSY. Typically ranges from 1 to \ref
* RAIL_MAX_LBT_TRIES; higher values are disallowed. A value 0 always
* transmits immediately without performing LBT, similar to calling
- * RAIL_StartTx().
+ * \ref RAIL_StartTx().
*/
- uint8_t lbtTries;
+ uint8_t lbtTries;
/**
* The LBT RSSI threshold, in dBm, above which the channel is
* considered 'busy'.
*/
- int8_t lbtThreshold;
+ int8_t lbtThreshold;
/**
* The backoff unit period, in RAIL's microsecond time base. It is
* multiplied by the random backoff multiplier controlled by \ref
* lbtMinBoRand and \ref lbtMaxBoRand to determine the overall backoff
- * period. For random backoffs, any value above 511 microseconds will
- * be truncated. For fixed backoffs, it can go up to 65535 microseconds.
+ * period. For random backoffs, any value above 32768 microseconds for
+ * the 'EFR Series 2' and 8192 microseconds for the 'Series 3' will be truncated
+ * for a single backoff period. Up to 255 backoff periods are supported.
+ * For fixed backoffs, it can go up to 65535 microseconds.
*/
uint16_t lbtBackoff;
/**
@@ -3520,7 +3511,7 @@ typedef struct RAIL_LbtConfig {
*
* @note Depending on the radio configuration, due to hardware constraints,
* the actual duration may be longer. Also, if the requested duration
- * is too large for the radio to accommodate, RAIL_StartCcaLbtTx()
+ * is too large for the radio to accommodate, \ref RAIL_StartCcaLbtTx()
* will fail returning \ref RAIL_STATUS_INVALID_PARAMETER.
*/
uint16_t lbtDuration;
@@ -3537,7 +3528,7 @@ typedef struct RAIL_LbtConfig {
/**
* @def RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V2_4_1
- * @brief RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1
+ * @brief \ref RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1
* V2.4.1 for a typical Sub-GHz band. To be practical, users should override
* lbtTries and/or lbtTimeout so channel access failure will be reported in a
* reasonable time frame rather than the unbounded time frame ETSI defined.
@@ -3556,7 +3547,7 @@ typedef struct RAIL_LbtConfig {
/**
* @def RAIL_LBT_CONFIG_ETSI_EN_300_220_1_V3_1_0
- * @brief RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1
+ * @brief \ref RAIL_LbtConfig_t initializer configuring LBT per ETSI 300 220-1
* V3.1.0 for a typical Sub-GHz band. To be practical, users should override
* lbtTries and/or lbtTimeout so channel access failure will be reported in a
* reasonable time frame rather than the unbounded time frame ETSI defined.
@@ -3599,9 +3590,9 @@ typedef struct RAIL_SyncWordConfig {
* @brief Transmit repeat options, in reality a bitmask.
*/
RAIL_ENUM_GENERIC(RAIL_TxRepeatOptions_t, uint16_t) {
- /** Shift position of \ref RAIL_TX_REPEAT_OPTION_HOP bit */
+ /** Shift position of \ref RAIL_TX_REPEAT_OPTION_HOP bit. */
RAIL_TX_REPEAT_OPTION_HOP_SHIFT = 0,
- /** Shift position of the \ref RAIL_TX_REPEAT_OPTION_START_TO_START bit */
+ /** Shift position of the \ref RAIL_TX_REPEAT_OPTION_START_TO_START bit. */
RAIL_TX_REPEAT_OPTION_START_TO_START_SHIFT = 1,
};
@@ -3663,7 +3654,7 @@ typedef struct RAIL_TxRepeatConfig {
} delayOrHop;
} RAIL_TxRepeatConfig_t;
-/// RAIL_TxRepeatConfig_t::iterations initializer configuring infinite
+/// \ref RAIL_TxRepeatConfig_t::iterations initializer configuring infinite
/// repeated transmissions.
#define RAIL_TX_REPEAT_INFINITE_ITERATIONS (0xFFFFU)
@@ -3745,8 +3736,8 @@ typedef struct RAIL_AddrConfig {
* - For filtering that only uses a single address field.
* - ADDRCONFIG_MATCH_TABLE_DOUBLE_FIELD for two field filtering where you
* - For filtering that uses two address fields in a configurations where
- * you want the following logic `((Field0, Index0) && (Field1, Index0))
- * || ((Field0, Index1) && (Field1, Index1)) || ...`
+ * you want the following logic `((Field_0, Index_0) && (Field_1, Index_0))
+ * || ((Field_0, Index_1) && (Field_1, Index_1)) || ...`
*/
uint32_t matchTable;
} RAIL_AddrConfig_t;
@@ -3824,9 +3815,9 @@ RAIL_ENUM_GENERIC(RAIL_RxOptions_t, uint32_t) {
* If this is set, RX will still be successful, even if
* the CRC does not pass the check. Defaults to false.
*
- * @note An expected ACK that fails CRC with this option set
- * will still be considered the expected ACK, terminating
- * the RAIL_AutoAckConfig_t::ackTimeout period.
+ * @note An expected Ack that fails CRC with this option set
+ * will still be considered the expected Ack, terminating
+ * the \ref RAIL_AutoAckConfig_t::ackTimeout period.
*/
#define RAIL_RX_OPTION_IGNORE_CRC_ERRORS (1UL << RAIL_RX_OPTION_IGNORE_CRC_ERRORS_SHIFT)
@@ -3837,8 +3828,8 @@ RAIL_ENUM_GENERIC(RAIL_RxOptions_t, uint32_t) {
* will contain which sync word was detected. Note, this only affects which
* sync word(s) are received, but not what each of the sync words actually are.
* This feature may not be available on some combinations of chips, PHYs, and
- * protocols. Use the compile time symbol RAIL_SUPPORTS_DUAL_SYNC_WORDS or
- * the runtime call RAIL_SupportsDualSyncWords() to check whether the
+ * protocols. Use the compile time symbol \ref RAIL_SUPPORTS_DUAL_SYNC_WORDS or
+ * the runtime call \ref RAIL_SupportsDualSyncWords() to check whether the
* platform supports this feature. Also, DUALSYNC may be incompatible
* with certain radio configurations. In these cases, setting this bit will
* be ignored. See the data sheet or support team for more details.
@@ -3877,7 +3868,7 @@ RAIL_ENUM_GENERIC(RAIL_RxOptions_t, uint32_t) {
* \ref Auto_Ack receive). If no antenna option is selected, the packet
* will be received on the last antenna used for receive or transmit.
* Defaults to false. This option is only valid on platforms that support
- * \ref Antenna_Control and have been configured via RAIL_ConfigAntenna().
+ * \ref Antenna_Control and have been configured via \ref RAIL_ConfigAntenna().
*/
#define RAIL_RX_OPTION_ANTENNA0 (1UL << RAIL_RX_OPTION_ANTENNA0_SHIFT)
@@ -3886,7 +3877,7 @@ RAIL_ENUM_GENERIC(RAIL_RxOptions_t, uint32_t) {
* \ref Auto_Ack receive). If no antenna option is selected, the packet
* will be received on the last antenna used for receive or transmit.
* Defaults to false. This option is only valid on platforms that support
- * \ref Antenna_Control and have been configured via RAIL_ConfigAntenna().
+ * \ref Antenna_Control and have been configured via \ref RAIL_ConfigAntenna().
*/
#define RAIL_RX_OPTION_ANTENNA1 (1UL << RAIL_RX_OPTION_ANTENNA1_SHIFT)
@@ -3898,7 +3889,7 @@ RAIL_ENUM_GENERIC(RAIL_RxOptions_t, uint32_t) {
* reception. This option is only valid when the antenna diversity
* field is properly configured via Simplicity Studio.
* This option is only valid on platforms that support
- * \ref Antenna_Control and have been configured via RAIL_ConfigAntenna().
+ * \ref Antenna_Control and have been configured via \ref RAIL_ConfigAntenna().
*/
#define RAIL_RX_OPTION_ANTENNA_AUTO (RAIL_RX_OPTION_ANTENNA0 | RAIL_RX_OPTION_ANTENNA1)
@@ -4185,7 +4176,7 @@ typedef const void *RAIL_RxPacketHandle_t;
* completed and awaiting processing, including memory pointers to
* its data in the circular receive FIFO buffer. This packet information
* refers to remaining packet data that has not already been consumed
- * by RAIL_ReadRxFifo().
+ * by \ref RAIL_ReadRxFifo().
*
* @note Because the receive FIFO buffer is circular, a packet might start
* near the end of the buffer and wrap around to the beginning of
@@ -4223,7 +4214,7 @@ typedef struct RAIL_RxPacketInfo {
/**
* @struct RAIL_RxPacketDetails_t
- * @brief Received packet details obtained via RAIL_GetRxPacketDetails()
+ * @brief Received packet details obtained via \ref RAIL_GetRxPacketDetails()
* or RAIL_GetRxPacketDetailsAlt().
*
* @note Certain details are always available, while others are only available
@@ -4249,27 +4240,28 @@ typedef struct RAIL_RxPacketDetails {
*/
bool crcPassed;
/**
- * Indicate whether the received packet was the expected ACK.
- * It is true for the expected ACK and false otherwise.
+ * Indicate whether the received packet was the expected Ack.
+ * It is true for the expected Ack and false otherwise.
*
* It is always available.
*
- * An expected ACK is defined as a protocol-correct ACK packet
+ * An expected Ack is defined as a protocol-correct Ack packet
* successfully-received (\ref RAIL_RX_PACKET_READY_SUCCESS or
* \ref RAIL_RX_PACKET_READY_CRC_ERROR) and whose sync word was
* detected within the
* RAIL_AutoAckConfig_t::ackTimeout period following a transmit
* which specified \ref RAIL_TX_OPTION_WAIT_FOR_ACK, requested
- * an ACK, and auto-ACK is enabled. When true, the ackTimeout
+ * an Ack, and Auto-Ack is enabled. When true, the ackTimeout
* period was terminated so no \ref RAIL_EVENT_RX_ACK_TIMEOUT
* will be subsequently posted for the transmit.
*
- * A "protocol-correct ACK" applies to the 802.15.4 or Z-Wave
+ * A "protocol-correct Ack" applies to the 802.15.4 or Z-Wave
* protocols for which RAIL can discern the frame type and match
- * the ACK's sequence number with that of the transmitted frame.
+ * the Ack's sequence number with that of the transmitted frame.
* For other protocols, the first packet successfully-received
- * whose sync word was detected within the ackTimeout period is
- * considered the expected ACK; upper layers are responsible for
+ * whose sync word was detected within the \ref
+ * RAIL_AutoAckConfig_t::ackTimeout period is
+ * considered the expected Ack; upper layers are responsible for
* confirming this.
*/
bool isAck;
@@ -4306,7 +4298,7 @@ typedef struct RAIL_RxPacketDetails {
* and the SUN OFDM PHYs.
* In BLE cases, a value of 0 marks a 500 kbps packet, a value of 1 marks a 125
* kbps packet, and a value of 2 marks a 1 Mbps packet.
- * Also, see \ref RAIL_BLE_ConfigPhyCoded and \ref RAIL_BLE_ConfigPhySimulscan.
+ * Also, see \ref RAIL_BLE_ConfigPhyCoded() and \ref RAIL_BLE_ConfigPhySimulscan().
*
* In SUN OFDM cases, the value corresponds to the numerical value of the
* Modulation and Coding Scheme (MCS) level of the last received packet.
@@ -4370,14 +4362,14 @@ typedef uint8_t (*RAIL_ConvertLqiCallback_t)(uint8_t lqi,
int8_t rssi);
/**
- * @struct RAIL_AutoLnaBypassConfig_t
- * @brief Configures the automatic LNA bypass.
+ * @struct RAIL_PrsLnaBypassConfig_t
+ * @brief Configures the automatic PRS LNA bypass.
*/
-typedef struct RAIL_AutoLnaBypassConfig {
+typedef struct RAIL_PrsLnaBypassConfig {
/**
* Maximum time in microseconds to wait for frame detection after the LNA has
- * been bypassed. It must be greater than 0 to enable automatic LNA bypass
- * with \ref RAIL_EnableAutoLnaBypass().
+ * been bypassed. It must be greater than 0 to enable automatic PRS LNA
+ * bypass with \ref RAIL_EnablePrsLnaBypass().
*/
uint32_t timeoutUs;
/**
@@ -4406,26 +4398,28 @@ typedef struct RAIL_AutoLnaBypassConfig {
*/
uint8_t deltaRssiDbm;
/**
- * GPIO port used for the bypass.
- */
- uint8_t port;
- /**
- * GPIO pin used for the bypass.
+ * PRS Channel used for the bypass.
+ * PRS_GetFreeChannel() can be use to find a free channel. Then the signal
+ * can be routed to GPIO pin and port using PRS_PinOutput(). This allows
+ * logical operations with other PRS channels and so to adapt to the FEM
+ * control logic table. Any call to PRS_Combine() with
+ * \ref RAIL_PrsLnaBypassConfig_t::prsChannel as chA must be done after
+ * the \ref RAIL_EnablePrsLnaBypass() call.
*/
- uint8_t pin;
+ uint8_t prsChannel;
/**
- * GPIO DOUT configuration for bypass.
+ * PRS signal polarity for bypass.
*
- * With a polarity of 1, GPIO DOUT is set to 1 for bypass and 0 for un-bypass.
- * with a polarity of 0, GPIO DOUT is set to 0 for bypass and 1 for un-bypass.
+ * With a polarity of 1, PRS signal is set to 1 for bypass and 0 for un-bypass.
+ * with a polarity of 0, PRS signal is set to 0 for bypass and 1 for un-bypass.
*/
bool polarity;
-} RAIL_AutoLnaBypassConfig_t;
+} RAIL_PrsLnaBypassConfig_t;
/** @} */ // end of group Receive
/******************************************************************************
- * Auto-ACK Structures
+ * Auto-Ack Structures
*****************************************************************************/
/**
* @addtogroup Auto_Ack
@@ -4433,50 +4427,50 @@ typedef struct RAIL_AutoLnaBypassConfig {
*/
/**
* @struct RAIL_AutoAckConfig_t
- * @brief Enable/disable the auto-ACK algorithm, based on "enable".
+ * @brief Enable/disable the Auto-Ack algorithm, based on "enable".
*
- * The structure provides a default state (the "success" of tx/rxTransitions
- * when ACKing is enabled) for the radio to return to after an ACK
- * operation occurs (transmitting or attempting to receive an ACK), or normal
- * state transitions to return to in the case ACKing is
- * disabled. Regardless whether the ACK operation was successful, the
+ * The structure provides a default state (the "success" of TX/RX transitions
+ * when Acking is enabled) for the radio to return to after an Ack
+ * operation occurs (transmitting or attempting to receive an Ack), or normal
+ * state transitions to return to in the case Acking is
+ * disabled. Regardless whether the Ack operation was successful, the
* radio returns to the specified success state.
*
- * ackTimeout specifies how long to stay in receive and wait for an ACK
- * to start (sync detected) before issuing a RAIL_EVENT_RX_ACK_TIMEOUT
+ * ackTimeout specifies how long to stay in receive and wait for an Ack
+ * to start (sync detected) before issuing a \ref RAIL_EVENT_RX_ACK_TIMEOUT
* event and return to the default state.
*/
typedef struct RAIL_AutoAckConfig {
/**
- * Indicate whether auto-ACKing should be enabled or disabled.
+ * Indicate whether Auto-Acking should be enabled or disabled.
*/
bool enable;
// Unnamed 'uint8_t reserved1[1]' pad byte field here.
/**
- * Define the RX ACK timeout duration in microseconds up to 65535
- * microseconds maximum. Only applied when auto-ACKing is enabled.
- * The ACK timeout timer starts at the completion of a \ref
+ * Define the RX Ack timeout duration in microseconds up to 65535
+ * microseconds maximum. Only applied when Auto-Acking is enabled.
+ * The Ack timeout timer starts at the completion of a \ref
* RAIL_TX_OPTION_WAIT_FOR_ACK transmit and expires only while waiting
* for a packet (prior to SYNC detect), triggering \ref
* RAIL_EVENT_RX_ACK_TIMEOUT. During packet reception that event is
* held off until packet completion and suppressed entirely if the
- * received packet is the expected ACK.
+ * received packet is the expected Ack.
*/
uint16_t ackTimeout;
/**
- * State transitions to do after receiving a packet. When auto-ACKing is
+ * State transitions to do after receiving a packet. When Auto-Acking is
* enabled, the "error" transition is always ignored and the radio will
- * return to the "success" state after any ACKing sequence
+ * return to the "success" state after any Acking sequence
* (\ref RAIL_RF_STATE_RX or \ref RAIL_RF_STATE_IDLE).
- * See \ref RAIL_ConfigAutoAck for more details on this.
+ * See \ref RAIL_ConfigAutoAck() for more details on this.
*/
RAIL_StateTransitions_t rxTransitions;
/**
- * State transitions to do after transmitting a packet. When auto-ACKing is
+ * State transitions to do after transmitting a packet. When Auto-Acking is
* enabled, the "error" transition is always ignored and the radio will
- * return to the "success" state after any ACKing sequence
+ * return to the "success" state after any Acking sequence
* (\ref RAIL_RF_STATE_RX or \ref RAIL_RF_STATE_IDLE).
- * See \ref RAIL_ConfigAutoAck for more details on this.
+ * See \ref RAIL_ConfigAutoAck() for more details on this.
*/
RAIL_StateTransitions_t txTransitions;
} RAIL_AutoAckConfig_t;
@@ -4531,8 +4525,8 @@ typedef struct RAIL_AntennaConfig {
* value specifying the internal default RF path. It is ignored
* on EFR32 parts that have only one RF path bonded
* out and on EFR32xG28 dual-band OPNs where the appropriate
- * RF path is automatically set by RAIL to 0 for 2.4GHZ band
- * and 1 for SubGHz band PHYs. On EFR32xG23 and EFR32xG28
+ * RF path is automatically set by RAIL to 0 for 2.4 GHz band
+ * and 1 for Sub-GHz band PHYs. On EFR32xG23 and EFR32xG28
* single-band OPNs where both RF paths are bonded out this can
* be set to \ref RAIL_ANTENNA_AUTO to effect internal RF path
* diversity on PHYs supporting diversity. This avoids the need
@@ -4577,7 +4571,7 @@ typedef struct RAIL_AntennaConfig {
* @struct RAIL_HFXOThermistorConfig_t
* @brief Configure the port and pin of the thermistor.
*
- * @note This configuration is OPN dependent.
+ * @note This configuration is chip OPN dependent.
*/
typedef struct RAIL_HFXOThermistorConfig {
/**
@@ -4659,7 +4653,7 @@ typedef uint32_t RAIL_CalMask_t;
/** EFR32-specific HFXO compensation bit.
* (Ignored if platform lacks \ref RAIL_SUPPORTS_HFXO_COMPENSATION.) */
#define RAIL_CAL_COMPENSATE_HFXO (0x00000004U)
-/** EFR32-specific IR calibration bit */
+/** EFR32-specific IR calibration bit. */
#define RAIL_CAL_RX_IRCAL (0x00010000U)
/** EFR32-specific Tx IR calibration bit.
* (Ignored if platform lacks \ref RAIL_SUPPORTS_OFDM_PA.) */
@@ -4700,7 +4694,7 @@ typedef uint32_t RAIL_CalMask_t;
typedef uint32_t RAIL_RxIrCalValues_t[RAIL_MAX_RF_PATHS];
/**
- * A define to set all RAIL_RxIrCalValues_t values to uninitialized.
+ * A define to set all \ref RAIL_RxIrCalValues_t values to uninitialized.
*
* This define can be used when you have no data to pass to the calibration
* routines but wish to compute and save all possible calibrations.
@@ -4716,7 +4710,7 @@ typedef uint32_t RAIL_RxIrCalValues_t[RAIL_MAX_RF_PATHS];
* This definition contains the set of persistent calibration values for
* OFDM on EFR32. You can set these beforehand and apply them at startup
* to save the time required to compute them. Any of these values may be
- * set to RAIL_IRCAL_INVALID_VALUE to force the code to compute that
+ * set to \ref RAIL_CAL_INVALID_VALUE to force the code to compute that
* calibration value.
*
* Only supported on platforms with \ref RAIL_SUPPORTS_OFDM_PA enabled.
@@ -4729,7 +4723,7 @@ typedef struct RAIL_TxIrCalValues {
} RAIL_TxIrCalValues_t;
/**
- * A define to set all RAIL_TxIrCalValues_t values to uninitialized.
+ * A define to set all \ref RAIL_TxIrCalValues_t values to uninitialized.
*
* This define can be used when you have no data to pass to the calibration
* routines but wish to compute and save all possible calibrations.
@@ -4746,7 +4740,7 @@ typedef struct RAIL_TxIrCalValues {
* This definition contains the set of persistent calibration values for
* EFR32. You can set these beforehand and apply them at startup to save the
* time required to compute them. Any of these values may be set to
- * RAIL_IRCAL_INVALID_VALUE to force the code to compute that calibration value.
+ * \ref RAIL_CAL_INVALID_VALUE to force the code to compute that calibration value.
*/
typedef struct RAIL_IrCalValues {
/** RX Image Rejection (IR) calibration value(s) */
@@ -4756,7 +4750,7 @@ typedef struct RAIL_IrCalValues {
} RAIL_IrCalValues_t;
/**
- * A define to set all RAIL_IrCalValues_t values to uninitialized.
+ * A define to set all \ref RAIL_IrCalValues_t values to uninitialized.
*
* This define can be used when you have no data to pass to the calibration
* routines but wish to compute and save all possible calibrations.
@@ -4779,24 +4773,24 @@ typedef struct RAIL_IrCalValues {
*
* This structure contains the set of persistent calibration values for
* EFR32. You can set these beforehand and apply them at startup to save the
- * time required to compute them. Any of these values may be set to
+ * time required to compute them. Any of these values may be set to \ref
* RAIL_CAL_INVALID_VALUE to force the code to compute that calibration value.
*/
typedef RAIL_IrCalValues_t RAIL_CalValues_t;
/**
- * A define to set all RAIL_CalValues_t values to uninitialized.
+ * A define to set all \ref RAIL_CalValues_t values to uninitialized.
*
* This define can be used when you have no data to pass to the calibration
* routines but wish to compute and save all possible calibrations.
*/
#define RAIL_CALVALUES_UNINIT RAIL_IRCALVALUES_UNINIT
-/// Use this value with either TX or RX values in RAIL_SetPaCTune
+/// Use this value with either TX or RX values in \ref RAIL_SetPaCTune()
/// to use whatever value is already set and do no update. This
/// value is provided to provide consistency across EFR32 chips,
/// but technically speaking, all PA capacitance tuning values are
-/// invalid on EFR32XG21 parts, as RAIL_SetPaCTune is not supported
+/// invalid on EFR32xG21 parts, as \ref RAIL_SetPaCTune() is not supported
/// on those parts.
#define RAIL_PACTUNE_IGNORE (255U)
@@ -4831,16 +4825,19 @@ RAIL_ENUM(RAIL_RfSenseBand_t) {
RAIL_RFSENSE_OFF,
/** RF Sense is in 2.4 GHz band. */
RAIL_RFSENSE_2_4GHZ,
- /** RF Sense is in sub-GHz band. */
+ /** RF Sense is in Sub-GHz band. */
RAIL_RFSENSE_SUBGHZ,
/** RF Sense is in both bands. */
RAIL_RFSENSE_ANY,
- /** Must be last before sensitivity options. */
+ /**
+ * A count of the basic choices in this enumeration.
+ * Must be last before sensitivity options.
+ */
RAIL_RFSENSE_MAX,
/** RF Sense is in low sensitivity 2.4 GHz band */
RAIL_RFSENSE_2_4GHZ_LOW_SENSITIVITY = RAIL_RFSENSE_LOW_SENSITIVITY_OFFSET + RAIL_RFSENSE_2_4GHZ,
- /** RF Sense is in low sensitivity sub-GHz band */
+ /** RF Sense is in low sensitivity Sub-GHz band */
RAIL_RFSENSE_SUBGHZ_LOW_SENSITIVITY = RAIL_RFSENSE_LOW_SENSITIVITY_OFFSET + RAIL_RFSENSE_SUBGHZ,
/** RF Sense is in low sensitivity for both bands. */
RAIL_RFENSE_ANY_LOW_SENSITIVITY = RAIL_RFSENSE_LOW_SENSITIVITY_OFFSET + RAIL_RFSENSE_ANY,
@@ -4997,15 +4994,16 @@ RAIL_ENUM(RAIL_RxChannelHoppingMode_t) {
*/
RAIL_RX_CHANNEL_HOPPING_MODE_VT = 8,
/**
- * This is the transmit channel used for auto-ACK if the regular channel,
+ * This is the transmit channel used for Auto-Ack if the regular channel,
* specified in RAIL_RxChannelHoppingConfigEntry::parameter, is
* optimized for RX which may degrade some TX performance
*/
RAIL_RX_CHANNEL_HOPPING_MODE_TX = 9,
/**
* A count of the basic choices in this enumeration.
+ * Must be last before _WITH_OPTIONS twins.
*/
- RAIL_RX_CHANNEL_HOPPING_MODES_COUNT = 10, // Must be last before _WITH_OPTIONS twins
+ RAIL_RX_CHANNEL_HOPPING_MODES_COUNT,
/**
* The start of equivalent modes requiring non-default \ref
@@ -5117,16 +5115,16 @@ typedef uint32_t RAIL_RxChannelHoppingParameter_t;
* on a per-hop basis.
*/
RAIL_ENUM(RAIL_RxChannelHoppingOptions_t) {
- /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_SYNTH_CAL bit */
+ /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_SYNTH_CAL bit. */
RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_SYNTH_CAL_SHIFT = 0,
- /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_DC_CAL bit */
+ /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_DC_CAL bit. */
RAIL_RX_CHANNEL_HOPPING_OPTION_SKIP_DC_CAL_SHIFT = 1,
- /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_RSSI_THRESHOLD bit */
+ /** Shift position of \ref RAIL_RX_CHANNEL_HOPPING_OPTION_RSSI_THRESHOLD bit. */
RAIL_RX_CHANNEL_HOPPING_OPTION_RSSI_THRESHOLD_SHIFT = 2,
/** Stop hopping on this hop. */
RAIL_RX_CHANNEL_HOPPING_OPTION_STOP_SHIFT = 3,
- /** A count of the choices in this enumeration. */
- RAIL_RX_CHANNEL_HOPPING_OPTIONS_COUNT // Must be last
+ /** A count of the choices in this enumeration. Must be last. */
+ RAIL_RX_CHANNEL_HOPPING_OPTIONS_COUNT
};
/** A value representing no options enabled. */
@@ -5326,7 +5324,7 @@ typedef struct RAIL_RxChannelHoppingConfigEntry {
* channel indicated by this entry.
*/
uint32_t delay;
- /** @deprecated Set delayMode to RAIL_RX_CHANNEL_HOPPING_DELAY_MODE_STATIC. */
+ /** @deprecated Set delayMode to \ref RAIL_RX_CHANNEL_HOPPING_DELAY_MODE_STATIC. */
RAIL_RxChannelHoppingDelayMode_t delayMode;
/**
* Bitmask of various options that can be applied to the current
@@ -5386,8 +5384,8 @@ typedef struct RAIL_RxChannelHoppingConfig {
/**
* A pointer to the first element of an array of \ref
* RAIL_RxChannelHoppingConfigEntry_t that represents the channels
- * used during channel hopping. The length of this array must be
- * numberOfChannels.
+ * used during channel hopping. This array must have numberOfChannels
+ * entries.
*/
RAIL_RxChannelHoppingConfigEntry_t *entries;
} RAIL_RxChannelHoppingConfig_t;
@@ -5399,20 +5397,18 @@ typedef struct RAIL_RxChannelHoppingConfig {
typedef struct RAIL_RxDutyCycleConfig {
/** The mode by which RAIL determines when to exit RX. */
RAIL_RxChannelHoppingMode_t mode;
+ // Unnamed 'uint8_t reserved[3]' pad byte field here.
/**
* Depending on the 'mode' parameter that was specified, this member
* is used to parameterize that mode. See the comments on each value of
* \ref RAIL_RxChannelHoppingMode_t to learn what to specify here.
*/
- // Unnamed 'uint8_t reserved[3]' pad byte field here.
RAIL_RxChannelHoppingParameter_t parameter;
/**
* Idle time in microseconds to wait before re-entering RX.
*/
uint32_t delay;
- /**
- * Indicate how the timing specified in 'delay' should be applied.
- */
+ /** @deprecated Set delayMode to \ref RAIL_RX_CHANNEL_HOPPING_DELAY_MODE_STATIC. */
RAIL_RxChannelHoppingDelayMode_t delayMode;
/**
* Bitmask of various options that can be applied to the current
@@ -5452,7 +5448,7 @@ typedef struct RAIL_RxDutyCycleConfig {
* \ref RAIL_SetFreqOffset().
*
* The units are chip-specific. For EFR32 they are radio synthesizer
- * resolution steps (synthTicks) and is limited to 15 bits.
+ * resolution steps (synth ticks) and is limited to 15 bits.
* A value of \ref RAIL_FREQUENCY_OFFSET_INVALID
* means that this value is invalid.
*/
@@ -5519,12 +5515,14 @@ RAIL_ENUM(RAIL_StreamMode_t) {
RAIL_STREAM_PN9_STREAM = 1,
/** 101010 sequence. */
RAIL_STREAM_10_STREAM = 2,
- /** An unmodulated carrier wave with no change to PLL BW. Same as RAIL_STREAM_CARRIER_WAVE. */
+ /** An unmodulated carrier wave with no change to PLL BW. Same as \ref RAIL_STREAM_CARRIER_WAVE. */
RAIL_STREAM_CARRIER_WAVE_PHASENOISE = 3,
- /** ramp sequence starting at a different offset for consecutive packets. Only available for some modulations. Fall back to RAIL_STREAM_PN9_STREAM if not available. */
+ /** ramp sequence starting at a different offset for consecutive packets. Only available for some modulations. Fall back to \ref RAIL_STREAM_PN9_STREAM if not available. */
RAIL_STREAM_RAMP_STREAM = 4,
- /** An unmodulated carrier wave not centered on DC but shifted roughly by channel_bandwidth/6 allowing an easy check of the residual DC. Only available for OFDM PA. Fall back to RAIL_STREAM_CARRIER_WAVE_PHASENOISE if not available. */
+ /** An unmodulated carrier wave not centered on DC but shifted roughly by channel_bandwidth/6 allowing an easy check of the residual DC. Only available for OFDM PA. Fall back to \ref RAIL_STREAM_CARRIER_WAVE_PHASENOISE if not available. */
RAIL_STREAM_CARRIER_WAVE_SHIFTED = 5,
+ /** 10001000 sequence. */
+ RAIL_STREAM_1000_STREAM = 6,
/** A count of the choices in this enumeration. Must be last. */
RAIL_STREAM_MODES_COUNT
};
@@ -5537,6 +5535,7 @@ RAIL_ENUM(RAIL_StreamMode_t) {
#define RAIL_STREAM_CARRIER_WAVE_PHASENOISE ((RAIL_StreamMode_t) RAIL_STREAM_CARRIER_WAVE_PHASENOISE)
#define RAIL_STREAM_RAMP_STREAM ((RAIL_StreamMode_t) RAIL_STREAM_RAMP_STREAM)
#define RAIL_STREAM_CARRIER_WAVE_SHIFTED ((RAIL_StreamMode_t) RAIL_STREAM_CARRIER_WAVE_SHIFTED)
+#define RAIL_STREAM_1000_STREAM ((RAIL_StreamMode_t) RAIL_STREAM_1000_STREAM)
#define RAIL_STREAM_MODES_COUNT ((RAIL_StreamMode_t) RAIL_STREAM_MODES_COUNT)
#endif//DOXYGEN_SHOULD_SKIP_THIS
@@ -5608,7 +5607,7 @@ typedef struct RAIL_VerifyConfig {
* @brief VDET Modes.
*
* The VDET Mode is passed to \ref RAIL_ConfigVdet() via \ref RAIL_VdetConfig_t.
- * The \ref rail_util_vdet allows customers to measure their Front End Module performance
+ * The \ref rail_util_vdet component allows customers to measure their Front End Module performance
* at specified points in the Transmit packet.
*/
RAIL_ENUM(RAIL_Vdet_Mode_t) {
@@ -5624,10 +5623,10 @@ RAIL_ENUM(RAIL_Vdet_Mode_t) {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_VDET_MODE_DISABLED ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_DISABLED)
-#define RAIL_VDET_MODE_AUTOMATIC ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_AUTOMATIC)
-#define RAIL_VDET_MODE_IMMEDIATE ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_IMMEDIATE)
-#define RAIL_VDET_MODE_COUNT ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_COUNT)
+#define RAIL_VDET_MODE_DISABLED ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_DISABLED)
+#define RAIL_VDET_MODE_AUTOMATIC ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_AUTOMATIC)
+#define RAIL_VDET_MODE_IMMEDIATE ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_IMMEDIATE)
+#define RAIL_VDET_MODE_COUNT ((RAIL_Vdet_Mode_t) RAIL_VDET_MODE_COUNT)
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
@@ -5642,7 +5641,7 @@ RAIL_ENUM(RAIL_Vdet_Mode_t) {
/**
* @enum RAIL_Vdet_Resolution_t
- * @brief VDET Resolution for the AuxADC.
+ * @brief VDET Resolution for the Aux ADC.
*
* The VDET Resolution is passed to \ref RAIL_ConfigVdet() via \ref RAIL_VdetConfig_t.
* Shows available resolution options.
@@ -5660,10 +5659,10 @@ RAIL_ENUM(RAIL_Vdet_Resolution_t) {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_VDET_RESOLUTION_10_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_10_BIT)
-#define RAIL_VDET_RESOLUTION_11_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_11_BIT)
-#define RAIL_VDET_RESOLUTION_12_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_12_BIT)
-#define RAIL_VDET_RESOLUTION_COUNT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_COUNT)
+#define RAIL_VDET_RESOLUTION_10_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_10_BIT)
+#define RAIL_VDET_RESOLUTION_11_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_11_BIT)
+#define RAIL_VDET_RESOLUTION_12_BIT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_12_BIT)
+#define RAIL_VDET_RESOLUTION_COUNT ((RAIL_Vdet_Resolution_t) RAIL_VDET_RESOLUTION_COUNT)
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
@@ -5736,11 +5735,11 @@ RAIL_ENUM(RAIL_Vdet_Status_t) {
* A structure of type \ref RAIL_VdetConfig_t is passed to \ref RAIL_ConfigVdet().
*/
typedef struct RAIL_VdetConfig {
- /** Mode for the VDET */
+ /** Mode for the VDET. */
RAIL_Vdet_Mode_t mode;
- /** Resolution to use for the capture */
+ /** Resolution to use for the capture. */
RAIL_Vdet_Resolution_t resolution;
- /** Delay in us for the capture from Tx Start in \ref RAIL_VDET_MODE_AUTOMATIC. Minimum 5us, maximum 100ms*/
+ /** Delay in microseconds for the capture from Tx Start in \ref RAIL_VDET_MODE_AUTOMATIC. Minimum 5 us, maximum 100000 us. */
uint32_t delayUs;
} RAIL_VdetConfig_t;
@@ -5783,7 +5782,6 @@ typedef struct RAIL_ChipTempConfig {
/**
* @struct RAIL_ChipTempMetrics_t
* @brief Data used for thermal protection.
- *
*/
typedef struct RAIL_ChipTempMetrics {
/** Store chip temperature for metrics */
@@ -5823,7 +5821,6 @@ RAIL_ENUM(RAIL_RetimeOptions_t) {
RAIL_RETIME_OPTION_LCD_SHIFT = 3,
};
-// RAIL_RetimeOptions_t bitmasks
/**
* An option to configure HFXO retiming.
*/
@@ -5888,7 +5885,7 @@ RAIL_ENUM(RAIL_RetimeOptions_t) {
* Detailed Timing Structures
*****************************************************************************/
/**
- * @addtogroup Detailed Timing
+ * @addtogroup Detailed_Timing Detailed Timing
* @{
*/
@@ -5916,16 +5913,230 @@ RAIL_ENUM(RAIL_TimerTickType_t) {
RAIL_TIMER_TICK_RXSTAMP = 2,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_TIMER_TICK_DEFAULT ((RAIL_TimerTickType_t) RAIL_TIMER_TICK_DEFAULT)
+#define RAIL_TIMER_TICK_DEFAULT ((RAIL_TimerTickType_t) RAIL_TIMER_TICK_DEFAULT)
#define RAIL_TIMER_TICK_RADIO_STATE ((RAIL_TimerTickType_t) RAIL_TIMER_TICK_RADIO_STATE)
-#define RAIL_TIMER_TICK_RXSTAMP ((RAIL_TimerTickType_t) RAIL_TIMER_TICK_RXSTAMP)
+#define RAIL_TIMER_TICK_RXSTAMP ((RAIL_TimerTickType_t) RAIL_TIMER_TICK_RXSTAMP)
+#endif //DOXYGEN_SHOULD_SKIP_THIS
/** @} */ // end of group Detailed Timing
#endif //DOXYGEN_SHOULD_SKIP_THIS
-/** @} */ // end of RAIL_API
+/******************************************************************************
+ * TrustZone
+ *****************************************************************************/
+/**
+ * @addtogroup TrustZone
+ * @{
+ */
+
+/**
+ * @typedef RAIL_TZ_ChangedDcdcCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_ChangedDcdc().
+ *
+ * @return Status code indicating success of the function call.
+ */
+typedef RAIL_Status_t (*RAIL_TZ_ChangedDcdcCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_ConfigAntennaGpioCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_ConfigAntennaGpio().
+ *
+ * @param[in] config A pointer to a configuration structure applied to the relevant Antenna
+ * Configuration registers. A NULL configuration will produce undefined behavior.
+ * @return Status code indicating success of the function call.
+ *
+ */
+typedef RAIL_Status_t (*RAIL_TZ_ConfigAntennaGpioCallbackPtr_t)(const RAIL_AntennaConfig_t *config);
+
+/**
+ * @typedef RAIL_TZ_RadioClockEnableCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_RadioClockEnable().
+ *
+ */
+typedef void (*RAIL_TZ_RadioClockEnableCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_GetRadioClockFreqHzCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_GetRadioClockFreqHz().
+ *
+ * @return Radio subsystem clock frequency in Hz.
+ *
+ */
+typedef uint32_t (*RAIL_TZ_GetRadioClockFreqHzCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_RfecaClockEnableCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_RfecaClockEnable().
+ *
+ */
+typedef void (*RAIL_TZ_RfecaClockEnableCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_RfecaIsClockEnabledCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_RfecaIsClockEnabled().
+ *
+ * @return true if RFECA clocks are enabled; false otherwise
+ *
+ */
+typedef bool (*RAIL_TZ_RfecaIsClockEnabledCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_ReadInternalTemperatureCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_ReadInternalTemperature().
+ *
+ * @param[out] internalTemperatureKelvin A pointer to the internal temperature
+ * in Kelvin.
+ * @param[in] enableTemperatureInterrupts Indicate whether temperature
+ * interrupts are enabled.
+ * @return Status code indicating success of the function call.
+ *
+ */
+typedef RAIL_Status_t (*RAIL_TZ_ReadInternalTemperatureCallbackPtr_t)(uint16_t *internalTemperatureKelvin,
+ bool enableTemperatureInterrupts);
+
+/**
+ * @typedef RAIL_TZ_EnableSecureRadioIrqsCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_EnableSecureRadioIrqs().
+ *
+ */
+typedef void (*RAIL_TZ_EnableSecureRadioIrqsCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_DisableSecureRadioIrqsCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_DisableSecureRadioIrqs().
+ *
+ */
+typedef void (*RAIL_TZ_DisableSecureRadioIrqsCallbackPtr_t)(void);
+
+/**
+ * @typedef RAIL_TZ_RadioPerformM2mLdmaCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_RadioPerformM2mLdma().
+ *
+ * @param[in] pDest A pointer to the destination data.
+ * @param[in] pSrc A pointer to the source data.
+ * @param[in] numWords Number of words to transfer.
+ * @return Status code indicating success of the function call.
+ *
+ */
+typedef RAIL_Status_t (*RAIL_TZ_RadioPerformM2mLdmaCallbackPtr_t)(uint32_t *pDest,
+ const uint32_t *pSrc,
+ uint32_t numWords);
+
+/**
+ * @typedef RAIL_TZ_ConfigureHfxoCallbackPtr_t
+ * @brief A pointer to the callback used to switch to secure world and run
+ * \ref RAIL_TZ_ConfigureHfxo().
+ *
+ */
+typedef RAIL_Status_t (*RAIL_TZ_ConfigureHfxoCallbackPtr_t)(void);
+
+/**
+ * @struct RAIL_TZ_Config_t
+ * @brief Gather RAIL TrustZone callbacks pointers and booleans indicating
+ * peripheral secure configuration.
+ */
+typedef struct RAIL_TZ_Config {
+ /**
+ * See \ref RAIL_TZ_ChangedDcdcCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU is a non-secure peripheral.
+ */
+ RAIL_TZ_ChangedDcdcCallbackPtr_t changedDcdcCallback;
+ /**
+ * See \ref RAIL_TZ_ConfigAntennaGpioCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU and GPIO are non-secure
+ * peripherals.
+ */
+ RAIL_TZ_ConfigAntennaGpioCallbackPtr_t configAntennaGpioCallback;
+ /**
+ * See \ref RAIL_TZ_RadioClockEnableCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU is a non-secure peripheral.
+ */
+ RAIL_TZ_RadioClockEnableCallbackPtr_t radioClockEnableCallback;
+ /**
+ * See \ref RAIL_TZ_GetRadioClockFreqHzCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU is a non-secure peripheral.
+ */
+ RAIL_TZ_GetRadioClockFreqHzCallbackPtr_t getRadioClockFreqHzCallback;
+ /**
+ * See \ref RAIL_TZ_RfecaClockEnableCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU is a non-secure peripheral.
+ */
+ RAIL_TZ_RfecaClockEnableCallbackPtr_t rfecaClockEnableCallback;
+ /**
+ * See \ref RAIL_TZ_RfecaIsClockEnabledCallbackPtr_t.
+ * In non-secure world, it must be NULL if CMU is a non-secure peripheral.
+ */
+ RAIL_TZ_RfecaIsClockEnabledCallbackPtr_t rfecaIsClockEnabledCallback;
+ /**
+ * See \ref RAIL_TZ_ReadInternalTemperatureCallbackPtr_t.
+ * In non-secure world, it must be NULL if EMU is a non-secure peripheral.
+ */
+ RAIL_TZ_ReadInternalTemperatureCallbackPtr_t readInternalTemperatureCallback;
+ /**
+ * See \ref RAIL_TZ_EnableSecureRadioIrqsCallbackPtr_t.
+ * In non-secure world, it must be NULL if EMU is a non-secure peripheral.
+ */
+ RAIL_TZ_EnableSecureRadioIrqsCallbackPtr_t enableSecureRadioIrqsCallback;
+ /**
+ * See \ref RAIL_TZ_DisableSecureRadioIrqsCallbackPtr_t.
+ * In non-secure world, it must be NULL if EMU is a non-secure peripheral.
+ */
+ RAIL_TZ_DisableSecureRadioIrqsCallbackPtr_t disableSecureRadioIrqsCallback;
+ /**
+ * See \ref RAIL_TZ_RadioPerformM2mLdmaCallbackPtr_t.
+ * In non-secure world, it must be NULL if LDMA is a non-secure peripheral or
+ * if RAIL must not use LDMA.
+ */
+ RAIL_TZ_RadioPerformM2mLdmaCallbackPtr_t radioPerformM2mLdmaCallback;
+ /**
+ * See \ref RAIL_TZ_ConfigureHfxoCallbackPtr_t.
+ * In non-secure world, it must be NULL if HFXO is a non-secure peripheral.
+ */
+ RAIL_TZ_ConfigureHfxoCallbackPtr_t configureHfxoCallback;
+ /**
+ * Indicate whether CMU is configured as secure peripheral.
+ */
+ bool isCmuSecure;
+ /**
+ * Indicate whether EMU is configured as secure peripheral.
+ */
+ bool isEmuSecure;
+ /**
+ * Indicate whether GPIO is configured as secure peripheral.
+ */
+ bool isGpioSecure;
+ /**
+ * Indicate whether LDMA is configured as secure peripheral.
+ */
+ bool isLdmaSecure;
+ /**
+ * Indicate whether HFXO is configured as secure peripheral.
+ */
+ bool isHfxoSecure;
+ /**
+ * Indicate whether PRS is configured as secure peripheral.
+ */
+ bool isPrsSecure;
+ /**
+ * Indicate whether SYSRTC is configured as secure peripheral.
+ */
+ bool isSysrtcSecure;
+} RAIL_TZ_Config_t;
+
+/** @} */ // end of group TrustZone
#ifdef SLI_LIBRARY_BUILD
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -5946,6 +6157,8 @@ struct RAIL_ChannelConfigEntryAttr {
#endif//DOXYGEN_SHOULD_SKIP_THIS
#endif//SLI_LIBRARY_BUILD
+/** @} */ // end of RAIL_API
+
#ifdef __cplusplus
}
#endif
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/pa_curves_brd4276a.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_curves_brd4276a.h
similarity index 96%
rename from simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/pa_curves_brd4276a.h
rename to simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_curves_brd4276a.h
index 16e2cf100..71bcef3aa 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/pa_curves_brd4276a.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_curves_brd4276a.h
@@ -6,7 +6,7 @@
* dBm powers.
*******************************************************************************
* # License
- * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_dbm_powersetting_mapping_table_brd4276a.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_dbm_powersetting_mapping_table_brd4276a.h
index c74d063b8..f71463578 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_dbm_powersetting_mapping_table_brd4276a.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg25/sl_rail_util_pa_dbm_powersetting_mapping_table_brd4276a.h
@@ -6,7 +6,7 @@
* dBm powers.
*******************************************************************************
* # License
- * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg26/config/module/sl_rail_util_pa_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg26/config/module/sl_rail_util_pa_config.h
new file mode 100644
index 000000000..26c6fb28c
--- /dev/null
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg26/config/module/sl_rail_util_pa_config.h
@@ -0,0 +1,81 @@
+/***************************************************************************//**
+ * @file
+ * @brief Power Amplifier configuration file.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_RAIL_UTIL_PA_CONFIG_H
+#define SL_RAIL_UTIL_PA_CONFIG_H
+
+#include "rail_types.h"
+
+// <<< Use Configuration Wizard in Context Menu >>>
+// PA configuration
+
+// Initial PA Power (deci-dBm, 100 = 10.0 dBm)
+// Default: 100
+#define SL_RAIL_UTIL_PA_POWER_DECI_DBM 100
+
+// PA Ramp Time (microseconds)
+// <10-10:1>
+// Default: 10
+#define SL_RAIL_UTIL_PA_RAMP_TIME_US 10
+
+// Milli-volts on PA supply pin (PA_VDD)
+// <0-65535:1>
+// Default: 3300
+#define SL_RAIL_UTIL_PA_VOLTAGE_MV 3300
+
+// 2.4 GHz PA Selection
+// Highest Possible
+// High Power (chip-specific)
+// Low Power
+// Disable
+// Default: RAIL_TX_POWER_MODE_2P4GIG_HIGHEST
+#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_2P4GIG_HIGHEST
+
+// Sub-1 GHz PA Selection
+// Disable
+// Default: RAIL_TX_POWER_MODE_NONE
+#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_NONE
+
+// Header file containing custom PA curves
+// Default: "pa_curves_efr32.h"
+#define SL_RAIL_UTIL_PA_CURVE_HEADER "pa_curves_efr32.h"
+
+// Header file containing PA curve types
+// Default: "pa_curve_types_efr32.h"
+#define SL_RAIL_UTIL_PA_CURVE_TYPES "pa_curve_types_efr32.h"
+
+// Enable PA Calibration
+// Default: 1
+#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1
+
+//
+// <<< end of configuration section >>>
+
+#endif // SL_RAIL_UTIL_PA_CONFIG_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/config/sl_rail_util_pa_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/config/sl_rail_util_pa_config.h
new file mode 100644
index 000000000..7c14e2f34
--- /dev/null
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/config/sl_rail_util_pa_config.h
@@ -0,0 +1,81 @@
+/***************************************************************************//**
+ * @file
+ * @brief Power Amplifier configuration file.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_RAIL_UTIL_PA_CONFIG_H
+#define SL_RAIL_UTIL_PA_CONFIG_H
+
+#include "rail_types.h"
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// PA Configuration
+// Initial PA Power (deci-dBm, 100 = 10.0 dBm)
+// Default: 100
+#define SL_RAIL_UTIL_PA_POWER_DECI_DBM 100
+
+// PA Ramp Time (microseconds)
+// <0-65535:1>
+// Default: 2
+#define SL_RAIL_UTIL_PA_RAMP_TIME_US 2
+// Milli-volts on PA supply pin (PA_VDD)
+// <0-65535:1>
+// Default: 3300
+#define SL_RAIL_UTIL_PA_VOLTAGE_MV 3300
+// 2.4 GHz PA Selection
+// Highest Possible
+// High Power (chip-specific)
+// Low Power
+// Disable
+// Default: RAIL_TX_POWER_MODE_2P4GIG_HIGHEST
+#define SL_RAIL_UTIL_PA_SELECTION_2P4GHZ RAIL_TX_POWER_MODE_2P4GIG_HIGHEST
+// Sub-1 GHz PA Selection
+// Disable
+// Default: RAIL_TX_POWER_MODE_NONE
+#define SL_RAIL_UTIL_PA_SELECTION_SUBGHZ RAIL_TX_POWER_MODE_NONE
+//
+
+// PA Curve Configuration
+// Header file containing custom PA curves
+// Default: "pa_curves_efr32.h"
+#define SL_RAIL_UTIL_PA_CURVE_HEADER "pa_curves_efr32.h"
+// Header file containing PA curve types
+// Default: "pa_curve_types_efr32.h"
+#define SL_RAIL_UTIL_PA_CURVE_TYPES "pa_curve_types_efr32.h"
+//
+
+// PA Calibration Configuration
+// Apply PA Calibration Factory Offset
+// Default: 1
+#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1
+//
+
+// <<< end of configuration section >>>
+
+#endif // SL_RAIL_UTIL_PA_CONFIG_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/sl_rail_util_pa_curves.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/sl_rail_util_pa_curves.h
new file mode 100644
index 000000000..bd1ad5bee
--- /dev/null
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/efr32xg29/sl_rail_util_pa_curves.h
@@ -0,0 +1,116 @@
+/***************************************************************************//**
+ * @file
+ * @brief PA power conversion curves used by Silicon Labs PA power conversion
+ * functions.
+ * @details This file contains the curves needed convert PA power levels to
+ * dBm powers.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef __PA_CURVES_H_
+#define __PA_CURVES_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define RAIL_PA_CURVES_PIECEWISE_SEGMENTS (9U)
+#define RAIL_PA_CURVES_LP_VALUES (16U)
+
+#define RAIL_PA_CURVES_2P4_HP_VBAT_MAX_POWER 80
+#define RAIL_PA_CURVES_2P4_HP_VBAT_MIN_POWER -300
+#define RAIL_PA_CURVES_2P4_HP_VBAT_CURVES \
+ { { 255, 80, 20 }, \
+ { 127, 2727, -97308 }, \
+ { 60, 1028, 956 }, \
+ { 39, 573, 18042 }, \
+ { 27, 338, 21614 }, \
+ { 20, 220, 21109 }, \
+ { 16, 177, 20065 }, \
+ { 12, 130, 17905 }, \
+ { 7, 39, 10592 } }
+
+#define RAIL_PA_CURVES_2P4_LP_VBAT_MAX_POWER 0
+#define RAIL_PA_CURVES_2P4_LP_VBAT_MIN_POWER -291
+#define RAIL_PA_CURVES_2P4_LP_VBAT_CURVES \
+ { \
+ -291, /*! Power Level 0 */ \
+ -178, /*! Power Level 1 */ \
+ -125, /*! Power Level 2 */ \
+ -94, /*! Power Level 3 */ \
+ -74, /*! Power Level 4 */ \
+ -60, /*! Power Level 5 */ \
+ -49, /*! Power Level 6 */ \
+ -40, /*! Power Level 7 */ \
+ -33, /*! Power Level 8 */ \
+ -28, /*! Power Level 9 */ \
+ -23, /*! Power Level 10 */ \
+ -19, /*! Power Level 11 */ \
+ -16, /*! Power Level 12 */ \
+ -12, /*! Power Level 13 */ \
+ -10, /*! Power Level 14 */ \
+ -8, /*! Power Level 15 */ \
+ }
+// *INDENT-OFF*
+// Macro to declare the variables needed to initialize RAIL_TxPowerCurvesConfig_t for use in
+// RAIL_InitTxPowerCurves, assuming battery powered operation
+#define RAIL_DECLARE_TX_POWER_VBAT_CURVES_ALT \
+ static const RAIL_TxPowerCurveAlt_t RAIL_piecewiseDataHp = { \
+ RAIL_PA_CURVES_2P4_HP_VBAT_MAX_POWER, \
+ RAIL_PA_CURVES_2P4_HP_VBAT_MIN_POWER, \
+ RAIL_PA_CURVES_2P4_HP_VBAT_CURVES, \
+ }; \
+ static const int16_t RAIL_curves24Lp[RAIL_PA_CURVES_LP_VALUES] = \
+ RAIL_PA_CURVES_2P4_LP_VBAT_CURVES;
+// *INDENT-OFF*
+
+#define RAIL_DECLARE_TX_POWER_CURVES_CONFIG_ALT \
+ { \
+ .curves = { \
+ { \
+ .algorithm = RAIL_PA_ALGORITHM_PIECEWISE_LINEAR, \
+ .segments = RAIL_PA_CURVES_PIECEWISE_SEGMENTS, \
+ .min = RAIL_TX_POWER_LEVEL_2P4_HP_MIN, \
+ .max = RAIL_TX_POWER_LEVEL_2P4_HP_MAX, \
+ .conversion = { .powerCurve = &RAIL_piecewiseDataHp }, \
+ }, \
+ { \
+ .algorithm = RAIL_PA_ALGORITHM_MAPPING_TABLE, \
+ .segments = 0U, \
+ .min = RAIL_TX_POWER_LEVEL_2P4_LP_MIN, \
+ .max = RAIL_TX_POWER_LEVEL_2P4_LP_MAX, \
+ .conversion = { .mappingTable = &RAIL_curves24Lp[0] }, \
+ }, \
+ } \
+ }
+// *INDENT-OFF*
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c
index 812c70307..08de25406 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.c
@@ -43,7 +43,7 @@
#include "pa_conversions_efr32.h"
#include "rail.h"
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#define _SL_MAX(a, b) ((a) > (b) ? (a) : (b))
static RAIL_TxPowerCurvesConfigAlt_t powerCurvesState;
@@ -133,6 +133,13 @@ static RAIL_TxPowerCurvesConfigAlt_t powerCurvesState;
4U, /* SUBGIG_LLP */ \
/* The rest are unsupported */ \
}
+#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 9)
+#define SUPPORTED_PA_INDICES { \
+ 0U, /* 2P4GIG_HP */ \
+ RAIL_NUM_PA, /* 2P4GIG_MP */ \
+ 1U, /* 2P4GIG_LP */ \
+ /* The rest are unsupported */ \
+}
#else
#error "unknown platform"
#endif
@@ -256,11 +263,11 @@ __WEAK
#endif
RAIL_Status_t RAIL_InitTxPowerCurvesAlt(const RAIL_TxPowerCurvesConfigAlt_t *config)
{
- (void) RAIL_VerifyTxPowerCurves(config);
-
- powerCurvesState = *config;
-
- return RAIL_STATUS_NO_ERROR;
+ RAIL_Status_t status = RAIL_VerifyTxPowerCurves(config);
+ if (status == RAIL_STATUS_NO_ERROR) {
+ powerCurvesState = *config;
+ }
+ return status;
}
#ifdef RAIL_PA_CONVERSIONS_WEAK
@@ -300,14 +307,7 @@ RAIL_TxPowerLevel_t RAIL_ConvertDbmToRaw(RAIL_Handle_t railHandle,
RAIL_TxPower_t power)
{
(void)railHandle;
- // This function is called internally from the RAIL library,
- // so if the user never calls RAIL_InitTxPowerCurves - even
- // if they never intend to use dBm values in their code -
- // they'll always hit the assert below. Give the user a way
- // to not have to call RAIL_InitTxPowerCurves if they don't
- // care about dBm values by picking a dBm value that returns the
- // highest RAIL_TxPowerLevel_t possible. In other words, when
- // a channel dBm limitation greater than or equal to \ref RAIL_TX_POWER_MAX
+ // When a channel dBm limitation greater than or equal to \ref RAIL_TX_POWER_MAX
// is converted to raw units, the max RAIL_TxPowerLevel_t will be
// returned. When compared to the current power level of the PA,
// it will always be greater, indicating that no power coercion
@@ -319,7 +319,7 @@ RAIL_TxPowerLevel_t RAIL_ConvertDbmToRaw(RAIL_Handle_t railHandle,
if ((mode < sizeof(supportedPaIndices))
&& (supportedPaIndices[mode] < RAIL_NUM_PA)) {
RAIL_PaDescriptor_t const *modeInfo = &powerCurvesState.curves[supportedPaIndices[mode]];
- uint32_t minPowerLevel = MAX(modeInfo->min, PA_CONVERSION_MINIMUM_PWRLVL);
+ uint32_t minPowerLevel = _SL_MAX(modeInfo->min, PA_CONVERSION_MINIMUM_PWRLVL);
#if RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE
if (modeInfo->algorithm == RAIL_PA_ALGORITHM_DBM_POWERSETTING_MAPPING_TABLE) {
RAIL_TxPower_t minPower = modeInfo->minPowerDbm;
@@ -337,7 +337,15 @@ RAIL_TxPowerLevel_t RAIL_ConvertDbmToRaw(RAIL_Handle_t railHandle,
uint32_t powerIndex = (power - minPower) / step;
RAIL_SetPaPowerSetting(railHandle, modeInfo->conversion.mappingTable[powerIndex], minPower, maxPower, power);
+#ifdef _SILICON_LABS_32B_SERIES_3
+ // Hack until librail is switched over to enforcing power limits in dBm
+ // This should work on rainier as rainier power table is only based on RAC_TX_PAPOWERSCALOR register,
+ // so the table value is guaranteed to be monotonic.
+ // As sol using a combination of more than a register field, the resulting power table is not guaranteed to be monotonic
+ return (RAIL_TxPowerLevel_t)(modeInfo->conversion.mappingTable[powerIndex]);
+#else
return 0U;
+#endif
}
#endif
@@ -464,7 +472,7 @@ RAIL_TxPower_t RAIL_ConvertRawToDbm(RAIL_Handle_t railHandle,
}
// We 1-index low power PA power levels, but of course arrays are 0 indexed
- powerLevel -= MAX(modeInfo->min, PA_CONVERSION_MINIMUM_PWRLVL);
+ powerLevel -= _SL_MAX(modeInfo->min, PA_CONVERSION_MINIMUM_PWRLVL);
//If the index calculation above underflowed, then provide the lowest array index.
if (powerLevel > (modeInfo->max - modeInfo->min)) {
@@ -678,9 +686,9 @@ void sl_rail_util_pa_on_channel_config_change(RAIL_Handle_t rail_handle,
#if RAIL_IEEE802154_SUPPORTS_DUAL_PA_CONFIG
if (currentTxPowerConfig.mode == RAIL_TX_POWER_MODE_NONE) {
#if RAIL_SUPPORTS_OFDM_PA
- if (RAIL_SupportsTxPowerMode(rail_handle,
- txPowerConfigOFDM.mode,
- NULL)) {
+ if (RAIL_SupportsTxPowerModeAlt(rail_handle,
+ &txPowerConfigOFDM.mode,
+ NULL, NULL)) {
// Apply OFDM Power Config.
status = RAIL_ConfigTxPower(rail_handle, &txPowerConfigOFDM);
if (status != RAIL_STATUS_NO_ERROR) {
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.h
index aecbe0fe9..927905df9 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_conversions_efr32.h
@@ -39,8 +39,8 @@
// This macro is defined when Silicon Labs builds curves into the library as WEAK
// to ensure it can be overriden by customer versions of these functions. It
// should *not* be defined in a customer build.
-#if !defined(RAIL_PA_CONVERSIONS_WEAK)
-#ifdef SL_RAIL_UTIL_PA_CONFIG_HEADER
+#ifndef RAIL_PA_CONVERSIONS_WEAK
+#ifdef SL_RAIL_UTIL_PA_CONFIG_HEADER
#include SL_RAIL_UTIL_PA_CONFIG_HEADER
#else
#include "sl_rail_util_pa_conversions_efr32_config.h"
@@ -57,16 +57,16 @@
#endif
#endif
-#ifdef SL_RAIL_UTIL_PA_CURVE_HEADER
-#include SL_RAIL_UTIL_PA_CURVE_HEADER
+#ifdef SL_RAIL_UTIL_PA_CURVE_TYPES
+#include SL_RAIL_UTIL_PA_CURVE_TYPES
#else
-#include "pa_curves_efr32.h"
+#include "pa_curve_types_efr32.h"
#endif
-#ifdef SL_RAIL_UTIL_PA_CURVE_TYPES
-#include SL_RAIL_UTIL_PA_CURVE_TYPES
+#ifdef SL_RAIL_UTIL_PA_CURVE_HEADER
+#include SL_RAIL_UTIL_PA_CURVE_HEADER
#else
-#include "pa_curve_types_efr32.h"
+#include "pa_curves_efr32.h"
#endif
#ifdef __cplusplus
@@ -86,7 +86,7 @@ extern const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesVbat;
extern const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesDcdc;
/**
- * Initialize TxPower curves.
+ * Initialize Transmit power curves.
*
* @param[in] config A pointer to the custom TX power curves.
* @return Status code indicating success of the function call.
@@ -99,8 +99,8 @@ RAIL_Status_t RAIL_InitTxPowerCurves(const RAIL_TxPowerCurvesConfig_t *config);
/**
* Initialize TxPower curves.
*
- * @param[in] config A pointer to the custom TX power curves.
- * @return RAIL_Status_t indicating success or an error.
+ * @param[in] config A pointer to the custom TX power curves to use.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_InitTxPowerCurvesAlt(const RAIL_TxPowerCurvesConfigAlt_t *config);
@@ -109,24 +109,17 @@ RAIL_Status_t RAIL_InitTxPowerCurvesAlt(const RAIL_TxPowerCurvesConfigAlt_t *con
* current PA configuration.
*
* @param[in] mode PA mode whose curves are needed.
- * @return RAIL_TxPowerCurves_t that should be used for conversion functions.
+ * @return A pointer to the \ref RAIL_TxPowerCurves_t that are used for conversion functions.
*
* @note: If the mode is not supported by the the chip,
* then NULL will be returned.
*/
-RAIL_TxPowerCurves_t const * RAIL_GetTxPowerCurve(RAIL_TxPowerMode_t mode);
+RAIL_TxPowerCurves_t const *RAIL_GetTxPowerCurve(RAIL_TxPowerMode_t mode);
/**
* Gets the maximum power in deci-dBm that should be used for calculating
* the segments and to find right curve segment to convert Dbm to raw power
* level for a specific PA.
- * For the PAs with \ref RAIL_PaConversionAlgorithm_t
- * \ref RAIL_PA_ALGORITHM_PIECEWISE_LINEAR, if the curves are generated with
- * maxPower and increment other than \ref RAIL_TX_POWER_CURVE_DEFAULT_MAX and
- * \ref RAIL_TX_POWER_CURVE_DEFAULT_INCREMENT respectively, then the first
- * \ref RAIL_TxPowerCurveSegment_t has its maxPowerLevel equal to
- * \ref RAIL_TX_POWER_LEVEL_INVALID and its slope and intercept stores the
- * maxPower and increment in deci-dBm respectively.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] mode PA mode whose curves are needed.
@@ -135,6 +128,14 @@ RAIL_TxPowerCurves_t const * RAIL_GetTxPowerCurve(RAIL_TxPowerMode_t mode);
* @param[out] increment A non-NULL pointer to memory allocated to hold
* the increment in deci-dBm used in calculation of curve segments.
* @return Status code indicating success of the function call.
+ *
+ * For the PAs with \ref RAIL_PaConversionAlgorithm_t
+ * \ref RAIL_PA_ALGORITHM_PIECEWISE_LINEAR, if the curves are generated with
+ * maxPower and increment other than \ref RAIL_TX_POWER_CURVE_DEFAULT_MAX and
+ * \ref RAIL_TX_POWER_CURVE_DEFAULT_INCREMENT respectively, then the first
+ * \ref RAIL_TxPowerCurveSegment_t has its maxPowerLevel equal to
+ * \ref RAIL_TX_POWER_LEVEL_INVALID and its slope and intercept stores the
+ * maxPower and increment in deci-dBm respectively.
*/
RAIL_Status_t RAIL_GetTxPowerCurveLimits(RAIL_Handle_t railHandle,
RAIL_TxPowerMode_t mode,
@@ -178,12 +179,10 @@ RAIL_TxPowerConfig_t *sl_rail_util_pa_get_tx_power_config_ofdm(void);
void sl_rail_util_pa_on_channel_config_change(RAIL_Handle_t rail_handle,
const RAIL_ChannelConfigEntry_t *entry);
+/** @} */ // PA_Curve_Conversions
+
#ifdef __cplusplus
}
#endif
-/**
- * @}
- */
-
#endif // PA_CONVERSIONS_EFR32_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curve_types_efr32.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curve_types_efr32.h
index f080d1e75..48128c115 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curve_types_efr32.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curve_types_efr32.h
@@ -50,13 +50,13 @@ extern "C" {
* @struct RAIL_TxPowerCurveSegment_t
*
* @brief Structure containing data defining each segment of the
- * power (deci-dBm) to powerLevel (raw) mapping curve fits.
+ * deci-dBm to raw power level mapping curve fits.
*
* Note, these used in an equation of the form:
*
* powerLevel * 1000 = slope * power + intercept
*
- * powerLevel is the 0-252/0-248/1-7 values used in the RAIL_Get/SetTxPower
+ * powerLevel is the 0-252/0-248/1-7 values used in the RAIL_Get/SetTxPower()
* functions, and power is the actual output power of the PA, specified
* in deci-dBm.
*
@@ -88,9 +88,9 @@ typedef struct RAIL_TxPowerCurves {
/** min deci-dBm value */
int16_t minPower;
/**
- * Pointer to "piecewiseSegments"-length array of
- * RAIL_TxPowerCurveSegment_t of power (deci-dBm) to
- * powerLevel conversion fits.
+ * Pointer to an array of \ref RAIL_TxPowerCurvesConfig_t::piecewiseSegments
+ * elements of \ref RAIL_TxPowerCurveSegment_t for deci-dBm to raw
+ * power level conversion fits.
*/
const RAIL_TxPowerCurveSegment_t *powerParams;
} RAIL_TxPowerCurves_t;
@@ -173,14 +173,32 @@ typedef struct RAIL_TxPowerCurveAlt {
/** min deci-dBm value */
int16_t minPower;
/**
- * Array of piecewise_segments RAIL_TxPowerCurveSegment_t
- * structures for the power (deci-dBm) to powerLevel conversion fits.
+ * Array of \ref RAIL_PaDescriptor_t::segments \ref RAIL_TxPowerCurveSegment_t
+ * structures for the deci-dBm to raw power level conversion fits.
*/
//Array does not have a size since it can be various sizes.
//No further fields allowed after this one.
RAIL_TxPowerCurveSegment_t powerParams[];
} RAIL_TxPowerCurveAlt_t;
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+#if defined(SL_RAIL_UTIL_PA_POWERSETTING_TABLE_VERSION)
+#if RAIL_SUPPORTS_COMMON_PA_INTERFACE
+#if SL_RAIL_UTIL_PA_POWERSETTING_TABLE_VERSION == 1
+/// The entry in the powersetting table have the below bitfields
+/// |15-14 =sub-mode|13-8:unused|7-0:scalor(stripe+slice)|
+/// Mask for submode
+#define SLI_RAIL_UTIL_PA_TABLE_SUBMODE_MASK 0xC000UL
+/// Shift for submode
+#define SLI_RAIL_UTIL_PA_TABLE_SUBMODE_SHIFT 14U
+/// Mask for scalor
+#define SLI_RAIL_UTIL_PATABLE_SCALOR_MASK 0xFFU
+/// Shift for scalor
+#define SLI_RAIL_UTIL_PA_TABLE_SCALOR_SHIFT 0U
+#endif //SL_RAIL_UTIL_PA_POWERSETTING_TABLE_VERSION == 1
+#endif //RAIL_SUPPORTS_COMMON_PA_INTERFACE
+#endif //defined(SL_RAIL_UTIL_PA_POWERSETTING_TABLE_VERSION)
+#endif //DOXYGEN_SHOULD_SKIP_THIS
/**
* @struct RAIL_PowerConversion_t
*
@@ -204,7 +222,7 @@ typedef union RAIL_PowerConversion {
*/
#if RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE
#if RAIL_SUPPORTS_COMMON_PA_INTERFACE
- const int8_t *mappingTable;
+ const int16_t *mappingTable;
#else
const int32_t *mappingTable;
#endif
@@ -220,7 +238,7 @@ typedef union RAIL_PowerConversion {
* PA descriptor as used in the PA conversion functions.
*/
typedef struct RAIL_PaDescriptor {
- /** Algorithm used to map dBm to power levels for this PA */
+ /** Algorithm used to map dBm to power levels for this PA. */
RAIL_PaConversionAlgorithm_t algorithm;
/**
* The number of piecewise segments provided to the PA in a piecewise linear
@@ -228,20 +246,20 @@ typedef struct RAIL_PaDescriptor {
* piecewise linear algorithm.
*/
uint8_t segments;
- /** Min power level for this PA */
+ /** Min power level for this PA. */
RAIL_TxPowerLevel_t min;
- /** Max power level for this PA */
+ /** Max power level for this PA. */
RAIL_TxPowerLevel_t max;
#if RAIL_SUPPORTS_DBM_POWERSETTING_MAPPING_TABLE
- /** step size in deci-dBm between entries in table */
+ /** step size in deci-dBm between entries in table. */
RAIL_TxPowerLevel_t step;
- /** structure padding */
+ /** structure padding. */
uint8_t padding;
- /** structure padding */
+ /** structure padding. */
uint16_t padding2;
- /** Min power in deci-dBm for this PA */
+ /** Min power in deci-dBm for this PA. */
RAIL_TxPower_t minPowerDbm;
- /** Max power in deci-dBm for this PA */
+ /** Max power in deci-dBm for this PA. */
RAIL_TxPower_t maxPowerDbm;
#endif
/** Union containing a pointer to algorithm-specific conversion data. */
@@ -263,12 +281,10 @@ typedef struct RAIL_TxPowerCurvesConfigAlt {
uint16_t paVoltage;
} RAIL_TxPowerCurvesConfigAlt_t;
+/** @} */ // PA_Curve_Conversions
+
#ifdef __cplusplus
}
#endif
-/**
- * @}
- */
-
#endif // PA_CURVE_TYPES_EFR32_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c
index bf8c3225a..2e7d7ef8a 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.c
@@ -126,7 +126,9 @@ const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesDcdc = {
},
};
-#elif ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7))
+#elif ((_SILICON_LABS_32B_SERIES_2_CONFIG == 2) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 7) \
+ || (_SILICON_LABS_32B_SERIES_2_CONFIG == 9))
static const RAIL_TxPowerCurveAlt_t RAIL_piecewiseDataHpVbat = {
RAIL_PA_CURVES_2P4_HP_VBAT_MAX_POWER,
@@ -357,10 +359,10 @@ const RAIL_TxPowerCurvesConfigAlt_t RAIL_TxPowerCurvesDcdc = {
#elif !defined(_SILICON_LABS_32B_SERIES_2)
-static const int8_t RAIL_curves10dbm[RAIL_PA_CURVES_COMMON_INTERFACE_10DBM_NUM_VALUES] =
+static const int16_t RAIL_curves10dbm[RAIL_PA_CURVES_COMMON_INTERFACE_10DBM_NUM_VALUES] =
RAIL_PA_CURVES_COMMON_INTERFACE_10DBM_CURVES;
-static const int8_t RAIL_curves0dbm[RAIL_PA_CURVES_COMMON_INTERFACE_0DBM_NUM_VALUES] =
+static const int16_t RAIL_curves0dbm[RAIL_PA_CURVES_COMMON_INTERFACE_0DBM_NUM_VALUES] =
RAIL_PA_CURVES_COMMON_INTERFACE_0DBM_CURVES;
// This chip has the same curve for Vbat and DCDC
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.h
index 9ff6ec4de..8322cfa75 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/pa_curves_efr32.h
@@ -109,7 +109,9 @@ extern "C" {
#else
#include "efr32xg27/sl_rail_util_pa_curves_QFN.h"
#endif
-#elif (_SILICON_LABS_32B_SERIES_3_CONFIG == 1)
+#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 9)
+#include "efr32xg29/sl_rail_util_pa_curves.h"
+#elif defined(_SILICON_LABS_32B_SERIES_3)
#include "sixg301/sl_rail_util_pa_dbm_powersetting_mapping_table.h"
#include "sixg301/sl_rail_util_pa_curves.h"
#else
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/config/sl_rail_util_pa_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/config/sl_rail_util_pa_config.h
index 7c14e2f34..2b0fda391 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/config/sl_rail_util_pa_config.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/config/sl_rail_util_pa_config.h
@@ -76,6 +76,14 @@
#define SL_RAIL_UTIL_PA_CALIBRATION_ENABLE 1
//
+// PA PowerSetting Table version
+// PA powersetting table version
+// <0=> Disable
+// <1=> 1st version
+// Default: 1
+#define SL_RAIL_UTIL_PA_POWERSETTING_TABLE_VERSION 1
+//
+
// <<< end of configuration section >>>
#endif // SL_RAIL_UTIL_PA_CONFIG_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/sl_rail_util_pa_dbm_powersetting_mapping_table.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/sl_rail_util_pa_dbm_powersetting_mapping_table.h
index efcd58fbe..f87333ca7 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/sl_rail_util_pa_dbm_powersetting_mapping_table.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sixg301/sl_rail_util_pa_dbm_powersetting_mapping_table.h
@@ -44,27 +44,27 @@ extern "C" {
#define RAIL_PA_CURVES_COMMON_INTERFACE_10DBM_MIN_POWER_DDBM (-100)
#define RAIL_PA_CURVES_COMMON_INTERFACE_10DBM_CURVES \
{ \
- 0x1 /* -10.0 dBm */, \
- 0x4 /* -9.0 dBm */, \
- 0xa /* -8.0 dBm */, \
- 0xe /* -7.0 dBm */, \
- 0x13 /* -6.0 dBm */, \
- 0x17 /* -5.0 dBm */, \
- 0x1c /* -4.0 dBm */, \
- 0x21 /* -3.0 dBm */, \
- 0x27 /* -2.0 dBm */, \
- 0x2a /* -1.0 dBm */, \
- 0x2f /* 0.0 dBm */, \
- 0x35 /* 1.0 dBm */, \
- 0x39 /* 2.0 dBm */, \
- 0x3d /* 3.0 dBm */, \
- 0x42 /* 4.0 dBm */, \
- 0x47 /* 5.0 dBm */, \
- 0x4c /* 6.0 dBm */, \
- 0x50 /* 7.0 dBm */, \
- 0x55 /* 8.0 dBm */, \
- 0x5a /* 9.0 dBm */, \
- 0x5f /* 10.0 dBm */ \
+ 0x4001 /* -10.0 dBm */, \
+ 0x4004 /* -9.0 dBm */, \
+ 0x400a /* -8.0 dBm */, \
+ 0x400e /* -7.0 dBm */, \
+ 0x4013 /* -6.0 dBm */, \
+ 0x4017 /* -5.0 dBm */, \
+ 0x401c /* -4.0 dBm */, \
+ 0x4021 /* -3.0 dBm */, \
+ 0x4027 /* -2.0 dBm */, \
+ 0x402a /* -1.0 dBm */, \
+ 0x402f /* 0.0 dBm */, \
+ 0x4035 /* 1.0 dBm */, \
+ 0x4039 /* 2.0 dBm */, \
+ 0x403d /* 3.0 dBm */, \
+ 0x4042 /* 4.0 dBm */, \
+ 0x4047 /* 5.0 dBm */, \
+ 0x404c /* 6.0 dBm */, \
+ 0x4050 /* 7.0 dBm */, \
+ 0x4055 /* 8.0 dBm */, \
+ 0x405a /* 9.0 dBm */, \
+ 0x405f /* 10.0 dBm */ \
}
#define RAIL_PA_CURVES_COMMON_INTERFACE_0DBM_NUM_VALUES (20U)
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sl_rail_util_pa_conversions_efr32_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sl_rail_util_pa_conversions_efr32_config.h
index 99111904d..ba97f08ce 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sl_rail_util_pa_conversions_efr32_config.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/pa-conversions/sl_rail_util_pa_conversions_efr32_config.h
@@ -54,8 +54,12 @@ extern "C" {
#include "efr32xg27/config/sl_rail_util_pa_config.h"
#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 8)
#include "efr32xg28/config/sl_rail_util_pa_config.h"
+#elif (_SILICON_LABS_32B_SERIES_2_CONFIG == 9)
+#include "efr32xg29/config/sl_rail_util_pa_config.h"
#elif defined (_SILICON_LABS_32B_SERIES_2)
#include "efr32xg21/config/sl_rail_util_pa_config.h"
+#elif (_SILICON_LABS_32B_SERIES_3_CONFIG == 301)
+#include "sixg301/config/sl_rail_util_pa_config.h"
#else
#error "Unsupported platform!"
#endif
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg28/sl_rail_util_protocol_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg28/sl_rail_util_protocol_config.h
index 5f2d9315a..ee71670b6 100644
--- a/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg28/sl_rail_util_protocol_config.h
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg28/sl_rail_util_protocol_config.h
@@ -255,6 +255,97 @@
//
//
+// IEEE 802.15.4, 2.4 GHz Settings
+// 2.4 GHz: Node Configuration
+// Enable/Disable IEEE 802.15.4 2.4 GHz Protocol
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ENABLE 1
+// PAN Coordinator
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_PAN_COORDINATOR_ENABLE 0
+// Promiscuous Mode
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_PROMISCUOUS_MODE_ENABLE 1
+// Default Frame Pending bit value for outgoing ACKs in response to Data Request Command
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_DEFAULT_FRAME_PENDING_STATE 0
+//
+
+// 2.4 GHz: Receivable Frame Types
+// Beacon Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_BEACON_FRAME_ENABLE 1
+// Data Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_DATA_FRAME_ENABLE 1
+// ACK Frames
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_ACK_FRAME_ENABLE 0
+// Command Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_COMMAND_FRAME_ENABLE 1
+//
+
+// 2.4 GHz: Transition Times
+// Transition time (microseconds) from idle to RX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_IDLE_TO_RX_US 100
+// Transition time (microseconds) from TX to RX
+// <0-65535:1>
+// Default: 182
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_TX_TO_RX_US 182
+// Transition time (microseconds) from idle to TX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_IDLE_TO_TX_US 100
+// Transition time (microseconds) from RX to TX
+// <0-65535:1>
+// Default: 192
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_TO_TX_US 192
+//
+
+// 2.4 GHz: RX Search Timeouts
+// Enable RX Search timeout after Idle
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from idle
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_US 65535
+//
+// Enable RX Search timeout after TX
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from TX
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_US 65535
+//
+//
+
+// 2.4 GHz: Auto ACK Configuration
+// Enable Auto ACKs
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_ENABLE 1
+// RX ACK timeout duration (microseconds)
+// <1-65535:1>
+// Default: 672
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_TIMEOUT_US 672
+// Radio state transition after attempting to receive ACK
+// Idle
+// RX
+// Default: RAIL_RF_STATE_RX
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_RX_TRANSITION_STATE RAIL_RF_STATE_RX
+// Radio state transition after transmitting ACK
+// Idle
+// RX
+// Default: RAIL_RF_STATE_RX
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_TX_TRANSITION_STATE RAIL_RF_STATE_RX
+//
+//
+//
+
// <<< end of configuration section >>>
#endif // SL_RAIL_UTIL_PROTOCOL_CONFIG_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg29/sl_rail_util_protocol_config.h b/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg29/sl_rail_util_protocol_config.h
new file mode 100644
index 000000000..7f45e9d6a
--- /dev/null
+++ b/simplicity_sdk/platform/radio/rail_lib/plugin/rail_util_protocol/config/efr32xg29/sl_rail_util_protocol_config.h
@@ -0,0 +1,174 @@
+/***************************************************************************//**
+ * @file
+ * @brief
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_RAIL_UTIL_PROTOCOL_CONFIG_H
+#define SL_RAIL_UTIL_PROTOCOL_CONFIG_H
+
+#include "sl_rail_util_protocol_types.h"
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
+// Bluetooth LE Settings
+// BLE: Transition Times
+// Enable/Disable BLE
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_BLE_ENABLE 1
+// Transition time (microseconds) from idle to RX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_IDLE_TO_RX_US 100
+// Transition time (microseconds) from TX to RX
+// <0-65535:1>
+// Default: 150
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_TX_TO_RX_US 150
+// Transition time (microseconds) from idle to TX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_IDLE_TO_TX_US 100
+// Transition time (microseconds) from RX to TX
+// <0-65535:1>
+// Default: 150
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_RX_TO_TX_US 150
+//
+
+// BLE: RX Search Timeouts
+// Enable RX Search timeout after Idle
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from idle
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_US 65535
+//
+// Enable RX Search timeout after TX
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from TX
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_BLE_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_US 65535
+//
+//
+//
+
+// IEEE 802.15.4, 2.4 GHz Settings
+// 2.4 GHz: Node Configuration
+// Enable/Disable IEEE 802.15.4 2.4 GHz Protocol
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ENABLE 1
+// PAN Coordinator
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_PAN_COORDINATOR_ENABLE 0
+// Promiscuous Mode
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_PROMISCUOUS_MODE_ENABLE 1
+// Default Frame Pending bit value for outgoing ACKs in response to Data Request Command
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_DEFAULT_FRAME_PENDING_STATE 0
+//
+
+// 2.4 GHz: Receivable Frame Types
+// Beacon Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_BEACON_FRAME_ENABLE 1
+// Data Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_DATA_FRAME_ENABLE 1
+// ACK Frames
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_ACK_FRAME_ENABLE 0
+// Command Frames
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_ACCEPT_COMMAND_FRAME_ENABLE 1
+//
+
+// 2.4 GHz: Transition Times
+// Transition time (microseconds) from idle to RX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_IDLE_TO_RX_US 100
+// Transition time (microseconds) from TX to RX
+// <0-65535:1>
+// Default: 182
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_TX_TO_RX_US 182
+// Transition time (microseconds) from idle to TX
+// <0-65535:1>
+// Default: 100
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_IDLE_TO_TX_US 100
+// Transition time (microseconds) from RX to TX
+// <0-65535:1>
+// Default: 192
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_TO_TX_US 192
+//
+
+// 2.4 GHz: RX Search Timeouts
+// Enable RX Search timeout after Idle
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from idle
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_IDLE_US 65535
+//
+// Enable RX Search timeout after TX
+// Default: 0
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_ENABLE 0
+// Max time (microseconds) radio will search for packet when coming from TX
+// <1-65535:1>
+// Default: 65535
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_TIMING_RX_SEARCH_TIMEOUT_AFTER_TX_US 65535
+//
+//
+
+// 2.4 GHz: Auto ACK Configuration
+// Enable Auto ACKs
+// Default: 1
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_ENABLE 1
+// RX ACK timeout duration (microseconds)
+// <1-65535:1>
+// Default: 672
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_TIMEOUT_US 672
+// Radio state transition after attempting to receive ACK
+// Idle
+// RX
+// Default: RAIL_RF_STATE_RX
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_RX_TRANSITION_STATE RAIL_RF_STATE_RX
+// Radio state transition after transmitting ACK
+// Idle
+// RX
+// Default: RAIL_RF_STATE_RX
+#define SL_RAIL_UTIL_PROTOCOL_IEEE802154_2P4GHZ_AUTO_ACK_TX_TRANSITION_STATE RAIL_RF_STATE_RX
+//
+//
+//
+
+// <<< end of configuration section >>>
+
+#endif // SL_RAIL_UTIL_PROTOCOL_CONFIG_H
diff --git a/simplicity_sdk/platform/radio/rail_lib/protocol/ble/rail_ble.h b/simplicity_sdk/platform/radio/rail_lib/protocol/ble/rail_ble.h
index 0fb89e3f8..45ba8d859 100644
--- a/simplicity_sdk/platform/radio/rail_lib/protocol/ble/rail_ble.h
+++ b/simplicity_sdk/platform/radio/rail_lib/protocol/ble/rail_ble.h
@@ -50,7 +50,7 @@ extern "C" {
/// operation and provide additional helper routines necessary for
/// normal BLE send/receive that aren't available directly in RAIL.
/// RAIL APIs should be used to set up the application. However,
-/// RAIL_ConfigChannels() and RAIL_ConfigRadio() should not be called to set up
+/// \ref RAIL_ConfigChannels() and \ref RAIL_ConfigRadio() should not be called to set up
/// the PHY. Instead, RAIL_BLE_Config* APIs should be used to set up the
/// 1 Mbps, 2 Mbps, or Coded PHY configurations needed by the application. These
/// APIs will configure the hardware and also configure the set of valid BLE
@@ -58,18 +58,17 @@ extern "C" {
///
/// To implement a standard BLE link layer, you will also need to handle tight
/// turnaround times and send packets at specific instants. This can all be
-/// managed through general RAIL functions, such as RAIL_ScheduleTx(),
-/// RAIL_ScheduleRx(), and RAIL_SetStateTiming(). See RAIL APIs for more
+/// managed through general RAIL functions, such as \ref RAIL_StartScheduledTx(),
+/// \ref RAIL_ScheduleRx(), and \ref RAIL_SetStateTiming(). See RAIL APIs for more
/// useful functions.
///
/// A simple example to set up the application to be in BLE mode is shown
/// below. Note that this will put the radio on the first advertising channel
/// with the advertising Access Address. In any full-featured BLE application you
-/// will need to use the RAIL_BLE_ConfigChannelRadioParams() function to change
+/// will need to use the \ref RAIL_BLE_ConfigChannelRadioParams() function to change
/// the sync word and other parameters as needed based on your connection.
-///
/// @code{.c}
-/// // RAIL Handle set at initialization time.
+/// // RAIL handle set at initialization time.
/// static RAIL_Handle_t gRailHandle = NULL;
///
/// static void radioEventHandler(RAIL_Handle_t railHandle,
@@ -78,26 +77,13 @@ extern "C" {
/// // ... handle RAIL events, e.g., receive and transmit completion
/// }
///
-/// #if MULTIPROTOCOL
-/// // Allocate memory for RAIL to hold BLE-specific state information
-/// static RAIL_BLE_State_t bleState; // Must never be const
-/// static RAILSched_Config_t schedCfg; // Must never be const
-/// static RAIL_Config_t railCfg = { // Must never be const
-/// .eventsCallback = &radioEventHandler,
-/// .protocol = &bleState, // For BLE, RAIL needs additional state memory
-/// .scheduler = &schedCfg, // For MultiProtocol, additional scheduler memory
-/// };
-/// #else
-/// static RAIL_Config_t railCfg = { // Must never be const
-/// .eventsCallback = &radioEventHandler,
-/// .protocol = NULL,
-/// .scheduler = NULL,
-/// };
-/// #endif
-///
/// // Set the radio to receive on the first BLE advertising channel.
-/// int bleAdvertiseEnable(void)
+/// void bleAdvertiseEnable(void)
/// {
+/// RAIL_Config_t railCfg = {
+/// .eventsCallback = &radioEventHandler,
+/// };
+///
/// // Initializes the RAIL library and any internal state it requires.
/// gRailHandle = RAIL_Init(&railCfg, NULL);
///
@@ -128,13 +114,13 @@ extern "C" {
* @brief The variant of the BLE Coded PHY.
*/
RAIL_ENUM(RAIL_BLE_Coding_t) {
- /** Enables the 125 kbps variant of the BLE Coded PHY */
+ /** Enables the 125 kbps variant of the BLE Coded PHY. */
RAIL_BLE_Coding_125kbps = 0,
- /** @deprecated Will be removed in a future version of RAIL */
+ /** @deprecated Will be removed in a future version of RAIL. */
RAIL_BLE_Coding_125kbps_DSA = 1,
- /** Enables the 500 kbps variant of the BLE Coded PHY */
+ /** Enables the 500 kbps variant of the BLE Coded PHY. */
RAIL_BLE_Coding_500kbps = 2,
- /** @deprecated Will be removed in a future version of RAIL */
+ /** @deprecated Will be removed in a future version of RAIL. */
RAIL_BLE_Coding_500kbps_DSA = 3,
};
@@ -151,14 +137,24 @@ RAIL_ENUM(RAIL_BLE_Coding_t) {
* @brief The variant of the BLE PHY.
*/
RAIL_ENUM(RAIL_BLE_Phy_t) {
- /** Use the standard BLE 1Mbps PHY */
- RAIL_BLE_1Mbps,
- /** Use the high data rate BLE 2Mbps PHY */
- RAIL_BLE_2Mbps,
- /** Enables the 125 kbps variant of the BLE Coded PHY */
- RAIL_BLE_Coded125kbps,
- /** Enables the 500 kbps variant of the BLE Coded PHY */
- RAIL_BLE_Coded500kbps,
+ /** Use the standard BLE 1 Mbps PHY. */
+ RAIL_BLE_1Mbps = 0U,
+ /** Use the high data rate BLE 2 Mbps PHY. */
+ RAIL_BLE_2Mbps = 1U,
+ /** Enables the 125 kbps variant of the BLE Coded PHY. */
+ RAIL_BLE_Coded125kbps = 2U,
+ /** Enables the 500 kbps variant of the BLE Coded PHY. */
+ RAIL_BLE_Coded500kbps = 3U,
+ /** Use the BLE Simulscan PHY. */
+ RAIL_BLE_Simulscan = 4U,
+ /** Use the 1 Mbps variant of the BLE CS PHY. */
+ RAIL_BLE_CS1Mbps = 5U,
+ /** Use the 2 Mbps variant of the BLE CS PHY. */
+ RAIL_BLE_CS2Mbps = 6U,
+ /** Use the BLE 2 Mbps AOX PHY. */
+ RAIL_BLE_AOX2Mbps = 7U,
+ /** Use the BLE 1 Mbps Quuppa PHY. */
+ RAIL_BLE_Quuppa1Mbps = 8U,
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -167,6 +163,11 @@ RAIL_ENUM(RAIL_BLE_Phy_t) {
#define RAIL_BLE_2Mbps ((RAIL_BLE_Phy_t) RAIL_BLE_2Mbps)
#define RAIL_BLE_Coded125kbps ((RAIL_BLE_Phy_t) RAIL_BLE_Coded125kbps)
#define RAIL_BLE_Coded500kbps ((RAIL_BLE_Phy_t) RAIL_BLE_Coded500kbps)
+#define RAIL_BLE_Simulscan ((RAIL_BLE_Phy_t) RAIL_BLE_Simulscan)
+#define RAIL_BLE_CS1Mbps ((RAIL_BLE_Phy_t) RAIL_BLE_CS1Mbps)
+#define RAIL_BLE_CS2Mbps ((RAIL_BLE_Phy_t) RAIL_BLE_CS2Mbps)
+#define RAIL_BLE_AOX2Mbps ((RAIL_BLE_Phy_t) RAIL_BLE_AOX2Mbps)
+#define RAIL_BLE_Quuppa1Mbps ((RAIL_BLE_Phy_t) RAIL_BLE_Quuppa1Mbps)
#endif //DOXYGEN_SHOULD_SKIP_THIS
/// @addtogroup BLE_PHY BLE Radio Configurations
@@ -182,25 +183,25 @@ RAIL_ENUM(RAIL_BLE_Phy_t) {
/// @{
/**
- * Default PHY to use for BLE 1M non-Viterbi. Will be NULL if
+ * Default PHY to use for BLE 1 Mbps non-Viterbi. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_1MBPS_NON_VITERBI is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy1Mbps;
/**
- * Default PHY to use for BLE 2M non-Viterbi. Will be NULL if
+ * Default PHY to use for BLE 2 Mbps non-Viterbi. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_2MBPS_NON_VITERBI is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy2Mbps;
/**
- * Default PHY to use for BLE 1M Viterbi. Will be NULL if
+ * Default PHY to use for BLE 1 Mbps Viterbi. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_1MBPS_VITERBI is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy1MbpsViterbi;
/**
- * Default PHY to use for BLE 2M Viterbi. Will be NULL if
+ * Default PHY to use for BLE 2 Mbps Viterbi. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_2MBPS_VITERBI is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy2MbpsViterbi;
@@ -208,64 +209,63 @@ extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy2MbpsViterbi;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* Default PHY to use for BLE 1M Viterbi CS. Will be NULL if
- * \ref RAIL_BLE_SUPPORTS_CS is 0. On EFR32XG24, this will also
+ * \ref RAIL_BLE_SUPPORTS_CS is 0. On EFR32xG24, this will also
* be NULL for non 40MHz HFXO frequencies.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy1MbpsViterbiCs;
/**
* Default PHY to use for BLE 2M Viterbi CS. Will be NULL if
- * \ref RAIL_BLE_SUPPORTS_CS is 0. On EFR32XG24, this will also
+ * \ref RAIL_BLE_SUPPORTS_CS is 0. On EFR32xG24, this will also
* be NULL for non 40MHz HFXO frequencies.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy2MbpsViterbiCs;
#endif
/**
- * PHY to use for BLE 2M with AoX functionality. Will be NULL if either
+ * PHY to use for BLE 2 Mbps with AoX functionality. Will be NULL if either
* \ref RAIL_BLE_SUPPORTS_2MBPS_VITERBI or \ref RAIL_BLE_SUPPORTS_AOX is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy2MbpsAox;
/**
- * Default PHY to use for BLE Coded 125kbps. Will be NULL if
+ * Default PHY to use for BLE Coded 125 kbps. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_CODED_PHY is 0. This PHY can receive on both
- * 125kbps and 500kbps BLE Coded, but will only transmit at 125kbps.
+ * 125 kbps and 500 kbps BLE Coded, but will only transmit at 125 kbps.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy125kbps;
/**
- * Default PHY to use for BLE Coded 500kbps. Will be NULL if
+ * Default PHY to use for BLE Coded 500 kbps. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_CODED_PHY is 0. This PHY can receive on both
- * 125kbps and 500kbps BLE Coded, but will only transmit at 125kbps.
+ * 125 kbps and 500 kbps BLE Coded, but will only transmit at 125 kbps.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_Phy500kbps;
/**
* Default PHY to use for BLE Simulscan. Will be NULL if
- * \ref RAIL_BLE_SUPPORTS_SIMULSCAN_PHY is 0. This PHY can receive on 1Mbps
- * as well as 125kbps and 500kbps BLE Coded, but will only transmit at 1Mbps.
+ * \ref RAIL_BLE_SUPPORTS_SIMULSCAN_PHY is 0. This PHY can receive on 1 Mbps
+ * as well as 125 kbps and 500 kbps BLE Coded, but will only transmit at 1 Mbps.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_PhySimulscan;
/**
- * Default 1Mbps Quuppa PHY. Will be NULL if
+ * Default 1 Mbps Quuppa PHY. Will be NULL if
* \ref RAIL_BLE_SUPPORTS_QUUPPA is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_BLE_PhyQuuppa;
/// @} // End of group BLE_PHY
-// Defines for subPhyID field in RAIL_RxPacketDetails_t
-/** subPhyId indicating a 500kbps packet */
+/** \ref RAIL_RxPacketDetails_t::subPhyId indicating a 500 kbps packet. */
#define RAIL_BLE_RX_SUBPHY_ID_500K (0U)
-/** subPhyId indicating a 125kbps packet */
+/** \ref RAIL_RxPacketDetails_t::subPhyId indicating a 125 kbps packet. */
#define RAIL_BLE_RX_SUBPHY_ID_125K (1U)
-/** subPhyId value indicating a 1Mbps packet */
+/** \ref RAIL_RxPacketDetails_t::subPhyId value indicating a 1 Mbps packet. */
#define RAIL_BLE_RX_SUBPHY_ID_1M (2U)
-/** Invalid subPhyId value */
+/** \ref RAIL_RxPacketDetails_t::subPhyId invalid value. */
#define RAIL_BLE_RX_SUBPHY_ID_INVALID (3U)
-/** subPhyId indicating the total count */
+/** The total count of BLE subPhyId's. Must be last. */
#define RAIL_BLE_RX_SUBPHY_COUNT (4U)
/**
@@ -273,35 +273,39 @@ extern const RAIL_ChannelConfig_t *const RAIL_BLE_PhyQuuppa;
* @brief Available Signal Identifier modes.
*/
RAIL_ENUM(RAIL_BLE_SignalIdentifierMode_t) {
- /* Disable signal detection mode. */
+ /** Disable signal detection mode. */
RAIL_BLE_SIGNAL_IDENTIFIER_MODE_DISABLE = 0,
- /* BLE 1Mbps (GFSK) detection mode. */
- RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS,
- /* BLE 2Mbps (GFSK) detection mode. */
- RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS
+ /** BLE 1 Mbps (GFSK) detection mode. */
+ RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS = 1,
+ /** BLE 2 Mbps (GFSK) detection mode. */
+ RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS = 2,
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_DISABLE ((RAIL_BLE_SignalIdentifierMode_t)RAIL_BLE_SIGNAL_IDENTIFIER_MODE_DISABLE)
-#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS ((RAIL_BLE_SignalIdentifierMode_t)RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS)
-#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS ((RAIL_BLE_SignalIdentifierMode_t)RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS)
+#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_DISABLE ((RAIL_BLE_SignalIdentifierMode_t) RAIL_BLE_SIGNAL_IDENTIFIER_MODE_DISABLE)
+#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS ((RAIL_BLE_SignalIdentifierMode_t) RAIL_BLE_SIGNAL_IDENTIFIER_MODE_1MBPS)
+#define RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS ((RAIL_BLE_SignalIdentifierMode_t) RAIL_BLE_SIGNAL_IDENTIFIER_MODE_2MBPS)
#endif
/**
* @struct RAIL_BLE_State_t
- * @brief A state structure for BLE.
- *
- * This structure must be allocated in application global read-write memory
- * that persists for the duration of BLE usage. It cannot be allocated
- * in read-only memory or on the call stack.
+ * @brief A structure for BLE radio state parameters.
*/
typedef struct RAIL_BLE_State {
- uint32_t crcInit; /**< The value used to initialize the CRC algorithm. */
- uint32_t accessAddress; /**< The access address used for the connection. */
- uint16_t channel; /**< The logical channel used. */
- bool disableWhitening; /**< Indicates whether the whitening engine should be off. */
- uint16_t whiteInit; /**< The value used to initialize the whitening algorithm */
+ /** The value used to initialize the CRC algorithm. */
+ uint32_t crcInit;
+ /**
+ * The access address used for the connection.
+ * It is transmitted or received least-significant bit first.
+ */
+ uint32_t accessAddress;
+ /** The logical channel used. */
+ uint16_t channel;
+ /** Indicates whether the whitening engine should be off (generally used for testing only). */
+ bool disableWhitening;
+ /** Reserved for future use; specify 0. */
+ uint16_t whiteInit;
} RAIL_BLE_State_t;
/**
@@ -312,8 +316,8 @@ typedef struct RAIL_BLE_State {
*
* This function changes your radio, channel configuration, and other
* parameters to match what is needed for BLE, initially establishing
- * the BLE 1mbps PHY. To switch back to a
- * default RAIL mode, call RAIL_BLE_Deinit() first. This function
+ * the BLE 1 Mbps PHY. To switch back to a
+ * default RAIL mode, call \ref RAIL_BLE_Deinit() first. This function
* will configure the protocol output on PTI to \ref RAIL_PTI_PROTOCOL_BLE.
*
* @note BLE may not be enabled while Auto-ACKing is enabled.
@@ -327,7 +331,7 @@ RAIL_Status_t RAIL_BLE_Init(RAIL_Handle_t railHandle);
* @return Status code indicating success of the function call.
*
* This function will undo some of the configuration that happens when you call
- * RAIL_BLE_Init(). After this you can safely run your normal radio
+ * \ref RAIL_BLE_Init(). After this you can safely run your normal radio
* initialization code to use a non-BLE configuration. This function does \b
* not change back your radio or channel configurations so you must do this by
* manually reinitializing. This also resets the protocol output on PTI to \ref
@@ -342,7 +346,7 @@ RAIL_Status_t RAIL_BLE_Deinit(RAIL_Handle_t railHandle);
* @return true if BLE mode is enabled and false otherwise.
*
* This function returns the current status of RAIL's BLE mode. It is enabled by
- * a call to RAIL_BLE_Init() and disabled by a call to RAIL_BLE_Deinit().
+ * a call to \ref RAIL_BLE_Init() and disabled by a call to \ref RAIL_BLE_Deinit().
*/
bool RAIL_BLE_IsEnabled(RAIL_Handle_t railHandle);
@@ -354,7 +358,7 @@ bool RAIL_BLE_IsEnabled(RAIL_Handle_t railHandle);
*
* You can use this function to switch to the Quuppa PHY.
*
- * @note Not all chips support the 1Mbps Quuppa PHY. This API should return RAIL_STATUS_INVALID_CALL if
+ * @note Not all chips support the 1 Mbps Quuppa PHY. This API should return \ref RAIL_STATUS_INVALID_CALL if
* unsupported by the hardware we're building for.
*/
RAIL_Status_t RAIL_BLE_ConfigPhyQuuppa(RAIL_Handle_t railHandle);
@@ -363,7 +367,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhyQuuppa(RAIL_Handle_t railHandle);
* Switch to the Viterbi 1 Mbps BLE PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to the default BLE 1 Mbps PHY if you
* have switched to the 2 Mbps or another configuration. You may only call this
@@ -375,13 +379,13 @@ RAIL_Status_t RAIL_BLE_ConfigPhy1MbpsViterbi(RAIL_Handle_t railHandle);
* Switch to the legacy non-Viterbi 1 Mbps BLE PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to the legacy BLE 1 Mbps PHY if you
* have switched to the 2 Mbps or another configuration. You may only call this
* function after initializing BLE and while the radio is idle.
*
- * @note The EFR32XG2x family does not support BLE non-Viterbi PHYs.
+ * @deprecated BLE non-Viterbi PHYs are no longer supported.
*/
RAIL_Status_t RAIL_BLE_ConfigPhy1Mbps(RAIL_Handle_t railHandle);
@@ -389,7 +393,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhy1Mbps(RAIL_Handle_t railHandle);
* Switch to the Viterbi 2 Mbps BLE PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to the BLE 2 Mbps PHY from the
* default 1 Mbps option. You may only call this function after initializing BLE
@@ -401,14 +405,13 @@ RAIL_Status_t RAIL_BLE_ConfigPhy2MbpsViterbi(RAIL_Handle_t railHandle);
* Switch to the legacy non-Viterbi 2 Mbps BLE PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
- * Use this function to switch back to legacy BLE 2Mbps PHY from the
+ * Use this function to switch back to legacy BLE 2 Mbps PHY from the
* default 1 Mbps option. You may only call this function after initializing BLE
* and while the radio is idle.
*
- * @deprecated No EFR32 Series 2 parts support BLE non-Viterbi
- * 2 Mbps PHY.
+ * @deprecated BLE non-Viterbi PHYs are no longer supported.
*/
RAIL_Status_t RAIL_BLE_ConfigPhy2Mbps(RAIL_Handle_t railHandle);
@@ -416,8 +419,8 @@ RAIL_Status_t RAIL_BLE_ConfigPhy2Mbps(RAIL_Handle_t railHandle);
* Switch to the BLE Coded PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @param[in] bleCoding The RAIL_BLE_Coding_t to use
- * @return A status code indicating success of the function call.
+ * @param[in] bleCoding The \ref RAIL_BLE_Coding_t to use
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to BLE Coded PHY from the default
* 1 Mbps option. You may only call this function after initializing BLE and
@@ -433,7 +436,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhyCoded(RAIL_Handle_t railHandle,
* Switch to the Simulscan PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch to the BLE Simulscan PHY. You may only
* call this function after initializing BLE and while the radio is idle.
@@ -454,7 +457,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhySimulscan(RAIL_Handle_t railHandle);
* Switch to the 1 Mbps BLE PHY for CS.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to the BLE 1 Mbps CS PHY from
* another configuration. You may only call this
@@ -468,7 +471,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhy1MbpsCs(RAIL_Handle_t railHandle);
* Switch to the 2 Mbps BLE PHY for CS.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Use this function to switch back to the BLE 2 Mbps CS PHY from
* another configuration. You may only call this
@@ -477,7 +480,7 @@ RAIL_Status_t RAIL_BLE_ConfigPhy1MbpsCs(RAIL_Handle_t railHandle);
* @note This PHY is only supported when \ref RAIL_BLE_SUPPORTS_CS is not 0.
*/
RAIL_Status_t RAIL_BLE_ConfigPhy2MbpsCs(RAIL_Handle_t railHandle);
-#endif
+#endif //DOXYGEN_SHOULD_SKIP_THIS
/**
* Change BLE radio parameters.
@@ -490,13 +493,14 @@ RAIL_Status_t RAIL_BLE_ConfigPhy2MbpsCs(RAIL_Handle_t railHandle);
* initializes the whitener if used.
* @param[in] disableWhitening This can turn off the whitening engine and is useful
* for sending BLE test mode packets that don't have this turned on.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function can be used to switch radio parameters on every connection
* and/or channel change. It is BLE-aware and will set the access address,
* preamble, CRC initialization value, and whitening configuration without
- * requiring you to load a new radio configuration. This function should not be
- * called while the radio is active.
+ * requiring you to load a new radio configuration. This function should be
+ * called after switching to a particular BLE phy (1 Mbps, 2 Mbps, etc.) and
+ * not while the radio is active.
*/
RAIL_Status_t RAIL_BLE_ConfigChannelRadioParams(RAIL_Handle_t railHandle,
uint32_t crcInit,
@@ -508,9 +512,9 @@ RAIL_Status_t RAIL_BLE_ConfigChannelRadioParams(RAIL_Handle_t railHandle,
* Change the current BLE PHY and go into receive.
*
* @param[in] railHandle A handle for RAIL instance.
- * @param[in] phy Indicates which PHY to receive on
- * @param[in] railChannel Which channel of the given PHY to receive on
- * @param[in] startRxTime When to enter RX
+ * @param[in] phy Indicates which PHY to receive on.
+ * @param[in] railChannel Which channel of the given PHY to receive on.
+ * @param[in] startRxTime Absolute near-future RAIL time to enter RX.
* @param[in] crcInit The value to use for CRC initialization.
* @param[in] accessAddress The access address to use for the connection. The
* bits of this parameter are transmitted or received LSB first.
@@ -518,7 +522,7 @@ RAIL_Status_t RAIL_BLE_ConfigChannelRadioParams(RAIL_Handle_t railHandle,
* initializes the whitener if used.
* @param[in] disableWhitening This can turn off the whitening engine and is useful
* for sending BLE test mode packets that don't have this turned on.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function is used to implement auxiliary packet reception, as defined in
* the BLE specification. The radio will be put into IDLE, the PHY and channel
@@ -532,7 +536,7 @@ RAIL_Status_t RAIL_BLE_ConfigChannelRadioParams(RAIL_Handle_t railHandle,
RAIL_Status_t RAIL_BLE_PhySwitchToRx(RAIL_Handle_t railHandle,
RAIL_BLE_Phy_t phy,
uint16_t railChannel,
- uint32_t startRxTime,
+ RAIL_Time_t startRxTime,
uint32_t crcInit,
uint32_t accessAddress,
uint16_t logicalChannel,
@@ -543,6 +547,7 @@ RAIL_Status_t RAIL_BLE_PhySwitchToRx(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] signalIdentifierMode Mode of signal identifier operation.
+ * @return Status code indicating success of the function call.
*
* This features allows detection of BLE signal on air based on the mode.
* This function must be called once before \ref RAIL_BLE_EnableSignalDetection
@@ -554,8 +559,6 @@ RAIL_Status_t RAIL_BLE_PhySwitchToRx(RAIL_Handle_t railHandle,
* This function is only supported by chips where
* \ref RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER and
* \ref RAIL_BLE_SupportsSignalIdentifier() are true.
- *
- * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_BLE_ConfigSignalIdentifier(RAIL_Handle_t railHandle,
RAIL_BLE_SignalIdentifierMode_t signalIdentifierMode);
@@ -565,19 +568,18 @@ RAIL_Status_t RAIL_BLE_ConfigSignalIdentifier(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] enable Signal detection is enabled if true, disabled if false.
+ * @return Status code indicating success of the function call.
*
- * \ref RAIL_BLE_ConfigSignalIdentifier must be called once before calling this
+ * \ref RAIL_BLE_ConfigSignalIdentifier() must be called once before calling this
* function to configure and enable signal identifier.
* Once a signal is detected signal detection will be turned off and this
* function should be called to re-enable the signal detection without needing
- * to call \ref RAIL_BLE_ConfigSignalIdentifier if the signal identifier
+ * to call \ref RAIL_BLE_ConfigSignalIdentifier() if the signal identifier
* is already configured and enabled.
*
* This function is only supported by chips where
* \ref RAIL_BLE_SUPPORTS_SIGNAL_IDENTIFIER and
* \ref RAIL_BLE_SupportsSignalIdentifier() are true.
- *
- * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_BLE_EnableSignalDetection(RAIL_Handle_t railHandle,
bool enable);
@@ -602,25 +604,23 @@ RAIL_Status_t RAIL_BLE_EnableSignalDetection(RAIL_Handle_t railHandle,
*/
/**
- *
* The maximum number of GPIO pins used for AoX Antenna switching.
*
* If the user configures more pins using
- * \ref RAIL_BLE_ConfigAoxAntenna than allowed
+ * \ref RAIL_BLE_ConfigAoxAntenna() than allowed
* \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT, then
* \ref RAIL_STATUS_INVALID_PARAMETER status will be returned.
*
* \ref RAIL_STATUS_INVALID_CALL is returned if :
* \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT is set to 0 or
- * The user configures no pins.
+ * the user configures no pins.
*
* The maximum value \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT can take depends on
* number of Antenna route pins , a chip provides.
- * For EFR32XG22, the maximum value of \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT is 6.
+ * For EFR32xG22, the maximum value of \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT is 6.
* If the user configures fewer pins than \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT,
* then only number of pins asked by user will be configured with
* \ref RAIL_STATUS_NO_ERROR.
- *
*/
#define RAIL_BLE_AOX_ANTENNA_PIN_COUNT (6U)
@@ -629,13 +629,13 @@ RAIL_Status_t RAIL_BLE_EnableSignalDetection(RAIL_Handle_t railHandle,
* @brief Angle of Arrival/Departure options bit fields
*/
RAIL_ENUM_GENERIC(RAIL_BLE_AoxOptions_t, uint16_t) {
- /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_SAMPLE_MODE bit */
+ /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_SAMPLE_MODE bit. */
RAIL_BLE_AOX_OPTIONS_SAMPLE_MODE_SHIFT = 0,
- /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_CONNLESS bit */
+ /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_CONNLESS bit. */
RAIL_BLE_AOX_OPTIONS_CONNLESS_SHIFT = 1,
- /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_CONN bit */
+ /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_CONN bit. */
RAIL_BLE_AOX_OPTIONS_CONN_SHIFT = 2,
- /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_DISABLE_BUFFER_LOCK bit */
+ /** Shift position of \ref RAIL_BLE_AOX_OPTIONS_DISABLE_BUFFER_LOCK bit. */
RAIL_BLE_AOX_OPTIONS_DISABLE_BUFFER_LOCK_SHIFT = 3,
};
@@ -683,12 +683,10 @@ RAIL_ENUM_GENERIC(RAIL_BLE_AoxOptions_t, uint16_t) {
/**
* @struct RAIL_BLE_AoxConfig_t
- * @brief Contains arguments for \ref RAIL_BLE_ConfigAox function.
+ * @brief Contains arguments for \ref RAIL_BLE_ConfigAox() function.
*/
typedef struct RAIL_BLE_AoxConfig {
- /**
- * See RAIL_BLE_AOX_OPTIONS_* for bitfield defines for different AoX features.
- */
+ /** AoX options. */
RAIL_BLE_AoxOptions_t aoxOptions;
/**
* Size of the raw AoX CTE (continuous tone extension) data capture buffer in
@@ -708,7 +706,7 @@ typedef struct RAIL_BLE_AoxConfig {
*/
uint8_t * antArrayAddr;
/**
- * Size of the antenna pattern array.
+ * Number of entries in the antenna pattern array.
*/
uint8_t antArraySize;
} RAIL_BLE_AoxConfig_t;
@@ -718,25 +716,20 @@ typedef struct RAIL_BLE_AoxConfig {
* @brief Contains elements of \ref RAIL_BLE_AoxAntennaConfig_t struct.
*/
typedef struct RAIL_BLE_AoxAntennaPortPins {
- /**
- * The port which is used for AoX antenna switching
- */
+ /** The port which is used for AoX antenna switching. */
uint8_t antPort;
- /**
- * The pin which is used for AoX antenna switching
- */
+ /** The pin which is used for AoX antenna switching. */
uint8_t antPin;
} RAIL_BLE_AoxAntennaPortPins_t;
/**
* @struct RAIL_BLE_AoxAntennaConfig_t
- * @brief Contains arguments for \ref RAIL_BLE_ConfigAoxAntenna function for
- * EFR32XG22.
+ * @brief Contains arguments for \ref RAIL_BLE_ConfigAoxAntenna() function.
*/
typedef struct RAIL_BLE_AoxAntennaConfig {
/**
* A pointer to an array containing struct of port and pin used for
- * AoX antenna switching
+ * AoX antenna switching.
*/
RAIL_BLE_AoxAntennaPortPins_t *antPortPin;
/**
@@ -772,7 +765,7 @@ bool RAIL_BLE_CteBufferIsLocked(RAIL_Handle_t railHandle);
*
* @param[in] railHandle A handle for RAIL instance.
* @return The offset of CTE data in a CTE sample in bytes.
- * On unsupported platforms this returns 0.
+ * On unsupported platforms this returns 0.
*/
uint8_t RAIL_BLE_GetCteSampleOffset(RAIL_Handle_t railHandle);
@@ -786,7 +779,13 @@ uint8_t RAIL_BLE_GetCteSampleOffset(RAIL_Handle_t railHandle);
uint32_t RAIL_BLE_GetCteSampleRate(RAIL_Handle_t railHandle);
/**
- * Configure Angle of Arrival/Departure (AoX) functionality. AoX is a method
+ * Configure Angle of Arrival/Departure (AoX) functionality.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] aoxConfig Configuration options for AoX
+ * @return Status code indicating success of the function call.
+ *
+ * AoX is a method
* of radio localization which infers angle of arrival/departure of the signal
* based on different phases of the raw I/Q signal from different antennas by
* controlling external RF switch during the continuous tone extension (CTE).
@@ -794,34 +793,31 @@ uint32_t RAIL_BLE_GetCteSampleRate(RAIL_Handle_t railHandle);
* they have 3 header bytes instead of 2 and they have CTE appended after the
* payload's CRC. 3rd byte or CTE info contains CTE length. Connectionless AoX
* packets have 2 header bytes and CTE info is part of the payload.
- * Note that calling \ref RAIL_GetRadioEntropy during AoX reception may break
- * receiving packets.
*
- * @param[in] railHandle A RAIL instance handle.
- * @param[in] aoxConfig Configuration options for AoX
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @note Calling \ref RAIL_GetRadioEntropy() during AoX reception may break
+ * packet reception.
*/
RAIL_Status_t RAIL_BLE_ConfigAox(RAIL_Handle_t railHandle,
const RAIL_BLE_AoxConfig_t *aoxConfig);
+
/**
* Perform one time initialization of AoX registers.
- * This function must be called before \ref RAIL_BLE_ConfigAox
+ * This function must be called before \ref RAIL_BLE_ConfigAox()
* and before configuring the BLE PHY.
*
* @param[in] railHandle A RAIL instance handle.
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_BLE_InitCte(RAIL_Handle_t railHandle);
/**
* Perform initialization of AoX antenna GPIO pins.
- * This function must be called before calls to \ref RAIL_BLE_InitCte
- * and \ref RAIL_BLE_ConfigAox, and before configuring the BLE PHY,
+ * This function must be called before calls to \ref RAIL_BLE_InitCte()
+ * and \ref RAIL_BLE_ConfigAox(), and before configuring the BLE PHY,
* else a \ref RAIL_STATUS_INVALID_CALL is returned.
*
- * If user configures more pins, i.e., antCount in
- * \ref RAIL_BLE_AoxAntennaConfig_t, than allowed
- * \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT, then the API returns
+ * If user configures more pins in \ref RAIL_BLE_AoxAntennaConfig_t::antCount
+ * than allowed by \ref RAIL_BLE_AOX_ANTENNA_PIN_COUNT, then the API returns
* \ref RAIL_STATUS_INVALID_PARAMETER.
*
* If user configures lesser than or equal to number of pins allowed by
@@ -833,16 +829,17 @@ RAIL_Status_t RAIL_BLE_InitCte(RAIL_Handle_t railHandle);
* on the default antenna if no antenna pattern is provided.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] antennaConfig structure to hold the set of ports and pins to
- * configure Antenna pins for AoX Antenna switching.
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @param[in] antennaConfig A pointer to the antenna configuration
+ * structure to hold the set of GPIO ports and pins for AoX antenna
+ * switching.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_BLE_ConfigAoxAntenna(RAIL_Handle_t railHandle,
RAIL_BLE_AoxAntennaConfig_t *antennaConfig);
/** @} */ // end of group AoX
- #ifndef DOXYGEN_SHOULD_SKIP_THIS
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
/******************************************************************************
* Channel Sounding (CS)
*****************************************************************************/
@@ -869,9 +866,9 @@ RAIL_Status_t RAIL_BLE_ConfigAoxAntenna(RAIL_Handle_t railHandle,
RAIL_ENUM(RAIL_BLE_CsRole_t) {
/** Device cannot perform CS events. */
RAIL_BLE_CS_ROLE_UNASSIGNED = 0,
- /** Device is an initiator during CS events */
+ /** Device is an initiator during CS events. */
RAIL_BLE_CS_ROLE_INITIATOR = 1,
- /** Device is a reflector during CS events */
+ /** Device is a reflector during CS events. */
RAIL_BLE_CS_ROLE_REFLECTOR = 2,
};
@@ -884,10 +881,11 @@ RAIL_ENUM(RAIL_BLE_CsRole_t) {
/**
* @struct RAIL_BLE_CsResults_t
- * @brief Contains measurement results from CS step
+ * @brief Contains measurement results from CS step.
*/
typedef struct {
- uint32_t result[7]; /**< CS measurement data for a particular step. */
+ /** CS measurement data for a particular step. */
+ uint32_t result[7];
} RAIL_BLE_CsResults_t;
/**
@@ -903,25 +901,49 @@ RAIL_ENUM(RAIL_BLE_CsRttType_t) {
RAIL_BLE_CS_RTT_96B_SS = 2U,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_RTT_AA_ONLY ((RAIL_BLE_CsRttType_t) RAIL_BLE_CS_RTT_AA_ONLY)
+#define RAIL_BLE_CS_RTT_32B_SS ((RAIL_BLE_CsRttType_t) RAIL_BLE_CS_RTT_32B_SS)
+#define RAIL_BLE_CS_RTT_96B_SS ((RAIL_BLE_CsRttType_t) RAIL_BLE_CS_RTT_96B_SS)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
/**
* The minimum size in 32 bit words for the IQ buffer. This value guarantees
- * all IQ samples for a single 1mbps CS step can be stored.
+ * all IQ samples for a single 1 Mbps CS step can be stored.
*/
-#define RAIL_BLE_CS_1MBPS_MINIMUM_IQ_BUFFER_SIZE 600U
+#define RAIL_BLE_CS_1MBPS_MINIMUM_IQ_BUFFER_SIZE 1500U
/**
* @struct RAIL_BLE_CsConfig_t
* @brief Contains arguments for \ref RAIL_BLE_ConfigCs function.
*/
typedef struct RAIL_BLE_CsConfig {
- RAIL_BLE_CsRole_t role; /**< The device role during CS event. */
- uint16_t csSqteSteps; /**< Number of steps in CS event. */
+ /** The device role during CS event. */
+ RAIL_BLE_CsRole_t role;
+ /**
+ * Number of mode 2 phase measurement slots, including the
+ * tone extension slot. This value should be between
+ * \ref RAIL_BLE_CS_MIN_ANTENNA_SLOTS and
+ * \ref RAIL_BLE_CS_MAX_ANTENNA_SLOTS, inclusive.
+ * A provided value below or above this range will be pegged
+ * to the appropriate minimum or maximum value.
+ */
+ uint8_t slotCount;
+ /** Number of steps in CS event. */
+ uint16_t csSqteSteps;
/** Pointer to CS measurements. Set to NULL if unused. */
RAIL_BLE_CsResults_t *pCsDataOutput;
- uint16_t t_fcs; /**< Frequency change spacing (in us). */
- uint16_t t_ip1; /**< Interlude period for mode 0 & 1 steps (in us). */
- uint16_t t_ip2; /**< Interlude period for mode 2 steps (in us). */
- uint16_t t_pm; /**< Phase measurement time (in us). */
+ /** Frequency change spacing (in us). */
+ uint16_t t_fcs;
+ /** Interlude period for mode 0 & 1 steps (in us). */
+ uint16_t t_ip1;
+ /** Interlude period for mode 2 steps (in us). */
+ uint16_t t_ip2;
+ /** Phase measurement time (in us). */
+ uint16_t t_pm;
+ /**< Antenna switching time (in us). */
+ uint16_t t_sw;
/**
* Pointer to buffer where IQ data will be written. Buffer must be 32-bit
* aligned.
@@ -930,7 +952,7 @@ typedef struct RAIL_BLE_CsConfig {
/**
* Size of IQ buffer in 32 bit words. Must be at least \ref
* RAIL_BLE_CS_1MBPS_MINIMUM_IQ_BUFFER_SIZE or else an error will be
- * returned by \ref RAIL_BLE_ConfigCs.
+ * returned by \ref RAIL_BLE_ConfigCs().
*/
uint16_t iqBufferSize;
/**
@@ -938,7 +960,8 @@ typedef struct RAIL_BLE_CsConfig {
* to a mode 0 step or else the event calibration won't occur.
*/
uint8_t eventCalStepIndex;
- RAIL_BLE_CsRttType_t rttType; /**< RTT type returned during mode 1 step. */
+ /** RTT type returned during mode 1 step. */
+ RAIL_BLE_CsRttType_t rttType;
/**
* A pointer to the selected CS event gain index. This field will be
* populated after \ref eventCalStepIndex has been reached.
@@ -946,14 +969,18 @@ typedef struct RAIL_BLE_CsConfig {
uint8_t *pEventGainIndex;
/**
* A pointer to the selected CS event Fractional Frequency Offset
- * (FFO) * 100. This field will be populated after \ref eventCalStepIndex
- * has been reached.
+ * (FFO) * pp100m (parts-per-100-million). This field will be populated
+ * after \ref eventCalStepIndex has been reached.
*/
int16_t *pEventFfoPp100m;
- bool disableRttGdComp; /**< Debug flag to disable RTT GD compensation. */
- bool disablePbrDcComp; /**< Debug flag to disable PBR DC compensation. */
- bool disablePbrGdComp; /**< Debug flag to disable PBR GD compensation. */
- bool forceAgcGain; /**< Debug flag to force event gain for calibration. */
+ /** Debug flag to disable RTT GD compensation. */
+ bool disableRttGdComp;
+ /** Debug flag to disable PBR DC compensation. */
+ bool disablePbrDcComp;
+ /** Debug flag to disable PBR GD compensation. */
+ bool disablePbrGdComp;
+ /** Debug flag to force event gain for calibration. */
+ bool forceAgcGain;
/**
* Pointer to an FAE table of size \ref RAIL_BLE_CS_NUM_ALLOWED_CHANNELS
* that holds the FAE value for each allowed CS channel in units of
@@ -962,10 +989,11 @@ typedef struct RAIL_BLE_CsConfig {
* Set to NULL if unused.
*/
int8_t(*pFaeTable)[RAIL_BLE_CS_NUM_ALLOWED_CHANNELS];
- uint32_t forcedAgcStatus0; /**< Equivalent AGC status0 register to force. */
+ /** Equivalent AGC STATUS0 register to force. */
+ uint32_t forcedAgcStatus0;
} RAIL_BLE_CsConfig_t;
-/** The maximum number of CS steps allowed during a CS event */
+/** The maximum number of CS steps allowed during a CS event. */
#define RAIL_BLE_CS_MAX_SQTE_STEPS 512U
/**
@@ -973,22 +1001,33 @@ typedef struct RAIL_BLE_CsConfig {
* @brief The current CS step state.
*/
RAIL_ENUM(RAIL_BLE_CsStepState_t) {
- /** CS step state idle */
+ /** CS step state idle. */
RAIL_BLE_CS_STATE_IDLE = 0,
- /** CS step state initiator initiator transmit mode 0 */
+ /** CS step state initiator initiator transmit mode 0. */
RAIL_BLE_CS_STATE_I_TX_MODE0 = 1,
- /** CS step state initiator reflector transmit mode 0 */
+ /** CS step state initiator reflector transmit mode 0. */
RAIL_BLE_CS_STATE_R_TX_MODE0 = 2,
- /** CS step state initiator initiator transmit mode 1 */
+ /** CS step state initiator initiator transmit mode 1. */
RAIL_BLE_CS_STATE_I_TX_MODE1 = 3,
- /** CS step state initiator reflector transmit mode 1 */
+ /** CS step state initiator reflector transmit mode 1. */
RAIL_BLE_CS_STATE_R_TX_MODE1 = 4,
- /** CS step state initiator initiator transmit mode 2 */
+ /** CS step state initiator initiator transmit mode 2. */
RAIL_BLE_CS_STATE_R_TX_MODE2 = 6,
- /** CS step state initiator reflector transmit mode 2 */
+ /** CS step state initiator reflector transmit mode 2. */
RAIL_BLE_CS_STATE_I_TX_MODE2 = 7,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_STATE_IDLE ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_IDLE)
+#define RAIL_BLE_CS_STATE_I_TX_MODE0 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_I_TX_MODE0)
+#define RAIL_BLE_CS_STATE_R_TX_MODE0 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_R_TX_MODE0)
+#define RAIL_BLE_CS_STATE_I_TX_MODE1 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_I_TX_MODE1)
+#define RAIL_BLE_CS_STATE_R_TX_MODE1 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_R_TX_MODE1)
+#define RAIL_BLE_CS_STATE_R_TX_MODE2 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_R_TX_MODE2)
+#define RAIL_BLE_CS_STATE_I_TX_MODE2 ((RAIL_BLE_CsStepState_t) RAIL_BLE_CS_STATE_I_TX_MODE2)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
/**
* First step state for CS mode 0.
*/
@@ -1009,23 +1048,54 @@ RAIL_ENUM(RAIL_BLE_CsStepState_t) {
* @brief The CS step mode.
*/
RAIL_ENUM(RAIL_BLE_CsStepMode_t) {
- RAIL_BLE_CS_MODE_0, /**< CS step mode 0. */
- RAIL_BLE_CS_MODE_1, /**< CS step mode 1. */
- RAIL_BLE_CS_MODE_2, /**< CS step mode 2. */
- RAIL_BLE_CS_MODE_3, /**< CS step mode 3. */
+ /** CS step mode 0. */
+ RAIL_BLE_CS_MODE_0 = 0,
+ /** CS step mode 1. */
+ RAIL_BLE_CS_MODE_1 = 1,
+ /** CS step mode 2. */
+ RAIL_BLE_CS_MODE_2 = 2,
+ /** CS step mode 3. */
+ RAIL_BLE_CS_MODE_3 = 3,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_MODE_0 ((RAIL_BLE_CsStepMode_t) RAIL_BLE_CS_MODE_0)
+#define RAIL_BLE_CS_MODE_1 ((RAIL_BLE_CsStepMode_t) RAIL_BLE_CS_MODE_1)
+#define RAIL_BLE_CS_MODE_2 ((RAIL_BLE_CsStepMode_t) RAIL_BLE_CS_MODE_2)
+#define RAIL_BLE_CS_MODE_3 ((RAIL_BLE_CsStepMode_t) RAIL_BLE_CS_MODE_3)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+/** The maximum number of antennas supported. */
+#define RAIL_BLE_CS_MAX_ANTENNAS 4U
+
/**
* @enum RAIL_BLE_CsAntennaId_t
- * @brief The CS antenna ID.
+ * @brief The CS antenna ID. Valid values according to the CS spec are within
+ * the range 1 and 4 inclusive.
*/
RAIL_ENUM(RAIL_BLE_CsAntennaId_t) {
- RAIL_BLE_CS_ANTENNA_1 = 0, /**< CS antenna ID 1. */
- RAIL_BLE_CS_ANTENNA_2, /**< CS antenna ID 2. */
- RAIL_BLE_CS_ANTENNA_3, /**< CS antenna ID 3. */
- RAIL_BLE_CS_ANTENNA_4, /**< CS antenna ID 4. */
+ /** Antenna ID of the first supported antenna. */
+ RAIL_BLE_CS_ANTENNA_ID_1 = 1U,
+ /** Antenna ID of the second supported antenna. */
+ RAIL_BLE_CS_ANTENNA_ID_2 = 2U,
+ /** Antenna ID of the third supported antenna. */
+ RAIL_BLE_CS_ANTENNA_ID_3 = 3U,
+ /** Antenna ID of the fourth supported antenna. */
+ RAIL_BLE_CS_ANTENNA_ID_4 = 4U,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_ANTENNA_ID_1 ((RAIL_BLE_CsAntennaId_t) RAIL_BLE_CS_ANTENNA_ID_1)
+#define RAIL_BLE_CS_ANTENNA_ID_2 ((RAIL_BLE_CsAntennaId_t) RAIL_BLE_CS_ANTENNA_ID_2)
+#define RAIL_BLE_CS_ANTENNA_ID_3 ((RAIL_BLE_CsAntennaId_t) RAIL_BLE_CS_ANTENNA_ID_3)
+#define RAIL_BLE_CS_ANTENNA_ID_4 ((RAIL_BLE_CsAntennaId_t) RAIL_BLE_CS_ANTENNA_ID_4)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+/** The value returned by RAIL for an invalid CS antenna count. */
+#define RAIL_BLE_CS_INVALID_ANTENNA_COUNT 0U
+
/**
* @enum RAIL_BLE_CsRttPacketQuality_t
* @brief CS RTT packet quality.
@@ -1039,6 +1109,13 @@ RAIL_ENUM(RAIL_BLE_CsRttPacketQuality_t) {
RAIL_BLE_CS_RTT_AA_NOT_FOUND = 2U,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_RTT_AA_SUCCESS ((RAIL_BLE_CsRttPacketQuality_t) RAIL_BLE_CS_RTT_AA_SUCCESS)
+#define RAIL_BLE_CS_RTT_AA_BIT_ERRORS ((RAIL_BLE_CsRttPacketQuality_t) RAIL_BLE_CS_RTT_AA_BIT_ERRORS)
+#define RAIL_BLE_CS_RTT_AA_NOT_FOUND ((RAIL_BLE_CsRttPacketQuality_t) RAIL_BLE_CS_RTT_AA_NOT_FOUND)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
/**
* @struct RAIL_BLE_CsMode0Results_t
* @brief Contains CS mode 0 step measurement results.
@@ -1050,16 +1127,16 @@ typedef struct RAIL_BLE_CsMode0Results {
RAIL_BLE_CsAntennaId_t antenna;
/** RSSI during step in integer dBm. */
int8_t rssi;
- /** Packet quality */
+ /** Packet quality. */
uint8_t packetQuality;
- /** Reserved */
+ /** Reserved. */
uint16_t reserved;
- /** Fractional Frequency Offset (FFO) * 100 */
+ /** Fractional Frequency Offset (FFO) in units of parts per 100 million. */
int16_t csFfoPp100m;
/** The gain setting. */
uint32_t stepGainSetting;
- /** Reserved */
- uint32_t reserved1;
+ /** Reserved. */
+ uint32_t reserved1[4];
} RAIL_BLE_CsMode0Results_t;
/**
@@ -1079,7 +1156,7 @@ typedef struct RAIL_BLE_CsMode1Results {
RAIL_BLE_CsAntennaId_t antenna;
/** RSSI during step in integer dBm. */
int8_t rssi;
- /** Packet quality */
+ /** Packet quality. */
uint8_t packetQuality;
/**
* For the initiator, this is the time (in 0.5 ns units) between time of
@@ -1090,12 +1167,12 @@ typedef struct RAIL_BLE_CsMode1Results {
* period and packet length.
*/
int16_t rttHalfNs;
- /** Flag used to indicate whether we have missed FCAL during calibration */
+ /** Flag used to indicate whether we have missed frequency calibration. */
uint8_t missedFcal;
- /** Reserved */
- uint8_t reserved1;
- /** Reserved */
- uint32_t reserved2[2];
+ /** Reserved. */
+ uint8_t reserved;
+ /** Reserved. */
+ uint32_t reserved1[5];
} RAIL_BLE_CsMode1Results_t;
/**
@@ -1113,6 +1190,20 @@ RAIL_ENUM(RAIL_BLE_CsToneQuality_t) {
RAIL_BLE_CS_TONE_QUALITY_UNAVAILABLE = 3U,
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_BLE_CS_TONE_QUALITY_GOOD ((RAIL_BLE_CsToneQuality_t) RAIL_BLE_CS_TONE_QUALITY_GOOD)
+#define RAIL_BLE_CS_TONE_QUALITY_MEDIUM ((RAIL_BLE_CsToneQuality_t) RAIL_BLE_CS_TONE_QUALITY_MEDIUM)
+#define RAIL_BLE_CS_TONE_QUALITY_LOW ((RAIL_BLE_CsToneQuality_t) RAIL_BLE_CS_TONE_QUALITY_LOW)
+#define RAIL_BLE_CS_TONE_QUALITY_UNAVAILABLE ((RAIL_BLE_CsToneQuality_t) RAIL_BLE_CS_TONE_QUALITY_UNAVAILABLE)
+#endif//DOXYGEN_SHOULD_SKIP_THIS
+
+/** The minimum number of antenna slots supported during a CS event. */
+#define RAIL_BLE_CS_MIN_ANTENNA_SLOTS 2U
+
+/** The maximum number of antenna slots supported during a CS event. */
+#define RAIL_BLE_CS_MAX_ANTENNA_SLOTS 5U
+
/**
* @struct RAIL_BLE_CsMode2Results_t
* @brief Contains CS mode 2 step measurement results.
@@ -1120,26 +1211,16 @@ RAIL_ENUM(RAIL_BLE_CsToneQuality_t) {
typedef struct RAIL_BLE_CsMode2Results {
/** Mode of CS step. */
uint8_t mode;
- /** Antenna ID. */
- RAIL_BLE_CsAntennaId_t antenna;
- /** Flag used to indicate whether we have missed FCAL during calibration */
+ /** Flag used to indicate whether we have missed frequency calibration. */
uint8_t missedFcal;
- /** Reserved */
- uint8_t reserved1;
- /** PCT i value */
- int16_t pctI;
- /** PCT q value */
- int16_t pctQ;
- /** Tone extension PCT i value */
- int16_t pctToneExtI;
- /** Tone extension PCT q value */
- int16_t pctToneExtQ;
- /** Tone quality indicator */
- RAIL_BLE_CsToneQuality_t tqi;
- /** Tone quality indicator for tone extension */
- RAIL_BLE_CsToneQuality_t tqiToneExt;
- /** Reserved */
- uint16_t reserved2;
+ /** PCT i value. */
+ int16_t pctI[RAIL_BLE_CS_MAX_ANTENNA_SLOTS];
+ /** PCT q value. */
+ int16_t pctQ[RAIL_BLE_CS_MAX_ANTENNA_SLOTS];
+ /** Tone quality indicator. */
+ RAIL_BLE_CsToneQuality_t tqi[RAIL_BLE_CS_MAX_ANTENNA_SLOTS];
+ /** Reserved. */
+ uint8_t reserved[3];
} RAIL_BLE_CsMode2Results_t;
/**
@@ -1147,17 +1228,17 @@ typedef struct RAIL_BLE_CsMode2Results {
* @brief Generic CS step mode result structure. Based on the value of the
* mode field, this structure can be type cast to the appropriate mode
* specific structure \ref RAIL_BLE_CsMode0Results_t,
- * \ref RAIL_BLE_CsMode1Results_t, or RAIL_BLE_CsMode2Results_t.
+ * \ref RAIL_BLE_CsMode1Results_t, or \ref RAIL_BLE_CsMode2Results_t.
*/
typedef struct RAIL_BLE_CsStepResults {
/** Mode of CS step. */
uint8_t mode;
- /** Reserved */
- uint8_t reserved0;
- /** Reserved */
+ /** Reserved. */
+ uint8_t reserved;
+ /** Reserved. */
uint16_t reserved1;
- /** Reserved */
- uint32_t reserved2[3];
+ /** Reserved. */
+ uint32_t reserved2[6];
} RAIL_BLE_CsStepResults_t;
/**
@@ -1176,15 +1257,13 @@ typedef struct RAIL_BLE_CsMode0DebugResults {
* configured as a reflector, this value will always be 0.
*/
int32_t freqOffHz;
- /**
- * Estimated coarse frequency offset in internal units.
- */
+ /** Estimated coarse frequency offset in internal units. */
int32_t hwFreqOffEst;
/** Starting index IQ sample index of unmodulated carrier. */
uint16_t ucStartIndex;
/** End index IQ sample index of unmodulated carrier. */
uint16_t ucEndIndex;
- /** Reserved */
+ /** Reserved. */
uint32_t reserved[2];
/**
* FFO of the Mode 0 step with the highest recorded RSSI
@@ -1193,8 +1272,10 @@ typedef struct RAIL_BLE_CsMode0DebugResults {
int16_t csFfoPp100m;
/** Highest recorded RSSI up to and including the current mode 0 step, in dBm. */
int8_t highestRssiDbm;
- /** Reserved */
- uint8_t reserved0;
+ /** Reserved. */
+ uint8_t reserved1;
+ /** Reserved. */
+ uint32_t reserved2[3];
} RAIL_BLE_CsMode0DebugResults_t;
/**
@@ -1202,14 +1283,24 @@ typedef struct RAIL_BLE_CsMode0DebugResults {
* @brief Contains CS mode 1 step measurement debug results.
*/
typedef struct RAIL_BLE_CsMode1DebugResults {
+ /** Coarse time of flight in units of HFXO clock cycles. */
uint16_t toxClks;
+ /** Fractional component of time of flight in units of half nanoseconds. */
int16_t fracRttHalfNs;
+ /** Coarse component of time of flight in units of half nanoseconds. */
uint32_t coarseRttHalfNs;
+ /** Group delay compensation in units of half nanoseconds. */
int32_t gdCompRttHalfNs;
+ /** Time of flight without T_SY_CENTER_DELTA compensation in units of half nanoseconds. */
int32_t toxWithOffsetsRttHalfNs;
+ /** Internal CS status register. */
uint32_t csstatus3;
+ /** Internal CS status register. */
uint32_t csstatus4;
+ /** Internal CS status register. */
uint32_t csstatus5;
+ /** Reserved. */
+ uint32_t reserved[3];
} RAIL_BLE_CsMode1DebugResults_t;
/**
@@ -1217,30 +1308,36 @@ typedef struct RAIL_BLE_CsMode1DebugResults {
* @brief Contains CS mode 2 step measurement debug results.
*/
typedef struct RAIL_BLE_CsMode2DebugResults {
- /** Hardware PCT I value */
+ /** Hardware PCT I value. */
int16_t hardwarePctI;
- /** Hardware PCT Q value */
+ /** Hardware PCT Q value. */
int16_t hardwarePctQ;
- /** DCCOMP i value */
+ /** DCCOMP i value. */
int16_t dcCompI;
- /** DCCOMP q value */
+ /** DCCOMP q value. */
int16_t dcCompQ;
- /** GDCOMP i value */
- int16_t gdCompI;
- /** GDCOMP q value */
- int16_t gdCompQ;
- /** Raw tone quality value */
+ /** GDCOMP i value. */
+ int16_t gdCompI[RAIL_BLE_CS_MAX_ANTENNAS];
+ /** GDCOMP q value. */
+ int16_t gdCompQ[RAIL_BLE_CS_MAX_ANTENNAS];
+ /** Raw tone quality value. */
uint16_t tqiRaw;
- /** Raw tone quality tone extension value */
+ /** Raw tone quality tone extension value. */
uint16_t tqiToneExtRaw;
- /** FCAL value from SYNTH_VCOTUNING */
+ /**
+ * Pointer to the starting index of each antenna slot for
+ * reading IQ samples.
+ */
+ uint16_t *ucStartIndex;
+ /**
+ * Pointer to the end index of each antenna slot for
+ * reading IQ samples.
+ */
+ uint16_t *ucEndIndex;
+ /** Frequency calibration value in internal units. */
uint16_t fcal;
- /** Starting index for reading IQ samples */
- uint16_t ucStartIndex;
- /** End index for reading IQ samples */
- uint16_t ucEndIndex;
- /** Reserved */
- uint16_t reserved[3];
+ /** Reserved. */
+ uint16_t reserved;
} RAIL_BLE_CsMode2DebugResults_t;
/**
@@ -1248,21 +1345,34 @@ typedef struct RAIL_BLE_CsMode2DebugResults {
* @brief Generic CS step mode debug result structure. Based on the value of
* the mode field, this structure can be type cast to the appropriate mode
* specific structure \ref RAIL_BLE_CsMode0DebugResults_t,
- * \ref RAIL_BLE_CsMode1DebugResults_t, or RAIL_BLE_CsMode2DebugResults_t.
+ * \ref RAIL_BLE_CsMode1DebugResults_t, or \ref RAIL_BLE_CsMode2DebugResults_t.
*/
typedef struct RAIL_BLE_CsStepDebugResults {
+ /** Reserved. */
uint32_t reserved;
+ /** Reserved. */
uint32_t reserved1;
+ /** Reserved. */
uint32_t reserved2;
+ /** Reserved. */
uint32_t reserved3;
+ /** Reserved. */
uint32_t reserved4;
+ /** Reserved. */
uint32_t reserved5;
+ /** Reserved. */
uint32_t reserved6;
+ /** Reserved. */
+ uint32_t reserved7;
+ /** Reserved. */
+ uint32_t reserved8;
+ /** Reserved. */
+ uint32_t reserved9;
} RAIL_BLE_CsStepDebugResults_t;
/**
* @struct RAIL_BLE_CsStepConfig_t
- * @brief Contains arguments for \ref RAIL_BLE_SetNextCsStep.
+ * @brief Contains arguments for \ref RAIL_BLE_SetNextCsStep().
*/
typedef struct RAIL_BLE_CsStepConfig {
/** Sets the CS step state. */
@@ -1281,14 +1391,14 @@ typedef struct RAIL_BLE_CsStepConfig {
uint8_t packetLength;
/** Sets the CS step logical channel. */
uint16_t channel;
+ /** RTT marker bit positions. Ignored for mode 0 and 2 steps. */
+ uint8_t rttMarkerBitPosition[2];
/** The initiator (first) access address during step. */
uint32_t initAccessAddress;
/** The reflector (second) access address during step. */
uint32_t reflAccessAddress;
- /** Pointer to TX data to be transmitted. Ignored for mode 0 and 2 steps. */
+ /** A pointer to TX data to be transmitted. Ignored for mode 0 and 2 steps. */
uint8_t *pTxData;
- /** RTT marker bit position. Ignored for mode 0 and 2 steps. */
- uint8_t rttMarkerBitPosition[2];
/**
* A pointer to an array of CS step results. These results will be
* populated after the completion of the CS step. This array can be cast to
@@ -1330,41 +1440,58 @@ typedef struct RAIL_BLE_CsStepConfig {
* IQ data from that step was actually preserved.
*/
bool *pSaveIqData;
+ /**
+ * Array containing antenna settings for this step. This field has two uses
+ * depending on the mode of the current step.
+ *
+ * On mode 0 and mode 1 steps, only the first element will be used to
+ * indicate the antenna to be utilized during a mode 0 and
+ * mode 1 step.
+ *
+ * On mode 2 steps, as many elements as
+ * \ref RAIL_BLE_CS_MAX_ANTENNA_SLOTS - 1 that were configured for the
+ * CS event will be applied.
+ *
+ * @note \ref RAIL_BLE_ConfigCsAntenna must be called prior to setting
+ * this field in order to set the antenna count as well as configure
+ * each antenna. Each element must be a valid antenna between 1 and
+ * the set antenna count.
+ */
+ RAIL_BLE_CsAntennaId_t antennaSelectBuffer[RAIL_BLE_CS_MAX_ANTENNAS];
} RAIL_BLE_CsStepConfig_t;
/**
* @struct RAIL_BLE_CsAntennaConfig_t
- * @brief Contains arguments for \ref RAIL_BLE_ConfigCsAntenna function.
+ * @brief Contains arguments for \ref RAIL_BLE_ConfigCsAntenna() function.
*/
typedef struct RAIL_BLE_CsAntennaConfig {
- uint8_t antennaCount; /**< Total number of antenna elements. */
- const int16_t *pAntennaOffsetCm; /**< Pointer to antenna offsets in cm units. */
+ /** Total number of antenna elements. */
+ uint8_t antennaCount;
+ /** A pointer to antenna offsets in cm units. */
+ const int16_t *pAntennaOffsetCm;
} RAIL_BLE_CsAntennaConfig_t;
-/** The maximum number of antennas supported. */
-#define RAIL_BLE_CS_MAX_ANTENNAS 4
-
/**
* @struct RAIL_BLE_CsGdCompTables_t
* @brief Contains pointers to CS group delay compensation tables.
*/
typedef struct RAIL_BLE_CsGdCompTables {
- /** Pointer to PBR phase LSB group delay compensation table. */
+ /** A pointer to PBR phase LSB group delay compensation table. */
const int16_t *pPbrPhaseLsb;
- /** Pointer to RTT slope group delay compensation table. */
+ /** A pointer to RTT slope group delay compensation table. */
const int16_t *pRttSlope;
- /** Pointer to RTT offset group delay compensation table. */
+ /** A pointer to RTT offset group delay compensation table. */
const int16_t *pRttOffset;
/** Common length for each table in units of int16_t. */
uint8_t length;
} RAIL_BLE_CsGdCompTables_t;
/**
- * Configure High Accuracy Distance Measurement (CS) functionality.
+ * Configure Channel Sounding (CS) functionality.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] csConfig Configuration options for CS.
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @param[in] csConfig A non-NULL pointer to configuration options for CS.
+ * @return Status code indicating success of the function call.
*
* @warning This API is not safe to use in a multiprotocol app.
*/
@@ -1372,11 +1499,11 @@ RAIL_Status_t RAIL_BLE_ConfigCs(RAIL_Handle_t railHandle,
const RAIL_BLE_CsConfig_t *csConfig);
/**
- * Enable High Accuracy Distance Measurement (CS) functionality.
+ * Enable Channel Sounding (CS) functionality.
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] enable Enable or disable CS functionality.
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @return Status code indicating success of the function call.
*
* @warning This API is not safe to use in a multiprotocol app.
*/
@@ -1387,11 +1514,11 @@ RAIL_Status_t RAIL_BLE_EnableCs(RAIL_Handle_t railHandle,
* Set up the next CS step.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in,out] csStepConfig Configuration options for next CS step.
+ * @param[in,out] csStepConfig A pointer to configuration options for next CS step.
* @param[in] pend If true, apply configuration at next appropriate radio
- * transition (i.e. at Rx2Tx for an initiator, or Tx2Rx for a reflector).
+ * transition (i.e., at Rx-to-Tx for an initiator, or Tx-to-Rx for a reflector).
* Otherwise, apply configuration immediately.
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @return Status code indicating success of the function call.
*
* @note When the next CS step is to be pended, the specified step in
* csStepConfig must be the initial step state for a particular mode (e.g.
@@ -1410,17 +1537,30 @@ RAIL_Status_t RAIL_BLE_SetNextCsStep(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[in] pAntennaConfig A pointer to the antenna config
- * @return RAIL_Status_t indicating success or failure of the call.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_BLE_ConfigCsAntenna(RAIL_Handle_t railHandle,
RAIL_BLE_CsAntennaConfig_t *pAntennaConfig);
+/**
+ * Returns the number of antennas configured for a CS event.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @return The number of antennas configured for a CS event.
+ *
+ * @note If \ref RAIL_BLE_ConfigCsAntenna has not been called, this
+ * API will return \ref RAIL_BLE_CS_INVALID_ANTENNA_COUNT as
+ * no antennas have been configured for the CS event. The CS event
+ * will still run with an antenna count of 1 and 0 cm antenna offset.
+ */
+uint8_t RAIL_BLE_GetCsAntennaCount(RAIL_Handle_t railHandle);
+
/**
* Loads the CS RTT and PBR group delay compensation tables for a
* particular PA mode.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] pTables Pointer to group delay compensation lookup tables.
+ * @param[in] pTables A pointer to group delay compensation lookup tables.
* @param[in] powerMode The PA mode for which to load compensation tables.
* @return Status code indicating success of the function call.
*/
@@ -1430,14 +1570,14 @@ RAIL_Status_t RAIL_BLE_LoadCsCompTables(RAIL_Handle_t railHandle,
/**
* Callback used to load CS group delay compensation tables for all PA modes
- * supported by device during \ref RAIL_BLE_EnableCs when enable is true.
+ * supported by device during \ref RAIL_BLE_EnableCs() when enable is true.
* This function is optional to implement.
*
* @return Status code indicating success of the function call.
*
* @note If this callback function is not implemented, unneeded tables may not
* be dead stripped, resulting in larger overall code size. The API \ref
- * RAIL_BLE_LoadCsCompTables should be used within this callback to load the
+ * RAIL_BLE_LoadCsCompTables() should be used within this callback to load the
* appropriate tables for each supported PA mode.
*/
RAIL_Status_t RAILCb_BLE_CsGdCompTableLoad(void);
@@ -1463,7 +1603,7 @@ RAIL_Status_t RAILCb_BLE_CsGdCompTableLoad(void);
/// };
///
/// // Send a normal packet on the current channel, then a packet on a new channel
-/// int bleSendThenAdvertise(uint8_t *firstPacket, uint8_t *secondPacket)
+/// void bleSendThenAdvertise(uint8_t *firstPacket, uint8_t *secondPacket)
/// {
/// // Load both packets into the FIFO
/// RAIL_WriteTxFifo(railHandle, firstPacket, FIRST_PACKET_LEN, true);
@@ -1561,7 +1701,7 @@ typedef struct RAIL_BLE_TxChannelHoppingConfig {
/**
* A pointer to the first element of an array of \ref
* RAIL_BLE_TxChannelHoppingConfigEntry_t that represents the channels
- * used during channel hopping. The length of this array must be
+ * used during channel hopping. The number of entries in this array must be
* numberOfChannels.
*/
RAIL_BLE_TxChannelHoppingConfigEntry_t *entries;
@@ -1606,7 +1746,7 @@ typedef struct RAIL_BLE_TxRepeatConfig {
* Set up automatic repeated transmits after the next transmit.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] repeatConfig The configuration structure for repeated transmits.
+ * @param[in] repeatConfig A non-NULL pointer to the configuration structure for repeated transmits.
* @return Status code indicating a success of the function call.
*
* Repeated transmits will occur after an application-initiated transmit caused
@@ -1619,11 +1759,12 @@ typedef struct RAIL_BLE_TxRepeatConfig {
* will receive events such as \ref RAIL_EVENT_TX_PACKET_SENT as normal.
*
* If a TX error occurs during the repetition, the process will abort and the
- * TX error transition from \ref RAIL_SetTxTransitions will be used. If the
+ * TX error transition from \ref RAIL_SetTxTransitions() will be used. If the
* repetition completes successfully, the TX success transition from
- * \ref RAIL_SetTxTransitions will be used.
+ * \ref RAIL_SetTxTransitions() will be used.
*
- * Any call to \ref RAIL_Idle or \ref RAIL_StopTx will clear the pending
+ * Any call to \ref RAIL_Idle(), \ref RAIL_StopTx(), or \ref
+ * RAIL_SetTxTransitions() will clear the pending
* repeated transmits. The state will also be cleared by another call to this
* function. To clear the repeated transmits before they've started without
* stopping other radio actions, call this function with a \ref
@@ -1632,7 +1773,7 @@ typedef struct RAIL_BLE_TxRepeatConfig {
* started.
*
* The application is responsible for populating the transmit data to be used
- * by the repeated transmits via \ref RAIL_SetTxFifo or \ref RAIL_WriteTxFifo.
+ * by the repeated transmits via \ref RAIL_SetTxFifo() or \ref RAIL_WriteTxFifo().
* Data will be transmitted from the TX FIFO. If the TX FIFO does not have
* sufficient data to transmit, a TX error and a \ref
* RAIL_EVENT_TX_UNDERFLOW will occur. To avoid an underflow, the
@@ -1661,8 +1802,9 @@ RAIL_Status_t RAIL_BLE_SetNextTxRepeat(RAIL_Handle_t railHandle,
* Calibrate image rejection for Bluetooth Low Energy.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[out] imageRejection The result of the image rejection calibration.
- * @return A status code indicating success of the function call.
+ * @param[out] imageRejection A pointer to where the result of the image
+ * rejection calibration will be stored.
+ * @return Status code indicating success of the function call.
*
* Some chips have protocol-specific image rejection calibrations programmed
* into their flash. This function will either get the value from flash and
diff --git a/simplicity_sdk/platform/radio/rail_lib/protocol/ieee802154/rail_ieee802154.h b/simplicity_sdk/platform/radio/rail_lib/protocol/ieee802154/rail_ieee802154.h
index a89bd47c6..7991faa95 100644
--- a/simplicity_sdk/platform/radio/rail_lib/protocol/ieee802154/rail_ieee802154.h
+++ b/simplicity_sdk/platform/radio/rail_lib/protocol/ieee802154/rail_ieee802154.h
@@ -43,17 +43,17 @@ extern "C" {
///
/// The functions in this group configure RAIL IEEE 802.15.4 hardware
/// acceleration which includes IEEE 802.15.4 format filtering, address
-/// filtering, ACKing, and filtering based on the frame type.
+/// filtering, Acking, and filtering based on the frame type.
///
/// To configure IEEE 802.15.4 functionality, the application must first set up
-/// a RAIL instance with RAIL_Init() and other setup functions.
-/// Instead of RAIL_ConfigChannels(), however, an
-/// application may use RAIL_IEEE802154_Config2p4GHzRadio() to set up the
+/// a RAIL instance with \ref RAIL_Init() and other setup functions.
+/// Instead of \ref RAIL_ConfigChannels(), however, an
+/// application may use \ref RAIL_IEEE802154_Config2p4GHzRadio() to set up the
/// official IEEE 2.4 GHz 802.15.4 PHY. This configuration is shown below.
///
/// 802.15.4 defines its macAckWaitDuration from the end of the transmitted
-/// packet to complete reception of the ACK. RAIL's ackTimeout only covers
-/// sync word detection of the ACK. Therefore, subtract the ACK's
+/// packet to complete reception of the Ack. RAIL's ackTimeout only covers
+/// sync word detection of the Ack. Therefore, subtract the Ack's
/// PHY header and payload time to get RAIL's ackTimeout setting.
/// For 2.4 GHz OQPSK, macAckWaitDuration is specified as 54 symbols;
/// subtracting 2-symbol PHY header and 10-symbol payload yields a RAIL
@@ -64,14 +64,14 @@ extern "C" {
/// static const RAIL_IEEE802154_Config_t rail154Config = {
/// .addresses = NULL,
/// .ackConfig = {
-/// .enable = true, // Turn on auto ACK for IEEE 802.15.4.
+/// .enable = true, // Turn on auto Ack for IEEE 802.15.4.
/// .ackTimeout = 672, // See note above: 54-12 sym * 16 us/sym = 672 us.
/// .rxTransitions = {
-/// .success = RAIL_RF_STATE_RX, // Return to RX after ACK processing
+/// .success = RAIL_RF_STATE_RX, // Return to RX after Ack processing
/// .error = RAIL_RF_STATE_RX, // Ignored
/// },
/// .txTransitions = {
-/// .success = RAIL_RF_STATE_RX, // Return to RX after ACK processing
+/// .success = RAIL_RF_STATE_RX, // Return to RX after Ack processing
/// .error = RAIL_RF_STATE_RX, // Ignored
/// },
/// },
@@ -98,10 +98,10 @@ extern "C" {
/// }
/// @endcode
///
-/// To configure address filtering, call
+/// To configure address filtering, call \ref
/// RAIL_IEEE802154_SetAddresses() with a structure containing all addresses or
-/// call the individual RAIL_IEEE802154_SetPanId(),
-/// RAIL_IEEE802154_SetShortAddress(), and RAIL_IEEE802154_SetLongAddress()
+/// call the individual \ref RAIL_IEEE802154_SetPanId(), \ref
+/// RAIL_IEEE802154_SetShortAddress(), and \ref RAIL_IEEE802154_SetLongAddress()
/// APIs. RAIL supports \ref RAIL_IEEE802154_MAX_ADDRESSES number of address
/// pairs to receive packets from multiple IEEE
/// 802.15.4 networks at the same time. Broadcast addresses are supported by
@@ -111,9 +111,9 @@ extern "C" {
/// be found in the \ref RAIL_IEEE802154_AddrConfig_t documentation. Below is
/// an example of setting filtering for one set of addresses.
/// @code{.c}
-/// // PanID OTA value of 0x34 0x12.
-/// // Short Address OTA byte order of 0x78 0x56.
-/// // Long address with OTA byte order of 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88.
+/// // PAN Id over-the-air value of 0x34 0x12.
+/// // Short Address over-the-air byte order of 0x78 0x56.
+/// // Long address with over-the-air byte order of 0x11 0x22 0x33 0x44 0x55 0x66 0x77 0x88.
///
/// // Set up all addresses simultaneously.
/// RAIL_Status_t setup1(void)
@@ -129,52 +129,45 @@ extern "C" {
/// }
///
/// // Alternatively, the addresses can be set up individually as follows:
-/// RAIL_Status_t setup2(void)
+/// void setup2(void)
/// {
/// RAIL_Status_t status;
/// const uint8_t longAddress[] = { 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88 };
///
/// status = RAIL_IEEE802154_SetPanId(railHandle, 0x1234, 0);
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return status
-/// }
+/// assert(status == RAIL_STATUS_NO_ERROR);
/// status = RAIL_IEEE802154_SetShortAddress(railHandle, 0x5678, 0);
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return status
-/// }
+/// assert(status == RAIL_STATUS_NO_ERROR);
/// status = RAIL_IEEE802154_SetLongAddress(railHandle, longAddress, 0);
-/// if (status != RAIL_STATUS_NO_ERROR) {
-/// return status
-/// }
-///
-/// return RAIL_STATUS_NO_ERROR;
+/// assert(status == RAIL_STATUS_NO_ERROR);
/// }
/// @endcode
///
/// Address filtering will be enabled except when in promiscuous mode, which can
-/// be set with RAIL_IEEE802154_SetPromiscuousMode(). The addresses may be
+/// be set with \ref RAIL_IEEE802154_SetPromiscuousMode(). The addresses may be
/// changed at runtime. However, if you are receiving a packet while
/// reconfiguring the address filters, you may get undesired behavior so it's
/// safest to do this while not in receive.
///
-/// Auto ACK is controlled by the ackConfig and timings fields passed to
+/// Auto Ack is controlled by the \ref RAIL_IEEE802154_Config_t::ackConfig
+/// and \ref RAIL_IEEE802154_Config_t::timings fields passed to \ref
/// RAIL_IEEE802154_Init(). After initialization, they may be controlled
/// using the normal \ref Auto_Ack and \ref State_Transitions APIs. When in IEEE
-/// 802.15.4 mode, the ACK will generally have a 5 byte length, its Frame Type
-/// will be ACK, its Frame Version 0 (2003), and its Frame Pending bit will be
+/// 802.15.4 mode, the Ack will generally have a 5 byte length, its Frame Type
+/// will be Ack, its Frame Version 0 (2003), and its Frame Pending bit will be
/// false unless the \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND event is
/// triggered in which case it will default to the
/// \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks setting.
/// If the default Frame Pending setting is incorrect,
-/// the app must call \ref RAIL_IEEE802154_ToggleFramePending
-/// (formerly \ref RAIL_IEEE802154_SetFramePending) while handling the
+/// the app must call \ref RAIL_IEEE802154_ToggleFramePending()
+/// (formerly \ref RAIL_IEEE802154_SetFramePending()) while handling the
/// \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND event.
///
/// This event must be turned on by the user and will fire whenever a data
/// request is being received so that the stack can determine if there
/// is pending data. Note that if the default Frame Pending bit needs to
-/// be changed, it must be done quickly. Otherwise, the ACK may already
-/// have been transmitted with the default setting. Check the return code of
+/// be changed, it must be done quickly. Otherwise, the Ack may already
+/// have been transmitted with the default setting. Check the return code of \ref
/// RAIL_IEEE802154_ToggleFramePending() to be sure that the bit was changed
/// in time.
///
@@ -190,8 +183,10 @@ extern "C" {
* @brief Different lengths that an 802.15.4 address can have
*/
RAIL_ENUM(RAIL_IEEE802154_AddressLength_t) {
- RAIL_IEEE802154_ShortAddress = 2, /**< 2 byte short address. */
- RAIL_IEEE802154_LongAddress = 3, /**< 8 byte extended address. */
+ /** 2 byte short address. */
+ RAIL_IEEE802154_ShortAddress = 2,
+ /** 8 byte extended address. */
+ RAIL_IEEE802154_LongAddress = 3,
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -207,11 +202,13 @@ RAIL_ENUM(RAIL_IEEE802154_AddressLength_t) {
* This structure is only used for received source address information
* needed to perform Frame Pending lookup.
*/
-typedef struct RAIL_IEEE802154_Address{
+typedef struct RAIL_IEEE802154_Address {
/** Convenient storage for different address types. */
union {
- uint16_t shortAddress; /**< Present for 2 byte addresses. */
- uint8_t longAddress[8]; /**< Present for 8 byte addresses. */
+ /** Present for 2 byte addresses. */
+ uint16_t shortAddress;
+ /** Present for 8 byte addresses. */
+ uint8_t longAddress[8];
};
/**
* Enumeration of the received address length.
@@ -232,18 +229,18 @@ typedef struct RAIL_IEEE802154_Address{
* @brief A configuration structure for IEEE 802.15.4 Address Filtering.
*
* This structure allows configuration of multi-PAN functionality by specifying
- * multiple PAN IDs and short addresses. A packet will be received if it matches
- * an address and its corresponding PAN ID. Long address 0 and short address 0
- * match against PAN ID 0, etc. The broadcast PAN ID and address will work with
- * any address or PAN ID, respectively.
+ * multiple PAN Ids and short addresses. A packet will be received if it matches
+ * an address and its corresponding PAN Id. Long address 0 and short address 0
+ * match against PAN Id 0, etc. The broadcast PAN Id and address will work with
+ * any address or PAN Id, respectively.
*
* @note The broadcast addresses are handled separately and do not need to be
* specified here. Any address to be ignored should be set with all bits high.
*/
-typedef struct RAIL_IEEE802154_AddrConfig{
+typedef struct RAIL_IEEE802154_AddrConfig {
/**
- * PAN IDs for destination filtering. All must be specified.
- * To disable a PAN ID, set it to the broadcast value, 0xFFFF.
+ * PAN Ids for destination filtering. All must be specified.
+ * To disable a PAN Id, set it to the broadcast value, 0xFFFF.
*/
uint16_t panId[RAIL_IEEE802154_MAX_ADDRESSES];
/**
@@ -253,7 +250,7 @@ typedef struct RAIL_IEEE802154_AddrConfig{
uint16_t shortAddr[RAIL_IEEE802154_MAX_ADDRESSES];
/**
* A 64-bit address for destination filtering. All must be specified.
- * This field is parsed in over-the-air (OTA) byte order. To disable a long
+ * This field is parsed in over-the-air byte order. To disable a long
* address, set it to the reserved value of 0x00 00 00 00 00 00 00 00.
*/
uint8_t longAddr[RAIL_IEEE802154_MAX_ADDRESSES][8];
@@ -268,13 +265,13 @@ typedef struct RAIL_IEEE802154_Config {
* Configure the RAIL Address Filter to allow the given destination
* addresses. If this pointer is NULL, defer destination address configuration.
* If a member of addresses is NULL, defer configuration of just that member.
- * This can be overridden via RAIL_IEEE802154_SetAddresses(), or the
- * individual members can be changed via RAIL_IEEE802154_SetPanId(),
- * RAIL_IEEE802154_SetShortAddress(), and RAIL_IEEE802154_SetLongAddress().
+ * This can be overridden via \ref RAIL_IEEE802154_SetAddresses(), or the
+ * individual members can be changed via \ref RAIL_IEEE802154_SetPanId(), \ref
+ * RAIL_IEEE802154_SetShortAddress(), and \ref RAIL_IEEE802154_SetLongAddress().
*/
const RAIL_IEEE802154_AddrConfig_t *addresses;
/**
- * Define the ACKing configuration for the IEEE 802.15.4 implementation.
+ * Define the Acking configuration for the IEEE 802.15.4 implementation.
*/
RAIL_AutoAckConfig_t ackConfig;
/**
@@ -282,26 +279,26 @@ typedef struct RAIL_IEEE802154_Config {
*/
RAIL_StateTiming_t timings;
/**
- * Set which 802.15.4 frame types will be received, of Beacon, Data, ACK, and
- * Command. This setting can be overridden via RAIL_IEEE802154_AcceptFrames().
+ * Set which 802.15.4 frame types will be received, of Beacon, Data, Ack, and
+ * Command. This setting can be overridden via \ref RAIL_IEEE802154_AcceptFrames().
*/
uint8_t framesMask;
/**
* Enable promiscuous mode during configuration. This can be overridden via
- * RAIL_IEEE802154_SetPromiscuousMode() afterwards.
+ * \ref RAIL_IEEE802154_SetPromiscuousMode() afterwards.
*/
bool promiscuousMode;
/**
* Set whether the device is a PAN Coordinator during configuration. This can
- * be overridden via RAIL_IEEE802154_SetPanCoordinator() afterwards.
+ * be overridden via \ref RAIL_IEEE802154_SetPanCoordinator() afterwards.
*/
bool isPanCoordinator;
/**
- * The default value for the Frame Pending bit in outgoing ACKs for packets
+ * The default value for the Frame Pending bit in outgoing Acks for packets
* that triggered the \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND event.
- * Such an ACK's Frame Pending bit can be inverted if necessary during the
- * handling of that event by calling \ref RAIL_IEEE802154_ToggleFramePending
- * (formerly \ref RAIL_IEEE802154_SetFramePending).
+ * Such an Ack's Frame Pending bit can be inverted if necessary during the
+ * handling of that event by calling \ref RAIL_IEEE802154_ToggleFramePending()
+ * (formerly \ref RAIL_IEEE802154_SetFramePending()).
*/
bool defaultFramePendingInOutgoingAcks;
} RAIL_IEEE802154_Config_t;
@@ -380,13 +377,13 @@ extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHz;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
- * Default PHY to use for 1Mbps 2.4 GHz 802.15.4 with forward error correction.
+ * Default PHY to use for 1 Mbps 2.4 GHz 802.15.4 with forward error correction.
* Will be NULL if \ref RAIL_IEEE802154_SUPPORTS_2MBPS_PHY is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHz1MbpsFec;
/**
- * Default PHY to use for 2Mbps 2.4 GHz 802.15.4. Will be NULL if
+ * Default PHY to use for 2 Mbps 2.4 GHz 802.15.4. Will be NULL if
* \ref RAIL_IEEE802154_SUPPORTS_2MBPS_PHY is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHz2Mbps;
@@ -452,13 +449,13 @@ extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHzAntDivCoexFem;
extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHzCustom1;
/**
- * Default PHY to use for 863MHz GB868 802.15.4. Will be NULL if
+ * Default PHY to use for 863 MHz GB868 802.15.4. Will be NULL if
* \ref RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_PhyGB863MHz;
/**
- * Default PHY to use for 915MHz GB868 802.15.4. Will be NULL if
+ * Default PHY to use for 915 MHz GB868 802.15.4. Will be NULL if
* \ref RAIL_IEEE802154_SUPPORTS_G_SUBSET_GB868 is 0.
*/
extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_PhyGB915MHz;
@@ -474,28 +471,28 @@ extern const RAIL_ChannelConfig_t *const RAIL_IEEE802154_Phy2p4GHzRxChSwitching;
/**
* Initialize RAIL for IEEE802.15.4 features.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] config An IEEE802154 configuration structure.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] config A non-NULL pointer to an IEEE802154 configuration structure.
+ * @return Status code indicating success of the function call.
*
* This function calls the following RAIL functions to configure the radio for
* IEEE802.15.4 features.
*
* Initializes the following:
* - Enables IEEE802154 hardware acceleration
- * - Configures RAIL Auto ACK functionality
+ * - Configures RAIL Auto Ack functionality
* - Configures RAIL Address Filter for 802.15.4 address filtering
*
* It saves having to call the following functions individually:
- * - RAIL_ConfigAutoAck()
- * - RAIL_SetRxTransitions()
- * - RAIL_SetTxTransitions()
- * - RAIL_WriteAutoAckFifo()
- * - RAIL_SetStateTiming()
- * - RAIL_ConfigAddressFilter()
- * - RAIL_EnableAddressFilter()
+ * - \ref RAIL_ConfigAutoAck()
+ * - \ref RAIL_SetRxTransitions()
+ * - \ref RAIL_SetTxTransitions()
+ * - \ref RAIL_WriteAutoAckFifo()
+ * - \ref RAIL_SetStateTiming()
+ * - \ref RAIL_ConfigAddressFilter()
+ * - \ref RAIL_EnableAddressFilter()
*
- * It must be called before most of RAIL_IEEE802154_* function.
+ * It must be called before most of the RAIL_IEEE802154_* functions.
*/
RAIL_Status_t RAIL_IEEE802154_Init(RAIL_Handle_t railHandle,
const RAIL_IEEE802154_Config_t *config);
@@ -503,11 +500,11 @@ RAIL_Status_t RAIL_IEEE802154_Init(RAIL_Handle_t railHandle,
/**
* Configure the radio for 2.4 GHz 802.15.4 operation.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -518,12 +515,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadio(RAIL_Handle_t railHandle);
/**
* Configure the radio for 2.4 GHz 802.15.4 operation with antenna diversity.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports antenna diversity. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -535,12 +532,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioAntDiv(RAIL_Handle_t railHandle);
* Configure the radio for 2.4 GHz 802.15.4 operation with antenna diversity
* optimized for radio coexistence.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports antenna diversity optimized for radio coexistence. It takes
- * the place of calling \ref RAIL_ConfigChannels. After this call,
+ * the place of calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -551,12 +548,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioAntDivCoex(RAIL_Handle_t railHand
/**
* Configure the radio for 2.4 GHz 802.15.4 operation optimized for radio coexistence.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports radio coexistence. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -567,12 +564,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioCoex(RAIL_Handle_t railHandle);
/**
* Configure the radio for 2.4 GHz 802.15.4 operation with a front end module.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports a front end module. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -584,12 +581,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioFem(RAIL_Handle_t railHandle);
* Configure the radio for 2.4 GHz 802.15.4 operation with antenna diversity
* optimized for a front end module.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports antenna diversity and a front end module. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -601,12 +598,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioAntDivFem(RAIL_Handle_t railHandl
* Configure the radio for 2.4 GHz 802.15.4 operation optimized for radio coexistence
* and a front end module.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports radio coexistence and a front end module. It takes the place of
- * calling \ref RAIL_ConfigChannels. After this call,
+ * calling \ref RAIL_ConfigChannels(). After this call,
* channels 11-26 will be available, giving the frequencies of those channels
* on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -618,12 +615,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioCoexFem(RAIL_Handle_t railHandle)
* Configure the radio for 2.4 GHz 802.15.4 operation with antenna diversity
* optimized for radio coexistence and a front end module.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation, but with a configuration
* that supports antenna diversity, radio coexistence and a front end module.
- * It takes the place of calling \ref RAIL_ConfigChannels.
+ * It takes the place of calling \ref RAIL_ConfigChannels().
* After this call, channels 11-26 will be available, giving the frequencies of
* those channels on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2.
*
@@ -634,24 +631,24 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioAntDivCoexFem(RAIL_Handle_t railH
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
- * Time in microseconds to listen for a packet on the 2Mbps channel.
- * This timeout can be configured at runtime using \ref RAIL_IEEE802154_Config2MbpsRxTimeout.
+ * Time in microseconds to listen for a packet on the 2 Mbps channel.
+ * This timeout can be configured at runtime using \ref RAIL_IEEE802154_Config2MbpsRxTimeout().
*/
#define RAIL_IEEE802154_2MBPS_RECEIVE_TIMEOUT_US 1500UL
/**
- * Configure the radio for 2.4 GHz 802.15.4 for 250kbps/2Mbps operation.
+ * Configure the radio for 2.4 GHz 802.15.4 for 250 kbps or 2 Mbps operation.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz high speed operation.
- * It takes the place of calling \ref RAIL_ConfigChannels.
+ * It takes the place of calling \ref RAIL_ConfigChannels().
* After this call, channels 11-26 will be available, giving the frequencies of
* those channels on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2
- * at 250kbps.
+ * at 250 kbps.
* Channels 11-26 will support transmitting and receiving using dual sync words.
- * Channels 27-42 will transmit and receive on the frequency of [channel - 16] at 2Mbps.
+ * Channels 27-42 will transmit and receive on the frequency of [channel - 16] at 2 Mbps.
* Auto-ack and address filtering are disabled when channels 27-42 are selected.
*
* @note This call implicitly disables all \ref RAIL_IEEE802154_GOptions_t.
@@ -660,19 +657,19 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioAntDivCoexFem(RAIL_Handle_t railH
RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadio2Mbps(RAIL_Handle_t railHandle);
/**
- * Configure the radio for 2.4 GHz 802.15.4 for 250kbps/1Mbps forward error correction
+ * Configure the radio for 2.4 GHz 802.15.4 for 250 kbps or 1 Mbps forward error correction
* operation.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz high speed operation.
* It takes the place of calling \ref RAIL_ConfigChannels.
* After this call, channels 11-26 will be available, giving the frequencies of
* those channels on channel page 0, as defined by IEEE 802.15.4-2011 section 8.1.2.2
- * at 250kbps.
+ * at 250 kbps.
* Channels 11-26 will support transmitting and receiving using dual sync words.
- * Channels 27-42 will transmit and receive on the frequency of [channel - 16] at 1Mbps.
+ * Channels 27-42 will transmit and receive on the frequency of [channel - 16] at 1 Mbps.
* Auto-ack and address filtering are disabled when channels 27-42 are selected.
*
* @note This call implicitly disables all \ref RAIL_IEEE802154_GOptions_t.
@@ -683,15 +680,28 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadio1MbpsFec(RAIL_Handle_t railHandle
/**
* Configure the 802.15.4 2Mbps receive timeout.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] timeout Time to listen for a packet on the 2Mbps channel
- * before switching back to the 250kbps channel.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] timeout Time to listen for a packet on the 2 Mbps channel
+ * before switching back to the 250 kbps channel.
* @return Status code indicating success of the function call.
*
- * @note By default the 2Mbps receive timeout is \ref RAIL_IEEE802154_2MBPS_RECEIVE_TIMEOUT_US.
+ * @note By default the 2 Mbps receive timeout is \ref RAIL_IEEE802154_2MBPS_RECEIVE_TIMEOUT_US.
*/
-RAIL_Status_t RAIL_IEEE802154_Config2MbpsRxTimeout(RAIL_Handle_t railHandle, RAIL_Time_t timeout);
+RAIL_Status_t RAIL_IEEE802154_Config2MbpsRxTimeout(RAIL_Handle_t railHandle,
+ RAIL_Time_t timeout);
+/**
+ * Configure the 802.15.4 2Mbps mode switch receive channel.
+ *
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] channel 802.15.4 channel(11-26) to listen for a mode switch packet.
+ * @return Status code indicating success of the function call.
+ *
+ * Mode switch to the 2Mbps radio config will only occur on the provided channel.
+ * Mode switch packets received on other channels will be ignored.
+ */
+RAIL_Status_t RAIL_IEEE802154_Config2MbpsRxChannel(RAIL_Handle_t railHandle,
+ uint16_t channel);
#endif //DOXYGEN_SHOULD_SKIP_THIS
/**
@@ -699,12 +709,12 @@ RAIL_Status_t RAIL_IEEE802154_Config2MbpsRxTimeout(RAIL_Handle_t railHandle, RAI
* settings. It enables better interoperability with some proprietary
* PHYs, but doesn't guarantee data sheet performance.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* This initializes the radio for 2.4 GHz operation with
* custom settings. It replaces needing to call
- * \ref RAIL_ConfigChannels.
+ * \ref RAIL_ConfigChannels().
* Do not call this function unless instructed by Silicon Labs.
*
* @note This feature is only available on platforms where
@@ -713,13 +723,13 @@ RAIL_Status_t RAIL_IEEE802154_Config2MbpsRxTimeout(RAIL_Handle_t railHandle, RAI
RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioCustom1(RAIL_Handle_t railHandle);
/**
- * Configure the radio for SubGHz GB868 863 MHz 802.15.4 operation.
+ * Configure the radio for Sub-GHz GB868 863 MHz 802.15.4 operation.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
- * This initializes the radio for SubGHz GB868 863 MHz operation. It takes the
- * place of calling \ref RAIL_ConfigChannels.
+ * This initializes the radio for Sub-GHz GB868 863 MHz operation. It takes the
+ * place of calling \ref RAIL_ConfigChannels().
* After this call, GB868 channels in the 863 MHz band (channel pages 28, 29,
* and 30 -- logical channels 0x80..0x9A, 0xA0..0xA8, 0xC0..0xDA, respectively)
* will be available, as defined by Rev 22 of the Zigbee Specification, 2017
@@ -730,13 +740,13 @@ RAIL_Status_t RAIL_IEEE802154_Config2p4GHzRadioCustom1(RAIL_Handle_t railHandle)
RAIL_Status_t RAIL_IEEE802154_ConfigGB863MHzRadio(RAIL_Handle_t railHandle);
/**
- * Configure the radio for SubGHz GB868 915 MHz 802.15.4 operation.
+ * Configure the radio for Sub-GHz GB868 915 MHz 802.15.4 operation.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
- * This initializes the radio for SubGHz GB868 915 MHz operation. It takes the
- * place of calling \ref RAIL_ConfigChannels.
+ * This initializes the radio for Sub-GHz GB868 915 MHz operation. It takes the
+ * place of calling \ref RAIL_ConfigChannels().
* After this call, GB868 channels in the 915 MHz band (channel page 31 --
* logical channels 0xE0..0xFA) will be available, as defined by Rev 22 of
* the Zigbee Specification, 2017 document 05-3474-22, section D.10.2.1.3.2.
@@ -748,22 +758,22 @@ RAIL_Status_t RAIL_IEEE802154_ConfigGB915MHzRadio(RAIL_Handle_t railHandle);
/**
* De-initialize IEEE802.15.4 hardware acceleration.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* Disables and resets all IEE802.15.4 hardware acceleration features. This
* function should only be called when the radio is IDLE. This calls the
* following:
- * - RAIL_SetStateTiming(), to reset all timings to 100 us
- * - RAIL_EnableAddressFilter(false)
- * - RAIL_ResetAddressFilter()
+ * - \ref RAIL_SetStateTiming(), to reset all timings to 100 us
+ * - \ref RAIL_EnableAddressFilter() passing false for its enable parameter
+ * - \ref RAIL_ResetAddressFilter()
*/
RAIL_Status_t RAIL_IEEE802154_Deinit(RAIL_Handle_t railHandle);
/**
* Return whether IEEE802.15.4 hardware acceleration is currently enabled.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @return true if IEEE802.15.4 hardware acceleration was enabled to start with
* and false otherwise.
*/
@@ -831,20 +841,20 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_PtiRadioConfig_t, uint16_t) {
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_COEX ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_COEX)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV_COEX ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV_COEX)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_863MHZ_GB868 ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_863MHZ_GB868)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_GB868 ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_GB868)
-#define RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_COEX ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_COEX)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV_COEX ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_2P4GHZ_ANTDIV_COEX)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_863MHZ_GB868 ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_863MHZ_GB868)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_GB868 ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_GB868)
+#define RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT ((RAIL_IEEE802154_PtiRadioConfig_t) RAIL_IEEE802154_PTI_RADIO_CONFIG_915MHZ_R23_NA_EXT)
#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
* Return IEEE802.15.4 PTI radio config.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return PTI (Packet Trace Information) radio config ID.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return PTI (Packet Trace Information) radio config Id.
*/
RAIL_IEEE802154_PtiRadioConfig_t RAIL_IEEE802154_GetPtiRadioConfig(RAIL_Handle_t railHandle);
@@ -852,20 +862,20 @@ RAIL_IEEE802154_PtiRadioConfig_t RAIL_IEEE802154_GetPtiRadioConfig(RAIL_Handle_t
/**
* Set IEEE802.15.4 PTI radio config (for Silicon Labs internal use only).
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] ptiRadioConfig PTI (Packet Trace Information) radio config ID.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] ptiRadioConfig PTI (Packet Trace Information) radio config Id.
* @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_IEEE802154_SetPtiRadioConfig(RAIL_Handle_t railHandle,
RAIL_IEEE802154_PtiRadioConfig_t ptiRadioConfigId);
-#endif
+#endif//DOXYGEN_SHOULD_SKIP_THIS
/**
* Configure the RAIL Address Filter for 802.15.4 filtering.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] addresses The address information that should be used.
- * @return A status code indicating success of the function call. If this returns
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] addresses A pointer to the address information that should be used.
+ * @return Status code indicating success of the function call. If this returns
* an error, the 802.15.4 address filter is in an undefined state.
*
* Set up the 802.15.4 address filter to accept messages to the given
@@ -877,18 +887,18 @@ RAIL_Status_t RAIL_IEEE802154_SetAddresses(RAIL_Handle_t railHandle,
const RAIL_IEEE802154_AddrConfig_t *addresses);
/**
- * Set a PAN ID for 802.15.4 address filtering.
+ * Set a PAN Id for 802.15.4 address filtering.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] panId The 16-bit PAN ID information.
- * This will be matched against the destination PAN ID of incoming messages.
- * The PAN ID is sent little endian over the air, meaning panId[7:0] is first in
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] panId The 16-bit PAN Id information.
+ * This will be matched against the destination PAN Id of incoming messages.
+ * The PAN Id is sent little endian over the air, meaning panId[7:0] is first in
* the payload followed by panId[15:8]. Set to 0xFFFF to disable for this index.
- * @param[in] index Indicates which PAN ID to set. Must be below
- * RAIL_IEEE802154_MAX_ADDRESSES.
- * @return A status code indicating success of the function call.
+ * @param[in] index Indicates which PAN Id to set. Must be below
+ * \ref RAIL_IEEE802154_MAX_ADDRESSES.
+ * @return Status code indicating success of the function call.
*
- * Set up the 802.15.4 address filter to accept messages to the given PAN ID.
+ * Set up the 802.15.4 address filter to accept messages to the given PAN Id.
*/
RAIL_Status_t RAIL_IEEE802154_SetPanId(RAIL_Handle_t railHandle,
uint16_t panId,
@@ -903,8 +913,8 @@ RAIL_Status_t RAIL_IEEE802154_SetPanId(RAIL_Handle_t railHandle,
* little endian over the air meaning shortAddr[7:0] is first in the payload
* followed by shortAddr[15:8]. Set to 0xFFFF to disable for this index.
* @param[in] index Which short address to set. Must be below
- * RAIL_IEEE802154_MAX_ADDRESSES.
- * @return A status code indicating success of the function call.
+ * \ref RAIL_IEEE802154_MAX_ADDRESSES.
+ * @return Status code indicating success of the function call.
*
* Set up the 802.15.4 address filter to accept messages to the given short
* address.
@@ -916,14 +926,14 @@ RAIL_Status_t RAIL_IEEE802154_SetShortAddress(RAIL_Handle_t railHandle,
/**
* Set a long address for 802.15.4 address filtering.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] longAddr A pointer to an 8-byte array containing the long address
* information. The long address must be in over-the-air byte order. This will
* be matched against the destination long address of incoming messages. Set to
* 0x00 00 00 00 00 00 00 00 to disable for this index.
* @param[in] index Indicates which long address to set. Must be below
- * RAIL_IEEE802154_MAX_ADDRESSES.
- * @return A status code indicating success of the function call.
+ * \ref RAIL_IEEE802154_MAX_ADDRESSES.
+ * @return Status code indicating success of the function call.
*
* Set up the 802.15.4 address filter to accept messages to the given long
* address.
@@ -935,9 +945,9 @@ RAIL_Status_t RAIL_IEEE802154_SetLongAddress(RAIL_Handle_t railHandle,
/**
* Set whether the current node is a PAN coordinator.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] isPanCoordinator true if this device is a PAN coordinator.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* If the device is a PAN Coordinator, it will accept data and command
* frames with no destination address. This function will fail if 802.15.4
@@ -951,9 +961,9 @@ RAIL_Status_t RAIL_IEEE802154_SetPanCoordinator(RAIL_Handle_t railHandle,
/**
* Set whether to enable 802.15.4 promiscuous mode.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] enable true if all frames and addresses should be accepted.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* If promiscuous mode is enabled, no frame or address filtering steps
* will be performed other than checking the CRC. This function will fail if
@@ -971,7 +981,9 @@ RAIL_Status_t RAIL_IEEE802154_SetPromiscuousMode(RAIL_Handle_t railHandle,
RAIL_ENUM_GENERIC(RAIL_IEEE802154_EOptions_t, uint32_t) {
/** Shift position of \ref RAIL_IEEE802154_E_OPTION_GB868 bit. */
RAIL_IEEE802154_E_OPTION_GB868_SHIFT = 0,
+ /** Shift position of \ref RAIL_IEEE802154_E_OPTION_ENH_ACK bit. */
RAIL_IEEE802154_E_OPTION_ENH_ACK_SHIFT,
+ /** Shift position of \ref RAIL_IEEE802154_E_OPTION_IMPLICIT_BROADCAST bit. */
RAIL_IEEE802154_E_OPTION_IMPLICIT_BROADCAST_SHIFT,
};
@@ -994,37 +1006,37 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_EOptions_t, uint32_t) {
* that feature.
*
* @note This feature does not automatically enable receiving Multipurpose
- * frames; that can be enabled via RAIL_IEEE802154_AcceptFrames()'s
+ * frames; that can be enabled via \ref RAIL_IEEE802154_AcceptFrames()'s
* \ref RAIL_IEEE802154_ACCEPT_MULTIPURPOSE_FRAMES.
*/
#define RAIL_IEEE802154_E_OPTION_GB868 (1UL << RAIL_IEEE802154_E_OPTION_GB868_SHIFT)
/**
- * An option to enable/disable 802.15.4E-2012 features needed for Enhanced ACKs.
+ * An option to enable/disable 802.15.4E-2012 features needed for Enhanced Acks.
* This option requires that \ref RAIL_IEEE802154_E_OPTION_GB868 also be
* enabled, and is enabled automatically on platforms that support this
* feature. It exists as a separate flag to allow runtime detection of whether
* the platform supports this feature or not.
*
- * When enabled, only an Enhanced ACK is expected in response to a transmitted
- * ACK-requesting 802.15.4E Version 2 frame. RAIL only knows how to construct
- * 802.15.4 Immediate ACKs but not Enhanced ACKs.
+ * When enabled, only an Enhanced Ack is expected in response to a transmitted
+ * Ack-requesting 802.15.4E Version 2 frame. RAIL only knows how to construct
+ * 802.15.4 Immediate Acks but not Enhanced Acks.
*
* This option causes \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND to be
- * issued for ACK-requesting Version 2 MAC Command frames, Data frames
+ * issued for Ack-requesting Version 2 MAC Command frames, Data frames
* (if \ref RAIL_IEEE802154_EnableDataFramePending() is enabled), and
* Multipurpose Frames (if \ref RAIL_IEEE802154_ACCEPT_MULTIPURPOSE_FRAMES
* is enabled).
*
* The application is expected to handle this event by calling \ref
* RAIL_GetRxIncomingPacketInfo() and parsing the partly-received incoming
- * frame to determine the type of ACK needed:
- * - If an Immediate ACK, determine Frame Pending needs based on the packet
+ * frame to determine the type of Ack needed:
+ * - If an Immediate Ack, determine Frame Pending needs based on the packet
* type and addressing information and call \ref
* RAIL_IEEE802154_ToggleFramePending() if necessary;
- * - If an Enhanced ACK, generate the complete payload of the Enhanced ACK
+ * - If an Enhanced Ack, generate the complete payload of the Enhanced Ack
* including any Frame Pending information and call \ref
- * RAIL_IEEE802154_WriteEnhAck() in time for that Enhanced ACK to
+ * RAIL_IEEE802154_WriteEnhAck() in time for that Enhanced Ack to
* be sent. If not called in time, \ref RAIL_EVENT_TXACK_UNDERFLOW will
* likely result.
* Note that if 802.15.4 MAC-level encryption is used with Version 2
@@ -1037,8 +1049,8 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_EOptions_t, uint32_t) {
* need to examine the MAC Command byte of MAC Command frames but can
* infer it to be a Data Request.
*
- * On 802.15.4E GB868 platforms that lack this support, legacy Immediate ACKs
- * are sent/expected for received/transmitted ACK-requesting 802.15.4E Frame
+ * On 802.15.4E GB868 platforms that lack this support, legacy Immediate Acks
+ * are sent/expected for received/transmitted Ack-requesting 802.15.4E Frame
* Version 2 frames; calls to \ref RAIL_IEEE802154_WriteEnhAck() have no
* effect. Attempting to use this feature via \ref
* RAIL_IEEE802154_ConfigEOptions() returns an error.
@@ -1049,8 +1061,8 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_EOptions_t, uint32_t) {
* An option to enable/disable 802.15.4E-2012 macImplicitBroadcast feature.
*
* When enabled, received Frame Version 2 frames without a destination
- * PAN ID or destination address are treated as though they are addressed
- * to the broadcast PAN ID and broadcast short address. When disabled, such
+ * PAN Id or destination address are treated as though they are addressed
+ * to the broadcast PAN Id and broadcast short address. When disabled, such
* frames are filtered unless the device is the PAN coordinator and
* appropriate source addressing information exists in the packet
*/
@@ -1062,12 +1074,12 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_EOptions_t, uint32_t) {
/**
* Configure certain 802.15.4E-2012 / 802.15.4-2015 Frame Version 2 features.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] mask A bitmask containing which options should be modified.
* @param[in] options A bitmask containing desired options settings.
* Bit positions for each option are found in the \ref
* RAIL_IEEE802154_EOptions_t.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function will fail if 802.15.4 hardware acceleration is not
* currently enabled by calling \ref RAIL_IEEE802154_Init() or the platform
@@ -1110,8 +1122,8 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_GOptions_t, uint32_t) {
* - On platforms where \ref RAIL_FEAT_IEEE802154_G_4BYTE_CRC_SUPPORTED
* is true: automatic per-packet 2/4-byte Frame Check Sequence (FCS)
* reception and transmission based on the FCS Type bit in the
- * received/transmitted PHY header. This includes ACK reception
- * and automatically-generated ACKs reflect the CRC size of the
+ * received/transmitted PHY header. This includes Ack reception
+ * and automatically-generated Acks reflect the CRC size of the
* incoming frame being acknowledged (i.e., their MAC payload will be
* increased to 7 bytes when sending 4-byte FCS).
* On other platforms, only the 2-byte FCS is supported.
@@ -1119,7 +1131,7 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_GOptions_t, uint32_t) {
* and/or \ref RAIL_FEAT_IEEE802154_G_UNWHITENED_TX_SUPPORTED are true:
* automatic per-packet whitened/unwhitened reception and transmission,
* respectively, based on the Data Whitening bit in the received/transmitted
- * PHY header. This includes ACK reception and automatically-generated ACKs
+ * PHY header. This includes Ack reception and automatically-generated Acks
* which reflect the whitening of the incoming frame being acknowledged.
* On other platforms, only whitened frames are supported.
* - Support for frames up to 2049 bytes per the radio configuration's
@@ -1132,26 +1144,28 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_GOptions_t, uint32_t) {
* packet's PHY header Data Whitening flag.
*/
#define RAIL_IEEE802154_G_OPTION_GB868 (1UL << RAIL_IEEE802154_G_OPTION_GB868_SHIFT)
+
/**
* An option to enable/disable 802.15.4G dynamic FEC feature (SUN FSK only).
- * The syncWord, called start-of-frame delimiter (SFD) in the 15.4 spec, indicates whether
+ * The sync word, called start-of-frame delimiter (SFD) in the 15.4 spec, indicates whether
* the rest of the packet is FEC encoded or not. This feature requires per-packet
- * dual syncWord detection and specific receiver pausing.
+ * dual sync word detection and specific receiver pausing.
* Note that this feature is only available on platforms where
* \ref RAIL_IEEE802154_SUPPORTS_G_DYNFEC is true.
*
* This option is only valid for SUN PHYs that have the FEC configured and enabled.
*
- * The syncWord used during transmit is selected with \ref RAIL_TX_OPTION_SYNC_WORD_ID.
+ * The sync word used during transmit is selected with \ref RAIL_TX_OPTION_SYNC_WORD_ID.
*
- * The syncWord corresponding to the FEC encoded mode must be SYNC1, with SYNC2 indicating non-FEC.
- * SyncWords are set appropriately in all Sun FEC-enabled PHYs so there should
+ * The sync word corresponding to the FEC encoded mode must be SYNC1, with SYNC2 indicating non-FEC.
+ * Sync words are set appropriately in all Sun FEC-enabled PHYs so there should
* never be a need to call \ref RAIL_ConfigSyncWords() when this option is enabled.
*
- * Also, dual syncWord detection is set in all SUN FEC enabled PHYs, then there is no need
- * to change \ref RAIL_RX_OPTION_ENABLE_DUALSYNC .
+ * Also, dual sync word detection is set in all SUN FEC enabled PHYs, then there is no need
+ * to change \ref RAIL_RX_OPTION_ENABLE_DUALSYNC.
*/
#define RAIL_IEEE802154_G_OPTION_DYNFEC (1UL << RAIL_IEEE802154_G_OPTION_DYNFEC_SHIFT)
+
/**
* An option to enable/disable Wi-SUN Mode Switch feature.
* This feature consists in switching to a new PHY mode with a higher rate typically
@@ -1169,12 +1183,12 @@ RAIL_ENUM_GENERIC(RAIL_IEEE802154_GOptions_t, uint32_t) {
* Configure certain 802.15.4G-2012 / 802.15.4-2015 SUN PHY features
* (only for radio configurations designed accordingly).
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] mask A bitmask containing which options should be modified.
* @param[in] options A bitmask containing desired options settings.
* Bit positions for each option are found in the \ref
* RAIL_IEEE802154_GOptions_t.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function will fail if 802.15.4 hardware acceleration is not
* currently enabled by calling \ref RAIL_IEEE802154_Init(), the platform does
@@ -1187,40 +1201,42 @@ RAIL_Status_t RAIL_IEEE802154_ConfigGOptions(RAIL_Handle_t railHandle,
/**
* @struct RAIL_IEEE802154_ModeSwitchPhr_t
- * @brief A structure containing the PHYModeID value and the corresponding mode
+ * @brief A structure containing the PHY Mode Id value and the corresponding mode
* switch PHR as defined in Wi-SUN spec.
* These structures are usually generated by the radio configurator.
*/
typedef struct RAIL_IEEE802154_ModeSwitchPhr {
- uint8_t phyModeId; /**< PHY mode Id */
- uint16_t phr; /**< Corresponding Mode Switch PHY header */
+ /** PHY mode Id. */
+ uint8_t phyModeId;
+ /** Corresponding Mode Switch PHY header. */
+ uint16_t phr;
} RAIL_IEEE802154_ModeSwitchPhr_t;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-/** When filtering PhyModeId, this is the minimum OFDM value */
+/** When filtering PHY Mode Id, this is the minimum OFDM value */
#define MIN_OFDM_PHY_MODE_ID (0x20U)
-/** When filtering PhyModeId, this is the maximum OFDM value */
+/** When filtering PHY Mode Id, this is the maximum OFDM value */
#define MAX_OFDM_PHY_MODE_ID (0x5FU)
#endif //DOXYGEN_SHOULD_SKIP_THIS
/**
- * Compute channel to switch to given a targeted PhyMode ID
+ * Compute channel to switch to given a targeted PHY Mode Id
* in the context of Wi-SUN mode switching.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] newPhyModeId A targeted PhyMode ID.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] newPhyModeId A targeted PHY Mode Id.
* @param[out] pChannel A pointer to the channel to switch to.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function will fail if:
- * - the targeted PhyModeID is the same as the current PhyMode ID
+ * - the targeted PHY Mode Id is the same as the current PHY Mode Id
* - called on a platform that lacks \ref RAIL_IEEE802154_SUPPORTS_G_MODESWITCH
* - called on a platform that doesn't have 802154G options enabled
* by \ref RAIL_IEEE802154_ConfigGOptions().
* For newPhyModeId associated with a FSK FEC_off PHY, if dynamic FEC is
* activated (see \ref RAIL_IEEE802154_G_OPTION_DYNFEC), the returned
* channel can correspond to the associated FSK FEC_on PHY corresponding
- * then to PhyModeID = newPhyModeId + 16
+ * then to PHY Mode Id = newPhyModeId + 16
*/
RAIL_Status_t RAIL_IEEE802154_ComputeChannelFromPhyModeId(RAIL_Handle_t railHandle,
uint8_t newPhyModeId,
@@ -1229,8 +1245,8 @@ RAIL_Status_t RAIL_IEEE802154_ComputeChannelFromPhyModeId(RAIL_Handle_t railHand
/**
* Manage forbidden channels during mode switch.
*
- * @param[in] currentBaseFreq The current frequency of the base channel.
- * @param[in] newPhyModeId A targeted PhyMode ID.
+ * @param[in] currentBaseFreq The current frequency of the base channel.
+ * @param[in] newPhyModeId A targeted PHY Mode Id.
* @param[in] configEntryNewPhyModeId A pointer to \ref RAIL_ChannelConfigEntry_t
* structure corresponding to the new PHY configEntry.
* @param[in,out] pChannel A pointer to the channel to switch to. If channel
@@ -1238,9 +1254,9 @@ RAIL_Status_t RAIL_IEEE802154_ComputeChannelFromPhyModeId(RAIL_Handle_t railHand
* function must update it with the closest valid channel. The highest
* channel must be selected in case of two valid channels being equidistant
* to a forbidden channel.
- * @return A status code indicating success of the function call. It must
- * return RAIL_STATUS_INVALID_PARAMETER for failure or RAIL_STATUS_NO_ERROR
- * for success.
+ * @return Status code indicating success of the function call. It must
+ * return \ref RAIL_STATUS_INVALID_PARAMETER for failure or \ref
+ * RAIL_STATUS_NO_ERROR for success.
*
* This function must fail if no valid channel has been found. If so, RAIL will
* abort the mode switch.
@@ -1259,10 +1275,10 @@ RAIL_Status_t RAILCb_IEEE802154_IsModeSwitchNewChannelValid(uint32_t currentBase
#define RAIL_IEEE802154_ACCEPT_BEACON_FRAMES (0x01)
/// When receiving packets, accept 802.15.4 DATA frame types.
#define RAIL_IEEE802154_ACCEPT_DATA_FRAMES (0x02)
-/// When receiving packets, accept 802.15.4 ACK frame types.
-/// @note Expected ACK frame types will still be accepted regardless
-/// of this setting when waiting for an ACK after a transmit that
-/// used \ref RAIL_TX_OPTION_WAIT_FOR_ACK and auto-ACK is enabled.
+/// When receiving packets, accept 802.15.4 Ack frame types.
+/// @note Expected Ack frame types will still be accepted regardless
+/// of this setting when waiting for an Ack after a transmit that
+/// used \ref RAIL_TX_OPTION_WAIT_FOR_ACK and auto-Ack is enabled.
#define RAIL_IEEE802154_ACCEPT_ACK_FRAMES (0x04)
/// When receiving packets, accept 802.15.4 COMMAND frame types.
#define RAIL_IEEE802154_ACCEPT_COMMAND_FRAMES (0x08)
@@ -1271,8 +1287,8 @@ RAIL_Status_t RAILCb_IEEE802154_IsModeSwitchNewChannelValid(uint32_t currentBase
#define RAIL_IEEE802154_ACCEPT_MULTIPURPOSE_FRAMES (0x20)
/// In standard operation, accept BEACON, DATA and COMMAND frames.
-/// Don't receive ACK frames unless waiting for ACK (i.e., only
-/// receive expected ACKs).
+/// Don't receive Ack frames unless waiting for Ack (i.e., only
+/// receive expected Acks).
#define RAIL_IEEE802154_ACCEPT_STANDARD_FRAMES (RAIL_IEEE802154_ACCEPT_BEACON_FRAMES \
| RAIL_IEEE802154_ACCEPT_DATA_FRAMES \
| RAIL_IEEE802154_ACCEPT_COMMAND_FRAMES)
@@ -1280,25 +1296,25 @@ RAIL_Status_t RAILCb_IEEE802154_IsModeSwitchNewChannelValid(uint32_t currentBase
/**
* Set which 802.15.4 frame types to accept.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] framesMask A mask containing which 802.15.4 frame types to receive.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function will fail if 802.15.4 hardware acceleration is not currently
* enabled by calling \ref RAIL_IEEE802154_Init() or framesMask requests an
* unsupported frame type.
* This setting may be changed at any time when 802.15.4 hardware
- * acceleration is enabled. Only Beacon, Data, ACK, Command, and Multipurpose
+ * acceleration is enabled. Only Beacon, Data, Ack, Command, and Multipurpose
* frames may be received.
- * The RAIL_IEEE802154_ACCEPT_XXX_FRAMES defines may be combined to create a
+ * The RAIL_IEEE802154_ACCEPT_*_FRAMES defines may be combined to create a
* bitmask to pass into this function.
*
* \ref RAIL_IEEE802154_ACCEPT_ACK_FRAMES behaves slightly different than the
* other defines. If \ref RAIL_IEEE802154_ACCEPT_ACK_FRAMES is set, the radio
- * will accept an ACK frame during normal packet reception, but only a
- * truly expected ACK will have its \ref RAIL_RxPacketDetails_t::isAck true.
- * If \ref RAIL_IEEE802154_ACCEPT_ACK_FRAMES is not set, ACK frames will be
- * filtered unless they're expected when the radio is waiting for an ACK.
+ * will accept an Ack frame during normal packet reception, but only a
+ * truly expected Ack will have its \ref RAIL_RxPacketDetails_t::isAck true.
+ * If \ref RAIL_IEEE802154_ACCEPT_ACK_FRAMES is not set, Ack frames will be
+ * filtered unless they're expected when the radio is waiting for an Ack.
*/
RAIL_Status_t RAIL_IEEE802154_AcceptFrames(RAIL_Handle_t railHandle,
uint8_t framesMask);
@@ -1307,17 +1323,17 @@ RAIL_Status_t RAIL_IEEE802154_AcceptFrames(RAIL_Handle_t railHandle,
* Enable early Frame Pending lookup event notification
* (\ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND).
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] enable true to enable, false to disable.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Normally, \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND is triggered after
- * receiving the entire MAC header and MAC command byte for an ACK-requesting
+ * receiving the entire MAC header and MAC command byte for an Ack-requesting
* MAC command frame. Version 0/1 frames also require that command to be a
* Data Request for this event to occur.
* Enabling this feature causes this event to be triggered earlier to allow for
- * more time to determine the type of ACK needed (Immediate or Enhanced) and/or
- * perform frame pending lookup to influence the outgoing ACK by using \ref
+ * more time to determine the type of Ack needed (Immediate or Enhanced) and/or
+ * perform frame pending lookup to influence the outgoing Ack by using \ref
* RAIL_IEEE802154_WriteEnhAck() or \ref RAIL_IEEE802154_ToggleFramePending().
*
* For Frame Version 0/1 packets and for Frame Version 2 packets when \ref
@@ -1328,10 +1344,10 @@ RAIL_Status_t RAIL_IEEE802154_AcceptFrames(RAIL_Handle_t railHandle,
* is in use, "early" means right after receiving any Auxiliary Security
* header which follows the source address information in the MAC header.
*
- * This feature is useful when the protocol knows an ACK-requesting MAC
+ * This feature is useful when the protocol knows an Ack-requesting MAC
* Command must be a data poll without needing to receive the MAC Command
* byte, giving it a bit more time to adjust Frame Pending or generate an
- * Enhanced ACK.
+ * Enhanced Ack.
*
* This function will fail if 802.15.4 hardware acceleration is not
* currently enabled by calling \ref RAIL_IEEE802154_Init(),
@@ -1346,18 +1362,18 @@ RAIL_Status_t RAIL_IEEE802154_EnableEarlyFramePending(RAIL_Handle_t railHandle,
* Enable Frame Pending lookup event notification
* (\ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND) for MAC Data frames.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] enable true to enable, false to disable.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Normally \ref RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND is triggered only
- * for ACK-requesting MAC command frames.
+ * for Ack-requesting MAC command frames.
* Enabling this feature causes this event to also be triggered for MAC data
* frames, at the same point in the packet as \ref
* RAIL_IEEE802154_EnableEarlyFramePending() would trigger.
* This feature is necessary to support the Thread Basil-Hayden Enhanced
* Frame Pending feature in Version 0/1 frames, and to support Version 2
- * Data frames which require an Enhanced ACK.
+ * Data frames which require an Enhanced Ack.
*
* This function will fail if 802.15.4 hardware acceleration is not
* currently enabled by calling \ref RAIL_IEEE802154_Init().
@@ -1371,41 +1387,28 @@ RAIL_Status_t RAIL_IEEE802154_EnableDataFramePending(RAIL_Handle_t railHandle,
* Alternate naming for function \ref RAIL_IEEE802154_SetFramePending
* to depict it is used for changing the default setting specified by
* \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks in
- * an outgoing ACK.
+ * an outgoing Ack.
*/
#define RAIL_IEEE802154_ToggleFramePending RAIL_IEEE802154_SetFramePending
/**
- * Change the Frame Pending bit on the outgoing legacy Immediate ACK from
+ * Change the Frame Pending bit on the outgoing legacy Immediate Ack from
* the default specified by
* \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks.
+ *
* @param[in] railHandle A handle of RAIL instance
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function must only be called while processing the \ref
- * RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND if the ACK
+ * RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND if the Ack
* for this packet should go out with its Frame Pending bit set differently
* than what was specified by
* \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks.
*
- * It's intended only for use with 802.15.4 legacy immediate ACKs and
- * not 802.15.4E enhanced ACKs.
+ * It's intended only for use with 802.15.4 legacy immediate Acks and
+ * not 802.15.4E enhanced Acks.
* This will return \ref RAIL_STATUS_INVALID_STATE if it is too late to
- * modify the outgoing Immediate ACK.
-
- * @note This function is used to set the Frame Pending bit but its meaning
- * depends on the value of
- * \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks
- * while transmitting ACK.
- * If \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks
- * is not set, then Frame Pending bit is set in outgoing ACK.
- * Whereas, if \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks
- * is set, then Frame Pending bit is cleared in outgoing ACK.
- * Therefore, this function is to be called if the frame is pending when
- * \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks
- * is not set or if there is no frame pending when
- * \ref RAIL_IEEE802154_Config_t::defaultFramePendingInOutgoingAcks
- * is set.
+ * modify the outgoing Immediate Ack.
*/
RAIL_Status_t RAIL_IEEE802154_SetFramePending(RAIL_Handle_t railHandle);
@@ -1415,43 +1418,43 @@ RAIL_Status_t RAIL_IEEE802154_SetFramePending(RAIL_Handle_t railHandle);
* @param[in] railHandle A RAIL instance handle.
* @param[out] pAddress A pointer to \ref RAIL_IEEE802154_Address_t structure
* to populate with source address information.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* This function must only be called when handling the \ref
* RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND event. This will return
* \ref RAIL_STATUS_INVALID_STATE if the address information is stale
- * (i.e., it is too late to affect the outgoing ACK).
+ * (i.e., it is too late to affect the outgoing Ack).
*/
RAIL_Status_t RAIL_IEEE802154_GetAddress(RAIL_Handle_t railHandle,
RAIL_IEEE802154_Address_t *pAddress);
/**
- * Write the AutoACK FIFO for the next outgoing 802.15.4E Enhanced ACK.
+ * Write the Auto-Ack FIFO for the next outgoing 802.15.4E Enhanced Ack.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] ackData Pointer to ACK data to transmit
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] ackData A pointer to Ack data to transmit
* This may be NULL, in which case it's assumed the data has already
- * been emplaced into the ACK buffer and RAIL just needs to be told
+ * been emplaced into the Ack buffer and RAIL just needs to be told
* how many bytes are there. Use \ref RAIL_GetAutoAckFifo() to get
- * the address of RAIL's AutoACK buffer in RAM and its size.
- * @param[in] ackDataLen Length of ACK data, in bytes.
+ * the address of RAIL's Auto-Ack buffer in RAM and its size.
+ * @param[in] ackDataLen Length of Ack data, in bytes.
* If this exceeds \ref RAIL_AUTOACK_MAX_LENGTH the function
* will return \ref RAIL_STATUS_INVALID_PARAMETER.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
- * This function sets the AutoACK data to use in acknowledging the frame
+ * This function sets the Auto-Ack data to use in acknowledging the frame
* being received. It must only be called while processing the \ref
* RAIL_EVENT_IEEE802154_DATA_REQUEST_COMMAND, and is intended for use
* when packet information from \ref RAIL_GetRxIncomingPacketInfo()
- * indicates an 802.15.4E Enhanced ACK must be sent instead of a legacy
- * Immediate ACK. \ref RAIL_IEEE802154_ToggleFramePending() should not be
- * called for an Enhanced ACK; instead the Enhanced ACK's Frame Control
+ * indicates an 802.15.4E Enhanced Ack must be sent instead of a legacy
+ * Immediate Ack. \ref RAIL_IEEE802154_ToggleFramePending() should not be
+ * called for an Enhanced Ack; instead the Enhanced Ack's Frame Control
* Field should have the Frame Pending bit set appropriately in its ackData.
* This will return \ref RAIL_STATUS_INVALID_STATE if it is too late to
- * write the outgoing ACK -- a situation that will likely trigger
+ * write the outgoing Ack -- a situation that will likely trigger
* a \ref RAIL_EVENT_TXACK_UNDERFLOW event. When successful, the Enhanced
* ackData will only be sent once. Subsequent packets needing an Enhanced
- * ACK will each need to call this function to write their ACK information.
+ * Ack will each need to call this function to write their Ack information.
*/
RAIL_Status_t RAIL_IEEE802154_WriteEnhAck(RAIL_Handle_t railHandle,
const uint8_t *ackData,
@@ -1459,23 +1462,23 @@ RAIL_Status_t RAIL_IEEE802154_WriteEnhAck(RAIL_Handle_t railHandle,
/**
* Set a separate RX packet to TX state transition turnaround time for
- * sending an Enhanced ACK.
+ * sending an Enhanced Ack.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in,out] pRxToEnhAckTx Pointer to the turnaround transition requested
- * for Enhanced ACKs. It will be updated with the actual time set.
- * Requesting a time of 0 will sync the Enhanced ACK turnaround time with
- * that used for immediate ACKs (and output 0). Requesting a time of \ref
- * RAIL_TRANSITION_TIME_KEEP will output the current Enhanced ACK timing
- * parameter (0 if it is the same as that used for Immediate ACKs).
+ * @param[in,out] pRxToEnhAckTx A pointer to the turnaround transition requested
+ * for Enhanced Acks. It will be updated with the actual time set.
+ * Requesting a time of 0 will sync the Enhanced Ack turnaround time with
+ * that used for immediate Acks (and output 0). Requesting a time of \ref
+ * RAIL_TRANSITION_TIME_KEEP will output the current Enhanced Ack timing
+ * parameter (0 if it is the same as that used for Immediate Acks).
* @return Status code indicating a success of the function call.
* An error will not update the pRxToEnhAckTx output parameter.
*
- * Normally Immediate and Enhanced ACKs are both sent using the
+ * Normally Immediate and Enhanced Acks are both sent using the
* \ref RAIL_IEEE802154_Config_t::timings rxToTx turnaround time.
- * If the stack needs more time to prepare an Enhanced ACK, it can
+ * If the stack needs more time to prepare an Enhanced Ack, it can
* call this function after \ref RAIL_IEEE802154_Init() to set a
- * longer turnaround time used just for Enhanced ACK transmits.
+ * longer turnaround time used just for Enhanced Ack transmits.
*
* This function will fail on platforms that lack
* \ref RAIL_IEEE802154_SUPPORTS_E_ENHANCED_ACK.
@@ -1519,7 +1522,7 @@ uint8_t RAIL_IEEE802154_ConvertRssiToEd(int8_t rssiDbm);
RAIL_ENUM(RAIL_IEEE802154_CcaMode_t) {
/**
* RSSI-based CCA. CCA reports a busy medium upon detecting any energy
- * above \ref RAIL_CsmaConfig_t.ccaThreshold.
+ * above \ref RAIL_CsmaConfig_t::ccaThreshold.
*/
RAIL_IEEE802154_CCA_MODE_RSSI = 0,
/**
@@ -1547,19 +1550,19 @@ RAIL_ENUM(RAIL_IEEE802154_CcaMode_t) {
*/
RAIL_IEEE802154_CCA_MODE_ALWAYS_TRANSMIT,
/**
- * Number of CCA modes.
+ * Number of CCA modes. Must be last.
*/
RAIL_IEEE802154_CCA_MODE_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_IEEE802154_CCA_MODE_RSSI ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_RSSI)
-#define RAIL_IEEE802154_CCA_MODE_SIGNAL ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_SIGNAL)
-#define RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI)
-#define RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI)
-#define RAIL_IEEE802154_CCA_MODE_ALWAYS_TRANSMIT ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_ALWAYS_TRANSMIT)
-#define RAIL_IEEE802154_CCA_MODE_COUNT ((RAIL_IEEE802154_CcaMode_t)RAIL_IEEE802154_CCA_MODE_COUNT)
+#define RAIL_IEEE802154_CCA_MODE_RSSI ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_RSSI)
+#define RAIL_IEEE802154_CCA_MODE_SIGNAL ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_SIGNAL)
+#define RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI)
+#define RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI)
+#define RAIL_IEEE802154_CCA_MODE_ALWAYS_TRANSMIT ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_ALWAYS_TRANSMIT)
+#define RAIL_IEEE802154_CCA_MODE_COUNT ((RAIL_IEEE802154_CcaMode_t) RAIL_IEEE802154_CCA_MODE_COUNT)
#endif
/**
@@ -1567,16 +1570,16 @@ RAIL_ENUM(RAIL_IEEE802154_CcaMode_t) {
* @brief Available Signal identifier modes.
*/
RAIL_ENUM(RAIL_IEEE802154_SignalIdentifierMode_t) {
- /* Disable signal detection mode. */
+ /** Disable signal detection mode. */
RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_DISABLE = 0,
- /* 2.4Ghz 802.15.4 signal detection mode. */
+ /** 2.4 GHz 802.15.4 signal detection mode. */
RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_154
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_DISABLE ((RAIL_IEEE802154_SignalIdentifierMode_t)RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_DISABLE)
-#define RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_154 ((RAIL_IEEE802154_SignalIdentifierMode_t)RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_154)
+#define RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_DISABLE ((RAIL_IEEE802154_SignalIdentifierMode_t) RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_DISABLE)
+#define RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_154 ((RAIL_IEEE802154_SignalIdentifierMode_t) RAIL_IEEE802154_SIGNAL_IDENTIFIER_MODE_154)
#endif
/**
@@ -1585,8 +1588,8 @@ RAIL_ENUM(RAIL_IEEE802154_SignalIdentifierMode_t) {
* @param[in] railHandle A RAIL instance handle.
* @param[in] signalIdentifierMode Mode of signal identifier operation.
*
- * This features allows detection of 2.4Ghz 802.15.4 signal on air. This
- * function must be called once before \ref RAIL_IEEE802154_EnableSignalDetection
+ * This features allows detection of 2.4 GHz 802.15.4 signal on air. This
+ * function must be called once before \ref RAIL_IEEE802154_EnableSignalDetection()
* to configure and enable signal identifier.
*
* To enable event for signal detection \ref RAIL_ConfigEvents() must be called
@@ -1607,11 +1610,11 @@ RAIL_Status_t RAIL_IEEE802154_ConfigSignalIdentifier(RAIL_Handle_t railHandle,
* @param[in] railHandle A RAIL instance handle.
* @param[in] enable Signal detection is enabled if true, disabled if false.
*
- * \ref RAIL_IEEE802154_ConfigSignalIdentifier must be called once before calling
+ * \ref RAIL_IEEE802154_ConfigSignalIdentifier() must be called once before calling
* this function to configure and enable signal identifier.
* Once a signal is detected signal detection will be turned off and this
* function should be called to re-enable the signal detection without needing
- * to call \ref RAIL_IEEE802154_ConfigSignalIdentifier if the signal identifier
+ * to call \ref RAIL_IEEE802154_ConfigSignalIdentifier() if the signal identifier
* is already configured and enabled.
*
* This function is only supported by chips where
@@ -1638,10 +1641,10 @@ RAIL_Status_t RAIL_IEEE802154_EnableSignalDetection(RAIL_Handle_t railHandle,
* This function sets the CCA mode \ref RAIL_IEEE802154_CcaMode_t.
* If not called, RAIL_IEEE802154_CCA_MODE_RSSI (RSSI-based CCA) is used for CCA.
*
- * In RAIL_IEEE802154_CCA_MODE_SIGNAL, RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI and
- * RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI signal identifier is enabled
+ * In \ref RAIL_IEEE802154_CCA_MODE_SIGNAL, \ref RAIL_IEEE802154_CCA_MODE_SIGNAL_OR_RSSI and
+ * \ref RAIL_IEEE802154_CCA_MODE_SIGNAL_AND_RSSI the signal identifier is enabled
* for the duration of LBT. If previously enabled by
- * \ref RAIL_IEEE802154_ConfigSignalIdentifier, the signal identifier will remain
+ * \ref RAIL_IEEE802154_ConfigSignalIdentifier(), the signal identifier will remain
* active until triggered.
*
* This function is only supported by chips where
@@ -1658,9 +1661,9 @@ RAIL_Status_t RAIL_IEEE802154_ConfigCcaMode(RAIL_Handle_t railHandle,
/**
* Allow certain malformed MAC Header frames to be received.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] enable true to enable, false to disable.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* When allowed, certain MAC header formats that 802.15.4 deems
* illegal will be received rather than filtered. This is to
@@ -1683,19 +1686,19 @@ RAIL_Status_t RAIL_IEEE802154_AllowMalformed(RAIL_Handle_t railHandle,
* structure. Use NULL to disable any switching previously set up.
* @return Status code indicating success of the function call.
*
- * This function configures RX channel switching, allowing reception of 2.4Ghz
+ * This function configures RX channel switching, allowing reception of 2.4 GHz
* 802.15.4 signals on two different radio channels within the same PHY.
* (If the two channels are same, the function behaves the same as if
* pConfig was NULL.)
* This function should be
- * called once before \ref RAIL_StartRx and/or enabling
+ * called once before \ref RAIL_StartRx() and/or enabling
* \ref RAIL_RX_OPTION_CHANNEL_SWITCHING.
*
* When \ref RAIL_RX_OPTION_CHANNEL_SWITCHING is enabled,
* channel switching will occur during normal listening but is suspended
* (and the radio is idled) when starting any kind of transmit, including
* scheduled or CSMA transmits. It remains suspended after a \ref
- * RAIL_TX_OPTION_WAIT_FOR_ACK transmit until the ACK is received or
+ * RAIL_TX_OPTION_WAIT_FOR_ACK transmit until the Ack is received or
* times out.
*
* When \ref RAIL_RX_OPTION_CHANNEL_SWITCHING is disabled after switching
@@ -1703,10 +1706,11 @@ RAIL_Status_t RAIL_IEEE802154_AllowMalformed(RAIL_Handle_t railHandle,
* so the application should call \ref RAIL_StartRx() to put it on the
* desired non-switching channel.
*
- * @note IEEE 802.15.4 must be enabled via \ref RAIL_IEEE802154_Init, and the
+ * @note IEEE 802.15.4 must be enabled via \ref RAIL_IEEE802154_Init(), and the
* radio must be in the idle state when configuring RX channel switching.
- * A DMA channel must be allocated with \ref RAIL_UseDma; otherwise this API
- * will return \ref RAIL_STATUS_INVALID_CALL.
+ * A DMA channel must be allocated with \ref RAIL_UseDma() or by incorporating
+ * the \ref rail_util_dma plugin; otherwise this API will return
+ * \ref RAIL_STATUS_INVALID_CALL.
* This feature also requires a PRS channel, internally allocated by the RAIL
* library, to use and hold onto for future use. If no PRS channel is
* available, the function returns \ref RAIL_STATUS_INVALID_PARAMETER.
@@ -1714,11 +1718,15 @@ RAIL_Status_t RAIL_IEEE802154_AllowMalformed(RAIL_Handle_t railHandle,
* @note When RX channel switching is active, receive sensitivity and performance
* are slightly impacted.
*
- * @note This function internally uses \ref RAIL_EnableCacheSynthCal to
+ * @note This function internally uses \ref RAIL_EnableCacheSynthCal() to
* enable/disable the sequencer cache to store the synth calibration value.
*
* @note Switching is cancelled on any PHY change, so this function would
* need to be re-called to reestablish switching after such a change.
+ *
+ * @warning As this function relies on LDMA access and RAIL is meant to run in
+ * TrustZone non-secure world, it is not supported if LDMA is configured as
+ * secure peripheral and it will return \ref RAIL_STATUS_INVALID_CALL.
*/
RAIL_Status_t RAIL_IEEE802154_ConfigRxChannelSwitching(RAIL_Handle_t railHandle,
const RAIL_IEEE802154_RxChannelSwitchingCfg_t *pConfig);
@@ -1733,8 +1741,8 @@ RAIL_Status_t RAIL_IEEE802154_ConfigRxChannelSwitching(RAIL_Handle_t railHandle,
* Calibrate image rejection for IEEE 802.15.4 2.4 GHz.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[out] imageRejection The result of the image rejection calibration.
- * @return A status code indicating success of the function call.
+ * @param[out] imageRejection A pointer to the result of the image rejection calibration.
+ * @return Status code indicating success of the function call.
*
* Some chips have protocol-specific image rejection calibrations programmed
* into their flash. This function will either get the value from flash and
@@ -1748,7 +1756,7 @@ RAIL_Status_t RAIL_IEEE802154_CalibrateIr2p4Ghz(RAIL_Handle_t railHandle,
*
* @param[in] railHandle A RAIL instance handle.
* @param[out] imageRejection The result of the image rejection calibration.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
* Some chips have protocol-specific image rejection calibrations programmed
* into their flash. This function will either get the value from flash and
diff --git a/simplicity_sdk/platform/radio/rail_lib/protocol/sidewalk/rail_sidewalk.h b/simplicity_sdk/platform/radio/rail_lib/protocol/sidewalk/rail_sidewalk.h
index 69967c753..125d08e19 100644
--- a/simplicity_sdk/platform/radio/rail_lib/protocol/sidewalk/rail_sidewalk.h
+++ b/simplicity_sdk/platform/radio/rail_lib/protocol/sidewalk/rail_sidewalk.h
@@ -62,12 +62,12 @@ extern "C" {
extern const RAIL_ChannelConfig_t *const RAIL_Sidewalk_Phy2GFSK50kbps;
/**
- * Switch to the 2GFSK 50kbps Sidewalk PHY.
+ * Switch to the 2GFSK 50 kbps Sidewalk PHY.
*
* @param[in] railHandle A handle for RAIL instance.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*
- * Use this function to switch to the 2GFSK 50kbps Sidewalk PHY.
+ * Use this function to switch to the 2GFSK 50 kbps Sidewalk PHY.
*
* @note The Sidewalk PHY is supported only on some parts.
* The preprocessor symbol \ref RAIL_SUPPORTS_PROTOCOL_SIDEWALK and the
diff --git a/simplicity_sdk/platform/radio/rail_lib/protocol/wmbus/rail_wmbus.h b/simplicity_sdk/platform/radio/rail_lib/protocol/wmbus/rail_wmbus.h
index 241a74a56..d89c9fde4 100644
--- a/simplicity_sdk/platform/radio/rail_lib/protocol/wmbus/rail_wmbus.h
+++ b/simplicity_sdk/platform/radio/rail_lib/protocol/wmbus/rail_wmbus.h
@@ -47,11 +47,11 @@ extern "C" {
* @brief The RX variant of the WMBUS T+C PHY.
*/
RAIL_ENUM(RAIL_WMBUS_Phy_t) {
- /** subPhyId indicating a mode T frame A packet */
+ /** \ref RAIL_RxPacketDetails_t::subPhyId indicating a mode T frame A packet */
RAIL_WMBUS_ModeTFrameA = 0U,
- /** subPhyId indicating a mode C frame A packet */
+ /** \ref RAIL_RxPacketDetails_t::subPhyId indicating a mode C frame A packet */
RAIL_WMBUS_ModeCFrameA = 2U,
- /** subPhyId indicating a mode C frame B packet */
+ /** \ref RAIL_RxPacketDetails_t::subPhyId indicating a mode C frame B packet */
RAIL_WMBUS_ModeCFrameB = 3U,
};
diff --git a/simplicity_sdk/platform/radio/rail_lib/protocol/zwave/rail_zwave.h b/simplicity_sdk/platform/radio/rail_lib/protocol/zwave/rail_zwave.h
index c79da9c71..7e26e4fe3 100644
--- a/simplicity_sdk/platform/radio/rail_lib/protocol/zwave/rail_zwave.h
+++ b/simplicity_sdk/platform/radio/rail_lib/protocol/zwave/rail_zwave.h
@@ -45,7 +45,7 @@ extern "C" {
/// acceleration features.
///
/// To configure Z-Wave functionality, the application must first set up
-/// a RAIL instance with RAIL_Init() and other setup functions.
+/// a RAIL instance with \ref RAIL_Init() and other setup functions.
/// @code{.c}
/// RAIL_ZWAVE_NodeId_t gRecentBeamNodeId;
/// uint8_t gRecentBeamChannelIndex;
@@ -53,7 +53,7 @@ extern "C" {
/// // Main RAIL_EVENT callback
/// static void RAILCb_Event(RAIL_Handle_t railHandle, RAIL_Events_t events)
/// {
-/// // Get beamNodeId and channel index from beam packet
+/// // Get beam Node Id and channel index from beam packet
/// if (events & RAIL_EVENT_ZWAVE_BEAM) {
/// if (RAIL_ZWAVE_IsEnabled(railHandle)) {
/// if ((RAIL_ZWAVE_GetBeamNodeId(railHandle, &gRecentBeamNodeId)
@@ -95,20 +95,16 @@ extern "C" {
* @brief Z-Wave options.
*/
RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
- // Z-Wave Option Bit Shifts
-
- /** Shift position of \ref RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE bit */
+ /** Shift position of \ref RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE bit. */
RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE_SHIFT = 0,
- /** Shift position of \ref RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES bit */
- RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES_SHIFT,
- /** Shift position of \ref RAIL_ZWAVE_OPTION_NODE_ID_FILTERING bit */
- RAIL_ZWAVE_OPTION_NODE_ID_FILTERING_SHIFT,
- /** Shift position of \ref RAIL_ZWAVE_OPTION_PROMISCUOUS_BEAM_MODE bit */
- RAIL_ZWAVE_OPTION_PROMISCUOUS_BEAM_MODE_SHIFT,
+ /** Shift position of \ref RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES bit. */
+ RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES_SHIFT = 1,
+ /** Shift position of \ref RAIL_ZWAVE_OPTION_NODE_ID_FILTERING bit. */
+ RAIL_ZWAVE_OPTION_NODE_ID_FILTERING_SHIFT = 2,
+ /** Shift position of \ref RAIL_ZWAVE_OPTION_PROMISCUOUS_BEAM_MODE bit. */
+ RAIL_ZWAVE_OPTION_PROMISCUOUS_BEAM_MODE_SHIFT = 3,
};
-// RAIL_ZWAVE_Options_t bitmasks
-
/** A value representing no options */
#define RAIL_ZWAVE_OPTIONS_NONE 0U
@@ -117,14 +113,14 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
/**
* An option to configure promiscuous mode, accepting non-beam packets
- * regardless of their HomeId. By default packets are filtered by their HomeId.
+ * regardless of their Home Id. By default packets are filtered by their Home Id.
* When true, such filtering is disabled.
*/
#define RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE \
(1u << RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE_SHIFT)
/**
- * An option to filter non-beam packets based on their NodeId when
+ * An option to filter non-beam packets based on their Node Id when
* \ref RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE is disabled.
*
* @note This option has no effect when
@@ -137,10 +133,10 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
* An option to configure beam frame recognition. By default beams are not
* considered special and will be received as if they were normal Z-Wave
* frames, assuredly triggering \ref RAIL_EVENT_RX_FRAME_ERROR.
- * When true, beam frames that are broadcast or match the NodeId and
- * HomeIdHash values will trigger \ref RAIL_EVENT_ZWAVE_BEAM event.
+ * When true, beam frames that are broadcast or match the Node Id and
+ * Home Id hash values will trigger \ref RAIL_EVENT_ZWAVE_BEAM event.
* (All beams additionally trigger \ref RAIL_EVENT_RX_PACKET_ABORTED
- * regardless of NodeId / HomeIdHash values.)
+ * regardless of Node Id / Home Id hash values.)
*
* @note This option takes precedence over \ref
* RAIL_ZWAVE_OPTION_PROMISCUOUS_MODE when receiving a beam frame.
@@ -153,7 +149,7 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
/**
* An option to receive all beams promiscuously when \ref
* RAIL_ZWAVE_OPTION_DETECT_BEAM_FRAMES is enabled.
- * When true, beam frames are received regardless of their NodeId or HomeIdHash
+ * When true, beam frames are received regardless of their Node Id or Home Id hash
* resulting in \ref RAIL_EVENT_ZWAVE_BEAM (and also \ref
* RAIL_EVENT_RX_PACKET_ABORTED) for each beam frame.
*
@@ -168,7 +164,7 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
/**
* @enum RAIL_ZWAVE_NodeId_t
- * @brief A Z-Wave Node ID.
+ * @brief A Z-Wave Node Id.
*
* This data type is 12 bits wide when using the ZWave Long Range PHY, and
* 8 bits wide otherwise.
@@ -177,29 +173,31 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_Options_t, uint32_t) {
* Otherwise, values 0xE9..0xFE are reserved.
*/
RAIL_ENUM_GENERIC(RAIL_ZWAVE_NodeId_t, uint16_t) {
- /** The unknown NodeId for uninitialized nodes. */
+ /** The unknown Node Id for uninitialized nodes. */
RAIL_ZWAVE_NODE_ID_NONE = 0x00U,
- /** The broadcast NodeId. */
+ /** The broadcast Node Id. */
RAIL_ZWAVE_NODE_ID_BROADCAST = 0xFFU,
- /** Default to the broadcast NodeId. */
+ /** Default to the broadcast Node Id. */
RAIL_ZWAVE_NODE_ID_DEFAULT = RAIL_ZWAVE_NODE_ID_BROADCAST,
- // All other values between 0x00 and 0xFE are valid node IDs normally
- /** The Long Range broadcast NodeId. */
+ // All other values between 0x00 and 0xFE are valid Node Ids normally
+ /** The Long Range broadcast Node Id. */
RAIL_ZWAVE_NODE_ID_BROADCAST_LONGRANGE = 0xFFFU,
- /** Default to the Long Range broadcast NodeId. */
+ /** Default to the Long Range broadcast Node Id. */
RAIL_ZWAVE_NODE_ID_DEFAULT_LONGRANGE = RAIL_ZWAVE_NODE_ID_BROADCAST_LONGRANGE,
- // All values from 0x001 to 0xFA1 are valid node IDs with a Long Range PHY.
+ // All values from 0x001 to 0xFA1 are valid Node Ids with a Long Range PHY.
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_ZWAVE_NODE_ID_NONE ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_NONE)
-#define RAIL_ZWAVE_NODE_ID_BROADCAST ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_BROADCAST)
-#define RAIL_ZWAVE_NODE_ID_DEFAULT ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_DEFAULT)
+#define RAIL_ZWAVE_NODE_ID_NONE ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_NONE)
+#define RAIL_ZWAVE_NODE_ID_BROADCAST ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_BROADCAST)
+#define RAIL_ZWAVE_NODE_ID_DEFAULT ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_DEFAULT)
+#define RAIL_ZWAVE_NODE_ID_BROADCAST_LONGRANGE ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_BROADCAST_LONGRANGE)
+#define RAIL_ZWAVE_NODE_ID_DEFAULT_LONGRANGE ((RAIL_ZWAVE_NodeId_t) RAIL_ZWAVE_NODE_ID_DEFAULT_LONGRANGE)
#endif //DOXYGEN_SHOULD_SKIP_THIS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-/** Defines for subPhyID field in RAIL_RxPacketDetails_t */
+/** Defines for \ref RAIL_RxPacketDetails_t::subPhyId field. */
#define RAIL_ZWAVE_RX_SUBPHY_ID_0 (0U)
#define RAIL_ZWAVE_RX_SUBPHY_ID_1 (1U)
#define RAIL_ZWAVE_RX_SUBPHY_ID_2 (2U)
@@ -208,13 +206,15 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_NodeId_t, uint16_t) {
/**
* @enum RAIL_ZWAVE_HomeId_t
- * @brief A Z-Wave Home ID.
+ * @brief A Z-Wave Home Id.
*
- * @note Home IDs in the range 0x54000000..0x55FFFFFF are illegal.
+ * @note Home Ids in the range 0x54000000..0x55FFFFFF are illegal.
*/
RAIL_ENUM_GENERIC(RAIL_ZWAVE_HomeId_t, uint32_t) {
- RAIL_ZWAVE_HOME_ID_UNKNOWN = 0x00000000U, /**< The unknown HomeId. */
- RAIL_ZWAVE_HOME_ID_DEFAULT = 0x54545454U, /**< An impossible and unlikely HomeId. */
+ /** The unknown Home Id. */
+ RAIL_ZWAVE_HOME_ID_UNKNOWN = 0x00000000U,
+ /** An impossible and unlikely Home Id. */
+ RAIL_ZWAVE_HOME_ID_DEFAULT = 0x54545454U,
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -225,20 +225,24 @@ RAIL_ENUM_GENERIC(RAIL_ZWAVE_HomeId_t, uint32_t) {
/**
* @enum RAIL_ZWAVE_HomeIdHash_t
- * @brief A Z-Wave Home ID hash.
+ * @brief A Z-Wave Home Id hash.
*
* @note Certain values (as shown) are illegal.
*/
RAIL_ENUM(RAIL_ZWAVE_HomeIdHash_t) {
- RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_1 = 0x0AU, /**< An illegal HomeIdHash value. */
- RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_2 = 0x4AU, /**< An illegal HomeIdHash value. */
- RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_3 = 0x55U, /**< An illegal HomeIdHash value. */
- RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE = 0x55U, /**< Illegal HomeIdHash value that
- suppresses checking the
- HomeIdHash field of beam
- packets. */
- RAIL_ZWAVE_HOME_ID_HASH_DEFAULT
- = RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE, /**< Default to don't care. */
+ /** An illegal Home Id hash value. */
+ RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_1 = 0x0AU,
+ /** An illegal Home Id hash value. */
+ RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_2 = 0x4AU,
+ /** An illegal Home Id hash value. */
+ RAIL_ZWAVE_HOME_ID_HASH_ILLEGAL_3 = 0x55U,
+ /**
+ * Illegal Home Id hash value that suppresses checking the
+ * Home Id hash field of beam packets.
+ */
+ RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE = 0x55U,
+ /** Default to don't care. */
+ RAIL_ZWAVE_HOME_ID_HASH_DEFAULT = RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE,
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
@@ -260,7 +264,7 @@ typedef struct RAIL_ZWAVE_Config {
*/
RAIL_ZWAVE_Options_t options;
/**
- * Defines Z-Wave ACKing configuration.
+ * Defines Z-Wave Acking configuration.
*/
RAIL_AutoAckConfig_t ackConfig;
/**
@@ -271,27 +275,42 @@ typedef struct RAIL_ZWAVE_Config {
/**
* @enum RAIL_ZWAVE_Baud_t
- * @brief Z-Wave supported baudrates or PHYs.
+ * @brief Z-Wave supported baud rates or PHYs.
*/
RAIL_ENUM(RAIL_ZWAVE_Baud_t) {
- RAIL_ZWAVE_BAUD_9600, /**< 9.6kbps baudrate*/
- RAIL_ZWAVE_BAUD_40K, /**< 40kbps baudrate*/
- RAIL_ZWAVE_BAUD_100K, /**< 100kbps baudrate*/
- RAIL_ZWAVE_LR, /**< Long Range PHY*/
- RAIL_ZWAVE_ENERGY_DETECT = RAIL_ZWAVE_LR, /**< Energy detection PHY*/
- RAIL_ZWAVE_BAUD_INVALID /**< Sentinel value for invalid baud rate*/
+ /** 9.6 kbps baud rate. */
+ RAIL_ZWAVE_BAUD_9600,
+ /** 40 kbps baud rate. */
+ RAIL_ZWAVE_BAUD_40K,
+ /** 100 kbps baud rate. */
+ RAIL_ZWAVE_BAUD_100K,
+ /** Long Range PHY. */
+ RAIL_ZWAVE_LR,
+ /** Energy detection PHY. */
+ RAIL_ZWAVE_ENERGY_DETECT = RAIL_ZWAVE_LR,
+ /** Sentinel value for invalid baud rate. Must be last. */
+ RAIL_ZWAVE_BAUD_INVALID
};
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
+#define RAIL_ZWAVE_BAUD_9600 ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_9600)
+#define RAIL_ZWAVE_BAUD_40K ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_40K)
+#define RAIL_ZWAVE_BAUD_100K ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_100K)
+#define RAIL_ZWAVE_LR ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_LR)
+#define RAIL_ZWAVE_ENERGY_DETECT ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_ENERGY_DETECT)
+#define RAIL_ZWAVE_INVALID ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_INVALID)
+#endif //DOXYGEN_SHOULD_SKIP_THIS
+
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/**
* @enum RAIL_ZWAVE_RegionOptions_t
* @brief Region Specific Physical
*/
-RAIL_ENUM(RAIL_ZWAVE_RegionOptions_t)
-{
- /** Bit shift for US Long Range End Devices */
- RAIL_ZWAVE_REGION_LONG_RANGE_END_SHIFT = 0,
+RAIL_ENUM(RAIL_ZWAVE_RegionOptions_t) {
+ /** Bit shift for US Long Range 3 */
+ RAIL_ZWAVE_REGION_LONG_RANGE_3_SHIFT = 0,
/** Bit shift for special low side config, mostly for Japan and Korea */
RAIL_ZWAVE_REGION_LOW_SIDE_SHIFT = 1,
/** Bit shift for US long range range configurations */
@@ -305,8 +324,10 @@ RAIL_ENUM(RAIL_ZWAVE_RegionOptions_t)
#define RAIL_ZWAVE_REGION_LONG_RANGE_MASK (1u << RAIL_ZWAVE_REGION_LONG_RANGE_SHIFT)
/** A value representing lowside configurations: JP and KR */
#define RAIL_ZWAVE_REGION_LOW_SIDE_MASK (1u << RAIL_ZWAVE_REGION_LOW_SIDE_SHIFT)
-/** A value representing Long Range End Device region */
-#define RAIL_ZWAVE_REGION_LONG_RANGE_END_MASK (1u << RAIL_ZWAVE_REGION_LONG_RANGE_END_SHIFT)
+/** A value representing Long Range 3 (end device) region */
+#define RAIL_ZWAVE_REGION_LONG_RANGE_3_MASK (1u << RAIL_ZWAVE_REGION_LONG_RANGE_3_SHIFT)
+/** @deprecated Backwards compatible name. */
+#define RAIL_ZWAVE_REGION_LONG_RANGE_END_MASK RAIL_ZWAVE_REGION_LONG_RANGE_3_MASK
/** A value representing No bit to be enabled */
#define RAIL_ZWAVE_REGION_SPECIFIC_NONE 0u
#endif // DOXYGEN SHOULD SKIP THIS
@@ -317,67 +338,82 @@ RAIL_ENUM(RAIL_ZWAVE_RegionOptions_t)
*/
#define RAIL_ZWAVE_FREQ_INVALID 0xFFFFFFFFUL
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
-#define RAIL_ZWAVE_BAUD_9600 ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_9600)
-#define RAIL_ZWAVE_BAUD_40K ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_40K)
-#define RAIL_ZWAVE_BAUD_100K ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_BAUD_100K)
-#define RAIL_ZWAVE_LR ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_LR)
-#define RAIL_ZWAVE_ENERGY_DETECT ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_ENERGY_DETECT)
-#define RAIL_ZWAVE_INVALID ((RAIL_ZWAVE_Baud_t) RAIL_ZWAVE_INVALID)
-#endif //DOXYGEN_SHOULD_SKIP_THIS
-
/**
* @enum RAIL_ZWAVE_RegionId_t
* @brief Z-Wave region identifications.
*/
RAIL_ENUM(RAIL_ZWAVE_RegionId_t) {
- RAIL_ZWAVE_REGIONID_UNKNOWN, /**< Unknown/Invalid*/
- RAIL_ZWAVE_REGIONID_EU, /**< European Union*/
- RAIL_ZWAVE_REGIONID_US, /**< United States*/
- RAIL_ZWAVE_REGIONID_ANZ, /**< Australia/New Zealand*/
- RAIL_ZWAVE_REGIONID_HK, /**< Hong Kong*/
- RAIL_ZWAVE_REGIONID_MY, /**< Malaysia*/
- RAIL_ZWAVE_REGIONID_IN, /**< India*/
- RAIL_ZWAVE_REGIONID_JP, /**< Japan*/
- RAIL_ZWAVE_REGIONID_RU, /**< Russian Federation*/
- RAIL_ZWAVE_REGIONID_IL, /**< Israel*/
- RAIL_ZWAVE_REGIONID_KR, /**< Korea*/
- RAIL_ZWAVE_REGIONID_CN, /**< China*/
- RAIL_ZWAVE_REGIONID_US_LR1, /**< United States, with first long range PHY*/
- RAIL_ZWAVE_REGIONID_US_LR2, /**< United States, with second long range PHY*/
- RAIL_ZWAVE_REGIONID_US_LR_END_DEVICE, /**< United States long range end device PHY for both LR frequencies*/
- RAIL_ZWAVE_REGIONID_EU_LR1, /**< European Union, with first long range PHY*/
- RAIL_ZWAVE_REGIONID_EU_LR2, /**< European Union, with second long range PHY*/
- RAIL_ZWAVE_REGIONID_EU_LR_END_DEVICE, /**< European Union long range end device PHY for both LR frequencies*/
- RAIL_ZWAVE_REGIONID_COUNT /**< Count of known regions, must be last*/
+ /** Unknown/Invalid. */
+ RAIL_ZWAVE_REGIONID_UNKNOWN = 0,
+ /** European Union. */
+ RAIL_ZWAVE_REGIONID_EU = 1,
+ /** United States. */
+ RAIL_ZWAVE_REGIONID_US = 2,
+ /** Australia/New Zealand. */
+ RAIL_ZWAVE_REGIONID_ANZ = 3,
+ /** Hong Kong. */
+ RAIL_ZWAVE_REGIONID_HK = 4,
+ /** Malaysia. */
+ RAIL_ZWAVE_REGIONID_MY = 5,
+ /** India. */
+ RAIL_ZWAVE_REGIONID_IN = 6,
+ /** Japan. */
+ RAIL_ZWAVE_REGIONID_JP = 7,
+ /** Russian Federation. */
+ RAIL_ZWAVE_REGIONID_RU = 8,
+ /** Israel. */
+ RAIL_ZWAVE_REGIONID_IL = 9,
+ /** Korea. */
+ RAIL_ZWAVE_REGIONID_KR = 10,
+ /** China. */
+ RAIL_ZWAVE_REGIONID_CN = 11,
+ /** United States, with first long range PHY. */
+ RAIL_ZWAVE_REGIONID_US_LR1 = 12,
+ /** United States, with second long range PHY. */
+ RAIL_ZWAVE_REGIONID_US_LR2 = 13,
+ /** United States, with third long range PHY. */
+ RAIL_ZWAVE_REGIONID_US_LR3 = 14,
+ /** @deprecated Backwards compatible name. */
+ RAIL_ZWAVE_REGIONID_US_LR_END_DEVICE = RAIL_ZWAVE_REGIONID_US_LR3,
+ /** European Union, with first long range PHY. */
+ RAIL_ZWAVE_REGIONID_EU_LR1 = 15,
+ /** European Union, with second long range PHY. */
+ RAIL_ZWAVE_REGIONID_EU_LR2 = 16,
+ /** European Union, with third long range PHY. */
+ RAIL_ZWAVE_REGIONID_EU_LR3 = 17,
+ /** @deprecated Backwards compatible name. */
+ RAIL_ZWAVE_REGIONID_EU_LR_END_DEVICE = RAIL_ZWAVE_REGIONID_EU_LR3,
+ /** Count of known regions. Must be last. */
+ RAIL_ZWAVE_REGIONID_COUNT
};
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// Self-referencing defines minimize compiler complaints when using RAIL_ENUM
#define RAIL_ZWAVE_REGIONID_UNKNOWN ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_UNKNOWN)
-#define RAIL_ZWAVE_REGIONID_EU ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU)
-#define RAIL_ZWAVE_REGIONID_US ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US)
-#define RAIL_ZWAVE_REGIONID_ANZ ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_ANZ)
-#define RAIL_ZWAVE_REGIONID_HK ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_HK)
-#define RAIL_ZWAVE_REGIONID_MY ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_MY)
-#define RAIL_ZWAVE_REGIONID_IN ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_IN)
-#define RAIL_ZWAVE_REGIONID_JP ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_JP)
-#define RAIL_ZWAVE_REGIONID_RU ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_RU)
-#define RAIL_ZWAVE_REGIONID_IL ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_IL)
-#define RAIL_ZWAVE_REGIONID_KR ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_KR)
-#define RAIL_ZWAVE_REGIONID_CN ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_CN)
-#define RAIL_ZWAVE_REGIONID_US_LR1 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR1)
-#define RAIL_ZWAVE_REGIONID_US_LR2 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR2)
+#define RAIL_ZWAVE_REGIONID_EU ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU)
+#define RAIL_ZWAVE_REGIONID_US ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US)
+#define RAIL_ZWAVE_REGIONID_ANZ ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_ANZ)
+#define RAIL_ZWAVE_REGIONID_HK ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_HK)
+#define RAIL_ZWAVE_REGIONID_MY ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_MY)
+#define RAIL_ZWAVE_REGIONID_IN ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_IN)
+#define RAIL_ZWAVE_REGIONID_JP ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_JP)
+#define RAIL_ZWAVE_REGIONID_RU ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_RU)
+#define RAIL_ZWAVE_REGIONID_IL ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_IL)
+#define RAIL_ZWAVE_REGIONID_KR ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_KR)
+#define RAIL_ZWAVE_REGIONID_CN ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_CN)
+#define RAIL_ZWAVE_REGIONID_US_LR1 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR1)
+#define RAIL_ZWAVE_REGIONID_US_LR2 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR2)
+#define RAIL_ZWAVE_REGIONID_US_LR3 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR3)
#define RAIL_ZWAVE_REGIONID_US_LR_END_DEVICE ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_US_LR_END_DEVICE)
-#define RAIL_ZWAVE_REGIONID_EU_LR1 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR1)
-#define RAIL_ZWAVE_REGIONID_EU_LR2 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR2)
+#define RAIL_ZWAVE_REGIONID_EU_LR1 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR1)
+#define RAIL_ZWAVE_REGIONID_EU_LR2 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR2)
+#define RAIL_ZWAVE_REGIONID_EU_LR3 ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR3)
#define RAIL_ZWAVE_REGIONID_EU_LR_END_DEVICE ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_EU_LR_END_DEVICE)
-#define RAIL_ZWAVE_REGIONID_COUNT ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_COUNT)
+#define RAIL_ZWAVE_REGIONID_COUNT ((RAIL_ZWAVE_RegionId_t) RAIL_ZWAVE_REGIONID_COUNT)
#endif //DOXYGEN_SHOULD_SKIP_THIS
#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Largest ACK timeout period based on
+// Largest Ack timeout period based on
// aPhyTurnaroundTimeRxTx (1 ms max)+ (aMacTransferAckTimeTX (168 bits)* (1/data rate))
// For slowest Data Rate R1 (19.6 kbit/s)
#define RAIL_ZWAVE_MAX_ACK_TIMEOUT_US (9600U)
@@ -387,23 +423,22 @@ RAIL_ENUM(RAIL_ZWAVE_RegionId_t) {
#define RAIL_ZWAVE_TIME_TX_TO_RX_US (0U)
#define RAIL_ZWAVE_TIME_IDLE_TO_TX_US (0U)
#define RAIL_ZWAVE_TIME_RX_TO_TX_US (1000U)
-
#endif //DOXYGEN_SHOULD_SKIP_THIS
/**
- * Invalid beam TX power value returned when \ref RAIL_ZWAVE_GetLrBeamTxPower
+ * Invalid beam TX power value returned when \ref RAIL_ZWAVE_GetLrBeamTxPower()
* is called after receiving a regular non-long-range beam.
*/
#define RAIL_ZWAVE_LR_BEAM_TX_POWER_INVALID (0xFFU)
/**
* @struct RAIL_ZWAVE_LrAckData_t
- * @brief Configuration structure for Z-Wave Long Range ACK.
+ * @brief Configuration structure for Z-Wave Long Range Ack.
*/
typedef struct RAIL_ZWAVE_LrAckData {
/// Radio noise level measured on the channel the frame is transmitted on.
int8_t noiseFloorDbm;
- /// Transmit power used to transmit the ongoing Z-Wave Long Range ACK.
+ /// Transmit power used to transmit the ongoing Z-Wave Long Range Ack.
int8_t txPowerDbm;
/// Signal strength measured while receiving the Z-Wave Long Range frame.
int8_t receiveRssiDbm;
@@ -429,7 +464,7 @@ typedef struct RAIL_ZWAVE_BeamRxConfig {
} RAIL_ZWAVE_BeamRxConfig_t;
/**
- * Number of channels in each of Z-Wave's region-based PHYs
+ * Number of channels in each of Z-Wave's region-based PHYs.
*/
#define RAIL_NUM_ZWAVE_CHANNELS (4U)
@@ -438,11 +473,16 @@ typedef struct RAIL_ZWAVE_BeamRxConfig {
* @brief Each Z-Wave region supports 3 channels.
*/
typedef struct RAIL_ZWAVE_RegionConfig {
- uint32_t frequency[RAIL_NUM_ZWAVE_CHANNELS]; /**< Channel frequency in hertz*/
- RAIL_TxPower_t maxPower[RAIL_NUM_ZWAVE_CHANNELS]; /**< The maximum power allowed on the channel*/
- RAIL_ZWAVE_Baud_t baudRate[RAIL_NUM_ZWAVE_CHANNELS]; /**< Channel baud rate index*/
- RAIL_ZWAVE_RegionId_t regionId; /**< Identification number for the region*/
- RAIL_ZWAVE_RegionOptions_t regionSpecific; /**< Encapsulates region specific data*/
+ /** Channel frequency in hertz. */
+ uint32_t frequency[RAIL_NUM_ZWAVE_CHANNELS];
+ /** The maximum power allowed on the channel, in dBm. */
+ RAIL_TxPower_t maxPower[RAIL_NUM_ZWAVE_CHANNELS];
+ /** Channel baud rate index. */
+ RAIL_ZWAVE_Baud_t baudRate[RAIL_NUM_ZWAVE_CHANNELS];
+ /** Identification number for the region. */
+ RAIL_ZWAVE_RegionId_t regionId;
+ /** Encapsulates region-specific options. */
+ RAIL_ZWAVE_RegionOptions_t regionSpecific;
} RAIL_ZWAVE_RegionConfig_t;
/**
@@ -453,7 +493,8 @@ typedef struct RAIL_ZWAVE_RegionConfig {
* while index 1 will hold the high side image rejection value (channel 1).
*/
typedef struct RAIL_ZWAVE_IrcalVal {
- RAIL_IrCalValues_t imageRejection[2]; /**< Low side and high side image rejection values*/
+ /** Low side and high side image rejection values. */
+ RAIL_IrCalValues_t imageRejection[2];
} RAIL_ZWAVE_IrcalVal_t;
/**
@@ -465,14 +506,14 @@ typedef RAIL_RxChannelHoppingParameter_t RAIL_RxChannelHoppingParameters_t[RAIL_
/**
* Switch the Z-Wave region.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] regionCfg Z-Wave channel configuration for the selected region
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] regionCfg A pointer to a Z-Wave channel configuration for the selected region.
* @return Status code indicating success of the function call.
*
* @note Setting a new Z-Wave Region will default any Low Power values to
* Normal Power values for the region.
* Z-Wave Region configuration must always be followed by a Low Power setup
- * in case one desires to have the Low Power ACKing functionality.
+ * in case one desires to have the Low Power Acking functionality.
*/
RAIL_Status_t RAIL_ZWAVE_ConfigRegion(RAIL_Handle_t railHandle,
const RAIL_ZWAVE_RegionConfig_t *regionCfg);
@@ -481,7 +522,7 @@ RAIL_Status_t RAIL_ZWAVE_ConfigRegion(RAIL_Handle_t railHandle,
* Perform image rejection calibration on all valid channels of a
* Z-Wave region.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in,out] pIrCalVals An application-provided pointer of
* type \ref RAIL_ZWAVE_IrcalVal_t. This is populated with image rejection
* calibration values, if not NULL or initialized with
@@ -499,18 +540,19 @@ RAIL_Status_t RAIL_ZWAVE_ConfigRegion(RAIL_Handle_t railHandle,
RAIL_Status_t RAIL_ZWAVE_PerformIrcal(RAIL_Handle_t railHandle,
RAIL_ZWAVE_IrcalVal_t *pIrCalVals,
bool forceIrcal);
+
/**
* Initialize RAIL for Z-Wave features.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] config A Z-Wave configuration structure.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] config A pointer to a Z-Wave configuration structure.
+ * @return Status code indicating success of the function call.
*
* This function is the entry point for working with Z-Wave within
* RAIL. It sets up relevant hardware acceleration for Z-Wave-specific
- * features, such as HomeId filtering and beam packets (as
+ * features, such as Home Id filtering and beam packets (as
* specified in the configuration) and allows users to select the
- * relevant Z-Wave region-specific PHY via \ref RAIL_ZWAVE_ConfigRegion.
+ * relevant Z-Wave region-specific PHY via \ref RAIL_ZWAVE_ConfigRegion().
*/
RAIL_Status_t RAIL_ZWAVE_Init(RAIL_Handle_t railHandle,
const RAIL_ZWAVE_Config_t *config);
@@ -518,18 +560,18 @@ RAIL_Status_t RAIL_ZWAVE_Init(RAIL_Handle_t railHandle,
/**
* De-initialize Z-Wave hardware acceleration.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @return A status code indicating success of the function call.
+ * @param[in] railHandle A RAIL instance handle.
+ * @return Status code indicating success of the function call.
*
* Disables and resets all Z-Wave hardware acceleration features. This
- * function should only be called when the radio is IDLE.
+ * function should only be called when the radio is idle.
*/
RAIL_Status_t RAIL_ZWAVE_Deinit(RAIL_Handle_t railHandle);
/**
* Return whether Z-Wave hardware acceleration is currently enabled.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @return true if Z-Wave hardware acceleration was enabled to start with
* and false otherwise.
*/
@@ -538,7 +580,7 @@ bool RAIL_ZWAVE_IsEnabled(RAIL_Handle_t railHandle);
/**
* Configure Z-Wave options.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] mask A bitmask containing which options should be modified.
* @param[in] options A bitmask containing desired configuration settings.
* Bit positions for each option are found in the \ref RAIL_ZWAVE_Options_t.
@@ -549,31 +591,31 @@ RAIL_Status_t RAIL_ZWAVE_ConfigOptions(RAIL_Handle_t railHandle,
RAIL_ZWAVE_Options_t options);
/**
- * Inform RAIL of the Z-Wave node's NodeId for receive filtering.
+ * Inform RAIL of the Z-Wave node's Node Id for receive filtering.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] nodeId A Z-Wave Node ID.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] nodeId A Z-Wave Node Id.
* @return Status code indicating success of the function call.
*
- * @note Until this API is called, RAIL will assume the NodeId is
+ * @note Until this API is called, RAIL will assume the Node Id is
* \ref RAIL_ZWAVE_NODE_ID_DEFAULT.
*/
RAIL_Status_t RAIL_ZWAVE_SetNodeId(RAIL_Handle_t railHandle,
RAIL_ZWAVE_NodeId_t nodeId);
/**
- * Inform RAIL of the Z-Wave node's HomeId and its hash for receive filtering
+ * Inform RAIL of the Z-Wave node's Home Id and its hash for receive filtering.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] homeId A Z-Wave HomeId.
- * @param[in] homeIdHash The hash of the HomeId expected in beam frames.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] homeId A Z-Wave Home Id.
+ * @param[in] homeIdHash The hash of the Home Id expected in beam frames.
* If this is \ref RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE, beam frame detection
- * will not check the HomeIdHash in a received beam frame at all, and
- * \ref RAIL_EVENT_ZWAVE_BEAM will trigger based solely on the NodeId
+ * will not check the Home Id hash in a received beam frame at all, and
+ * \ref RAIL_EVENT_ZWAVE_BEAM will trigger based solely on the Node Id
* in the beam frame.
* @return Status code indicating success of the function call.
*
- * @note Until this API is called, RAIL will assume the HomeId is an
+ * @note Until this API is called, RAIL will assume the Home Id is an
* illegal one of \ref RAIL_ZWAVE_HOME_ID_DEFAULT, and its hash is \ref
* RAIL_ZWAVE_HOME_ID_HASH_DONT_CARE.
*/
@@ -582,10 +624,10 @@ RAIL_Status_t RAIL_ZWAVE_SetHomeId(RAIL_Handle_t railHandle,
RAIL_ZWAVE_HomeIdHash_t homeIdHash);
/**
- * Get the NodeId of the most recently seen beam frame that triggered
+ * Get the Node Id of the most recently seen beam frame that triggered
* \ref RAIL_EVENT_ZWAVE_BEAM.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[out] pNodeId A pointer to \ref RAIL_ZWAVE_NodeId_t to populate.
* @return Status code indicating success of the function call.
*
@@ -597,15 +639,15 @@ RAIL_Status_t RAIL_ZWAVE_GetBeamNodeId(RAIL_Handle_t railHandle,
RAIL_ZWAVE_NodeId_t *pNodeId);
/**
- * Get the HomeIdHash of the most recently seen beam frame that triggered
+ * Get the Home Id hash of the most recently seen beam frame that triggered
* \ref RAIL_EVENT_ZWAVE_BEAM.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[out] pBeamHomeIdHash A pointer to \ref RAIL_ZWAVE_HomeIdHash_t to populate.
* @return Status code indicating success of the function call.
*
* @note This is best called while handling the \ref RAIL_EVENT_ZWAVE_BEAM
- * event; if multiple beams are received only the most recent beam's HomeIdHash
+ * event; if multiple beams are received only the most recent beam's Home Id hash
* is provided.
*/
RAIL_Status_t RAIL_ZWAVE_GetBeamHomeIdHash(RAIL_Handle_t railHandle,
@@ -615,7 +657,7 @@ RAIL_Status_t RAIL_ZWAVE_GetBeamHomeIdHash(RAIL_Handle_t railHandle,
* Get the channel hopping index of the most recently seen beam frame that
* triggered \ref RAIL_EVENT_ZWAVE_BEAM.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[out] pChannelIndex A pointer to a uint8_t to populate with
* the channel hopping index. If channel-hopping was off at the time
* the beam packet was received, \ref RAIL_CHANNEL_HOPPING_INVALID_INDEX
@@ -633,7 +675,7 @@ RAIL_Status_t RAIL_ZWAVE_GetBeamChannelIndex(RAIL_Handle_t railHandle,
* Get the TX power used by the transmitter of the most recently seen
* long range beam frame that triggered \ref RAIL_EVENT_ZWAVE_BEAM.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[out] pLrBeamTxPower An application provided pointer to a uint8_t to
* be populated with the TX power of the latest long range beam. This will
* be set to \ref RAIL_ZWAVE_LR_BEAM_TX_POWER_INVALID if this API is called
@@ -651,22 +693,22 @@ RAIL_Status_t RAIL_ZWAVE_GetBeamChannelIndex(RAIL_Handle_t railHandle,
*
*
* | Tx Power Value | Description
- * |
|---|
| 0 | -6dBm
- * |
| 1 | -2dBm
- * |
| 2 | +2dBm
- * |
| 3 | +6dBm
- * |
| 4 | +10dBm
- * |
| 5 | +13dBm
- * |
| 6 | +16dBm
- * |
| 7 | +19dBm
- * |
| 8 | +21dBm
- * |
| 9 | +23Bm
- * |
| 10 | +25dBm
- * |
| 11 | +26dBm
- * |
| 12 | +27dBm
- * |
| 13 | +28dBm
- * |
| 14 | +29dBm
- * |
| 15 | +30dBm
+ * |
| 0 | -6 dBm
+ * |
| 1 | -2 dBm
+ * |
| 2 | +2 dBm
+ * |
| 3 | +6 dBm
+ * |
| 4 | +10 dBm
+ * |
| 5 | +13 dBm
+ * |
| 6 | +16 dBm
+ * |
| 7 | +19 dBm
+ * |
| 8 | +21 dBm
+ * |
| 9 | +23 dBm
+ * |
| 10 | +25 dBm
+ * |
| 11 | +26 dBm
+ * |
| 12 | +27 dBm
+ * |
| 13 | +28 dBm
+ * |
| 14 | +29 dBm
+ * |
| 15 | +30 dBm
* |
*/
RAIL_Status_t RAIL_ZWAVE_GetLrBeamTxPower(RAIL_Handle_t railHandle,
@@ -675,7 +717,7 @@ RAIL_Status_t RAIL_ZWAVE_GetLrBeamTxPower(RAIL_Handle_t railHandle,
/**
* Get the RSSI of the received beam frame.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[out] pBeamRssi An application provided pointer to a int8_t to
* be populated with the latest beam's RSSI, in dBm.
* @return Status code indicating success of the function call. This function
@@ -688,30 +730,30 @@ RAIL_Status_t RAIL_ZWAVE_GetLrBeamTxPower(RAIL_Handle_t railHandle,
*/
RAIL_Status_t RAIL_ZWAVE_GetBeamRssi(RAIL_Handle_t railHandle,
int8_t *pBeamRssi);
+
/**
* Set the Raw Low Power settings.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] powerLevel Desired low power raw level.
* @return Status code indicating success of the function call.
*
- * Low Power settings are required during ACK transmissions when
+ * Low Power settings are required during Ack transmissions when
* the Low Power Bit is set. This setting is only valid for one
* subsequent transmission, after which all transmissions will be
* at the nominal power setting, until re-invoked.
*/
-
RAIL_Status_t RAIL_ZWAVE_SetTxLowPower(RAIL_Handle_t railHandle,
uint8_t powerLevel);
/**
- * Set the Low Power settings in dBm.
+ * Set the Low Power settings in deci-dBm.
*
- * @param[in] railHandle A handle of RAIL instance.
- * @param[in] powerLevel Desired low power level dBm.
+ * @param[in] railHandle A RAIL instance handle.
+ * @param[in] powerLevel Desired low power level deci-dBm.
* @return Status code indicating success of the function call.
*
- * Low Power settings are required during ACK transmissions when
+ * Low Power settings are required during Ack transmissions when
* the Low Power Bit is set. This setting is only valid for one
* subsequent transmission, after which all transmissions will be
* at the nominal power setting, until re-invoked.
@@ -728,15 +770,15 @@ RAIL_Status_t RAIL_ZWAVE_SetTxLowPowerDbm(RAIL_Handle_t railHandle,
* transmit power.
*
* This API returns the low raw power value that was set by
- * \ref RAIL_ZWAVE_SetTxLowPower.
+ * \ref RAIL_ZWAVE_SetTxLowPower().
*
* Calling this function before configuring the Low Power PA
* (i.e., before a successful
- * call to \ref RAIL_ZWAVE_SetTxLowPowerDbm or \ref RAIL_ZWAVE_SetTxLowPower)
- * will return the low power value same as the nominal power.
+ * call to \ref RAIL_ZWAVE_SetTxLowPowerDbm() or \ref RAIL_ZWAVE_SetTxLowPower())
+ * will return a low power value that is the same as the nominal power.
* Also, calling this function before configuring the PA
- * (i.e., before a successful call to \ref RAIL_ConfigTxPower) will return an error
- * (RAIL_TX_POWER_LEVEL_INVALID).
+ * (i.e., before a successful call to \ref RAIL_ConfigTxPower()) will return
+ * \ref RAIL_TX_POWER_LEVEL_INVALID.
*/
RAIL_TxPowerLevel_t RAIL_ZWAVE_GetTxLowPower(RAIL_Handle_t railHandle);
@@ -753,16 +795,17 @@ RAIL_TxPower_t RAIL_ZWAVE_GetTxLowPowerDbm(RAIL_Handle_t railHandle);
* Implement beam detection and reception algorithms.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[out] beamDetectIndex Indicator of whether or not a beam was detected
+ * @param[out] beamDetectIndex A pointer to an indicator of whether or not a beam was detected
* at all, regardless of if it was received, generally for use only by instruction
* from Silicon Labs. Can be NULL.
- * @param[out] schedulerInfo While Z-Wave is currently not supported in
- * RAIL Multiprotocol, this scheduler info is added to future proof
- * against any future version of multiprotocol which may support it. For now,
- * this argument can be NULL.
- * @return status indicating whether or not the radio was able to configure
- * beam packet detection/reception. Reasons for failure include an un-idled
- * radio or a non-Japan non-Korea region configured before calling this function.
+ * @param[in] schedulerInfo A pointer to information to allow the radio scheduler to place
+ * this operation appropriately. This is only used in multiprotocol version of
+ * RAIL and may be set to NULL in all other versions.
+ * Note that Z-Wave currently does not support multiprotocol, so this
+ * scheduler info exists to future proof the API for when it does.
+ * @return Status code indicating success of the function call.
+ * Reasons for failure include an un-idled radio or a non-Japan non-Korea
+ * region configured before calling this function.
*
* This function takes care of all configuration and radio setup to
* detect and receive beams in the current Z-Wave region.
@@ -777,18 +820,18 @@ RAIL_TxPower_t RAIL_ZWAVE_GetTxLowPowerDbm(RAIL_Handle_t railHandle);
* Until one of these events is received, users should not try to
* reconfigure radio settings or start another radio operation. If an application
* needs to do some other operation or configuration, it must first call
- * \ref RAIL_Idle and wait for the radio to idle.
+ * \ref RAIL_Idle() and wait for the radio to idle.
*
* @note: The radio must be idle before calling this function.
*
- * @note: \ref RAIL_ConfigRxChannelHopping must have been called successfully
+ * @note: \ref RAIL_ConfigRxChannelHopping() must have been called successfully
* in Z-Wave before this function is called to provide a valid memory buffer
* for internal use (see \ref RAIL_RxChannelHoppingConfig_t::buffer).
*
* @note: This function alters radio functionality substantially. After calling
- * it, the user should call \ref RAIL_ZWAVE_ConfigRegion,
- * \ref RAIL_ConfigRxChannelHopping, \ref RAIL_EnableRxChannelHopping,
- * and \ref RAIL_SetRxTransitions to reset these parameters to whatever
+ * it, the user should call \ref RAIL_ZWAVE_ConfigRegion(),
+ * \ref RAIL_ConfigRxChannelHopping(), \ref RAIL_EnableRxChannelHopping(),
+ * and \ref RAIL_SetRxTransitions() to reset these parameters to whatever
* behaviors were desired before calling this function. Additionally,
* this function will idle the radio upon on exit.
*/
@@ -797,15 +840,16 @@ RAIL_Status_t RAIL_ZWAVE_ReceiveBeam(RAIL_Handle_t railHandle,
const RAIL_SchedulerInfo_t *schedulerInfo);
/**
- * Configure the receive algorithm used in \ref RAIL_ZWAVE_ReceiveBeam.
+ * Configure the receive algorithm used in \ref RAIL_ZWAVE_ReceiveBeam().
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in] config Configuration for beam detection algorithm.
+ * @param[in] config A pointer to a configuration for the beam detection algorithm.
* @return Status code indicating success of the function call.
*
* @warning This function should not be used without direct instruction by Silicon Labs.
*/
-RAIL_Status_t RAIL_ZWAVE_ConfigBeamRx(RAIL_Handle_t railHandle, RAIL_ZWAVE_BeamRxConfig_t *config);
+RAIL_Status_t RAIL_ZWAVE_ConfigBeamRx(RAIL_Handle_t railHandle,
+ RAIL_ZWAVE_BeamRxConfig_t *config);
/**
* Set the default RX beam configuration.
@@ -814,8 +858,8 @@ RAIL_Status_t RAIL_ZWAVE_ConfigBeamRx(RAIL_Handle_t railHandle, RAIL_ZWAVE_BeamR
* @return Status code indicating success of the function call.
*
* @note This function resets any changes made to the beam configuration via
- * \ref RAIL_ZWAVE_ConfigBeamRx and the default beam configuration will be in effect
- * on subsequent call(s) to \ref RAIL_ZWAVE_ReceiveBeam.
+ * \ref RAIL_ZWAVE_ConfigBeamRx() and the default beam configuration will be in effect
+ * on subsequent call(s) to \ref RAIL_ZWAVE_ReceiveBeam().
*/
RAIL_Status_t RAIL_ZWAVE_SetDefaultRxBeamConfig(RAIL_Handle_t railHandle);
@@ -824,7 +868,7 @@ RAIL_Status_t RAIL_ZWAVE_SetDefaultRxBeamConfig(RAIL_Handle_t railHandle);
*
* @param[out] pConfig A pointer to \ref RAIL_ZWAVE_BeamRxConfig_t to be
* populated with the current beam configuration.
- * @return A status code indicating success of the function call.
+ * @return Status code indicating success of the function call.
*/
RAIL_Status_t RAIL_ZWAVE_GetRxBeamConfig(RAIL_ZWAVE_BeamRxConfig_t *pConfig);
@@ -832,7 +876,7 @@ RAIL_Status_t RAIL_ZWAVE_GetRxBeamConfig(RAIL_ZWAVE_BeamRxConfig_t *pConfig);
* Configure the channel hop timings for use in Z-Wave RX channel hop configuration.
*
* @param[in] railHandle A RAIL instance handle.
- * @param[in,out] config Configuration for Z-Wave RX channel hopping.
+ * @param[in,out] config A pointer to a configuration for Z-Wave RX channel hopping.
* This structure must be allocated in application global read-write memory.
* RAIL will populate fields within or referenced by this structure during its
* operation. Be sure to allocate \ref RAIL_RxChannelHoppingConfigEntry_t
@@ -847,7 +891,8 @@ RAIL_Status_t RAIL_ZWAVE_GetRxBeamConfig(RAIL_ZWAVE_BeamRxConfig_t *pConfig);
* API must never be called while the radio is on with RX Duty Cycle or Channel
* Hopping enabled.
*/
-RAIL_Status_t RAIL_ZWAVE_ConfigRxChannelHopping(RAIL_Handle_t railHandle, RAIL_RxChannelHoppingConfig_t *config);
+RAIL_Status_t RAIL_ZWAVE_ConfigRxChannelHopping(RAIL_Handle_t railHandle,
+ RAIL_RxChannelHoppingConfig_t *config);
/**
* Get the Z-Wave region.
@@ -855,88 +900,92 @@ RAIL_Status_t RAIL_ZWAVE_ConfigRxChannelHopping(RAIL_Handle_t railHandle, RAIL_R
* @param[in] railHandle A RAIL instance handle.
* @return The \ref RAIL_ZWAVE_RegionId_t value.
*
- * @note \ref RAIL_ZWAVE_ConfigRegion must have been called successfully
+ * @note \ref RAIL_ZWAVE_ConfigRegion() must have been called successfully
* before this function is called. Otherwise, \ref RAIL_ZWAVE_REGIONID_UNKNOWN
* is returned.
*/
RAIL_ZWAVE_RegionId_t RAIL_ZWAVE_GetRegion(RAIL_Handle_t railHandle);
/**
- * Write the AutoACK FIFO for the next outgoing Z-Wave Long Range ACK.
+ * Write the Auto-Ack FIFO for the next outgoing Z-Wave Long Range Ack.
*
- * @param[in] railHandle A handle of RAIL instance.
+ * @param[in] railHandle A RAIL instance handle.
* @param[in] pLrAckData An application provided pointer to a const
* \ref RAIL_ZWAVE_LrAckData_t to populate the noise floor, TX power and receive
- * rssi bytes of the outgoing Z-Wave Long Range ACK packet.
- * @return A status code indicating success of the function call.
+ * rssi bytes of the outgoing Z-Wave Long Range Ack packet.
+ * @return Status code indicating success of the function call.
*
- * This function sets the AutoACK data to use in acknowledging the frame
+ * This function sets the Auto-Ack data to use in acknowledging the frame
* being received. It must only be called while processing the \ref
* RAIL_EVENT_ZWAVE_LR_ACK_REQUEST_COMMAND.
* This will return \ref RAIL_STATUS_INVALID_STATE if it is too late to
- * write the outgoing ACK. When successful, the ackData will
- * only be sent once. Subsequent packets needing an Z-Wave Long Range ACK will
- * each need to call this function to write the ACK information.
+ * write the outgoing Ack. When successful, the ackData will
+ * only be sent once. Subsequent packets needing an Z-Wave Long Range Ack will
+ * each need to call this function to write the Ack information.
*/
RAIL_Status_t RAIL_ZWAVE_SetLrAckData(RAIL_Handle_t railHandle,
const RAIL_ZWAVE_LrAckData_t *pLrAckData);
-/** EU-European Union, RAIL_ZWAVE_REGION_EU */
+/** EU-European Union */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_EU;
-/** US-United States, RAIL_ZWAVE_REGION_US */
+/** US-United States */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_US;
-/** ANZ-Australia/New Zealand, RAIL_ZWAVE_REGION_ANZ */
+/** ANZ-Australia/New Zealand */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_ANZ;
-/** HK-Hong Kong, RAIL_ZWAVE_REGION_HK */
+/** HK-Hong Kong */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_HK;
-/** MY-Malaysia, RAIL_ZWAVE_REGION_MY */
+/** MY-Malaysia */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_MY;
-/** IN-India, RAIL_ZWAVE_REGION_IN */
+/** IN-India */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_IN;
-/** JP-Japan, RAIL_ZWAVE_REGION_JP */
+/** JP-Japan */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_JP;
-/** JP-Japan, RAIL_ZWAVE_REGION_JP */
+/** JP-Japan Energy-Detect */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_JPED;
-/** RU-Russia, RAIL_ZWAVE_REGION_RU */
+/** RU-Russia */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_RU;
-/** IL-Israel, RAIL_ZWAVE_REGION_IL */
+/** IL-Israel */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_IL;
-/** KR-Korea, RAIL_ZWAVE_REGION_KR */
+/** KR-Korea */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_KR;
-/** KR-Korea, RAIL_ZWAVE_REGION_KR */
+/** KR-Korea Energy-Detect */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_KRED;
-/** CN-China, RAIL_ZWAVE_REGION_CN */
+/** CN-China */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_CN;
-/** US-Long Range 1, RAIL_ZWAVE_REGION_US_LR1 */
+/** US-Long Range 1 */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_US_LR1;
-/** US-Long Range 2, RAIL_ZWAVE_REGION_US_LR2 */
+/** US-Long Range 2 */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_US_LR2;
-/** US-Long Range End Device, RAIL_ZWAVE_REGION_US_LR_END_DEVICE */
-extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_US_LR_END_DEVICE;
+/** US-Long Range 3 */
+extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_US_LR3;
+/** Backwards-compatible define */
+#define RAIL_ZWAVE_REGION_US_LR_END_DEVICE RAIL_ZWAVE_REGION_US_LR3
-/** EU-Long Range 1, RAIL_ZWAVE_REGION_EU_LR1 */
+/** EU-Long Range 1 */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_EU_LR1;
-/** EU-Long Range 2, RAIL_ZWAVE_REGION_EU_LR2 */
+/** EU-Long Range 2 */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_EU_LR2;
-/** EU-Long Range End Device, RAIL_ZWAVE_REGION_EU_LR_END_DEVICE */
-extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_EU_LR_END_DEVICE;
+/** EU-Long Range 3 */
+extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_EU_LR3;
+/** Backwards-compatible define */
+#define RAIL_ZWAVE_REGION_EU_LR_END_DEVICE RAIL_ZWAVE_REGION_EU_LR3
/** Invalid Region */
extern const RAIL_ZWAVE_RegionConfig_t RAIL_ZWAVE_REGION_INVALID;
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager.h
index 077fd6dd2..48570526e 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager.h
@@ -30,11 +30,6 @@
#ifndef SL_SE_MANAGER_H
#define SL_SE_MANAGER_H
-#if defined(_SILICON_LABS_32B_SERIES_2)
-// Not used by this file, but included for backwards compatibility
-#include "em_se.h"
-#endif
-
#include "sli_se_manager_features.h"
#if defined(SLI_MAILBOX_COMMAND_SUPPORTED) || defined(SLI_VSE_MAILBOX_COMMAND_SUPPORTED)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_cipher.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_cipher.h
index fa808ab88..27e75008f 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_cipher.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_cipher.h
@@ -762,7 +762,8 @@ sl_status_t sl_se_cmac_multipart_finish(sl_se_cmac_multipart_context_t *cmac_ctx
* Pointer to an SE command context object.
*
* @param[in] key
- * Pointer to sl_se_key_descriptor_t structure.
+ * Pointer to @c sl_se_key_descriptor_t structure specifying the key to use in
+ * the GCM computation.
*
* @param[in] mode
* The operation to perform: SL_SE_ENCRYPT or SL_SE_DECRYPT.
@@ -801,6 +802,13 @@ sl_status_t sl_se_gcm_multipart_starts(sl_se_gcm_multipart_context_t *gcm_ctx,
* @param[in, out] gcm_ctx
* Pointer to a GCM streaming context object.
*
+ * @param[in] cmd_ctx
+ * Pointer to an SE command context object.
+ *
+ * @param[in] key
+ * Pointer to @c sl_se_key_descriptor_t structure specifying the key to used in
+ * the GCM computation.
+ *
* @param[in] length
* The length of the input data.
*
@@ -833,6 +841,13 @@ sl_status_t sl_se_gcm_multipart_update(sl_se_gcm_multipart_context_t *gcm_ctx,
* @param[in, out] gcm_ctx
* Pointer to a GCM streaming context object.
*
+ * @param[in] cmd_ctx
+ * Pointer to an SE command context object.
+ *
+ * @param[in] key
+ * Pointer to @c sl_se_key_descriptor_t structure specifying the key to use in
+ * the GCM computation.
+ *
* @param[in, out] tag
* Encryption: The buffer for holding the tag.
* Decryption: The tag to authenticate.
@@ -1101,6 +1116,129 @@ sl_status_t sl_se_poly1305_genkey_tag(sl_se_command_context_t *cmd_ctx,
#endif // (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_VAULT)
+#if defined(_SILICON_LABS_32B_SERIES_3)
+
+/***************************************************************************//**
+ * @brief
+ * Prepare a HMAC streaming command context object to be used in subsequent
+ * HMAC streaming function calls.
+ *
+ * @param[in] cmd_ctx
+ * Pointer to a SE command context object.
+ *
+ * @param[in] key
+ * Pointer to sl_se_key_descriptor_t structure specifying the key to use in
+ * the HMAC computation.
+ *
+ * @param[in] hash_type
+ * Which hashing algorithm to use.
+ *
+ * @param[in] message
+ * Pointer to the message buffer to compute the hash/digest from.
+ *
+ * @param[in] message_len
+ * Number of bytes in message.
+ *
+ * @param[out] state_out
+ * Pointer to memory buffer to store the final HMAC output.
+ *
+ * @param[in] state_out_len
+ * The length of the HMAC output memory buffer, must be at least the size
+ * of the corresponding hash type + 8 bytes.
+ *
+ * @return
+ * Status code, @ref sl_status.h.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_starts(sl_se_command_context_t *cmd_ctx,
+ const sl_se_key_descriptor_t *key,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_out,
+ size_t state_out_len);
+
+/***************************************************************************//**
+ * @brief
+ * This function feeds an input buffer into an ongoing HMAC computation.
+ *
+ * @param[in] cmd_ctx
+ * Pointer to a SE command context object.
+ *
+ * @param[in] hash_type
+ * Which hashing algorithm to use.
+ *
+ * @param[in] message
+ * Pointer to the message buffer to compute the hash/digest from.
+ *
+ * @param[in] message_len
+ * Number of bytes in message.
+ *
+ * @param[in,out] state_in_out
+ * Pointer to memory buffer to store the HMAC state.
+ *
+ * @param[in] state_in_out_len
+ * The length of the HMAC state buffer, must be at least the size
+ * of the corresponding hash type + 8 bytes.
+ *
+ * @return
+ * Status code, @ref sl_status.h.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_update(sl_se_command_context_t *cmd_ctx,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_in_out,
+ size_t state_in_out_len);
+
+/***************************************************************************//**
+ * @brief
+ * Finish a HMAC streaming operation and return the resulting HMAC.
+ *
+ * @param[in] cmd_ctx
+ * Pointer to a SE command context object.
+ *
+ * @param[in] key
+ * Pointer to sl_se_key_descriptor_t structure specifying the key to use in
+ * the HMAC computation.
+ *
+ * @param[in] hash_type
+ * Which hashing algorithm to use.
+ *
+ * @param[in] message
+ * Pointer to the message buffer to compute the hash/digest from.
+ *
+ * @param[in] message_len
+ * Number of bytes in message.
+ *
+ * @param[in] state_in
+ * Pointer to memory buffer containing the HMAC state.
+ *
+ * @param[in] state_in_out_len
+ * The length of the HMAC state buffer, must be at least the size
+ * of the corresponding hash type + 8 bytes.
+ *
+ * @param[out] output
+ * Pointer to memory buffer to store the final HMAC output.
+ *
+ * @param[in] output_len
+ * The length of the HMAC output memory buffer, must be at least the size
+ * of the corresponding hash type.
+ *
+ * @return
+ * Status code, @ref sl_status.h.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_finish(sl_se_command_context_t *cmd_ctx,
+ const sl_se_key_descriptor_t *key,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_in,
+ size_t state_in_len,
+ uint8_t *output,
+ size_t output_len);
+
+#endif // defined(_SILICON_LABS_32B_SERIES_3)
+
#ifdef __cplusplus
}
#endif
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_defines.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_defines.h
index 8efbedfc2..8489bdb94 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_defines.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_defines.h
@@ -60,6 +60,19 @@ extern "C" {
// -----------------------------------------------------------------------------
// Defines
+/// @addtogroup sl_se_manager_core
+/// @{
+
+/// Context initialization values. Some of the context values are not fully
+/// initialized. The user will need to call the corresponding initialization
+/// function in order to fully initialize the context objects for further use
+/// in the SE Manager API. The purpose of these initialization values is to set
+/// the context objects to a known safe state initially when the context object
+/// is declared.
+#define SL_SE_COMMAND_CONTEXT_INIT { SLI_SE_MAILBOX_COMMAND_DEFAULT(0), false }
+
+/// @} (end addtogroup sl_se_manager_core)
+
/// @addtogroup sl_se_manager_util
/// @{
@@ -214,9 +227,15 @@ extern "C" {
#define SL_SE_KEY_SLOT_VOLATILE_3 0x03 ///< Internal volatile slot 3
#endif
+#if defined(SLI_SE_SUPPORTS_NVM3_INTERNAL_KEY)
/// Minimum key slot value for internal keys
-#define SL_SE_KEY_SLOT_INTERNAL_MIN 0xF7
-
+ #define SL_SE_KEY_SLOT_INTERNAL_MIN 0xF6
+/// Internal NVM3 key
+ #define SL_SE_KEY_SLOT_NVM3_KEY 0xF6
+#else
+/// Minimum key slot value for internal keys
+ #define SL_SE_KEY_SLOT_INTERNAL_MIN 0xF7
+#endif
/// Internal TrustZone root key
#define SL_SE_KEY_SLOT_TRUSTZONE_ROOT_KEY 0xF7
/// Internal immutable application secure debug key
@@ -315,9 +334,9 @@ extern "C" {
#define SL_SE_TAMPER_SIGNAL_SE_ICACHE_ERROR 0x1F ///< SE ICACHE checksum error
#define SL_SE_TAMPER_SIGNAL_NUM_SIGNALS 0x20 ///< Number of tamper signals
-#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_5)
+#elif defined(_SILICON_LABS_32B_SERIES_2_CONFIG_5) || defined(_SILICON_LABS_32B_SERIES_2_CONFIG_9)
-// SE tamper signals for xG25, with ETAMPDET signal included.
+// SE tamper signals for xG25 and xG29, with ETAMPDET signal included.
#define SL_SE_TAMPER_SIGNAL_RESERVED_1 0x0 ///< Reserved tamper signal
#define SL_SE_TAMPER_SIGNAL_FILTER_COUNTER 0x1 ///< Filter counter exceeds threshold
#define SL_SE_TAMPER_SIGNAL_WATCHDOG 0x2 ///< SE watchdog timeout
@@ -443,23 +462,6 @@ extern "C" {
/// @} (end addtogroup sl_se_manager_util)
-/// @addtogroup sl_se_manager_core
-/// @{
-
-/// Context initialization values. Some of the context values are not fully
-/// initialized. The user will need to call the corresponding initialization
-/// function in order to fully initialize the context objects for further use
-/// in the SE Manager API. The purpose of these initialization values is to set
-/// the context objects to a known safe state initially when the context object
-/// is declared.
-#if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
-#define SL_SE_COMMAND_CONTEXT_INIT { SLI_SE_MAILBOX_COMMAND_DEFAULT(0), false }
-#else
-#define SL_SE_COMMAND_CONTEXT_INIT { SLI_SE_MAILBOX_COMMAND_DEFAULT(0) }
-#endif
-
-/// @} (end addtogroup sl_se_manager_core)
-
/// @addtogroup sl_se_manager_cipher
/// @{
@@ -489,11 +491,22 @@ extern "C" {
// -------------------------------
// Defines for Root code functionality
-#define SL_SE_COMMAND_CONTEXT_INIT { SLI_SE_MAILBOX_COMMAND_DEFAULT(0) }
#define SL_SE_ROOT_CONFIG_MCU_SETTINGS_SHIFT 16U
#endif // defined(SLI_MAILBOX_COMMAND_SUPPORTED)
+#if defined(_SILICON_LABS_32B_SERIES_3)
+/// @addtogroup sl_se_manager_extmem
+/// @{
+
+// The maximum number of code regions available on the device.
+// The number of available code regions may be different on future devices.
+#define SL_SE_MAX_CODE_REGIONS 8
+
+/// @} (end addtogroup sl_se_manager_extmem)
+
+#endif // defined(_SILICON_LABS_32B_SERIES_3)
+
#ifdef __cplusplus
}
#endif
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_types.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_types.h
index daa5bd7a1..ad7ad318c 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_types.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_types.h
@@ -138,14 +138,12 @@ typedef struct {
* sl_se_set_yield().
******************************************************************************/
typedef struct sl_se_command_context_t {
- sli_se_mailbox_command_t command; ///< SE mailbox command struct
-#if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
- bool yield; ///< If true, yield the CPU core while
+ sli_se_mailbox_command_t command; ///< SE mailbox command struct
+ bool yield; ///< If true, yield the CPU core while
///< waiting for the SE mailbox command
///< to complete. If false, busy-wait, by
///< polling the SE mailbox response
///< register.
-#endif // SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION
} sl_se_command_context_t;
/// @} (end addtogroup sl_se_manager_core)
@@ -360,7 +358,7 @@ typedef struct {
union {
uint8_t tagbuf[16]; ///< Tag
uint8_t final_data[16]; ///< Input data saved for finish operation
- } mode_specific_buffer;
+ } mode_specific_buffer; ///< Buffer containing Tag and input data saved for finish operation
#endif
uint8_t final_data_length; ///< Length of data saved
} sl_se_ccm_multipart_context_t;
@@ -534,8 +532,8 @@ typedef struct {
/// Security level of code region
typedef enum {
SL_SE_CODE_REGION_SECURITY_LEVEL_PLAINTEXT = 0,
- SL_SE_CODE_REGION_SECURITY_LEVEL_ENCRYPTED_ONLY,
- SL_SE_CODE_REGION_SECURITY_LEVEL_ENCRYPTED_AUTHENTICATED,
+ SL_SE_CODE_REGION_SECURITY_LEVEL_ENC_ONLY,
+ SL_SE_CODE_REGION_SECURITY_LEVEL_ENC_AUTH,
} sl_se_code_region_security_level_t;
/// Code region configuration
@@ -543,9 +541,8 @@ typedef struct {
unsigned int region_idx; ///< Index of code region
unsigned int region_size; ///< Size of code region
sl_se_code_region_security_level_t security_level; ///< Security level of region
- bool auto_secure_boot_enabled; ///< SE driven secure boot enabled (if true)
bool bank_swapping_enabled; ///< Bank swapping enabled (if true)
- bool active_banked_region; ///< Active banked region (if true)
+ bool locked; ///< Region is locked (if true)
} sl_code_region_config_t;
/// @} (end addtogroup sl_se_manager_extmem)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_util.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_util.h
index 975d58947..0a47846bf 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_util.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sl_se_manager_util.h
@@ -83,8 +83,8 @@ extern "C" {
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_check_se_image(sl_se_command_context_t *cmd_ctx,
void *image_addr);
@@ -104,8 +104,8 @@ sl_status_t sl_se_check_se_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_apply_se_image(sl_se_command_context_t *cmd_ctx,
void *image_addr);
@@ -125,8 +125,8 @@ sl_status_t sl_se_apply_se_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_upgrade_status_se_image(sl_se_command_context_t *cmd_ctx,
uint32_t *status,
@@ -151,8 +151,8 @@ sl_status_t sl_se_get_upgrade_status_se_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_check_host_image(sl_se_command_context_t *cmd_ctx,
void *image_addr,
@@ -176,8 +176,8 @@ sl_status_t sl_se_check_host_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_apply_host_image(sl_se_command_context_t *cmd_ctx,
void *image_addr,
@@ -198,8 +198,8 @@ sl_status_t sl_se_apply_host_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t
sl_se_get_upgrade_status_host_image(sl_se_command_context_t *cmd_ctx,
@@ -236,8 +236,8 @@ sl_se_get_upgrade_status_host_image(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_init_otp_key(sl_se_command_context_t *cmd_ctx,
sl_se_device_key_type_t key_type,
@@ -268,8 +268,8 @@ sl_status_t sl_se_init_otp_key(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_read_pubkey(sl_se_command_context_t *cmd_ctx,
sl_se_device_key_type_t key_type,
@@ -278,7 +278,10 @@ sl_status_t sl_se_read_pubkey(sl_se_command_context_t *cmd_ctx,
/***************************************************************************//**
* @brief
- * Initialize SE OTP configuration.
+ * Initialize and commit SE OTP configuration to OTP.
+ *
+ * @warning
+ * When this function succeeds the configuration is committed to OTP and cannot be changed.
*
* @param[in] cmd_ctx
* Pointer to an SE command context object.
@@ -287,10 +290,11 @@ sl_status_t sl_se_read_pubkey(sl_se_command_context_t *cmd_ctx,
* Pointer to OTP initialization structure.
*
* @return
- * One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
- * @retval SL_STATUS_ABORT when the operation is not attempted.
+ * One of the following @ref sl_status_t codes:
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_ABORT when the operation is not attempted.
+ *
******************************************************************************/
sl_status_t sl_se_init_otp(sl_se_command_context_t *cmd_ctx,
sl_se_otp_init_t *otp_init);
@@ -307,10 +311,10 @@ sl_status_t sl_se_init_otp(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_otp_version(sl_se_command_context_t *cmd_ctx,
uint32_t *version);
@@ -327,9 +331,9 @@ sl_status_t sl_se_get_otp_version(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_COMMAND if OTP configuration isn't initialized
- * @retval SL_STATUS_ABORT when the operation is not attempted.
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_COMMAND if OTP configuration isn't initialized
+ * - @c SL_STATUS_ABORT when the operation is not attempted.
******************************************************************************/
sl_status_t sl_se_read_otp(sl_se_command_context_t *cmd_ctx,
sl_se_otp_init_t *otp_settings);
@@ -346,12 +350,13 @@ sl_status_t sl_se_read_otp(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_OWNERSHIP when the ownership is already taken
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OWNERSHIP when the ownership is already taken
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
sl_status_t sl_se_get_se_version(sl_se_command_context_t *cmd_ctx,
uint32_t *version);
@@ -368,8 +373,8 @@ sl_status_t sl_se_get_se_version(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_debug_lock_status(sl_se_command_context_t *cmd_ctx,
sl_se_debug_status_t *status);
@@ -387,7 +392,7 @@ sl_status_t sl_se_get_debug_lock_status(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_apply_debug_lock(sl_se_command_context_t *cmd_ctx);
@@ -409,10 +414,10 @@ sl_status_t sl_se_apply_debug_lock(sl_se_command_context_t *cmd_ctx);
* Number of bytes to write to flash. NB: Must be divisable by four.
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_write_user_data(sl_se_command_context_t *cmd_ctx,
uint32_t offset,
@@ -428,10 +433,10 @@ sl_status_t sl_se_write_user_data(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_erase_user_data(sl_se_command_context_t *cmd_ctx);
@@ -447,11 +452,11 @@ sl_status_t sl_se_erase_user_data(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK upon command completion. Errors are encoded in the
+ * - @c SL_STATUS_OK upon command completion. Errors are encoded in the
* different parts of the returned status object.
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_status(sl_se_command_context_t *cmd_ctx,
sl_se_status_t *status);
@@ -468,10 +473,10 @@ sl_status_t sl_se_get_status(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_serialnumber(sl_se_command_context_t *cmd_ctx,
void *serial);
@@ -490,8 +495,8 @@ sl_status_t sl_se_get_serialnumber(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
******************************************************************************/
sl_status_t sl_se_get_reset_cause(sl_se_command_context_t *cmd_ctx,
uint32_t *reset_cause);
@@ -517,9 +522,9 @@ sl_status_t sl_se_get_reset_cause(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_PARAMETER when cmd_ctx or reset_cause is NULL
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_PARAMETER when cmd_ctx or reset_cause is NULL
******************************************************************************/
sl_status_t sl_se_get_tamper_reset_cause(sl_se_command_context_t *cmd_ctx,
bool *was_tamper_reset,
@@ -541,7 +546,7 @@ sl_status_t sl_se_get_tamper_reset_cause(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_enable_secure_debug(sl_se_command_context_t *cmd_ctx);
@@ -558,7 +563,7 @@ sl_status_t sl_se_enable_secure_debug(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_disable_secure_debug(sl_se_command_context_t *cmd_ctx);
@@ -579,7 +584,7 @@ sl_status_t sl_se_disable_secure_debug(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_set_debug_options(sl_se_command_context_t *cmd_ctx,
const sl_se_debug_options_t *debug_options);
@@ -603,8 +608,8 @@ sl_status_t sl_se_set_debug_options(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_COMMAND if device erase is disabled.
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_COMMAND if device erase is disabled.
******************************************************************************/
sl_status_t sl_se_erase_device(sl_se_command_context_t *cmd_ctx);
@@ -627,7 +632,7 @@ sl_status_t sl_se_erase_device(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_disable_device_erase(sl_se_command_context_t *cmd_ctx);
@@ -647,8 +652,8 @@ sl_status_t sl_se_disable_device_erase(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_get_challenge(sl_se_command_context_t *cmd_ctx,
sl_se_challenge_t challenge);
@@ -666,7 +671,7 @@ sl_status_t sl_se_get_challenge(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_OK when the command was executed successfully
******************************************************************************/
sl_status_t sl_se_roll_challenge(sl_se_command_context_t *cmd_ctx);
@@ -688,10 +693,10 @@ sl_status_t sl_se_roll_challenge(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_open_debug(sl_se_command_context_t *cmd_ctx,
void *cert,
@@ -718,10 +723,10 @@ sl_status_t sl_se_open_debug(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
- * @retval SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_OPERATION when the SE command ID is not recognized
+ * - @c SL_STATUS_INVALID_CREDENTIALS when the command is not authorized
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
******************************************************************************/
sl_status_t sl_se_disable_tamper(sl_se_command_context_t *cmd_ctx,
void *cert,
@@ -787,9 +792,9 @@ sl_status_t sl_se_read_cert(sl_se_command_context_t *cmd_ctx,
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
- * @retval SL_STATUS_COMMAND_IS_INVALID when already in active mode
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_COMMAND_IS_INVALID when already in active mode
******************************************************************************/
sl_status_t sl_se_enter_active_mode(sl_se_command_context_t *cmd_ctx);
@@ -805,9 +810,9 @@ sl_status_t sl_se_enter_active_mode(sl_se_command_context_t *cmd_ctx);
*
* @return
* One of the following sl_status_t codes:
- * @retval SL_STATUS_OK when the command was executed successfully
- * @retval SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
- * @retval SL_STATUS_COMMAND_IS_INVALID when already not in active mode
+ * - @c SL_STATUS_OK when the command was executed successfully
+ * - @c SL_STATUS_INVALID_PARAMETER when an invalid parameter was passed
+ * - @c SL_STATUS_COMMAND_IS_INVALID when already not in active mode
******************************************************************************/
sl_status_t sl_se_exit_active_mode(sl_se_command_context_t *cmd_ctx);
@@ -844,6 +849,40 @@ sl_status_t sl_se_get_rollback_counter(sl_se_command_context_t *cmd_ctx,
******************************************************************************/
sl_status_t sl_se_increment_rollback_counter(sl_se_command_context_t *cmd_ctx);
+/***************************************************************************//**
+ * @brief
+ * Reads back the stored upgrade file version.
+ *
+ * @param[in] cmd_ctx
+ * Pointer to an SE command context object.
+ * @param[out] version
+ * The stored upgrade file version.
+ *
+ * @return
+ * SL_STATUS_OK when the functions was successfully, or else, a status code
+ * of type sl_status_t that indicates why the function was not successful,
+ * ref sl_status.h.
+ ******************************************************************************/
+sl_status_t sl_se_get_upgrade_file_version(sl_se_command_context_t *cmd_ctx,
+ uint32_t *version);
+
+/***************************************************************************//**
+ * @brief
+ * Records a new upgrade file version.
+ *
+ * @param[in] cmd_ctx
+ * Pointer to an SE command context object.
+ * @param[in] version
+ * New upgrade file version
+ *
+ * @return
+ * SL_STATUS_OK when the functions was successfully, or else, a status code
+ * of type sl_status_t that indicates why the function was not successful,
+ * ref sl_status.h.
+ ******************************************************************************/
+sl_status_t sl_se_set_upgrade_file_version(sl_se_command_context_t *cmd_ctx,
+ uint32_t version);
+
#endif // defined(_SILICON_LABS_32B_SERIES_3)
#endif // defined(SLI_MAILBOX_COMMAND_SUPPORTED)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_features.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_features.h
index 4f1ba2af4..3d1f8b2be 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_features.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_features.h
@@ -107,6 +107,10 @@
#define SLI_SE_MAJOR_VERSION_TWO
#endif
+#if defined(_SILICON_LABS_32B_SERIES_3)
+ #define SLI_SE_SUPPORTS_NVM3_INTERNAL_KEY
+#endif
+
#if defined(SLI_SE_MAJOR_VERSION_ONE)
#define SLI_SE_COMMAND_STATUS_READ_RSTCAUSE_AVAILABLE
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_internal.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_internal.h
index 731a1ce3b..b13398f4c 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_internal.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_internal.h
@@ -156,6 +156,7 @@ sl_status_t sli_se_to_sl_status(sli_se_mailbox_response_t res);
* @return
* SL_STATUS_OK when successful, or else error code.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
sl_status_t sli_se_lock_acquire(void);
/***************************************************************************//**
@@ -166,6 +167,7 @@ sl_status_t sli_se_lock_acquire(void);
* @return
* SL_STATUS_OK when successful, or else error code.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
sl_status_t sli_se_lock_release(void);
/***************************************************************************//**
@@ -178,6 +180,7 @@ sl_status_t sli_se_lock_release(void);
* @return
* Status code, @ref sl_status.h.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
sl_status_t sli_se_execute_and_wait(sl_se_command_context_t *cmd_ctx);
#if defined(SLI_MAILBOX_COMMAND_SUPPORTED)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_mailbox.h b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_mailbox.h
index 2024f5a6a..3155e3f51 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_mailbox.h
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/inc/sli_se_manager_mailbox.h
@@ -123,6 +123,11 @@ extern "C" {
#define SLI_SE_COMMAND_HASH 0x03000000UL
#define SLI_SE_COMMAND_HASHUPDATE 0x03010000UL
#define SLI_SE_COMMAND_HMAC 0x03020000UL
+#if defined(_SILICON_LABS_32B_SERIES_3)
+ #define SLI_SE_COMMAND_HMAC_STREAMING_START 0x03040000UL
+ #define SLI_SE_COMMAND_HMAC_STREAMING_UPDATE 0x03050000UL
+ #define SLI_SE_COMMAND_HMAC_STREAMING_FINISH 0x03060000UL
+#endif // _SILICON_LABS_32B_SERIES_3
#define SLI_SE_COMMAND_HASHFINISH 0x03030000UL
#define SLI_SE_COMMAND_AES_ENCRYPT 0x04000000UL
@@ -169,6 +174,11 @@ extern "C" {
#define SLI_SE_COMMAND_READ_USER_CERT_SIZE 0x43FA0000UL
#define SLI_SE_COMMAND_READ_USER_CERT 0x43FB0000UL
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ #define SLI_SE_COMMAND_GET_HOST_UPGRADE_FILE_VERSION 0x44000000UL
+ #define SLI_SE_COMMAND_SET_HOST_UPGRADE_FILE_VERSION 0x44010000UL
+ #endif // _SILICON_LABS_32B_SERIES_3
+
#define SLI_SE_COMMAND_ENTER_ACTIVE_MODE 0x45000000UL
#define SLI_SE_COMMAND_EXIT_ACTIVE_MODE 0x45010000UL
@@ -192,11 +202,19 @@ extern "C" {
#define SLI_SE_COMMAND_READ_PUBKEY_SIGNATURE 0xFF0A0001UL
#define SLI_SE_COMMAND_INIT_AES_128_KEY 0xFF0B0001UL
#if defined(_SILICON_LABS_32B_SERIES_3)
- #define SLI_SE_COMMAND_ERASE_CODE_REGION 0xFF520000UL
- #define SLI_SE_COMMAND_WRITE_CODE_REGION 0xFF560000UL
- #define SLI_SE_COMMAND_ERASE_DATA_REGION 0xFF620000UL
- #define SLI_SE_COMMAND_WRITE_DATA_REGION 0xFF630000UL
- #define SLI_SE_COMMAND_GET_DATA_REGION_LOCATION 0xFF640000UL
+ #define SLI_SE_COMMAND_CONFIGURE_QSPI_REF_CLOCK 0xFF150000UL
+ #define SLI_SE_COMMAND_CONFIGURE_QSPI_REGS 0xFF160000UL
+ #define SLI_SE_COMMAND_GET_QSPI_FLPLL_CONFIG 0xFF170000UL
+ #define SLI_SE_COMMAND_APPLY_CODE_REGION_CONFIG 0xFF500000UL
+ #define SLI_SE_COMMAND_CLOSE_CODE_REGION 0xFF510000UL
+ #define SLI_SE_COMMAND_ERASE_CODE_REGION 0xFF520000UL
+ #define SLI_SE_COMMAND_GET_CODE_REGION_CONFIG 0xFF530000UL
+ #define SLI_SE_COMMAND_GET_CODE_REGION_VERSION 0xFF540000UL
+ #define SLI_SE_COMMAND_SET_ACTIVE_BANKED_CODE_REGION 0xFF550000UL
+ #define SLI_SE_COMMAND_WRITE_CODE_REGION 0xFF560000UL
+ #define SLI_SE_COMMAND_ERASE_DATA_REGION 0xFF620000UL
+ #define SLI_SE_COMMAND_WRITE_DATA_REGION 0xFF630000UL
+ #define SLI_SE_COMMAND_GET_DATA_REGION_LOCATION 0xFF640000UL
#endif
#endif // SLI_MAILBOX_COMMAND_SUPPORTED
@@ -248,6 +266,14 @@ extern "C" {
#define SLI_SE_COMMAND_OPTION_HASH_SHA224 0x00000300UL
/// Use SHA256 as hash algorithm
#define SLI_SE_COMMAND_OPTION_HASH_SHA256 0x00000400UL
+#if defined(_SILICON_LABS_32B_SERIES_3)
+/// Use SHA1 as hash algorithm for HMAC streaming operation
+ #define SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA1 0x00000700UL
+/// Use SHA224 as hash algorithm for HMAC streaming operation
+ #define SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA224 0x00000800UL
+/// Use SHA256 as hash algorithm for HMAC streaming operation
+ #define SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA256 0x00000900UL
+#endif // _SILICON_LABS_32B_SERIES_3
/// Execute algorithm in ECB mode
#define SLI_SE_COMMAND_OPTION_MODE_ECB 0x00000100UL
@@ -283,6 +309,12 @@ extern "C" {
#define SLI_SE_COMMAND_OPTION_HASH_SHA384 0x00000500UL
/// Use SHA512 as hash algorithm
#define SLI_SE_COMMAND_OPTION_HASH_SHA512 0x00000600UL
+#if defined(_SILICON_LABS_32B_SERIES_3)
+/// Use SHA384 as hash algorithm for HMAC streaming operation
+ #define SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA384 0x00000A00UL
+/// Use SHA512 as hash algorithm for HMAC streaming operation
+ #define SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA512 0x00000B00UL
+#endif // _SILICON_LABS_32B_SERIES_3
#endif // _SILICON_LABS_SECURITY_FEATURE_VAULT
#endif // SLI_MAILBOX_COMMAND_SUPPORTED
@@ -426,6 +458,7 @@ void sli_se_mailbox_command_add_output(sli_se_mailbox_command_t *command, sli_se
* @param[in] parameter
* Parameter to add.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
void sli_se_mailbox_command_add_parameter(sli_se_mailbox_command_t *command, uint32_t parameter);
#if !defined(SLI_SE_MAILBOX_HOST_SYSTEM)
@@ -442,6 +475,7 @@ void sli_se_mailbox_command_add_parameter(sli_se_mailbox_command_t *command, uin
* @param[in] command
* Pointer to a filled-out SE command structure.
******************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_SE_MANAGER, SL_CODE_CLASS_TIME_CRITICAL)
void sli_se_mailbox_execute_command(sli_se_mailbox_command_t *command);
#endif //!defined(SLI_SE_MAILBOX_HOST_SYSTEM)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager.c b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager.c
index f4733f737..01756c685 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager.c
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager.c
@@ -44,7 +44,7 @@
#endif
#endif
#if !defined(SLI_SE_MANAGER_HOST_SYSTEM)
-#include "sli_se_manager_osal.h"
+#include "sli_psec_osal.h"
#endif
#include
@@ -55,6 +55,40 @@
// -----------------------------------------------------------------------------
// Locals
+#if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+ #if defined(SL_SE_MANAGER_THREADING)
+/// Priority to use for SEMBRX IRQ
+ #if defined(SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY)
+ #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY >= (1U << __NVIC_PRIO_BITS) )
+ #error Illegal SEMBRX priority level.
+ #endif
+ #if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
+ #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY < (configMAX_SYSCALL_INTERRUPT_PRIORITY >> (8U - __NVIC_PRIO_BITS) ) )
+ #error Illegal SEMBRX priority level.
+ #endif
+ #else
+ #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY < CORE_ATOMIC_BASE_PRIORITY_LEVEL)
+ #error Illegal SEMBRX priority level.
+ #endif
+ #endif
+ #define SE_MANAGER_SEMBRX_IRQ_PRIORITY SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY
+ #else
+ #if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
+ #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (configMAX_SYSCALL_INTERRUPT_PRIORITY >> (8U - __NVIC_PRIO_BITS) )
+ #else
+ #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (CORE_ATOMIC_BASE_PRIORITY_LEVEL)
+ #endif
+ #endif
+ #else // defined(SL_SE_MANAGER_THREADING)
+/// Priority to use for SEMBRX IRQ
+ #if defined(SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY)
+ #define SE_MANAGER_SEMBRX_IRQ_PRIORITY SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY
+ #else
+ #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (0)
+ #endif
+ #endif // defined(SL_SE_MANAGER_THREADING)
+#endif // defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+
#if defined(SL_SE_MANAGER_THREADING) \
|| defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
@@ -64,30 +98,13 @@ static volatile bool se_manager_initialized = false;
#if defined(SL_SE_MANAGER_THREADING)
// Lock mutex for synchronizing multiple threads calling into the
// SE Manager API.
-static se_manager_osal_mutex_t se_lock = { 0 };
-
- #define SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_START \
- int32_t kernel_lock_state = 0; \
- osKernelState_t kernel_state = se_manager_osal_kernel_get_state(); \
- if (kernel_state != osKernelInactive && kernel_state != osKernelReady) { \
- kernel_lock_state = se_manager_osal_kernel_lock(); \
- if (kernel_lock_state < 0) { \
- return SL_STATUS_FAIL; \
- } \
- }
-
- #define SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_END \
- if (kernel_state != osKernelInactive && kernel_state != osKernelReady) { \
- if (se_manager_osal_kernel_restore_lock(kernel_lock_state) < 0) { \
- return SL_STATUS_FAIL; \
- } \
- }
+static sli_psec_osal_lock_t se_lock = { 0 };
#endif // SL_SE_MANAGER_THREADING
#if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
// SE command completion.
-static se_manager_osal_completion_t se_command_completion;
+static sli_psec_osal_completion_t se_command_completion;
// SE mailbox command response code. This value is read from the SEMAILBOX
// in ISR in order to clear the command complete interrupt condition.
static sli_se_mailbox_response_t se_manager_command_response = SLI_SE_RESPONSE_INTERNAL_ERROR;
@@ -108,19 +125,23 @@ sl_status_t sl_se_init(void)
#if defined (SL_SE_MANAGER_THREADING) \
|| defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+ #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+ (void)se_manager_command_response;
+ #endif
+
#if defined(SL_SE_MANAGER_THREADING)
- SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_START
+ SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_START
#endif
if ( !se_manager_initialized ) {
#if defined(SL_SE_MANAGER_THREADING)
// Initialize SE lock
- ret = se_manager_osal_init_mutex(&se_lock);
+ ret = sli_psec_osal_init_lock(&se_lock);
#endif
#if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
if (ret == SL_STATUS_OK) {
// Initialize command completion object.
- ret = se_manager_osal_init_completion(&se_command_completion);
+ ret = sli_psec_osal_init_completion(&se_command_completion);
if (ret == SL_STATUS_OK) {
// Enable SE RX mailbox interrupt in NVIC, but not in SEMAILBOX
// which will be enabled if the yield parameter in
@@ -136,7 +157,7 @@ sl_status_t sl_se_init(void)
}
#if defined(SL_SE_MANAGER_THREADING)
- SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_END
+ SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_END
#endif
#endif // #if defined (SL_SE_MANAGER_THREADING)
@@ -156,14 +177,14 @@ sl_status_t sl_se_deinit(void)
|| defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
#if defined(SL_SE_MANAGER_THREADING)
- SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_START
+ SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_START
#endif
if ( se_manager_initialized ) {
// We need to exit the critical section in case the SE lock is held by a
// thread, and we want to take it before de-initializing.
#if defined(SL_SE_MANAGER_THREADING)
- SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_END
+ SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_END
#endif
// Acquire the SE lock to make sure no thread is executing SE commands
@@ -178,13 +199,13 @@ sl_status_t sl_se_deinit(void)
NVIC_ClearPendingIRQ(SEMBRX_IRQn);
NVIC_DisableIRQ(SEMBRX_IRQn);
// Free command completion object.
- ret = se_manager_osal_free_completion(&se_command_completion);
+ ret = sli_psec_osal_free_completion(&se_command_completion);
#endif // SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION
#if defined(SL_SE_MANAGER_THREADING)
if (ret == SL_STATUS_OK) {
// Free the SE lock mutex
- ret = se_manager_osal_free_mutex(&se_lock);
+ ret = sli_psec_osal_free_lock(&se_lock);
}
#endif
@@ -193,7 +214,7 @@ sl_status_t sl_se_deinit(void)
}
#if defined(SL_SE_MANAGER_THREADING)
else {
- SLI_SE_MANAGER_KERNEL_CRITICAL_SECTION_END
+ SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_END
}
#endif
@@ -208,7 +229,8 @@ sl_status_t sl_se_deinit(void)
* Translate SE response codes to sl_status_t codes.
*
* @return
- * Status code, @ref sl_status.h.
+ * Converted status code, their meaning is documented here @ref sl_status.h,
+ * Asserts and returns @c SL_STATUS_FAIL on unexpected response.
******************************************************************************/
sl_status_t sli_se_to_sl_status(sli_se_mailbox_response_t res)
{
@@ -253,7 +275,7 @@ sl_status_t sli_se_to_sl_status(sli_se_mailbox_response_t res)
sl_status_t sli_se_lock_acquire(void)
{
#if defined(SL_SE_MANAGER_THREADING)
- sl_status_t status = se_manager_osal_take_mutex(&se_lock);
+ sl_status_t status = sli_psec_osal_take_lock(&se_lock);
#else
sl_status_t status = SL_STATUS_OK;
#endif
@@ -264,6 +286,8 @@ sl_status_t sli_se_lock_acquire(void)
#else
BUS_RegBitWrite(&CMU->CLKEN1, _CMU_CLKEN1_SEMAILBOXHOST_SHIFT, 1);
#endif
+ // Make sure the write to CMU->CLKEN1 is finished.
+ __DSB();
}
#endif
return status;
@@ -283,7 +307,7 @@ sl_status_t sli_se_lock_release(void)
#endif
#endif
#if defined(SL_SE_MANAGER_THREADING)
- return se_manager_osal_give_mutex(&se_lock);
+ return sli_psec_osal_give_lock(&se_lock);
#else
return SL_STATUS_OK;
#endif
@@ -301,7 +325,7 @@ void SEMBRX_IRQHandler(void)
// Check if the SE mailbox is the source of the interrupt.
if (SEMAILBOX_HOST->RX_STATUS & SEMAILBOX_RX_STATUS_RXINT) {
// Signal SE mailbox completion.
- status = se_manager_osal_complete(&se_command_completion);
+ status = sli_psec_osal_complete(&se_command_completion);
EFM_ASSERT(status == SL_STATUS_OK);
}
// Get command response (clears interrupt condition in SEMAILBOX)
@@ -340,13 +364,16 @@ sl_status_t sl_se_set_yield(sl_se_command_context_t *cmd_ctx,
* Execute and wait for SE mailbox command to complete.
*
* @return
- * Status code, @ref sl_status.h.
+ * One of the following status code, any other status codes relates to internal
+ * function errors see @ref sl_status.h for their meaning.
+ * - @c SL_STATUS_OK
+ * - @c SL_STATUS_INVALID_PARAMETER
******************************************************************************/
#if defined(SLI_MAILBOX_COMMAND_SUPPORTED) && !defined(SLI_SE_MANAGER_HOST_SYSTEM)
sl_status_t sli_se_execute_and_wait(sl_se_command_context_t *cmd_ctx)
{
- sl_status_t status;
- sli_se_mailbox_response_t command_response;
+ sl_status_t status = SL_STATUS_FAIL;
+ sli_se_mailbox_response_t command_response = SLI_SE_RESPONSE_INTERNAL_ERROR;
if (cmd_ctx == NULL) {
return SL_STATUS_INVALID_PARAMETER;
@@ -361,19 +388,25 @@ sl_status_t sli_se_execute_and_wait(sl_se_command_context_t *cmd_ctx)
// Execute SE mailbox command
sli_se_mailbox_execute_command(&cmd_ctx->command);
- #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+ #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION) \
+ && !defined(_SILICON_LABS_32B_SERIES_3)
if (cmd_ctx->yield) {
// Enable SEMAILBOX RXINT interrupt
sli_se_mailbox_enable_interrupt(SEMAILBOX_CONFIGURATION_RXINTEN);
// Yield and Wait for the command completion signal
- status = se_manager_osal_wait_completion(&se_command_completion,
- SE_MANAGER_OSAL_WAIT_FOREVER);
+ status = sli_psec_osal_wait_completion(&se_command_completion,
+ SLI_PSEC_OSAL_WAIT_FOREVER);
// Disable SEMAILBOX RXINT interrupt.
sli_se_mailbox_disable_interrupt(SEMAILBOX_CONFIGURATION_RXINTEN);
if (status != SL_STATUS_OK) {
+ #if (_SILICON_LABS_32B_SERIES == 3)
+ // Read the command handle word ( not used ) from the SEMAILBOX FIFO
+ SEMAILBOX_HOST->FIFO;
+ #endif // #if (_SILICON_LABS_32B_SERIES == 3)
+ sli_se_lock_release();
return status;
}
@@ -388,9 +421,18 @@ sl_status_t sli_se_execute_and_wait(sl_se_command_context_t *cmd_ctx)
#else // #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+ #endif
+
// Wait for command completion and get command response
command_response = sli_se_mailbox_read_response();
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ CORE_EXIT_ATOMIC();
+ #endif
+
#endif // #if defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION)
#if (_SILICON_LABS_32B_SERIES == 3)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_cipher.c b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_cipher.c
index 263de169b..2fc3ecca2 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_cipher.c
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_cipher.c
@@ -2880,4 +2880,267 @@ sl_status_t sl_se_poly1305_genkey_tag(sl_se_command_context_t *cmd_ctx,
/** @} (end addtogroup sl_se) */
+#if defined(_SILICON_LABS_32B_SERIES_3)
+
+/***************************************************************************//**
+ * Prepare a HMAC streaming command context object to be used in subsequent
+ * HMAC streaming function calls.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_starts(sl_se_command_context_t *cmd_ctx,
+ const sl_se_key_descriptor_t *key,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_out,
+ size_t state_out_len)
+{
+ if (cmd_ctx == NULL || key == NULL || message == NULL || state_out == NULL) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
+ sl_status_t status = SL_STATUS_OK;
+ uint32_t command_word;
+ size_t hmac_state_len;
+
+ switch (hash_type) {
+ case SL_SE_HASH_SHA1:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_START | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA1;
+ hmac_state_len = 20;
+ break;
+
+ case SL_SE_HASH_SHA224:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_START | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA224;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA256:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_START | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA256;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA384:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_START | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA384;
+ hmac_state_len = 64;
+ break;
+
+ case SL_SE_HASH_SHA512:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_START | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA512;
+ hmac_state_len = 64;
+ break;
+
+ default:
+ return SL_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ hmac_state_len += 8u; // adding 8 bytes for storing the HMAC multipart internal states
+ if (state_out_len < hmac_state_len) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_command_init(cmd_ctx, command_word);
+
+ // Add key parameter to command.
+ sli_add_key_parameters(cmd_ctx, key, status);
+
+ // Message size parameter.
+ sli_se_mailbox_command_add_parameter(se_cmd, message_len);
+
+ // Key metadata.
+ sli_add_key_metadata(cmd_ctx, key, status);
+
+ sli_add_key_input(cmd_ctx, key, status);
+
+ // Data input.
+ sli_se_datatransfer_t in_data = SLI_SE_DATATRANSFER_DEFAULT(message, message_len);
+ sli_se_mailbox_command_add_input(se_cmd, &in_data);
+
+ // Data output.
+ sli_se_datatransfer_t out_hmac_state = SLI_SE_DATATRANSFER_DEFAULT(state_out, hmac_state_len);
+ sli_se_mailbox_command_add_output(se_cmd, &out_hmac_state);
+
+ return sli_se_execute_and_wait(cmd_ctx);
+}
+
+/***************************************************************************//**
+ * This function feeds an input buffer into an ongoing HMAC computation.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_update(sl_se_command_context_t *cmd_ctx,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_in_out,
+ size_t state_in_out_len)
+{
+ if (cmd_ctx == NULL || message == NULL || state_in_out == NULL) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
+ uint32_t command_word;
+ size_t hmac_state_len;
+
+ switch (hash_type) {
+ case SL_SE_HASH_SHA1:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_UPDATE | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA1;
+ hmac_state_len = 20;
+ break;
+
+ case SL_SE_HASH_SHA224:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_UPDATE | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA224;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA256:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_UPDATE | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA256;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA384:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_UPDATE | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA384;
+ hmac_state_len = 64;
+ break;
+
+ case SL_SE_HASH_SHA512:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_UPDATE | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA512;
+ hmac_state_len = 64;
+ break;
+
+ default:
+ return SL_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ hmac_state_len += 8u; // adding 8 bytes for storing the HMAC multipart internal states
+ if (state_in_out_len != hmac_state_len) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_command_init(cmd_ctx, command_word);
+
+ // Message size parameter.
+ sli_se_mailbox_command_add_parameter(se_cmd, message_len);
+
+ // Data input.
+ sli_se_datatransfer_t in_out_hmac_state = SLI_SE_DATATRANSFER_DEFAULT(state_in_out, hmac_state_len);
+ sli_se_datatransfer_t in_data = SLI_SE_DATATRANSFER_DEFAULT(message, message_len);
+ sli_se_mailbox_command_add_input(se_cmd, &in_out_hmac_state);
+ sli_se_mailbox_command_add_input(se_cmd, &in_data);
+
+ return sli_se_execute_and_wait(cmd_ctx);
+}
+
+/***************************************************************************//**
+ * Finish a HMAC streaming operation and return the resulting HMAC.
+ ******************************************************************************/
+sl_status_t sl_se_hmac_multipart_finish(sl_se_command_context_t *cmd_ctx,
+ const sl_se_key_descriptor_t *key,
+ sl_se_hash_type_t hash_type,
+ const uint8_t *message,
+ size_t message_len,
+ uint8_t *state_in,
+ size_t state_in_len,
+ uint8_t *output,
+ size_t output_len)
+{
+ if (cmd_ctx == NULL || key == NULL || message == NULL || state_in == NULL || output == NULL) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
+ sl_status_t status = SL_STATUS_OK;
+ uint32_t command_word;
+ size_t hmac_state_len, hmac_len;
+
+ switch (hash_type) {
+ case SL_SE_HASH_SHA1:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_FINISH | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA1;
+ hmac_state_len = 20;
+ break;
+
+ case SL_SE_HASH_SHA224:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_FINISH | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA224;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA256:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_FINISH | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA256;
+ hmac_state_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA384:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_FINISH | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA384;
+ hmac_state_len = 64;
+ break;
+
+ case SL_SE_HASH_SHA512:
+ command_word = SLI_SE_COMMAND_HMAC_STREAMING_FINISH | SLI_SE_COMMAND_OPTION_HMAC_HASH_SHA512;
+ hmac_state_len = 64;
+ break;
+
+ default:
+ return SL_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ hmac_state_len += 8u; // adding 8 bytes for storing the HMAC multipart internal states
+ if (state_in_len != hmac_state_len) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (hash_type) {
+ case SL_SE_HASH_SHA1:
+ hmac_len = 20;
+ break;
+
+ case SL_SE_HASH_SHA224:
+ hmac_len = 28;
+ break;
+
+ case SL_SE_HASH_SHA256:
+ hmac_len = 32;
+ break;
+
+ case SL_SE_HASH_SHA384:
+ hmac_len = 48;
+ break;
+
+ case SL_SE_HASH_SHA512:
+ hmac_len = 64;
+ break;
+
+ default:
+ return SL_STATUS_INVALID_PARAMETER;
+ break;
+ }
+ if (output_len < hmac_len) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+
+ sli_se_command_init(cmd_ctx, command_word);
+
+ // Add key parameter to command.
+ sli_add_key_parameters(cmd_ctx, key, status);
+
+ // Message size parameter.
+ sli_se_mailbox_command_add_parameter(se_cmd, message_len);
+
+ // Key metadata.
+ sli_add_key_metadata(cmd_ctx, key, status);
+
+ sli_add_key_input(cmd_ctx, key, status);
+
+ // Data input.
+ sli_se_datatransfer_t state_in_data = SLI_SE_DATATRANSFER_DEFAULT(state_in, hmac_state_len);
+ sli_se_datatransfer_t in_data = SLI_SE_DATATRANSFER_DEFAULT(message, message_len);
+ sli_se_mailbox_command_add_input(se_cmd, &state_in_data);
+ sli_se_mailbox_command_add_input(se_cmd, &in_data);
+
+ // Data output.
+ sli_se_datatransfer_t out_hmac = SLI_SE_DATATRANSFER_DEFAULT(output, hmac_len);
+ sli_se_mailbox_command_add_output(se_cmd, &out_hmac);
+
+ return sli_se_execute_and_wait(cmd_ctx);
+}
+
+#endif // defined(_SILICON_LABS_32B_SERIES_3)
+
#endif // defined(SLI_MAILBOX_COMMAND_SUPPORTED)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_signature.c b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_signature.c
index f0c224b68..0e8c591ea 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_signature.c
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_signature.c
@@ -134,7 +134,7 @@ sl_status_t sl_se_ecc_verify(sl_se_command_context_t *cmd_ctx,
const unsigned char *signature,
size_t signature_len)
{
- if (cmd_ctx == NULL || key == NULL || message == NULL || signature == NULL) {
+ if (cmd_ctx == NULL || key == NULL || (message == NULL && message_len != 0) || signature == NULL) {
return SL_STATUS_INVALID_PARAMETER;
}
// Key needs to contain public key in order to verify signatures
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_util.c b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_util.c
index 69f2d0d11..9ac2764ef 100644
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_util.c
+++ b/simplicity_sdk/platform/security/sl_component/se_manager/src/sl_se_manager_util.c
@@ -40,6 +40,8 @@
#include "em_system.h"
#endif
+#include "sl_core.h"
+
/// @addtogroup sl_se_manager
/// @{
@@ -377,7 +379,9 @@ sl_status_t sl_se_get_se_version(sl_se_command_context_t *cmd_ctx,
#if defined(SLI_MAILBOX_COMMAND_SUPPORTED)
- // SE command structures
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+
+ // Get SE Version via SE Mailbox command
sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
sli_se_command_init(cmd_ctx, SLI_SE_COMMAND_STATUS_SE_VERSION);
sli_se_datatransfer_t out_data = SLI_SE_DATATRANSFER_DEFAULT(version, sizeof(uint32_t));
@@ -386,6 +390,32 @@ sl_status_t sl_se_get_se_version(sl_se_command_context_t *cmd_ctx,
return sli_se_execute_and_wait(cmd_ctx);
+ #else
+
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_CRITICAL();
+
+ // Read state of CMU_CLKEN0_SYSCFG
+ bool syscfg_clock_was_enabled = ((CMU->CLKEN0 & CMU_CLKEN0_SYSCFG) != 0);
+ CMU->CLKEN0_SET = CMU_CLKEN0_SYSCFG;
+
+ // Read SE FW version from SYSCFG
+ *version = (uint32_t)(SYSCFG->ROOTSESWVERSION);
+
+ if (!syscfg_clock_was_enabled) {
+ CMU->CLKEN0_CLR = CMU_CLKEN0_SYSCFG;
+ }
+
+ CORE_EXIT_CRITICAL();
+
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ // Omit compatibility information
+ *version = ((*version) & 0x00FFFFFF);
+ #endif
+
+ return SL_STATUS_OK;
+ #endif
+
#elif defined(SLI_VSE_MAILBOX_COMMAND_SUPPORTED)
sl_status_t status = SL_STATUS_OK;
@@ -414,7 +444,6 @@ sl_status_t sl_se_get_se_version(sl_se_command_context_t *cmd_ctx,
#endif
}
-
/***************************************************************************//**
* Enables the debug lock for the part.
******************************************************************************/
@@ -925,7 +954,14 @@ sl_status_t sl_se_get_status(sl_se_command_context_t *cmd_ctx,
// Update status object
status->boot_status = output[4];
+
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ // Omit compatibility information
+ status->se_fw_version = output[5] & 0x00FFFFFF;
+ #else
status->se_fw_version = output[5];
+ #endif
+
status->host_fw_version = output[6];
// Decode debug status
@@ -982,6 +1018,29 @@ sl_status_t sl_se_get_otp_version(sl_se_command_context_t *cmd_ctx,
return SL_STATUS_INVALID_PARAMETER;
}
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ /* TODO: Enable once register available: PSEC-5574
+
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_CRITICAL();
+
+ // Read state of CMU_CLKEN0_SYSCFG
+ bool syscfg_clock_was_enabled = ((CMU->CLKEN0 & CMU_CLKEN0_SYSCFG) != 0);
+ CMU->CLKEN0_SET = CMU_CLKEN0_SYSCFG;
+
+ // Read SE FW version from SYSCFG
+ * version = (uint32_t)(((SYSCFG->ROOTSESWVERSION) & 0xFF000000) >> 24);
+ * version -= (uint32_t)((SYSCFG->ROMREVHW) & 0x000000FF);
+
+ if (!syscfg_clock_was_enabled) {
+ CMU->CLKEN0_CLR = CMU_CLKEN0_SYSCFG;
+ }
+ CORE_EXIT_CRITICAL();
+
+ return SL_STATUS_OK;
+ */
+ return SL_STATUS_NOT_SUPPORTED;
+ #else
// SE command structures
sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
sli_se_command_init(cmd_ctx, SLI_SE_COMMAND_STATUS_OTP_VERSION);
@@ -990,6 +1049,7 @@ sl_status_t sl_se_get_otp_version(sl_se_command_context_t *cmd_ctx,
sli_se_mailbox_command_add_output(se_cmd, &out_data);
return sli_se_execute_and_wait(cmd_ctx);
+ #endif
}
#if defined(SLI_SE_COMMAND_STATUS_READ_RSTCAUSE_AVAILABLE)
@@ -1336,6 +1396,50 @@ sl_status_t sl_se_exit_active_mode(sl_se_command_context_t *cmd_ctx)
#endif // defined(SLI_MAILBOX_COMMAND_SUPPORTED)
+#if defined(_SILICON_LABS_32B_SERIES_3)
+
+/***************************************************************************//**
+ * Reads back the stored upgrade file version.
+ ******************************************************************************/
+sl_status_t sl_se_get_upgrade_file_version(sl_se_command_context_t *cmd_ctx,
+ uint32_t *version)
+{
+ if ((cmd_ctx == NULL) || (version == NULL)) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
+
+ sli_se_command_init(cmd_ctx, SLI_SE_COMMAND_GET_HOST_UPGRADE_FILE_VERSION);
+
+ sli_se_datatransfer_t out_data
+ = SLI_SE_DATATRANSFER_DEFAULT(version, sizeof(uint32_t));
+ sli_se_mailbox_command_add_output(se_cmd, &out_data);
+
+ return sli_se_execute_and_wait(cmd_ctx);
+}
+
+/***************************************************************************//**
+ * Records a new upgrade file version.
+ ******************************************************************************/
+sl_status_t sl_se_set_upgrade_file_version(sl_se_command_context_t *cmd_ctx,
+ uint32_t version)
+{
+ if (cmd_ctx == NULL) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ sli_se_mailbox_command_t *se_cmd = &cmd_ctx->command;
+
+ sli_se_command_init(cmd_ctx, SLI_SE_COMMAND_SET_HOST_UPGRADE_FILE_VERSION);
+
+ sli_se_datatransfer_t in_data
+ = SLI_SE_DATATRANSFER_DEFAULT(&version, sizeof(uint32_t));
+ sli_se_mailbox_command_add_input(se_cmd, &in_data);
+
+ return sli_se_execute_and_wait(cmd_ctx);
+}
+
+#endif // defined(_SILICON_LABS_32B_SERIES_3)
+
/// @} (end addtogroup sl_se)
#endif // defined(SLI_MAILBOX_COMMAND_SUPPORTED) || defined(SLI_VSE_MAILBOX_COMMAND_SUPPORTED)
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal.h b/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal.h
deleted file mode 100644
index c92b9487e..000000000
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal.h
+++ /dev/null
@@ -1,166 +0,0 @@
-/**************************************************************************/ /**
- * @file
- * @brief OS abstraction layer primitives for the SE Manager
- *******************************************************************************
- * # License
- * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-#ifndef SE_MANAGER_OSAL_H
-#define SE_MANAGER_OSAL_H
-
-#if !defined(SE_MANAGER_CONFIG_FILE)
- #include "sl_se_manager_config.h"
-#else
- #include SE_MANAGER_CONFIG_FILE
-#endif
-
-#if defined (SL_COMPONENT_CATALOG_PRESENT)
- #include "sl_component_catalog.h"
-#endif
-
-#include "sl_status.h"
-
-#if (defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT) || defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)) \
- && (defined(SL_SE_MANAGER_THREADING) \
- || defined(SL_SE_MANAGER_YIELD_WHILE_WAITING_FOR_COMMAND_COMPLETION))
-// Include CMSIS RTOS2 kernel abstraction layer:
- #include "sli_se_manager_osal_cmsis_rtos2.h"
-#else
-// Include bare metal abstraction layer:
- #include "sli_se_manager_osal_baremetal.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined(SL_SE_MANAGER_THREADING)
-
-/***************************************************************************//**
- * @brief Initialize a given mutex
- *
- * @param mutex Pointer to the mutex needing initialization
- *
- * @return SL_STATUS_OK on success, error code otherwise.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t se_manager_osal_init_mutex(se_manager_osal_mutex_t *mutex);
-
-/***************************************************************************//**
- * @brief Free a given mutex
- *
- * @param mutex Pointer to the mutex being freed
- *
- * @return SL_STATUS_OK on success, error code otherwise.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t se_manager_osal_free_mutex(se_manager_osal_mutex_t *mutex);
-
-/***************************************************************************//**
- * @brief Pend on a mutex
- *
- * @param mutex Pointer to the mutex being pended on
- *
- * @return SL_STATUS_OK on success, error code otherwise.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t se_manager_osal_take_mutex(se_manager_osal_mutex_t *mutex);
-
-/***************************************************************************//**
- * @brief Try to own a mutex without waiting
- *
- * @param mutex Pointer to the mutex being tested
- *
- * @return SL_STATUS_OK on success (= mutex successfully owned), error code otherwise.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t se_manager_osal_take_mutex_non_blocking(se_manager_osal_mutex_t *mutex);
-
-/***************************************************************************//**
- * @brief Release a mutex
- *
- * @param mutex Pointer to the mutex being released
- *
- * @return SL_STATUS_OK on success, error code otherwise.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t se_manager_osal_give_mutex(se_manager_osal_mutex_t *mutex);
-
-#endif // SL_SE_MANAGER_THREADING
-
-/***************************************************************************//**
- * @brief Initialize a completion object.
- *
- * @param p_comp Pointer to an se_manager_osal_completion_t object allocated
- * by the user.
- *
- * @return Status code, @ref sl_status.h.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t
-se_manager_osal_init_completion(se_manager_osal_completion_t *p_comp);
-
-/***************************************************************************//**
- * @brief Free a completion object.
- *
- * @param p_comp Pointer to an se_manager_osal_completion_t object.
- *
- * @return Status code, @ref sl_status.h.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t
-se_manager_osal_free_completion(se_manager_osal_completion_t *p_comp);
-
-/***************************************************************************//**
- * @brief Wait for completion event.
- *
- * @param p_comp Pointer to completion object which must be initialized by
- * calling se_manager_osal_completion_init before calling this
- * function.
- *
- * @param ticks Ticks to wait for the completion.
- * Pass a value of SE_MANAGER_OSAL_WAIT_FOREVER in order to
- * wait forever.
- * Pass a value of SE_MANAGER_OSAL_NON_BLOCKING in order to
- * return immediately.
- *
- * @return Status code, @ref sl_status.h. Typcally SL_STATUS_OK if success,
- * or SL_STATUS_TIMEOUT if no completion within the given ticks.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t
-se_manager_osal_wait_completion(se_manager_osal_completion_t *p_comp,
- int ticks);
-
-/***************************************************************************//**
- * @brief Signal completion.
- *
- * @param p_comp Pointer to completion object which must be initialized by
- * calling se_manager_osal_completion_init before calling this
- * function.
- *
- * @return Status code, @ref sl_status.h.
- *****************************************************************************/
-__STATIC_INLINE sl_status_t
-se_manager_osal_complete(se_manager_osal_completion_t *p_comp);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // SE_MANAGER_OSAL_H
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_baremetal.h b/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_baremetal.h
deleted file mode 100644
index 20880037a..000000000
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_baremetal.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/**************************************************************************/ /**
- * @file
- * @brief OS abstraction primitives for the SE Manager for bare metal apps
- *******************************************************************************
- * # License
- * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-#ifndef SE_MANAGER_OSAL_BAREMETAL_H
-#define SE_MANAGER_OSAL_BAREMETAL_H
-
-#include "sli_se_manager_features.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// -----------------------------------------------------------------------------
-// Defines
-
-/// In order to wait forever in blocking functions the user can pass the
-/// following value.
-#define SE_MANAGER_OSAL_WAIT_FOREVER (-1)
-/// In order to return immediately in blocking functions the user can pass the
-/// following value.
-#define SE_MANAGER_OSAL_NON_BLOCKING (0)
-
-/// Priority to use for SEMBRX IRQ
-#if defined(SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY)
- #define SE_MANAGER_SEMBRX_IRQ_PRIORITY SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY
-#else
- #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (0)
-#endif
-
-// -----------------------------------------------------------------------------
-// Typedefs
-
-/// Completion type used to wait for and signal end of operation.
-typedef volatile unsigned int se_manager_osal_completion_t;
-
-/// SE manager mutex definition for Baremetal.
-typedef volatile unsigned int se_manager_osal_mutex_t;
-
-// -----------------------------------------------------------------------------
-// Globals
-
-#if defined(SE_MANAGER_OSAL_TEST)
-/// Global variable to keep track of ticks in bare metal test apps.
-extern unsigned int sli_se_manager_test_ticks;
-#endif
-
-// -----------------------------------------------------------------------------
-// Functions
-
-/// Initialize a completion object.
-__STATIC_INLINE
-sl_status_t se_manager_osal_init_completion(se_manager_osal_completion_t *p_comp)
-{
- *p_comp = 0;
- return SL_STATUS_OK;
-}
-
-/// Free a completion object.
-__STATIC_INLINE
-sl_status_t se_manager_osal_free_completion(se_manager_osal_completion_t *p_comp)
-{
- *p_comp = 0;
- return SL_STATUS_OK;
-}
-
-/// Wait for completion event.
-__STATIC_INLINE sl_status_t
-se_manager_osal_wait_completion(se_manager_osal_completion_t *p_comp, int ticks)
-{
- int ret;
- if (ticks == SE_MANAGER_OSAL_WAIT_FOREVER) {
- while ( *p_comp == 0 ) {
-#if defined(SE_MANAGER_OSAL_TEST)
- sli_se_manager_test_ticks++;
-#endif
- }
- *p_comp = 0;
- ret = 0;
- } else {
- while ((*p_comp == 0) && (ticks > 0)) {
- ticks--;
-#if defined(SE_MANAGER_OSAL_TEST)
- sli_se_manager_test_ticks++;
-#endif
- }
- if (*p_comp == 1) {
- *p_comp = 0;
- ret = 0;
- } else {
- ret = SL_STATUS_TIMEOUT;
- }
- }
-
- return ret;
-}
-
-/// Signal completion event.
-__STATIC_INLINE
-sl_status_t se_manager_osal_complete(se_manager_osal_completion_t* p_comp)
-{
- *p_comp = 1;
- return SL_STATUS_OK;
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // SE_MANAGER_OSAL_BAREMETAL_H
diff --git a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_cmsis_rtos2.h b/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_cmsis_rtos2.h
deleted file mode 100644
index e048d401a..000000000
--- a/simplicity_sdk/platform/security/sl_component/se_manager/src/sli_se_manager_osal_cmsis_rtos2.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/**************************************************************************/ /**
- * @file
- * @brief OS abstraction layer primitives for SE manager on CMSIS RTOS2
- *******************************************************************************
- * # License
- * Copyright 2021 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-#ifndef SE_MANAGER_OSAL_CMSIS_RTOS_H
-#define SE_MANAGER_OSAL_CMSIS_RTOS_H
-
-#include "cmsis_os2.h"
-
-#if defined (SL_COMPONENT_CATALOG_PRESENT)
- #include "sl_component_catalog.h"
-#endif
-
-#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
- #include "FreeRTOSConfig.h"
- #if (configSUPPORT_STATIC_ALLOCATION == 1)
- #include "FreeRTOS.h" // StaticSemaphore_t
- #include
- #endif
-#else
- #include "sl_core.h"
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-// -----------------------------------------------------------------------------
-// Defines
-
-/// In order to wait forever in blocking functions the user can pass the
-/// following value.
-#define SE_MANAGER_OSAL_WAIT_FOREVER (osWaitForever)
-/// In order to return immediately in blocking functions the user can pass the
-/// following value.
-#define SE_MANAGER_OSAL_NON_BLOCKING (0)
-
-/// Priority to use for SEMBRX IRQ
-#if defined(SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY)
- #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY >= (1U << __NVIC_PRIO_BITS) )
- #error Illegal SEMBRX priority level.
- #endif
- #if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
- #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY < (configMAX_SYSCALL_INTERRUPT_PRIORITY >> (8U - __NVIC_PRIO_BITS) ) )
- #error Illegal SEMBRX priority level.
- #endif
- #else
- #if (SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY < CORE_ATOMIC_BASE_PRIORITY_LEVEL)
- #error Illegal SEMBRX priority level.
- #endif
- #endif
- #define SE_MANAGER_SEMBRX_IRQ_PRIORITY SE_MANAGER_USER_SEMBRX_IRQ_PRIORITY
-#else
- #if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
- #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (configMAX_SYSCALL_INTERRUPT_PRIORITY >> (8U - __NVIC_PRIO_BITS) )
- #else
- #define SE_MANAGER_SEMBRX_IRQ_PRIORITY (CORE_ATOMIC_BASE_PRIORITY_LEVEL)
- #endif
-#endif
-
-/// Determine if executing at interrupt level on ARM Cortex-M.
-#define RUNNING_AT_INTERRUPT_LEVEL (SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk)
-
-// -----------------------------------------------------------------------------
-// Typedefs
-
-/// Completion object used to wait for and signal end of an operation.
-typedef struct se_manager_osal_completion {
-#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
- osSemaphoreAttr_t semaphore_attr;
- StaticSemaphore_t static_sem_object;
-#endif
- osSemaphoreId_t semaphore_ID;
-} se_manager_osal_completion_t;
-
-/// SE manager mutex definition for CMSIS RTOS2.
-typedef struct se_manager_osal_mutex {
-#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
- osMutexAttr_t mutex_attr;
- StaticSemaphore_t static_sem_object;
-#endif
- osMutexId_t mutex_ID;
-} se_manager_osal_mutex_t;
-
-// -----------------------------------------------------------------------------
-// Functions
-
-/// Initialize a mutex object.
-__STATIC_INLINE
-sl_status_t se_manager_osal_init_mutex(se_manager_osal_mutex_t *mutex)
-{
- if (mutex == NULL) {
- return SL_STATUS_FAIL;
- }
-
-#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
- // Zeroize all members of the mutex attributes object and setup the static control block.
- memset(&mutex->mutex_attr, 0, sizeof(mutex->mutex_attr));
- mutex->mutex_attr.cb_mem = &mutex->static_sem_object;
- mutex->mutex_attr.cb_size = sizeof(mutex->static_sem_object);
- mutex->mutex_ID = osMutexNew(&mutex->mutex_attr);
-#else
- mutex->mutex_ID = osMutexNew(NULL);
-#endif
-
- return (mutex->mutex_ID == NULL ? SL_STATUS_FAIL : SL_STATUS_OK);
-}
-
-/// Free a mutex object.
-__STATIC_INLINE
-sl_status_t se_manager_osal_free_mutex(se_manager_osal_mutex_t *mutex)
-{
- if (mutex == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osMutexDelete(mutex->mutex_ID);
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-/// Acquire ownership of a mutex. If busy, wait until available.
-__STATIC_INLINE
-sl_status_t se_manager_osal_take_mutex(se_manager_osal_mutex_t *mutex)
-{
- if (mutex == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osOK;
- if (osKernelGetState() == osKernelRunning) {
- status = osMutexAcquire(mutex->mutex_ID, SE_MANAGER_OSAL_WAIT_FOREVER);
- }
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-/// Try to acquire ownership of a mutex without waiting.
-__STATIC_INLINE
-sl_status_t se_manager_osal_take_mutex_non_blocking(se_manager_osal_mutex_t *mutex)
-{
- if (mutex == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osOK;
- if (osKernelGetState() == osKernelRunning) {
- status = osMutexAcquire(mutex->mutex_ID, SE_MANAGER_OSAL_NON_BLOCKING);
- }
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-/// Release ownership of a mutex.
-__STATIC_INLINE
-sl_status_t se_manager_osal_give_mutex(se_manager_osal_mutex_t *mutex)
-{
- if (mutex == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osOK;
- if (osKernelGetState() == osKernelRunning) {
- status = osMutexRelease(mutex->mutex_ID);
- }
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-/// Initialize a completion object.
-__STATIC_INLINE sl_status_t
-se_manager_osal_init_completion(se_manager_osal_completion_t *p_comp)
-{
- if (p_comp == NULL) {
- return SL_STATUS_FAIL;
- }
-
-#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
- // Zeroize all members of the semaphore attributes object and setup the static control block.
- memset(&p_comp->semaphore_attr, 0, sizeof(p_comp->semaphore_attr));
- p_comp->semaphore_attr.cb_mem = &p_comp->static_sem_object;
- p_comp->semaphore_attr.cb_size = sizeof(p_comp->static_sem_object);
- p_comp->semaphore_ID = osSemaphoreNew(1u, 0u, &p_comp->semaphore_attr);
-#else
- p_comp->semaphore_ID = osSemaphoreNew(1u, 0u, NULL);
-#endif
-
- return (p_comp->semaphore_ID == NULL ? SL_STATUS_FAIL : SL_STATUS_OK);
-}
-
-/// Free a completion object.
-__STATIC_INLINE sl_status_t
-se_manager_osal_free_completion(se_manager_osal_completion_t *p_comp)
-{
- if (p_comp == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osSemaphoreDelete(p_comp->semaphore_ID);
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-// Wait for a completion object to be completed.
-__STATIC_INLINE sl_status_t
-se_manager_osal_wait_completion(se_manager_osal_completion_t *p_comp, int ticks)
-{
- if (p_comp == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osOK;
- if (osKernelGetState() == osKernelRunning) {
- status = osSemaphoreAcquire(p_comp->semaphore_ID,
- (uint32_t)ticks);
- }
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-// Complete a completion object.
-__STATIC_INLINE sl_status_t
-se_manager_osal_complete(se_manager_osal_completion_t* p_comp)
-{
- if (p_comp == NULL) {
- return SL_STATUS_FAIL;
- }
-
- osStatus_t status = osOK;
- osKernelState_t state = osKernelGetState();
- if ((state == osKernelRunning) || (state == osKernelLocked)) {
- status = osSemaphoreRelease(p_comp->semaphore_ID);
- }
- return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
-}
-
-// Lock the RTOS Kernel scheduler.
-__STATIC_INLINE int32_t
-se_manager_osal_kernel_lock(void)
-{
- return osKernelLock();
-}
-
-// Restore the RTOS Kernel scheduler lock state.
-__STATIC_INLINE int32_t
-se_manager_osal_kernel_restore_lock(int32_t lock)
-{
- return osKernelRestoreLock(lock);
-}
-
-// Current RTOS kernel state.
-__STATIC_INLINE osKernelState_t
-se_manager_osal_kernel_get_state(void)
-{
- return osKernelGetState();
-}
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif // SE_MANAGER_OSAL_CMSIS_RTOS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_acceleration.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_acceleration.h
new file mode 100644
index 000000000..4b597e480
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_acceleration.h
@@ -0,0 +1,486 @@
+/***************************************************************************//**
+ * @file
+ * @brief Mbed TLS device acceleration capabilities.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_MBEDTLS_ACCELERATION_H
+#define SLI_MBEDTLS_ACCELERATION_H
+
+// This condition makes it possible to disable alt-plugins for the classic
+// Mbed TLS APIs (overriding the user-exposed config option). This is notably
+// used on the NS side of TrustZone-enabled applications.
+#if !defined(NO_CRYPTO_ACCELERATION)
+
+// -----------------------------------------------------------------------------
+// Acceleration enabling defines
+
+/**
+ * \def MBEDTLS_AES_ALT
+ *
+ * Enable hardware acceleration for the AES block cipher modes through
+ * the mbed TLS APIs.
+ *
+ * Module: sl_mbedtls_support/src/crypto_aes.c for devices with CRYPTO,
+ * sl_mbedtls_support/src/se_aes.c for devices with HSE,
+ * sl_mbedtls_support/src/cryptoacc_aes.c for devices with CRYPTOACC,
+ * sl_mbedtls_support/src/aes_aes.c for devices with AES
+ *
+ * See \ref MBEDTLS_AES_C for more information.
+ */
+#if defined(_SILICON_LABS_32B_SERIES)
+ #define MBEDTLS_AES_ALT
+#endif
+#if defined(CRYPTOACC_PRESENT) || defined(SEMAILBOX_PRESENT)
+ #define AES_192_SUPPORTED
+#endif
+
+/**
+ * \def MBEDTLS_CCM_ALT
+ *
+ * Enable hardware acceleration of CCM through mbed TLS APIs.
+ * Not enabled when PSA Crypto is present in the build together with the PSA driver for CCM,
+ * as that would preclude software fallback for cases where the hardware capabilites do not
+ * cover the full potential usage of the PSA Driver API
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_ccm.c for all devices, plus:
+ * - sl_psa_driver/src/sli_se_transparent_driver_aead.c and sl_psa_driver/src/sli_se_driver_aead.c for devices with HSE,
+ * - sl_psa_driver/src/sli_cryptoacc_transparent_driver_aead.c for devices with CRYPTOACC
+ *
+ * Requires: \ref MBEDTLS_AES_C and \ref MBEDTLS_CCM_C (CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See MBEDTLS_CCM_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT) || defined(SEMAILBOX_PRESENT)
+// Remove this when full multipart support is present in the CCM ALT driver
+// Todo: remove guard when [PSEC-1954][PSEC-2109][PSEC-3133] are done
+ #if !(defined(MBEDTLS_PSA_CRYPTO_DRIVERS))
+ #define MBEDTLS_CCM_ALT
+ #endif
+#endif
+
+/**
+ * \def MBEDTLS_CMAC_ALT
+ *
+ * Enable hardware acceleration CMAC through mbed TLS APIs.
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_cmac.c for all devices, plus:
+ * - sl_psa_driver/src/sli_se_transparent_driver_mac.c and sl_psa_driver/src/sli_se_driver_mac.c for devices with HSE,
+ * - sl_psa_driver/src/sli_cryptoacc_transparent_driver_mac.c for devices with CRYPTOACC
+ *
+ * Requires: \ref MBEDTLS_AES_C and \ref MBEDTLS_CMAC_C (CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See MBEDTLS_CMAC_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT) || defined(SEMAILBOX_PRESENT)
+ #define MBEDTLS_CMAC_ALT
+#endif
+
+/**
+ * \def MBEDTLS_GCM_ALT
+ *
+ * Enable hardware acceleration GCM.
+ *
+ * Module: sl_mbedtls_support/src/se_gcm.c for devices with HSE,
+ * sl_mbedtls_support/src/cryptoacc_gcm.c for devices with CRYPTOACC
+ *
+ * Requires: \ref MBEDTLS_GCM_C (CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See MBEDTLS_GCM_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT) || (defined(SEMAILBOX_PRESENT))
+ #define MBEDTLS_GCM_ALT
+#endif
+
+/**
+ * \def MBEDTLS_SHA1_ALT
+ *
+ * Enable hardware acceleration for the SHA1 cryptographic hash algorithm
+ * through the mbed TLS APIs.
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_sha.c for all devices, plus:
+ * - sl_psa_driver/src/sli_se_transparent_driver_hash.c for devices with HSE,
+ * - sl_psa_driver/src/sli_cryptoacc_transparent_driver_hash.c for devices with CRYPTOACC
+ *
+ * Caller: library/mbedtls_md.c
+ * library/ssl_cli.c
+ * library/ssl_srv.c
+ * library/ssl_tls.c
+ * library/x509write_crt.c
+ *
+ * Requires: \ref MBEDTLS_SHA1_C and (CRYPTO_PRESENT or CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See MBEDTLS_SHA1_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT) || defined(SEMAILBOX_PRESENT)
+ #define MBEDTLS_SHA1_ALT
+#endif
+
+/**
+ * \def MBEDTLS_SHA256_ALT
+ *
+ * Enable hardware acceleration for the SHA-224 and SHA-256 cryptographic
+ * hash algorithms through the mbed TLS APIs.
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_sha.c for all devices, plus:
+ * - sl_psa_driver/src/sli_se_transparent_driver_hash.c for devices with HSE,
+ * - sl_psa_driver/src/sli_cryptoacc_transparent_driver_hash.c for devices with CRYPTOACC
+ *
+ * Caller: library/entropy.c
+ * library/mbedtls_md.c
+ * library/ssl_cli.c
+ * library/ssl_srv.c
+ * library/ssl_tls.c
+ *
+ * Requires: \ref MBEDTLS_SHA256_C and (CRYPTO_PRESENT or CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See MBEDTLS_SHA256_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT) || defined(SEMAILBOX_PRESENT)
+ #define MBEDTLS_SHA256_ALT
+#endif
+
+/**
+ * \def MBEDTLS_SHA512_ALT
+ *
+ * Enable hardware acceleration for the SHA-384 and SHA-512 cryptographic
+ * hash algorithms through the mbed TLS APIs.
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_sha.c
+ * sl_psa_driver/src/sli_se_transparent_driver_hash.c
+ *
+ * Requires: \ref MBEDTLS_SHA512_C
+ *
+ * See MBEDTLS_SHA512_C for more information.
+ */
+#if defined(SEMAILBOX_PRESENT) \
+ && (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_VAULT)
+ #define MBEDTLS_SHA512_ALT
+#endif
+
+/**
+ * \def MBEDTLS_ECP_INTERNAL_ALT
+ * \def ECP_SHORTWEIERSTRASS
+ * \def MBEDTLS_ECP_ADD_MIXED_ALT
+ * \def MBEDTLS_ECP_DOUBLE_JAC_ALT
+ * \def MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT
+ * \def MBEDTLS_ECP_NORMALIZE_JAC_ALT
+ *
+ * Enable hardware acceleration for the elliptic curve over GF(p) library
+ * in mbed TLS. This accelerates the raw arithmetic operations.
+ *
+ * Module: sl_mbedtls_support/src/crypto_ecp.c
+ *
+ * Caller: library/ecp.c
+ *
+ * Requires: \ref MBEDTLS_BIGNUM_C, \ref MBEDTLS_ECP_C and at least one
+ * MBEDTLS_ECP_DP_XXX_ENABLED and CRYPTO_PRESENT
+ */
+#if defined(CRYPTO_PRESENT) \
+ && (defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED))
+ #define MBEDTLS_ECP_INTERNAL_ALT
+ #define ECP_SHORTWEIERSTRASS
+ #define MBEDTLS_ECP_ADD_MIXED_ALT
+ #define MBEDTLS_ECP_DOUBLE_JAC_ALT
+ #define MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT
+ #define MBEDTLS_ECP_NORMALIZE_JAC_ALT
+ #define MBEDTLS_ECP_RANDOMIZE_JAC_ALT
+#endif
+
+/**
+ * \def MBEDTLS_ECDH_COMPUTE_SHARED_ALT
+ * \def MBEDTLS_ECDH_GEN_PUBLIC_ALT
+ * \def MBEDTLS_ECDSA_GENKEY_ALT
+ * \def MBEDTLS_ECDSA_SIGN_ALT
+ * \def MBEDTLS_ECDSA_VERIFY_ALT
+ *
+ * Enable hardware acceleration for certain ECC operations.
+ *
+ * Module: sl_mbedtls_support/src/mbedtls_ecdsa_ecdh.c for all devices, plus:
+ * - sl_psa_driver/src/sli_se_driver_signature.c and sl_psa_driver/src/sli_se_driver_key_management.c for devices with HSE,
+ * - sl_psa_driver/src/sli_cryptoacc_transparent_driver_signature.c and sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_management.c for devices with CRYPTOACC
+ *
+ * Requires: \ref MBEDTLS_ECP_C (CRYPTOACC_PRESENT or SEMAILBOX_PRESENT)
+ *
+ * See \ref MBEDTLS_ECP_C for more information.
+ */
+#if defined(CRYPTOACC_PRESENT)
+#if !(defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) )
+ #define MBEDTLS_ECDH_COMPUTE_SHARED_ALT
+ #define MBEDTLS_ECDH_GEN_PUBLIC_ALT
+#endif // #if !( defined(MBEDTLS_ECP_DP_XXX_ENABLED) ...
+
+#if !(defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) )
+ #define MBEDTLS_ECDSA_GENKEY_ALT
+ #define MBEDTLS_ECDSA_VERIFY_ALT
+ #if !defined(MBEDTLS_ECDSA_DETERMINISTIC)
+ #define MBEDTLS_ECDSA_SIGN_ALT
+ #endif
+#endif // #if !( defined(MBEDTLS_ECP_DP_XXX_ENABLED) ...
+
+#endif /* CRYPTOACC */
+
+#if defined(SEMAILBOX_PRESENT)
+
+#if !defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) \
+ && !defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
+
+/* Do not enable the ECDH and/or ECDSA ALT implementations when one or more
+ * non-accelerated curves are included, then the application needs to
+ * use the standard mbedTLS library. */
+
+ #if !( (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_SE) \
+ && (defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)))
+ #define MBEDTLS_ECDH_GEN_PUBLIC_ALT
+ #define MBEDTLS_ECDH_COMPUTE_SHARED_ALT
+ #endif
+
+ #if !( (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_SE) \
+ && (defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) ) )
+ #define MBEDTLS_ECDSA_GENKEY_ALT
+ #if !defined(MBEDTLS_ECDSA_DETERMINISTIC)
+ #define MBEDTLS_ECDSA_SIGN_ALT
+ #endif
+ #define MBEDTLS_ECDSA_VERIFY_ALT
+ #endif
+
+#endif // #if !defined(MBEDTLS_ECP_DP_XXXX_ENABLED) && ...
+
+/**
+ * \def MBEDTLS_ECJPAKE_ALT
+ *
+ * Enable hardware acceleration JPAKE.
+ *
+ * Module: sl_mbedtls_support/src/se_jpake.c
+ *
+ * Requires: \ref MBEDTLS_ECJPAKE_C (SEMAILBOX_PRESENT)
+ *
+ * See \ref MBEDTLS_ECJPAKE_C for more information.
+ */
+#define MBEDTLS_ECJPAKE_ALT
+
+#endif /* SEMAILBOX_PRESENT */
+
+/**
+ * \def MBEDTLS_ENTROPY_ADC_PRESENT
+ *
+ * Decode if device supports retrieving entropy data from the ADC
+ * incorporated on devices from Silicon Labs.
+ *
+ * Requires ADC_PRESENT && _ADC_SINGLECTRLX_VREFSEL_VENTROPY &&
+ * _SILICON_LABS_32B_SERIES_1
+ */
+#if defined(ADC_PRESENT) \
+ && defined(_ADC_SINGLECTRLX_VREFSEL_VENTROPY) \
+ && defined(_SILICON_LABS_32B_SERIES_1)
+#define MBEDTLS_ENTROPY_ADC_PRESENT
+#endif
+
+/**
+ * \def MBEDTLS_TRNG_PRESENT
+ *
+ * Determine whether mbedTLS supports the TRNG (if present) on the device.
+ *
+ * Requires TRNG_PRESENT and not _SILICON_LABS_GECKO_INTERNAL_SDID_95 (xg14)
+ */
+#if defined(TRNG_PRESENT) \
+ && !defined(_SILICON_LABS_GECKO_INTERNAL_SDID_95)
+#undef MBEDTLS_TRNG_PRESENT
+#define MBEDTLS_TRNG_PRESENT
+#endif
+
+/**
+ * \def MBEDTLS_ENTROPY_RAIL_PRESENT
+ *
+ * Determine whether mbedTLS supports RAIL entropy on the device.
+ * This is currently only available on a few series-1 devices
+ * where there is no functional TRNG.
+ *
+ * Requires _EFR_DEVICE and one of
+ * _SILICON_LABS_GECKO_INTERNAL_SDID_80
+ * _SILICON_LABS_GECKO_INTERNAL_SDID_89
+ * _SILICON_LABS_GECKO_INTERNAL_SDID_95
+ */
+#if defined(_EFR_DEVICE) \
+ && (defined(_SILICON_LABS_GECKO_INTERNAL_SDID_80) \
+ || defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89) \
+ || defined(_SILICON_LABS_GECKO_INTERNAL_SDID_95) )
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#undef MBEDTLS_ENTROPY_RAIL_PRESENT
+#define MBEDTLS_ENTROPY_RAIL_PRESENT
+#endif
+#endif
+
+/* Default ECC configuration for Silicon Labs devices: */
+
+/* Save RAM by adjusting to our exact needs */
+#ifndef MBEDTLS_MPI_MAX_SIZE
+#define MBEDTLS_MPI_MAX_SIZE 32 // 384 bits is 48 bytes
+#endif
+
+/*
+ Set MBEDTLS_ECP_WINDOW_SIZE to configure
+ ECC point multiplication window size, see ecp.h:
+ 2 = Save RAM at the expense of speed
+ 3 = Improve speed at the expense of RAM
+ 4 = Optimize speed at the expense of RAM
+ */
+#define MBEDTLS_ECP_WINDOW_SIZE 2
+#define MBEDTLS_ECP_FIXED_POINT_OPTIM 0
+
+#if defined(MBEDTLS_ECP_C)
+/* First section: devices with ECP hardware acceleration enabled */
+#if defined(MBEDTLS_ECP_INTERNAL_ALT)
+/* When the internal ECP implementation is overridden, apply optimisation
+ * only when it benefits us for curves we can't accelerate. */
+#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
+#define MBEDTLS_ECP_NIST_OPTIM
+#endif /* Non-accelerated SECP R1 curves requested */
+/* If only accelerated curves are requested, and no non-accelerated ones,
+ * we can turn on the NO_FALLBACK flag to dead-strip a whole lot of ECC
+ * math software implementation. */
+#if (defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) ) \
+ && !(defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_CURVE448_ENABLED))
+#define MBEDTLS_ECP_NO_FALLBACK
+#endif /* Only ECP-hardware-accelerated curves requested */
+/* Second section: devices with ECDSA / ECDH hardware acceleration (without ECP) */
+#elif defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) \
+ || defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) \
+ || defined(MBEDTLS_ECDSA_GENKEY_ALT) \
+ || defined(MBEDTLS_ECDSA_SIGN_ALT) \
+ || defined(MBEDTLS_ECDSA_VERIFY_ALT) \
+/* When the upper layers calling into ECP_C are overridden, apply optimisation
+ * only when it benefits us for curves we can't accelerate. */
+#if (defined(SEMAILBOX_PRESENT) && (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_SE) ) \
+ || defined(CRYPTOACC_PRESENT)
+#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) \
+ || (defined(MBEDTLS_ECDSA_DETERMINISTIC) \
+ && (defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)))
+#define MBEDTLS_ECP_NIST_OPTIM
+#endif /* Non-accelerated SECP R1 curves requested */
+#endif /* Devices not implementing the full suite of SECP R1 curves */
+/* Third section: configurations without any ECP/ECC acceleration at all */
+#else
+/* When there's no ECC acceleration at all, apply optimisation always when
+ * applicable curves are present. */
+#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) \
+ || defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
+#define MBEDTLS_ECP_NIST_OPTIM
+#endif /* Software-optimisable curve requested */
+#endif /* Different acceleration constellations */
+#endif /* MBEDTLS_ECP_C */
+
+/*
+ Set max CTR-DRBG seed input size to reasonable default in order to reduce
+ stack usage when using CTR-DRBG.
+ NOTE:
+ Due to existing dependencies we need to keep the setting of
+ MBEDTLS_CTR_DRBG_MAX_SEED_INPUT here. However this is subject to be moved
+ later, to sl_mbedtls_config.h or mbedtls_config_autogen.h in order to be more
+ practical for configuration.
+ */
+#if !defined(MBEDTLS_CTR_DRBG_MAX_SEED_INPUT)
+#if !(defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) \
+ && defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) \
+ && defined(MBEDTLS_ECDSA_GENKEY_ALT) \
+ && defined(MBEDTLS_ECDSA_SIGN_ALT) \
+ && defined(MBEDTLS_ECDSA_VERIFY_ALT))
+/*
+ If any of ECDH and/or ECDSA ALT is/are not enabled, then the ecp_mul_xxx()
+ functions will seed the internal drbg (for randomization of projective
+ coordinates) with the private key of size corresponding to the curve
+ hence we will need to adjust:
+ */
+#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
+// For key size 521 bits (=66 bytes) add 66 - 32 (256bits default) = 34 bytes
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 + 66 - 32)
+#elif defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
+// For key size 512 bits (=64 bytes) add 64 - 32 (256bits default) = 32 bytes
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 + 64 - 32)
+#elif defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
+// For key size 448 bits (=56 bytes) add 56 - 32 (256bits default) = 24 bytes
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 + 56 - 32)
+#elif defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
+// For key size 384 bits (=48 bytes) add 48 - 32 (256bits default) = 16 bytes
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 + 48 - 32)
+#elif defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
+// For key size 384 bits (=48 bytes) add 48 - 32 (256bits default) = 16 bytes
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2 + 48 - 32)
+#else
+// Default value to support curve sizes up to 256 bits ( 32 bytes )
+#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT (MBEDTLS_CTR_DRBG_ENTROPY_LEN + MBEDTLS_CTR_DRBG_KEYSIZE * 3 / 2)
+#endif
+#endif
+#endif
+
+#endif // !NO_CRYPTO_ACCELERATION
+
+#endif // SLI_MBEDTLS_ACCELERATION_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_omnipresent.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_omnipresent.h
new file mode 100644
index 000000000..ea2a16135
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_mbedtls_omnipresent.h
@@ -0,0 +1,155 @@
+/***************************************************************************//**
+ * @file
+ * @brief Mbed TLS 'omnipresent' config content.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_MBEDTLS_OMIPRESENT_H
+#define SLI_MBEDTLS_OMIPRESENT_H
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+ #include "sl_component_catalog.h"
+#endif
+
+#if !defined(SL_CATALOG_SE_CPC_PRIMARY_PRESENT)
+ #include "em_device.h"
+#endif
+
+// -----------------------------------------------------------------------------
+// Non-volatile seed function headers
+
+#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
+
+// Provide the NV seed function signatures since we have no specific header
+// for them.
+
+#include
+
+int sli_nv_seed_read(unsigned char *buf, size_t buf_len);
+int sli_nv_seed_write(unsigned char *buf, size_t buf_len);
+
+#endif // MBEDTLS_PLATFORM_NV_SEED_ALT
+
+// -----------------------------------------------------------------------------
+// Platform macros
+
+#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && defined(MBEDTLS_PLATFORM_FREE_MACRO)
+
+// By default MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_FREE_MACRO are
+// defined in mbedtls_platform_dynamic_memory_allocation_config_default.slcc.
+// Alternative implementations can configure MBEDTLS_PLATFORM_CALLOC_MACRO and
+// MBEDTLS_PLATFORM_FREE_MACRO to use other platform specific implementations.
+// Alternatively some use cases may select runtime initialisation in the
+// application by explicitly calling mbedtls_platform_set_calloc_free() by
+// selecting mbedtls_platform_dynamic_memory_allocation_config_init_runtime.
+
+#include
+
+extern void *MBEDTLS_PLATFORM_CALLOC_MACRO(size_t n, size_t size);
+extern void MBEDTLS_PLATFORM_FREE_MACRO(void *ptr);
+
+#endif // MBEDTLS_PLATFORM_CALLOC_MACRO && MBEDTLS_PLATFORM_FREE_MACRO
+
+// -----------------------------------------------------------------------------
+// Device differentiation logic
+
+#if defined(CRYPTO_PRESENT)
+
+ #define SLI_MBEDTLS_DEVICE_S1
+
+ #if !defined(_SILICON_LABS_GECKO_INTERNAL_SDID_95)
+ #define SLI_MBEDTLS_DEVICE_S1_WITH_TRNG
+ #endif
+
+ #if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89)
+// The TRNG may possibly not work depending on the die revision.
+ #define SLI_MBEDTLS_DEVICE_S1_WITH_TRNG_ERRATA
+ #endif
+
+#elif defined(SEMAILBOX_PRESENT) && defined(_SILICON_LABS_32B_SERIES_2)
+
+ #define SLI_MBEDTLS_DEVICE_S2
+ #define SLI_MBEDTLS_DEVICE_HSE
+
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+ #define SLI_MBEDTLS_DEVICE_SE_V1
+ #define SLI_MBEDTLS_DEVICE_HSE_V1
+ #else
+ #define SLI_MBEDTLS_DEVICE_SE_V2
+ #define SLI_MBEDTLS_DEVICE_HSE_V2
+ #endif
+
+ #if (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_VAULT)
+ #define SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH
+ #else
+ #define SLI_MBEDTLS_DEVICE_HSE_VAULT_MID
+ #endif
+
+#elif defined(SEMAILBOX_PRESENT) && defined(_SILICON_LABS_32B_SERIES_3)
+
+ #define SLI_MBEDTLS_DEVICE_S3
+ #define SLI_MBEDTLS_DEVICE_HC
+
+ #define SLI_MBEDTLS_DEVICE_HSE
+ #define SLI_MBEDTLS_DEVICE_SE_V2
+ #define SLI_MBEDTLS_DEVICE_HSE_V2
+ #if (_SILICON_LABS_SECURITY_FEATURE == _SILICON_LABS_SECURITY_FEATURE_VAULT)
+ #define SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH
+ #else
+ #define SLI_MBEDTLS_DEVICE_HSE_VAULT_MID
+ #endif
+
+#elif defined(CRYPTOACC_PRESENT)
+
+ #define SLI_MBEDTLS_DEVICE_S2
+ #define SLI_MBEDTLS_DEVICE_VSE
+
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_2)
+ #define SLI_MBEDTLS_DEVICE_SE_V1
+ #define SLI_MBEDTLS_DEVICE_VSE_V1
+ #else
+ #define SLI_MBEDTLS_DEVICE_SE_V2
+ #define SLI_MBEDTLS_DEVICE_VSE_V2
+ #endif
+
+#elif defined(SL_CATALOG_SE_CPC_PRIMARY_PRESENT)
+
+ #define SLI_MBEDTLS_DEVICE_S2
+ #define SLI_MBEDTLS_DEVICE_HSE
+
+// #define SLI_MBEDTLS_DEVICE_SE_V1
+// #define SLI_MBEDTLS_DEVICE_SE_V2
+// #define SLI_MBEDTLS_DEVICE_HSE_V1
+// #define SLI_MBEDTLS_DEVICE_HSE_V2
+// #define SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH
+// #define SLI_MBEDTLS_DEVICE_HSE_VAULT_MID
+
+#elif defined(SLI_CRYPTOACC_PRESENT_SI91X)
+ #define SLI_MBEDTLS_DEVICE_SI91X
+#endif
+
+#endif // SLI_MBEDTLS_OMIPRESENT_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_acceleration.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_acceleration.h
new file mode 100644
index 000000000..2ff07ea8f
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_acceleration.h
@@ -0,0 +1,125 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA Crypto device acceleration capabilities.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSA_ACCELERATION_H
+#define SLI_PSA_ACCELERATION_H
+
+// -------------------------------------
+// Hash
+
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_1
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_224
+#define MBEDTLS_PSA_ACCEL_ALG_SHA_256
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) || defined (SLI_MBEDTLS_DEVICE_SI91X)
+ #define MBEDTLS_PSA_ACCEL_ALG_SHA_384
+ #define MBEDTLS_PSA_ACCEL_ALG_SHA_512
+#endif
+
+// -------------------------------------
+// Cipher
+
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_AES
+#define MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING
+#define MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING
+#define MBEDTLS_PSA_ACCEL_ALG_CTR
+
+#if !defined(SLI_MBEDTLS_DEVICE_SI91X)
+#define MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7
+#define MBEDTLS_PSA_ACCEL_ALG_CFB
+#define MBEDTLS_PSA_ACCEL_ALG_OFB
+#endif
+
+#if (defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3)) || defined(SLI_MBEDTLS_DEVICE_SI91X)
+ #define MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20
+#endif
+
+// -------------------------------------
+// AEAD
+
+#define MBEDTLS_PSA_ACCEL_ALG_GCM
+#define MBEDTLS_PSA_ACCEL_ALG_CCM
+
+#if (defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3)) || defined(SLI_MBEDTLS_DEVICE_SI91X)
+ #define MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305
+#endif
+
+// -------------------------------------
+// MAC
+
+#define MBEDTLS_PSA_ACCEL_ALG_CMAC
+
+#define MBEDTLS_PSA_ACCEL_ALG_HMAC
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_V1)
+ #define MBEDTLS_PSA_ACCEL_ALG_CBC_MAC
+#endif
+
+// -------------------------------------
+// Elliptic curves
+
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR
+#define MBEDTLS_PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY
+#define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_192
+#define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_256
+
+#if (defined(SLI_MBEDTLS_DEVICE_S2) && !defined(SLI_MBEDTLS_DEVICE_HSE_V1)) || defined(SLI_MBEDTLS_DEVICE_SI91X)
+ #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_224
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3)
+ #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384
+ #define MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+ #define MBEDTLS_PSA_ACCEL_ECC_SECP_K1_256
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_V1) && defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) \
+ || defined(SLI_MBEDTLS_DEVICE_HSE_V2)
+ #define MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_255
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3)
+ #define MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448
+#endif
+
+// -------------------------------------
+// Key agreement
+
+#define MBEDTLS_PSA_ACCEL_ALG_ECDH
+
+// -------------------------------------
+// Signature
+
+#define MBEDTLS_PSA_ACCEL_ALG_ECDSA
+
+#endif // SLI_PSA_ACCELERATION_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_tfm_translation.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_tfm_translation.h
new file mode 100644
index 000000000..162e2fc48
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/config/sli_psa_tfm_translation.h
@@ -0,0 +1,95 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA Crypto to TFM config option translation.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSA_TFM_TRANSLATION_H
+#define SLI_PSA_TFM_TRANSLATION_H
+
+// Asymmetric Crypt module (RSA is not supported)
+#define TFM_CRYPTO_ASYM_ENCRYPT_MODULE_DISABLED
+
+// HASH module
+#if !defined(PSA_WANT_ALG_SHA_1) \
+ && !defined(PSA_WANT_ALG_SHA_224) \
+ && !defined(PSA_WANT_ALG_SHA_256) \
+ && !defined(PSA_WANT_ALG_SHA_384) \
+ && !defined(PSA_WANT_ALG_SHA_512) \
+ && !defined(PSA_WANT_ALG_MD5)
+ #define TFM_CRYPTO_HASH_MODULE_DISABLED
+#endif
+
+// AEAD module
+#if !defined(PSA_WANT_ALG_CCM) \
+ && !defined(PSA_WANT_ALG_GCM) \
+ && !defined(PSA_WANT_ALG_CHACHA20_POLY1305)
+ #define TFM_CRYPTO_AEAD_MODULE_DISABLED
+#endif
+
+// Asymmetric Sign module
+#if !defined(PSA_WANT_ALG_ECDSA) \
+ && !defined(PSA_WANT_ALG_EDDSA) \
+ && !defined(PSA_WANT_ALG_DETERMINISTIC_ECDSA)
+ #define TFM_CRYPTO_ASYM_SIGN_MODULE_DISABLED
+#endif
+
+// Cipher module
+#if !defined(PSA_WANT_ALG_CFB) \
+ && !defined(PSA_WANT_ALG_CTR) \
+ && !defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ && !defined(PSA_WANT_ALG_CBC_PKCS7) \
+ && !defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ && !defined(PSA_WANT_ALG_XTS) \
+ && !defined(PSA_WANT_ALG_OFB) \
+ && !defined(PSA_WANT_ALG_STREAM_CIPHER)
+ #define TFM_CRYPTO_CIPHER_MODULE_DISABLED
+#endif
+
+// MAC module
+#if !defined(PSA_WANT_ALG_HMAC) \
+ && !defined(PSA_WANT_ALG_CMAC) \
+ && !defined(PSA_WANT_ALG_CBC_MAC)
+ #define TFM_CRYPTO_MAC_MODULE_DISABLED
+#endif
+
+// Key derivation module
+#if !defined(PSA_WANT_ALG_PBKDF2_HMAC) \
+ && !defined(PSA_WANT_ALG_HKDF) \
+ && !defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128) \
+ && !defined(PSA_WANT_ALG_TLS12_PRF) \
+ && !defined(PSA_WANT_ALG_TLS12_PSK_TO_MS) \
+ && !defined(PSA_WANT_ALG_ECDH)
+ #define TFM_CRYPTO_KEY_DERIVATION_MODULE_DISABLED
+#endif
+
+// PAKE module
+#if !defined(PSA_WANT_ALG_JPAKE)
+ #define TFM_CRYPTO_PAKE_MODULE_DISABLED
+#endif
+
+#endif // SLI_PSA_TFM_TRANSLATION_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/aes_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/aes_alt.h
new file mode 100644
index 000000000..3f0feac60
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/aes_alt.h
@@ -0,0 +1,92 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS AES block cipher
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef AES_ALT_H
+#define AES_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins Mbed TLS Plugins
+ * \brief These plugins are used to support acceleration on Silicon Labs
+ * Hardware for various algorithms.
+ *
+ * The APIs are not intended to be used directly, but hook into acceleration points
+ * in the relevant Mbed TLS APIs
+ *
+ * The plugins support sharing of cryptography hardware in multi-threaded applications,
+ * as well as a reduced overhead configuration for optimal performance in single-threaded
+ * applications.
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_aes Accelerated AES Block Cipher
+ * \brief Accelerated AES block cipher for the mbed TLS API using the AES, CRYPTO,
+ * CRYPTOACC or SE peripheral
+ *
+ * \{
+ ******************************************************************************/
+
+#if defined(MBEDTLS_AES_ALT)
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief AES context structure
+ */
+typedef struct {
+ unsigned int keybits; /*!< size of key */
+ unsigned char key[32]; /*!< AES key 128, 192 or 256 bits */
+}
+mbedtls_aes_context;
+
+#if defined(MBEDTLS_CIPHER_MODE_XTS)
+/**
+ * \brief The AES XTS context-type definition.
+ */
+typedef struct mbedtls_aes_xts_context{
+ mbedtls_aes_context crypt; /*!< The AES context to use for AES block
+ encryption or decryption. */
+ mbedtls_aes_context tweak; /*!< The AES context used for tweak
+ computation. */
+} mbedtls_aes_xts_context;
+#endif /* MBEDTLS_CIPHER_MODE_XTS */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_AES_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_aes) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* AES_ALT_H */
diff --git a/simplicity_sdk/platform/common/inc/sli_icache_disable.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ccm_alt.h
similarity index 66%
rename from simplicity_sdk/platform/common/inc/sli_icache_disable.h
rename to simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ccm_alt.h
index ab0046287..eae91d856 100644
--- a/simplicity_sdk/platform/common/inc/sli_icache_disable.h
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ccm_alt.h
@@ -1,9 +1,9 @@
/***************************************************************************//**
* @file
- * @brief Disable Instruction Cache (Internal)
+ * @brief Accelerated mbed TLS AES-CCM AEAD cipher
*******************************************************************************
* # License
- * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
*******************************************************************************
*
* SPDX-License-Identifier: Zlib
@@ -27,28 +27,46 @@
* 3. This notice may not be removed or altered from any source distribution.
*
******************************************************************************/
+#ifndef CCM_ALT_H
+#define CCM_ALT_H
-#ifndef _SLI_ICACHE_DISABLE_H_
-#define _SLI_ICACHE_DISABLE_H_
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_ccm Accelerated AES-CCM AEAD Cipher
+ * \brief Accelerated AES-CCM AEAD cipher for the mbed TLS API using the CRYPTOACC
+ * or SE peripheral
+ *
+ * \{
+ ******************************************************************************/
+#if defined(MBEDTLS_CCM_ALT)
#ifdef __cplusplus
extern "C" {
#endif
-/*******************************************************************************
- ***************************** PROTOTYPES **********************************
- ******************************************************************************/
-
-/***************************************************************************//**
- * @brief
- * Disable the ICACHE by creating MPU entries for FLASH and RAM code with
- * non-cacheable attributes. This will overwrite any previous MPU
- * configuration.
- ******************************************************************************/
-void sli_icache_disable(void);
+/**
+ * \brief The CCM context-type definition. The CCM context is passed
+ * to the APIs called.
+ */
+typedef struct {
+ unsigned char key[32]; /*!< The key in use. */
+ unsigned int keybits;
+}
+mbedtls_ccm_context;
#ifdef __cplusplus
}
#endif
-#endif /* _SLI_ICACHE_DISABLE_H_ */
+#endif /* MBEDTLS_CCM_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_ccm) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* CCM_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/cmac_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/cmac_alt.h
new file mode 100644
index 000000000..d4a89c22d
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/cmac_alt.h
@@ -0,0 +1,77 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS AES-CMAC cipher
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef CMAC_ALT_H
+#define CMAC_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_cmac Accelerated AES-CMAC Cipher
+ * \brief Accelerated AES-CMAC cipher for the mbed TLS API using the CRYPTOACC or
+ * SE peripheral. This implementation builds on the PSA Crypto drivers
+ * (\ref sl_psa_drivers).
+ *
+ * \{
+ ******************************************************************************/
+#if defined(MBEDTLS_CMAC_ALT)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_types.h"
+#define SL_MAC_OPERATION_CTX_TYPE sli_se_transparent_mac_operation_t
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_types.h"
+#define SL_MAC_OPERATION_CTX_TYPE sli_cryptoacc_transparent_mac_operation_t
+#endif
+
+struct mbedtls_cmac_context_t {
+ SL_MAC_OPERATION_CTX_TYPE ctx;
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_CMAC_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_cmac) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* CMAC_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ecjpake_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ecjpake_alt.h
new file mode 100644
index 000000000..24ba87fea
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/ecjpake_alt.h
@@ -0,0 +1,90 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS Elliptic Curve J-PAKE
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef ECJPAKE_ALT_H
+#define ECJPAKE_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_jpake Accelerated Elliptic Curve J-PAKE
+ * \brief Accelerated Elliptic Curve J-PAKE for the mbed TLS API using the SE
+ * peripheral
+ *
+ * \{
+ ******************************************************************************/
+
+#if defined(MBEDTLS_ECJPAKE_ALT)
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * EC J-PAKE context structure.
+ *
+ * J-PAKE is a symmetric protocol, except for the identifiers used in
+ * Zero-Knowledge Proofs, and the serialization of the second message
+ * (KeyExchange) as defined by the Thread spec.
+ *
+ * In order to benefit from this symmetry, we choose a different naming
+ * convetion from the Thread v1.0 spec. Correspondance is indicated in the
+ * description as a pair C: client name, S: server name
+ */
+typedef struct {
+ uint32_t curve_flags; /**< Curve flags to use */
+ mbedtls_ecjpake_role role; /**< Are we client or server? */
+ int point_format; /**< Format for point export */
+
+ char pwd[33]; /**< J-PAKE password */
+ size_t pwd_len; /**< J-PAKE password length */
+
+ uint8_t r[32]; /**< Random scalar for exchange */
+ uint8_t Xm1[64]; /**< Our point 1 (round 1) */
+ uint8_t Xm2[64]; /**< Our point 2 (round 1) */
+ uint8_t Xp1[64]; /**< Their point 1 (round 1) */
+ uint8_t Xp2[64]; /**< Their point 2 (round 1) */
+ uint8_t Xp[64]; /**< Their point (round 2) */
+} mbedtls_ecjpake_context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_ECJPAKE_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_jpake) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* ECJPAKE_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/gcm_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/gcm_alt.h
new file mode 100644
index 000000000..8f6529352
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/gcm_alt.h
@@ -0,0 +1,122 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS Galois/Counter Mode (GCM) for AES-128-bit block ciphers
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef GCM_ALT_H
+#define GCM_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_gcm Accelerated GCM AES-128 Cipher
+ * \brief Accelerated AES-GCM-128 cipher for the mbed TLS API using the CRYPTOACC
+ * or SE peripheral
+ *
+ * \{
+ * This module implements the GCM AES-128 cipher, as defined in
+ * D. McGrew, J. Viega, The Galois/Counter Mode of Operation
+ * (GCM), Natl. Inst. Stand. Technol.
+ * For more information on GCM, see NIST SP 800-38D: Recommendation for
+ * Block Cipher Modes of Operation: Galois/Counter Mode (GCM) and GMAC.
+ *
+ ******************************************************************************/
+
+#if defined(MBEDTLS_GCM_ALT)
+/* SiliconLabs CRYPTO hardware acceleration implementation */
+
+#include "em_device.h"
+#include
+
+#if defined(CRYPTO_PRESENT)
+#include "em_crypto.h"
+#elif defined(CRYPTOACC_PRESENT)
+#include "sx_aes.h"
+#include "sl_enum.h"
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(CRYPTOACC_PRESENT)
+SL_ENUM(sli_gcm_mode_t) {
+ SLI_GCM_ENC = 1,
+ SLI_GCM_DEC = 2,
+};
+#endif
+
+/**
+ * \brief The GCM context structure.
+ */
+typedef struct {
+ unsigned int keybits; /*!< Size of key */
+ uint64_t len; /*!< Total length of encrypted data. */
+ uint64_t add_len; /*!< Total length of additional data. */
+
+#if defined(CRYPTO_PRESENT)
+
+ CRYPTO_DData_TypeDef key; /*!< AES key, 128 or 256 bits */
+ int mode; /*!< Encryption or decryption */
+ CRYPTO_TypeDef* device; /*!< CRYPTO device to use */
+ CRYPTO_Data_TypeDef ghash_state; /*!< GHASH state */
+ CRYPTO_Data_TypeDef gctr_state; /*!< GCTR counter value */
+ CRYPTO_Data_TypeDef ghash_key; /*!< GHASH key (is a constant value
+ which is faster to restore than
+ to reconstruct each time). */
+#elif defined(SEMAILBOX_PRESENT)
+ unsigned char key[32]; /*!< AES key 128, 192 or 256 bits */
+ int mode; /*!< Encryption or decryption */
+ size_t iv_len; /*!< IV length */
+ bool last_op; /*!< Last streaming block identified */
+ uint8_t tagbuf[16]; /*!< Buffer for storing tag */
+ uint8_t se_ctx_enc[32]; /*!< SE GCM encryption state */
+ uint8_t se_ctx_dec[32]; /*!< SE GCM decryption state */
+
+#elif defined(CRYPTOACC_PRESENT)
+ unsigned char key[32]; /*!< AES key 128, 192 or 256 bits */
+ sli_gcm_mode_t dir; /*!< Encryption or decryption */
+ uint8_t sx_ctx[AES_CTX_xCM_SIZE]; /*!< CRYPTOACC GCM state */
+#endif
+}
+mbedtls_gcm_context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_GCM_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_gcm) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* GCM_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/se_management.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/se_management.h
new file mode 100644
index 000000000..1c7484bb6
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/se_management.h
@@ -0,0 +1,127 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs SE device management interface.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SE_MANAGEMENT_H
+#define SE_MANAGEMENT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_se_management Peripheral Instance Management: Secure Engine
+ * \brief Concurrency management functions for Secure Engine mailbox access
+ *
+ * \{
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+
+#include "sli_se_manager_mailbox.h"
+#include "sli_se_manager_internal.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Get ownership of the SE mailbox
+ *
+ * \return 0 if successful, negative on error
+ */
+__STATIC_INLINE int se_management_acquire(void)
+{
+ // Acquire SE manager lock
+ return sli_se_lock_acquire() == SL_STATUS_OK ? 0 : -1;
+}
+
+/**
+ * \brief Release ownership of the SE mailbox
+ *
+ * \return 0 if successful, negative on error
+ */
+__STATIC_INLINE int se_management_release(void)
+{
+ // Release SE manager lock
+ return sli_se_lock_release() == SL_STATUS_OK ? 0 : -1;
+}
+
+/**
+ * \brief Handle the response of the previously executed command.
+ *
+ * \details This function handles the response of the previously
+ * executed HSE command by calling sli_se_mailbox_read_response
+ * to read the response value and returns it. For Series-3 this
+ * function executes sli_se_mailbox_read_response inside an
+ * atomic section and clears the SEMAILBOX FIFO at the end.
+ *
+ * \note This function implements a workaround that is planned to be
+ * replaced in https://jira.silabs.com/browse/PSEC-5643.
+ *
+ * \return Value returned by sli_se_mailbox_read_response.
+ ******************************************************************************/
+__STATIC_INLINE sli_se_mailbox_response_t sli_se_handle_mailbox_response(void)
+{
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ CORE_DECLARE_IRQ_STATE;
+ CORE_ENTER_ATOMIC();
+ #endif
+
+ // Read command response
+ sli_se_mailbox_response_t se_mailbox_response = sli_se_mailbox_read_response();
+
+ #if defined(_SILICON_LABS_32B_SERIES_3)
+ CORE_EXIT_ATOMIC();
+
+ // Read the command handle word ( not used ) from the SEMAILBOX FIFO
+ SEMAILBOX_HOST->FIFO;
+ #endif
+
+ // Return command response
+ return se_mailbox_response;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* SEMAILBOX_PRESENT */
+
+/** \} (end addtogroup sl_se_management) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+
+/// @endcond
+
+#endif /* SE_MANAGEMENT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha1_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha1_alt.h
new file mode 100644
index 000000000..e0e9113a6
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha1_alt.h
@@ -0,0 +1,81 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS SHA-1 cryptographic hash function
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SHA1_ALT_H
+#define SHA1_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_sha1 Accelerated SHA-1 Hash Function
+ * \brief Accelerated mbed TLS SHA-1 cryptographic hash function for the mbed
+ * TLS API using Silicon Labs peripherals. This implementation builds on
+ * the PSA Crypto drivers (\ref sl_psa_drivers).
+ *
+ * \{
+ ******************************************************************************/
+
+#if defined(MBEDTLS_SHA1_ALT)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_types.h"
+#define SL_HASH_OPERATION_CTX_TYPE sli_se_transparent_hash_operation_t
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_types.h"
+#define SL_HASH_OPERATION_CTX_TYPE sli_cryptoacc_transparent_hash_operation_t
+#endif
+
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief SHA-1 context structure
+ */
+typedef SL_HASH_OPERATION_CTX_TYPE mbedtls_sha1_context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #if defined(MBEDTLS_SHA1_ALT) */
+
+/** \} (end addtogroup sl_mbedtls_plugins_sha1) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* SHA1_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha256_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha256_alt.h
new file mode 100644
index 000000000..b3cb2a07f
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha256_alt.h
@@ -0,0 +1,83 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS SHA-224 and SHA-256 cryptographic hash functions
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SHA256_ALT_H
+#define SHA256_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_sha256 Accelerated SHA-224/SHA-256 Hash Function
+ * \brief Accelerated mbed TLS SHA-224/SHA-256 cryptographic hash functions for
+ * the mbed TLS API using Silicon Labs peripherals. This implementation
+ * builds on the PSA Crypto drivers (\ref sl_psa_drivers).
+ *
+ * \{
+ ******************************************************************************/
+
+#if defined(MBEDTLS_SHA256_ALT)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_types.h"
+#define SL_HASH_OPERATION_CTX_TYPE sli_se_transparent_hash_operation_t
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_types.h"
+#define SL_HASH_OPERATION_CTX_TYPE sli_cryptoacc_transparent_hash_operation_t
+#endif
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief SHA-256 context structure
+ */
+typedef SL_HASH_OPERATION_CTX_TYPE mbedtls_sha256_context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* #if defined(MBEDTLS_SHA256_ALT) */
+
+/** \} (end addtogroup sl_mbedtls_plugins_sha256) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* SHA256_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha512_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha512_alt.h
new file mode 100644
index 000000000..8eb32f2ff
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sha512_alt.h
@@ -0,0 +1,80 @@
+/***************************************************************************//**
+ * @file
+ * @brief Accelerated mbed TLS SHA-384 and SHA-512 cryptographic hash functions
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SHA512_ALT_H
+#define SHA512_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_sha512 Accelerated SHA-384/SHA-512 Hash Function
+ * \brief Accelerated mbed TLS SHA-384/SHA-512 cryptographic hash function for
+ * the mbed TLS API using Silicon Labs peripherals. This implementation
+ * builds on the PSA Crypto drivers (\ref sl_psa_drivers).
+ *
+ * \{
+ ******************************************************************************/
+
+#if defined(MBEDTLS_SHA512_ALT)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_types.h"
+#define SL_HASH_OPERATION_CTX_TYPE sli_se_transparent_hash_operation_t
+#endif
+
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief SHA-512 context structure
+ */
+typedef SL_HASH_OPERATION_CTX_TYPE mbedtls_sha512_context;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_SHA512_ALT */
+
+/** \} (end addtogroup sl_mbedtls_plugins_sha512) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* SHA512_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_mbedtls.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_mbedtls.h
new file mode 100644
index 000000000..c54332436
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_mbedtls.h
@@ -0,0 +1,42 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Laboratories platform integration for mbedTLS
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SL_MBEDTLS_H
+#define SL_MBEDTLS_H
+
+/**
+ * Initialize the Silicon Labs platform integration of mbedTLS.
+ *
+ * This function must be called by an application before using any mbedTLS
+ * functions. This function will make sure that the platform hooks in mbedTLS
+ * are configured to ensure correct runtime behavior.
+ */
+void sl_mbedtls_init(void);
+
+#endif // SL_MBEDTLS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_crypto.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_crypto.h
new file mode 100644
index 000000000..af7160fac
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_crypto.h
@@ -0,0 +1,179 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto utility functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_PSA_CRYPTO_H
+#define SL_PSA_CRYPTO_H
+
+#include "psa/crypto.h"
+
+#include "sl_psa_values.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Functions
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_key_management
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * @brief
+ * Set the location attribute of a key in PSA Crypto according to a given
+ * persistence level, and a preferred location. If the preferred location is
+ * not available, perhaps because the device does not support this location,
+ * the primary local storage (PSA_KEY_LOCATION_LOCAL_STORAGE) will be used.
+ *
+ * @param[out] attributes
+ * The attribute structure to write to.
+ *
+ * @param[in] persistence
+ * The persistence level of the key. If this is #PSA_KEY_PERSISTENCE_VOLATILE,
+ * the key will be volatile, and the key identifier attribute is reset to 0.
+ *
+ * @param[in] preferred_location
+ * The location of the key. Can be \ref SL_PSA_KEY_LOCATION_WRAPPED,
+ * \ref SL_PSA_KEY_LOCATION_BUILTIN, or PSA_KEY_LOCATION_LOCAL_STORAGE.
+ ******************************************************************************/
+void sl_psa_set_key_lifetime_with_location_preference(
+ psa_key_attributes_t *attributes,
+ psa_key_persistence_t persistence,
+ psa_key_location_t preferred_location);
+
+/***************************************************************************//**
+ * @brief
+ * Get the 'most secure' location attribute of a key usable in this
+ * implementation of PSA Crypto.
+ *
+ * @return
+ * The 'most secure' usable location of a key. In order of preference, the
+ * following values can be returned: \ref SL_PSA_KEY_LOCATION_WRAPPED,
+ * or PSA_KEY_LOCATION_LOCAL_STORAGE.
+ ******************************************************************************/
+psa_key_location_t sl_psa_get_most_secure_key_location(void);
+
+/** \} (end addtogroup sl_psa_key_management) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef DOXYGEN
+/***************************************************************************//**
+ * \defgroup sl_psa_crypto PSA Crypto Extensions
+ * @brief Silicon Labs specific extensions to the PSA Crypto API
+ * @{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \defgroup sl_psa_key_derivation Key Derivation
+ * @brief Key Derivation extensions to the PSA Crypto API
+ * @{
+ ******************************************************************************/
+
+// This function is declared in psa/crypto.h, which currently is not included with
+// doxygen. Declared here for visibility on docs.silabs.com.
+
+/** Perform a single-shot key derivation operation and output the resulting key.
+ *
+ * This function supports HKDF and PBKDF2.
+ *
+ * \note
+ * - PBKDF2-CMAC is not suported on xG21
+ * - PBKDF2-CMAC is only KDF supported for xG27
+ *
+ * This function obtains its secret input from a key object, and any additional
+ * inputs such as buffers and integers. The output of this function is a key
+ * object containing the output of the selected key derivation function.
+ *
+ *
+ * \param alg The key derivation algorithm to compute
+ * (\c PSA_ALG_XXX value such that
+ * #PSA_ALG_IS_KEY_DERIVATION(\p alg) is true).
+ * \param key_in Identifier of the secret key to input to the
+ * operation. It must allow the usage
+ * PSA_KEY_USAGE_DERIVE and be of a symmetric
+ * type.
+ * \param[in] info A context- and application specific
+ * information string. Only used for HKDF, but
+ * can be omitted.
+ * \param info_length The length of the provided info in bytes.
+ * \param[in] salt An optional salt value (a non-secret random value).
+ * Used for both HKDF and PBKDF2. Recommended for
+ * PBKDF2.
+ * \param salt_length The length of the provided salt in bytes.
+ * \param iterations The number of iterations to use. Maximum
+ * supported value is 16384. Only used for PBKDF2.
+ * \param[in] key_out_attributes The attributes for the new key output by the
+ * derivation operation. The key must be of a
+ * symmetric type.
+ * \param[out] key_out The identifier of the new key output by the
+ * derivation operation.
+ *
+ * \retval #PSA_SUCCESS
+ * Success.
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ * The input key does not have the required usage policy set.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ * The input- or output key is not of a symmetric type.
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ * The input- or output key is larger than what the SE can handle.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ * The requested algorithm is not supported.
+ * \retval #PSA_ERROR_HARDWARE_FAILURE
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ * \retval #PSA_ERROR_STORAGE_FAILURE
+ * \retval #PSA_ERROR_BAD_STATE
+ * The library has not been previously initialized by psa_crypto_init().
+ * It is implementation-dependent whether a failure to initialize
+ * results in this error code.
+ */
+psa_status_t sl_psa_key_derivation_single_shot(
+ psa_algorithm_t alg,
+ mbedtls_svc_key_id_t key_in,
+ const uint8_t *info,
+ size_t info_length,
+ const uint8_t *salt,
+ size_t salt_length,
+ size_t iterations,
+ const psa_key_attributes_t *key_out_attributes,
+ mbedtls_svc_key_id_t *key_out);
+
+/** @} */ // end defgroup sl_psa_key_derivation
+/** @} */ // end defgroup sl_psa_crypto
+
+#endif // DOXYGEN
+#endif // SL_PSA_CRYPTO_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_values.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_values.h
new file mode 100644
index 000000000..90a1842d6
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sl_psa_values.h
@@ -0,0 +1,192 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Values.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SL_PSA_VALUES_H
+#define SL_PSA_VALUES_H
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SL_TRUSTZONE_NONSECURE)
+// include path: trusted-firmware-m/interface/include
+ #include "psa/crypto.h"
+#else
+// include path: mbedtls/include
+ #include "psa/crypto_driver_common.h"
+#endif
+
+//------------------------------------------------------------------------------
+// Device Agnostic Values
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_crypto
+ * @{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_key_management Key Management
+ * \brief PSA Crypto key management on Silicon Labs devices
+ *
+ * @section built_in_keys Built-in Keys
+ * The PSA Crypto API provides a mechanism for accessing keys that are stored
+ * in the hardware. Available built-in key IDs vary for different family of devices.
+ * For devices vith a Virtual Secure Engine see
+ * \ref sl_psa_drivers_cryptoacc_builtin_keys , and for devices with a Hardware
+ * Secure Engine see \ref sl_psa_drivers_se_builtin_keys .
+ *
+ * Refer to AN1311 for more information on the
+ * usage of builtin keys through PSA Crypto.
+ * @{
+ ******************************************************************************/
+
+/// Location value for keys to be stored encrypted with the device-unique secret.
+/// Wrapped key locations are vailable on Secure Vault High devices.
+#define SL_PSA_KEY_LOCATION_WRAPPED ((psa_key_location_t)0x000001UL)
+
+/// Location value for usage of built-in keys.
+/// Built-in key locations are available on Secure Vault Mid (and higher) devices
+/// with PUF-key support.
+// Identical to SL_PSA_KEY_LOCATION_WRAPPED for implementation-related reasons.
+#define SL_PSA_KEY_LOCATION_BUILTIN ((psa_key_location_t)0x000001UL)
+
+// #define SLE_PSA_KEY_LOCATION_SE_VOLATILE ((psa_key_location_t)0x800000UL)
+// #define SLE_PSA_KEY_LOCATION_KSU ((psa_key_location_t)0x800001UL)
+
+//------------------------------------------------------------------------------
+// Hardware Secure Engine
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+/// Location value for keys to be stored encrypted with the device-unique secret,
+/// or for accessing the built-in keys on Vault-High devices. Users should use
+/// SL_PSA_KEY_LOCATION_WRAPPED or SL_PSA_KEY_LOCATION_BUILTIN instead.
+#define PSA_KEY_LOCATION_SL_SE_OPAQUE (SL_PSA_KEY_LOCATION_WRAPPED)
+
+#if defined(SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS) || defined(SL_TRUSTZONE_NONSECURE)
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se_builtin_keys Built-in keys on devices with a HSE
+ * \brief These key ID values allow access to the keys which respectively are and
+ * can be preprovisioned in Secure Engine (HSE) devices.
+ *
+ * The key IDs are within the the builtin range of PSA [MBEDTLS_PSA_KEY_ID_BUILTIN_MIN,
+ * MBEDLTS_PSA_KEY_ID_BUILTIN_MAX].
+ *
+ * @{
+ ******************************************************************************/
+#if defined(SLI_PSA_DRIVER_FEATURE_ATTESTATION)
+ #ifndef SL_SE_BUILTIN_KEY_APPLICATION_ATTESTATION_ID
+/// Vendor Key ID for the built-in application identity key on Vault High devices.
+ #define SL_SE_BUILTIN_KEY_APPLICATION_ATTESTATION_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 5)
+ #endif
+
+ #ifndef SL_SE_BUILTIN_KEY_SYSTEM_ATTESTATION_ID
+/// Vendor Key ID for the built-in SE identity key on Vault High devices.
+ #define SL_SE_BUILTIN_KEY_SYSTEM_ATTESTATION_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 4)
+ #endif
+#endif // SLI_PSA_DRIVER_FEATURE_ATTESTATION
+
+#ifndef SL_SE_BUILTIN_KEY_SECUREBOOT_ID
+/// Vendor Key ID for the Secure Boot verifying key provisioned to the Secure Engine.
+ #define SL_SE_BUILTIN_KEY_SECUREBOOT_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 1)
+#endif
+
+#ifndef SL_SE_BUILTIN_KEY_SECUREDEBUG_ID
+/// Vendor Key ID for the Secure Debug verifying key provisioned to the Secure Engine.
+ #define SL_SE_BUILTIN_KEY_SECUREDEBUG_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 2)
+#endif
+
+#ifndef SL_SE_BUILTIN_KEY_AES128_ID
+/// Vendor Key ID for AES-128 key provisioned to the Secure Engine.
+ #define SL_SE_BUILTIN_KEY_AES128_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 3)
+#endif
+
+#ifndef SL_SE_BUILTIN_KEY_TRUSTZONE_ID
+/// Vendor Key ID for the TrustZone root key.
+ #define SL_SE_BUILTIN_KEY_TRUSTZONE_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 6)
+#endif
+
+#ifndef SL_SE_BUILTIN_KEY_AES128_ALG
+/// Algorithm with which the #SL_SE_BUILTIN_KEY_AES128_ID key will be used.
+// PSA Crypto only allows one specific usage algorithm per built-in key ID.
+ #define SL_SE_BUILTIN_KEY_AES128_ALG (SL_SE_BUILTIN_KEY_AES128_ALG_CONFIG)
+#endif
+
+/** @} (end addtogroup sl_psa_drivers_se_builtin_keys) */
+
+#endif // SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS || SL_TRUSTZONE_NONSECURE
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+//------------------------------------------------------------------------------
+// Virtual Secure Engine
+
+#if defined(SLI_PSA_DRIVER_FEATURE_PUF_KEY)
+
+/// Location value for built-in keys on VSE archtectures
+/// Users should use \ref SL_PSA_KEY_LOCATION_BUILTIN instead
+#define PSA_KEY_LOCATION_SL_CRYPTOACC_OPAQUE (SL_PSA_KEY_LOCATION_BUILTIN)
+
+#if defined(SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS) || defined(SL_TRUSTZONE_NONSECURE)
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_cryptoacc_builtin_keys Built-in keys on devices with a VSE
+ * \brief These key ID values allow access to the keys which respectively are and
+ * can be preprovisioned in Virtual Secure Engine (VSE) devices.
+ *
+ * The key ID's are within the the builtin range of PSA [MBEDTLS_PSA_KEY_ID_BUILTIN_MIN,
+ * MBEDLTS_PSA_KEY_ID_BUILTIN_MAX].
+ * @{
+ ******************************************************************************/
+
+#ifndef SL_CRYPTOACC_BUILTIN_KEY_PUF_ID
+/// Vendor Key ID for the PUF-derived hardware unique key.
+ #define SL_CRYPTOACC_BUILTIN_KEY_PUF_ID (MBEDTLS_PSA_KEY_ID_BUILTIN_MIN + 1)
+#endif
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/// Internal ID for PUF-derived key.
+#define SLI_CRYPTOACC_BUILTIN_KEY_PUF_SLOT (SL_CRYPTOACC_BUILTIN_KEY_PUF_ID && 0xFF)
+
+/// Version of opaque header struct.
+#define SLI_CRYPTOACC_OPAQUE_KEY_CONTEXT_VERSION (0x00)
+
+/// @endcond
+
+/** @} (end addtogroup sl_psa_drivers_cryptoacc) */
+
+#endif // SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS || SL_TRUSTZONE_NONSECURE
+
+/** @} (end addtogroup sl_psa_key_management) */
+/** @} (end addtogroup sl_psa_drivers) */
+
+#endif // SLI_PSA_DRIVER_FEATURE_PUF_KEY
+
+#endif // SL_PSA_VALUES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sli_psa_crypto.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sli_psa_crypto.h
new file mode 100644
index 000000000..0461d8071
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/sli_psa_crypto.h
@@ -0,0 +1,155 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs internal PSA Crypto utility functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSA_CRYPTO_H
+#define SLI_PSA_CRYPTO_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+#include "psa/crypto.h"
+
+#include
+#include
+
+// -----------------------------------------------------------------------------
+// Defines and Macros
+
+// Persistent key ID ranges.
+#define SLI_PSA_KEY_ID_RANGE_THREAD_START (0x00020000)
+#define SLI_PSA_KEY_ID_RANGE_THREAD_END (0x0002FFFF)
+#define SLI_PSA_KEY_ID_RANGE_ZIGBEE_START (0x00030000)
+#define SLI_PSA_KEY_ID_RANGE_ZIGBEE_END (0x0003FFFF)
+
+// Convert a type name into an enum entry name, since enum entries and type
+// names share the same C namespace.
+#define SLI_PSA_CONTEXT_ENUM_NAME(NAME) \
+ NAME ## _e
+#define SLI_MBEDTLS_CONTEXT_ENUM_NAME(NAME) \
+ NAME ## _e
+
+// Convenience macros for getting the size of a context structure type
+#define SLI_PSA_CONTEXT_GET_RUNTIME_SIZE(NAME) \
+ (sli_psa_context_get_size(SLI_PSA_CONTEXT_ENUM_NAME(NAME)))
+#define SLI_MBEDTLS_CONTEXT_GET_RUNTIME_SIZE(NAME) \
+ (sli_mbedtls_context_get_size(SLI_MBEDTLS_CONTEXT_ENUM_NAME(NAME)))
+
+// -----------------------------------------------------------------------------
+// Type Definitions
+
+// Type names supported by sli_psa_context_get_size.
+typedef enum {
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_hash_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_cipher_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_pake_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_mac_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_aead_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_key_derivation_operation_t),
+ SLI_PSA_CONTEXT_ENUM_NAME(psa_key_attributes_t)
+} sli_psa_context_name_t;
+
+// Type names supported by sli_mbedtls_context_get_size.
+typedef enum {
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_aes_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ccm_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_cipher_context_t),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ctr_drbg_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_entropy_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_md_context_t),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_nist_kw_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_pk_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_sha1_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_sha256_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_config),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_context),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_cookie_ctx),
+ SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_x509_crt)
+} sli_mbedtls_context_name_t;
+
+// -----------------------------------------------------------------------------
+// Function Declarations
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @brief
+ * Get the size of a named PSA context structure. This is valuable for code
+ * shipping as precompiled libraries and needing to link with a source version
+ * of PSA Crypto, since the context structures can change in size based on
+ * configuration options which might not have been present at library
+ * compilation time.
+ *
+ * @param ctx_type
+ * Which context structure to get the size of. Use
+ * #SLI_PSA_CONTEXT_ENUM_NAME(psa_xxx_operation_t) as argument.
+ *
+ * @return
+ * Size (in bytes) of the context structure as expected by the current build.
+ ******************************************************************************/
+size_t sli_psa_context_get_size(sli_psa_context_name_t ctx_type);
+
+/***************************************************************************//**
+ * @brief
+ * Get the size of a named Mbed TLS context structure. This is valuable for
+ * code shipping as precompiled libraries and needing to link with a source
+ * version of PSA Crypto, since the context structures can change in size
+ * based on configuration options which might not have been present at library
+ * compilation time.
+ *
+ * @param ctx_type
+ * Which context structure to get the size of. Use
+ * #SLI_MBEDTLS_CONTEXT_ENUM_NAME() as argument.
+ *
+ * @return
+ * Size (in bytes) of the context structure as expected by the current build.
+ ******************************************************************************/
+size_t sli_mbedtls_context_get_size(sli_mbedtls_context_name_t ctx_type);
+
+/***************************************************************************//**
+ * @brief
+ * Check if a key is copyable even though the key attributes do not have the
+ * PSA_KEY_USAGE_COPY flag set.
+ *
+ * @param key_id
+ * The key ID of the key of interest.
+ *
+ * @return
+ * True if the key should be unconditionally copyable, otherwise false.
+ ******************************************************************************/
+bool sli_psa_key_is_unconditionally_copyable(psa_key_id_t key_id);
+
+#ifdef __cplusplus
+}
+#endif
+
+/// @endcond
+
+#endif // SLI_PSA_CRYPTO_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/threading_alt.h b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/threading_alt.h
new file mode 100644
index 000000000..81aed2811
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/inc/threading_alt.h
@@ -0,0 +1,259 @@
+/**************************************************************************/ /**
+ * @file
+ * @brief Threading primitive implementation for mbed TLS
+ *******************************************************************************
+ * # License
+ * Copyright 2021 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef THREADING_ALT_H
+#define THREADING_ALT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_mbedtls_plugins_threading Threading Primitives
+ * \brief Threading primitive implementation for mbed TLS
+ *
+ * This module provides a threading implementation, based on CMSIS RTOS2, that
+ * can be used by Mbed TLS when threading is required.
+ *
+ * \note These plugins are automatically enabled when creating an SLC project
+ * with Micrium OS or FreeRTOS with Mbed TLS.
+ *
+ * \{
+ ******************************************************************************/
+
+#include
+
+#if defined(MBEDTLS_THREADING_ALT) && defined(MBEDTLS_THREADING_C)
+
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+ #include "sl_component_catalog.h"
+#endif
+
+#if defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT) || defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
+
+#include "sli_psec_osal.h"
+#include "sl_assert.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define SL_THREADING_ALT
+
+#define MUTEX_INIT = { 0 }
+
+/// Mbed TLS mutexes maps to SLI PSEC OSAL locks.
+typedef sli_psec_osal_lock_t mbedtls_threading_mutex_t;
+
+typedef struct mbedtls_test_thread_t {
+ osThreadAttr_t thread_attr;
+ osThreadId_t thread_ID;
+} mbedtls_test_thread_t;
+
+#include "mbedtls/threading.h"
+
+#ifndef MBEDTLS_ERR_THREADING_THREAD_ERROR
+#define MBEDTLS_ERR_THREADING_THREAD_ERROR -0x001F
+#endif
+/**
+ * \brief Set mutex recursive
+ *
+ * \param mutex Pointer to the mutex
+ */
+static inline void THREADING_SetRecursive(mbedtls_threading_mutex_t *mutex)
+{
+ sl_status_t sl_status = sli_psec_osal_set_recursive_lock((sli_psec_osal_lock_t*)mutex);
+ EFM_ASSERT(sl_status == SL_STATUS_OK);
+}
+
+/**
+ * \brief Initialize a given mutex
+ *
+ * \param mutex Pointer to the mutex needing initialization
+ */
+static inline void THREADING_InitMutex(mbedtls_threading_mutex_t *mutex)
+{
+ sl_status_t sl_status = sli_psec_osal_init_lock(mutex);
+ EFM_ASSERT(sl_status == SL_STATUS_OK);
+}
+
+/**
+ * \brief Free a given mutex
+ *
+ * \param mutex Pointer to the mutex being freed
+ */
+static inline void THREADING_FreeMutex(mbedtls_threading_mutex_t *mutex)
+{
+ sl_status_t sl_status = sli_psec_osal_free_lock(mutex);
+ EFM_ASSERT(sl_status == SL_STATUS_OK);
+}
+
+/**
+ * \brief Pend on a mutex
+ *
+ * \param mutex Pointer to the mutex being pended on
+ *
+ * \return RTOS_ERR_NONE on success, error code otherwise.
+ */
+static inline int THREADING_TakeMutexBlocking(mbedtls_threading_mutex_t *mutex)
+{
+ if (mutex == NULL) {
+ return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
+ }
+ sl_status_t sl_status = sli_psec_osal_take_lock(mutex);
+ return (sl_status == SL_STATUS_OK ? 0 : MBEDTLS_ERR_THREADING_MUTEX_ERROR);
+}
+
+/**
+ * \brief Try to own a mutex without waiting
+ *
+ * \param mutex Pointer to the mutex being tested
+ *
+ * \return RTOS_ERR_NONE on success (= mutex successfully owned), error code otherwise.
+ */
+static inline int THREADING_TakeMutexNonBlocking(mbedtls_threading_mutex_t *mutex)
+{
+ if (mutex == NULL) {
+ return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
+ }
+ sl_status_t sl_status = sli_psec_osal_take_lock_non_blocking(mutex);
+ return (sl_status == SL_STATUS_OK ? 0 : MBEDTLS_ERR_THREADING_MUTEX_ERROR);
+}
+
+/**
+ * \brief Release a mutex
+ *
+ * \param mutex Pointer to the mutex being released
+ *
+ * \return RTOS_ERR_NONE on success, error code otherwise.
+ */
+static inline int THREADING_GiveMutex(mbedtls_threading_mutex_t *mutex)
+{
+ if (mutex == NULL) {
+ return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
+ }
+ sl_status_t sl_status = sli_psec_osal_give_lock(mutex);
+ return (sl_status == SL_STATUS_OK ? 0 : MBEDTLS_ERR_THREADING_MUTEX_ERROR);
+}
+
+/**
+ * \brief The thread create function implementation
+ *
+ * \param thread Pointer to the thread being created
+ * \param thread_func Pointer to the thread function
+ * \param thread_data Pointer to the thread data
+ */
+static inline int THREADING_ThreadCreate(mbedtls_test_thread_t *thread,
+ void (*thread_func)(
+ void *),
+ void *thread_data)
+{
+ if (thread == NULL || thread_func == NULL) {
+ return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
+ }
+
+ thread->thread_ID = osThreadNew(thread_func, thread_data, &thread->thread_attr);
+ if (thread->thread_ID == NULL) {
+ return MBEDTLS_ERR_THREADING_THREAD_ERROR;
+ }
+
+ return 0;
+}
+
+/**
+ * \brief The thread join function implementation
+ *
+ * \param thread Pointer to the thread being joined
+ */
+static inline int THREADING_ThreadJoin(mbedtls_test_thread_t *thread)
+{
+ if (thread == NULL) {
+ return MBEDTLS_ERR_THREADING_BAD_INPUT_DATA;
+ }
+
+ if (osThreadJoin(thread->thread_ID) != 0) {
+ return MBEDTLS_ERR_THREADING_THREAD_ERROR;
+ }
+
+ return 0;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SL_CATALOG_MICRIUMOS_KERNEL_PRESENT || SL_CATALOG_FREERTOS_KERNEL_PRESENT
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Forward declaration of threading_set_alt */
+void mbedtls_threading_set_alt(void (*mutex_init)(mbedtls_threading_mutex_t *),
+ void (*mutex_free)(mbedtls_threading_mutex_t *),
+ int (*mutex_lock)(mbedtls_threading_mutex_t *),
+ int (*mutex_unlock)(mbedtls_threading_mutex_t *) );
+
+/* Forward declaration of test_thread_set_alt */
+void mbedtls_test_thread_set_alt(int (*thread_create)(mbedtls_test_thread_t *thread,
+ void (*thread_func)(
+ void *),
+ void *thread_data),
+ int (*thread_join)(mbedtls_test_thread_t *thread));
+
+/**
+ * \brief Helper function for setting up the mbed TLS threading subsystem
+ */
+static inline void THREADING_setup(void)
+{
+ mbedtls_threading_set_alt(&THREADING_InitMutex,
+ &THREADING_FreeMutex,
+ &THREADING_TakeMutexBlocking,
+ &THREADING_GiveMutex);
+}
+
+static inline void THREAD_test_setup(void)
+{
+ mbedtls_test_thread_set_alt(&THREADING_ThreadCreate,
+ &THREADING_ThreadJoin);
+}
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* MBEDTLS_THREADING_ALT && MBEDTLS_THREADING_C */
+
+/** \} (end addtogroup sl_mbedtls_plugins_threading) */
+/** \} (end addtogroup sl_mbedtls_plugins) */
+/// @endcond
+
+#endif /* THREADING_ALT_H */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_aes.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_aes.c
new file mode 100644
index 000000000..162b4422d
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_aes.c
@@ -0,0 +1,774 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES abstraction based on CRYPTOACC
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes alternative plugin implementations of various
+ * functions in aes.c using the cryptographic accelerator incorporated
+ * in Series-2 devices with CRYPTOACC from Silicon Laboratories.
+ */
+
+/*
+ * The AES block cipher was designed by Vincent Rijmen and Joan Daemen.
+ *
+ * http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf
+ * http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
+ */
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include
+
+#if defined(MBEDTLS_AES_C)
+#if defined(MBEDTLS_AES_ALT)
+#include "cryptoacc_management.h"
+#include "sx_aes.h"
+#include "sx_errors.h"
+#include "mbedtls/aes.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+#include
+
+/*
+ * Initialize AES context
+ */
+void mbedtls_aes_init(mbedtls_aes_context *ctx)
+{
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+}
+
+/*
+ * Clear AES context
+ */
+void mbedtls_aes_free(mbedtls_aes_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+}
+
+#if defined(MBEDTLS_CIPHER_MODE_XTS)
+void mbedtls_aes_xts_init(mbedtls_aes_xts_context *ctx)
+{
+ mbedtls_aes_init(&ctx->crypt);
+ mbedtls_aes_init(&ctx->tweak);
+}
+
+void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ mbedtls_aes_free(&ctx->crypt);
+ mbedtls_aes_free(&ctx->tweak);
+}
+
+static int mbedtls_aes_xts_decode_keys(const unsigned char *key,
+ unsigned int keybits,
+ const unsigned char **key1,
+ unsigned int *key1bits,
+ const unsigned char **key2,
+ unsigned int *key2bits)
+{
+ const unsigned int half_keybits = keybits / 2;
+ const unsigned int half_keybytes = half_keybits / 8;
+
+ switch ( keybits ) {
+ case 256: break;
+ case 512: break;
+ default: return(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH);
+ }
+
+ *key1bits = half_keybits;
+ *key2bits = half_keybits;
+ *key1 = &key[0];
+ *key2 = &key[half_keybytes];
+
+ return 0;
+}
+
+int mbedtls_aes_xts_setkey_enc(mbedtls_aes_xts_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ int ret;
+ const unsigned char *key1 = NULL;
+ const unsigned char *key2 = NULL;
+ unsigned int key1bits = 0;
+ unsigned int key2bits = 0;
+
+ ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits,
+ &key2, &key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set the tweak key. Always set tweak key for the encryption mode. */
+ ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set crypt key for encryption. */
+ return mbedtls_aes_setkey_enc(&ctx->crypt, key1, key1bits);
+}
+
+int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ int ret;
+ const unsigned char *key1 = NULL;
+ const unsigned char *key2 = NULL;
+ unsigned int key1bits = 0;
+ unsigned int key2bits = 0;
+
+ ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits,
+ &key2, &key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set the tweak key. Always set tweak key for encryption. */
+ ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set crypt key for decryption. */
+ return mbedtls_aes_setkey_dec(&ctx->crypt, key1, key1bits);
+}
+
+/* Endianess with 64 bits values */
+#ifndef GET_UINT64_LE
+#define GET_UINT64_LE(n, b, i) \
+ { \
+ (n) = ( (uint64_t) (b)[(i) + 7] << 56) \
+ | ( (uint64_t) (b)[(i) + 6] << 48) \
+ | ( (uint64_t) (b)[(i) + 5] << 40) \
+ | ( (uint64_t) (b)[(i) + 4] << 32) \
+ | ( (uint64_t) (b)[(i) + 3] << 24) \
+ | ( (uint64_t) (b)[(i) + 2] << 16) \
+ | ( (uint64_t) (b)[(i) + 1] << 8) \
+ | ( (uint64_t) (b)[(i)]); \
+ }
+#endif
+
+#ifndef PUT_UINT64_LE
+#define PUT_UINT64_LE(n, b, i) \
+ { \
+ (b)[(i) + 7] = (unsigned char) ( (n) >> 56); \
+ (b)[(i) + 6] = (unsigned char) ( (n) >> 48); \
+ (b)[(i) + 5] = (unsigned char) ( (n) >> 40); \
+ (b)[(i) + 4] = (unsigned char) ( (n) >> 32); \
+ (b)[(i) + 3] = (unsigned char) ( (n) >> 24); \
+ (b)[(i) + 2] = (unsigned char) ( (n) >> 16); \
+ (b)[(i) + 1] = (unsigned char) ( (n) >> 8); \
+ (b)[(i)] = (unsigned char) ( (n) ); \
+ }
+#endif
+
+typedef unsigned char mbedtls_be128[16];
+
+/*
+ * GF(2^128) multiplication function
+ *
+ * This function multiplies a field element by x in the polynomial field
+ * representation. It uses 64-bit word operations to gain speed but compensates
+ * for machine endianess and hence works correctly on both big and little
+ * endian machines.
+ */
+static void mbedtls_gf128mul_x_ble(unsigned char r[16],
+ const unsigned char x[16])
+{
+ uint64_t a, b, ra, rb;
+
+ GET_UINT64_LE(a, x, 0);
+ GET_UINT64_LE(b, x, 8);
+
+ ra = (a << 1) ^ 0x0087 >> (8 - ( (b >> 63) << 3) );
+ rb = (a >> 63) | (b << 1);
+
+ PUT_UINT64_LE(ra, r, 0);
+ PUT_UINT64_LE(rb, r, 8);
+}
+
+/*
+ * AES-XTS buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_xts(mbedtls_aes_xts_context *ctx,
+ int mode,
+ size_t length,
+ const unsigned char data_unit[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int ret;
+ size_t blocks = length / 16;
+ size_t leftover = length % 16;
+ unsigned char tweak[16];
+ unsigned char prev_tweak[16];
+ unsigned char tmp[16];
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ /* Data units must be at least 16 bytes long. */
+ if ( length < 16 ) {
+ return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
+ }
+
+ /* NIST SP 800-38E disallows data units larger than 2**20 blocks. */
+ if ( length > (1 << 20) * 16 ) {
+ return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
+ }
+
+ /* Compute the tweak. */
+ ret = mbedtls_aes_crypt_ecb(&ctx->tweak, MBEDTLS_AES_ENCRYPT,
+ data_unit, tweak);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ while ( blocks-- ) {
+ size_t i;
+
+ if ( leftover && (mode == MBEDTLS_AES_DECRYPT) && blocks == 0 ) {
+ /* We are on the last block in a decrypt operation that has
+ * leftover bytes, so we need to use the next tweak for this block,
+ * and this tweak for the lefover bytes. Save the current tweak for
+ * the leftovers and then update the current tweak for use on this,
+ * the last full block. */
+ memcpy(prev_tweak, tweak, sizeof(tweak) );
+ mbedtls_gf128mul_x_ble(tweak, tweak);
+ }
+
+ for ( i = 0; i < 16; i++ ) {
+ tmp[i] = input[i] ^ tweak[i];
+ }
+
+ ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ for ( i = 0; i < 16; i++ ) {
+ output[i] = tmp[i] ^ tweak[i];
+ }
+
+ /* Update the tweak for the next block. */
+ mbedtls_gf128mul_x_ble(tweak, tweak);
+
+ output += 16;
+ input += 16;
+ }
+
+ if ( leftover ) {
+ /* If we are on the leftover bytes in a decrypt operation, we need to
+ * use the previous tweak for these bytes (as saved in prev_tweak). */
+ unsigned char *t = mode == MBEDTLS_AES_DECRYPT ? prev_tweak : tweak;
+
+ /* We are now on the final part of the data unit, which doesn't divide
+ * evenly by 16. It's time for ciphertext stealing. */
+ size_t i;
+ unsigned char *prev_output = output - 16;
+
+ /* Copy ciphertext bytes from the previous block to our output for each
+ * byte of cyphertext we won't steal. At the same time, copy the
+ * remainder of the input for this final round (since the loop bounds
+ * are the same). */
+ for ( i = 0; i < leftover; i++ ) {
+ output[i] = prev_output[i];
+ tmp[i] = input[i] ^ t[i];
+ }
+
+ /* Copy ciphertext bytes from the previous block for input in this
+ * round. */
+ for (; i < 16; i++ ) {
+ tmp[i] = prev_output[i] ^ t[i];
+ }
+
+ ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp);
+ if ( ret != 0 ) {
+ return ret;
+ }
+
+ /* Write the result back to the previous block, overriding the previous
+ * output we copied. */
+ for ( i = 0; i < 16; i++ ) {
+ prev_output[i] = tmp[i] ^ t[i];
+ }
+ }
+
+ return(0);
+}
+#endif /* MBEDTLS_CIPHER_MODE_XTS */
+
+/*
+ * AES key schedule (encryption)
+ */
+int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+
+ if ( (128UL != keybits) && (192UL != keybits) && (256UL != keybits) ) {
+ /* Unsupported key size */
+ return(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH);
+ }
+
+ ctx->keybits = keybits;
+ memcpy(ctx->key, key, keybits / 8);
+
+ return 0;
+}
+
+/*
+ * AES key schedule (decryption)
+ */
+int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ return mbedtls_aes_setkey_enc(ctx, key, keybits);
+}
+
+/*
+ * AES-ECB block encryption/decryption
+ */
+int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx,
+ int mode,
+ const unsigned char input[16],
+ unsigned char output[16])
+{
+ int status;
+ uint32_t sx_ret;
+ block_t key;
+ block_t data_in;
+ block_t data_out;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL
+ && ctx->keybits != 192UL
+ && ctx->keybits != 256UL ) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ data_in = block_t_convert(input, 16);
+ data_out = block_t_convert(output, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ if (mode == MBEDTLS_AES_ENCRYPT) {
+ sx_ret = sx_aes_ecb_encrypt((const block_t*)&key, (const block_t*)&data_in, &data_out);
+ } else {
+ sx_ret = sx_aes_ecb_decrypt((const block_t*)&key, (const block_t*)&data_in, &data_out);
+ }
+
+ if (cryptoacc_management_release() != PSA_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ } else {
+ return 0;
+ }
+}
+
+#if defined(MBEDTLS_CIPHER_MODE_CBC)
+
+/*
+ * AES-CBC buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int status;
+ uint32_t sx_ret;
+ block_t key;
+ block_t iv_block;
+ block_t data_in;
+ block_t data_out;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ /* Input length must be a multiple of 16 bytes which is the AES block
+ length. */
+ if ( length & 0xf ) {
+ return(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH);
+ }
+
+ if ( ctx->keybits != 128UL
+ && ctx->keybits != 192UL
+ && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ iv_block = block_t_convert(iv, 16);
+ data_in = block_t_convert(input, length);
+ data_out = block_t_convert(output, length);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ if (mode == MBEDTLS_AES_ENCRYPT) {
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out, (const block_t *)&iv_block, &iv_block);
+ } else {
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out, (const block_t *)&iv_block, &iv_block);
+ }
+
+ if (cryptoacc_management_release() != PSA_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ } else {
+ return 0;
+ }
+}
+#endif /* MBEDTLS_CIPHER_MODE_CBC */
+
+#if defined(MBEDTLS_CIPHER_MODE_CFB)
+/*
+ * AES-CFB128 buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ size_t *iv_off,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int status;
+ size_t n = iv_off ? *iv_off : 0;
+ size_t processed = 0;
+ uint32_t sx_ret;
+ block_t key;
+ block_t iv_block;
+ block_t data_in;
+ block_t data_out;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( n > 15 ) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL
+ && ctx->keybits != 192UL
+ && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ iv_block = block_t_convert(iv, 16);
+ while ( processed < length ) {
+ if ( n > 0 ) {
+ /* start by filling up the IV */
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ iv[n] = output[processed] = (unsigned char)(iv[n] ^ input[processed]);
+ } else {
+ int c = input[processed];
+ output[processed] = (unsigned char)(c ^ iv[n]);
+ iv[n] = (unsigned char) c;
+ }
+ n = (n + 1) & 0x0F;
+ processed++;
+ continue;
+ } else {
+ /* process one ore more blocks of data */
+ size_t iterations = (length - processed) / 16;
+
+ if ( iterations > 0 ) {
+ data_in = block_t_convert(&input[processed], iterations * 16);
+ data_out = block_t_convert(&output[processed], iterations * 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ if (mode == MBEDTLS_AES_ENCRYPT) {
+ sx_ret = sx_aes_cfb_encrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out, (const block_t *)&iv_block, &iv_block);
+ } else {
+ sx_ret = sx_aes_cfb_decrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out, (const block_t *)&iv_block, &iv_block);
+ }
+
+ if (cryptoacc_management_release() != PSA_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ processed += iterations * 16;
+ }
+
+ while ( length - processed > 0 ) {
+ if ( n == 0 ) {
+ // Need to update the IV but don't have a full block of input to pass to the SE
+ int ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv);
+ if (ret != 0) {
+ return ret;
+ }
+ }
+ /* Save remainder to iv */
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ iv[n] = output[processed] = (unsigned char)(iv[n] ^ input[processed]);
+ } else {
+ int c = input[processed];
+ output[processed] = (unsigned char)(c ^ iv[n]);
+ iv[n] = (unsigned char) c;
+ }
+ n = (n + 1) & 0x0F;
+ processed++;
+ }
+ }
+ }
+
+ if ( iv_off ) {
+ *iv_off = n;
+ }
+
+ return 0;
+}
+
+/*
+ * AES-CFB8 buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cfb8(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ unsigned char c;
+ unsigned char ov[17];
+ int ret = 0;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL
+ && ctx->keybits != 192UL
+ && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ while ( length-- ) {
+ memcpy(ov, iv, 16);
+ if ( (ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv))
+ != 0 ) {
+ return ret;
+ }
+
+ if ( mode == MBEDTLS_AES_DECRYPT ) {
+ ov[16] = *input;
+ }
+
+ c = *output++ = (unsigned char)(iv[0] ^ *input++);
+
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ ov[16] = c;
+ }
+
+ memcpy(iv, ov + 1, 16);
+ }
+
+ return ret;
+}
+#endif /*MBEDTLS_CIPHER_MODE_CFB */
+
+#if defined(MBEDTLS_CIPHER_MODE_CTR)
+/*
+ * AES-CTR buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_ctr(mbedtls_aes_context *ctx,
+ size_t length,
+ size_t *nc_off,
+ unsigned char nonce_counter[16],
+ unsigned char stream_block[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int status;
+ size_t n = nc_off ? *nc_off : 0;
+ size_t processed = 0;
+ uint32_t sx_ret;
+ block_t key;
+ block_t iv_block;
+ block_t data_in;
+ block_t data_out;
+
+ if ( ctx->keybits != 128UL
+ && ctx->keybits != 192UL
+ && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ iv_block = block_t_convert(nonce_counter, 16);
+
+ while ( processed < length ) {
+ if ( n > 0 ) {
+ /* start by filling up the IV */
+ output[processed] = (unsigned char)(input[processed] ^ stream_block[n]);
+ n = (n + 1) & 0x0F;
+ processed++;
+ } else {
+ /* process one or more blocks of data */
+ size_t iterations = (length - processed) / 16;
+
+ if ( iterations > 0 ) {
+ data_in = block_t_convert(&input[processed], iterations * 16);
+ data_out = block_t_convert(&output[processed], iterations * 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ // AES-CTR uses the only AES encrypt operation (for both encryption and decryption)
+ sx_ret = sx_aes_ctr_encrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out, (const block_t *)&iv_block, &iv_block);
+
+ if (cryptoacc_management_release() != PSA_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+
+ processed += iterations * 16;
+ }
+
+ while ( length - processed > 0 ) {
+ if ( n == 0 ) {
+ // Get a new stream block
+ status = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT,
+ nonce_counter, stream_block);
+ if (status != 0) {
+ return status;
+ }
+ // increment nonce counter...
+ for (size_t i = 0; i < 16; i++) {
+ nonce_counter[15 - i] = nonce_counter[15 - i] + 1;
+ if ( nonce_counter[15 - i] != 0 ) {
+ break;
+ }
+ }
+ }
+ /* Save remainder to iv */
+ output[processed] = (unsigned char)(input[processed] ^ stream_block[n]);
+ n = (n + 1) & 0x0F;
+ processed++;
+ }
+ }
+ }
+
+ if ( nc_off ) {
+ *nc_off = n;
+ }
+
+ return 0;
+}
+#endif /* MBEDTLS_CIPHER_MODE_CTR */
+
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+/*
+ * AES-OFB (Output Feedback Mode) buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_ofb(mbedtls_aes_context *ctx,
+ size_t length,
+ size_t *iv_off,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int ret = 0;
+ size_t n;
+
+ n = *iv_off;
+
+ if ( n > 15 ) {
+ return(MBEDTLS_ERR_AES_BAD_INPUT_DATA);
+ }
+
+ while ( length-- ) {
+ if ( n == 0 ) {
+ ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv);
+ if ( ret != 0 ) {
+ goto exit;
+ }
+ }
+ *output++ = *input++ ^ iv[n];
+
+ n = (n + 1) & 0x0F;
+ }
+
+ *iv_off = n;
+
+ exit:
+ return(ret);
+}
+#endif /* MBEDTLS_CIPHER_MODE_OFB */
+
+#endif /* MBEDTLS_AES_ALT */
+
+#endif /* MBEDTLS_AES_C */
+
+#endif /* CRYPTOACC_PRESENT */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_gcm.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_gcm.c
new file mode 100644
index 000000000..4db8831b4
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/cryptoacc_gcm.c
@@ -0,0 +1,478 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES-CMAC abstraction based on CRYPTOACC
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes alternative plugin implementations of various
+ * functions in gmac.c using the cryptographic accelerator incorporated
+ * in Series-2 devices with CRYPTOACC from Silicon Laboratories.
+ */
+
+/*
+ * http://csrc.nist.gov/publications/nistpubs/800-38D/SP-800-38D.pdf
+ *
+ * See also:
+ * [MGV] http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/gcm/gcm-revised-spec.pdf
+ *
+ * We use the algorithm described as Shoup's method with 4-bit tables in
+ * [MGV] 4.1, pp. 12-13, to enhance speed without using too much memory.
+ */
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include
+
+#if defined(MBEDTLS_GCM_ALT) && defined(MBEDTLS_GCM_C)
+#include "cryptoacc_management.h"
+#include "mbedtls/gcm.h"
+#include "mbedtls/aes.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+#include "sx_aes.h"
+#include "sx_math.h"
+#include "sx_errors.h"
+#include "cryptolib_def.h"
+#include
+
+/* Implementation that should never be optimized out by the compiler */
+static void mbedtls_zeroize(void *v, size_t n)
+{
+ volatile unsigned char *p = v; while ( n-- ) *p++ = 0;
+}
+
+static int sli_validate_gcm_params(size_t tag_len,
+ size_t iv_len,
+ size_t add_len)
+{
+ // NOTE: tag lengths != 16 byte are only supported as of SE FW v1.2.0.
+ // Earlier firmware versions will return an error trying to verify non-16-byte
+ // tags using this function.
+ if ( tag_len < 4 || tag_len > 16 || iv_len == 0 ) {
+ return (MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ /* AD are limited to 2^64 bits, so 2^61 bytes. Since the length of AAD is
+ * limited by the mbedtls API to a size_t, length checking only needs to be
+ * done on 64-bit platforms. */
+#if SIZE_MAX > 0xFFFFFFFFUL
+ if (add_len >> 61 != 0) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+#else
+ (void) add_len;
+#endif /* 64-bit size_t */
+
+ /* Library does not support non-12-byte IVs */
+ if (iv_len != AES_IV_GCM_SIZE) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ return 0;
+}
+
+/*
+ * Initialize a context
+ */
+void mbedtls_gcm_init(mbedtls_gcm_context *ctx)
+{
+ memset(ctx, 0, sizeof(mbedtls_gcm_context) );
+}
+
+// Set key
+int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx,
+ mbedtls_cipher_id_t cipher,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ (void) cipher;
+
+ if ( cipher != MBEDTLS_CIPHER_ID_AES ) {
+ return(MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ if ( keybits != 128 && keybits != 192 && keybits != 256 ) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ /* Store key in gcm context */
+ ctx->keybits = keybits;
+ memcpy(ctx->key, key, keybits / 8);
+
+ return 0;
+}
+
+int mbedtls_gcm_starts(mbedtls_gcm_context *ctx,
+ int mode,
+ const unsigned char *iv,
+ size_t iv_len)
+{
+ int status = sli_validate_gcm_params(16, iv_len, 0);
+ if (status) {
+ return status;
+ }
+
+ /* Store input in context data structure. */
+ ctx->dir = mode == MBEDTLS_AES_ENCRYPT ? SLI_GCM_ENC : SLI_GCM_DEC;
+ ctx->add_len = 0;
+ ctx->len = 0;
+
+ memcpy(ctx->sx_ctx, iv, AES_IV_GCM_SIZE);
+ return 0;
+}
+
+int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx,
+ const unsigned char *add,
+ size_t add_len)
+{
+ uint32_t sx_ret;
+ block_t key;
+ block_t aad;
+ block_t nonce;
+ block_t hw_ctx;
+ block_t dummy = NULL_blk;
+
+ int status = sli_validate_gcm_params(16, 12, add_len);
+ if (status) {
+ return status;
+ }
+
+ if (add_len == 0) {
+ return 0;
+ }
+
+ if (ctx->add_len > 0) {
+ // This accelerator does not support adding AD in chunks
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ ctx->add_len = add_len;
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ nonce = block_t_convert(ctx->sx_ctx, AES_IV_GCM_SIZE);
+ aad = block_t_convert(add, add_len);
+ hw_ctx = block_t_convert(ctx->sx_ctx, AES_CTX_xCM_SIZE);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ if (ctx->dir == SLI_GCM_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_init((const block_t *)&key, (const block_t *)&dummy, &dummy,
+ (const block_t *)&nonce, &hw_ctx, (const block_t *)&aad);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_init((const block_t *)&key, (const block_t *)&dummy, &dummy,
+ (const block_t *)&nonce, &hw_ctx, (const block_t *)&aad);
+ }
+ status = cryptoacc_management_release();
+
+ if (sx_ret == CRYPTOLIB_SUCCESS) {
+ return status;
+ } else {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+
+int mbedtls_gcm_update(mbedtls_gcm_context *ctx,
+ const unsigned char *input, size_t input_length,
+ unsigned char *output, size_t output_size,
+ size_t *output_length)
+{
+ int status;
+ uint32_t sx_ret;
+ block_t data_in;
+ block_t data_out;
+ block_t key;
+ block_t nonce;
+ block_t hw_ctx;
+ block_t dummy = NULL_blk;
+
+ *output_length = 0;
+
+ if (input_length > output_size) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ if (input_length == 0) {
+ return 0;
+ }
+
+ /* Total length is restricted to 2^39 - 256 bits, ie 2^36 - 2^5 bytes
+ * Also check for possible overflow */
+ if ( ctx->len + input_length < ctx->len
+ || (uint64_t) ctx->len + input_length > 0xFFFFFFFE0ull ) {
+ return(MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(output, input_length);
+ hw_ctx = block_t_convert(ctx->sx_ctx, AES_CTX_xCM_SIZE);
+
+ if (ctx->add_len == 0 && ctx->len == 0) {
+ /* If there were no additional authentcation data then
+ mbedtls_gcm_starts did not 'CTX_BEGIN' the GCM operation
+ in the CRYPTOACC, so we need to 'CTX_BEGIN' now. */
+ nonce = block_t_convert(ctx->sx_ctx, AES_IV_GCM_SIZE);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ if (ctx->dir == SLI_GCM_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_init((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&nonce, &hw_ctx, (const block_t *)&dummy);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_init((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&nonce, &hw_ctx, (const block_t *)&dummy);
+ }
+ status = cryptoacc_management_release();
+ } else {
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ if (ctx->dir == SLI_GCM_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&hw_ctx, &hw_ctx);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_update((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&hw_ctx, &hw_ctx);
+ }
+ status = cryptoacc_management_release();
+ }
+
+ ctx->len += input_length;
+
+ if (sx_ret == CRYPTOLIB_SUCCESS) {
+ *output_length = input_length;
+ return status;
+ } else {
+ memset(output, 0, output_size);
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+
+int mbedtls_gcm_finish(mbedtls_gcm_context *ctx,
+ unsigned char *output, size_t output_size,
+ size_t *output_length,
+ unsigned char *tag,
+ size_t tag_len)
+{
+ // Voiding these because our implementation does not support
+ // partial-block input (i.e. passing a partial block to
+ // update() will have caused the operation to finish already)
+ (void) output;
+ (void) output_size;
+ *output_length = 0;
+
+ int status;
+ uint32_t sx_ret;
+ block_t key;
+ block_t _tag;
+ uint8_t tagbuf[16];
+ uint8_t lena_lenc[16];
+ block_t lena_lenc_blk = NULL_blk;
+ block_t dummy = NULL_blk;
+ block_t hw_ctx;
+
+ status = sli_validate_gcm_params(tag_len, 12, 16);
+ if (status) {
+ return status;
+ }
+
+ if (ctx->add_len == 0 && ctx->len == 0) {
+ /* If there were no data and additional authentcation data then
+ mbedtls_gcm_starts and update did not start the GCM operation,
+ so we need to run the whole GCM now. */
+ return mbedtls_gcm_crypt_and_tag(ctx,
+ ctx->dir == SLI_GCM_ENC ? MBEDTLS_GCM_ENCRYPT
+ : MBEDTLS_GCM_DECRYPT,
+ 0, ctx->sx_ctx, AES_IV_GCM_SIZE, 0, 0, 0, 0,
+ tag_len, tag);
+ } else {
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ _tag = block_t_convert(tagbuf, 16); // CRYPTOACC supports only 128bits tags
+ hw_ctx = block_t_convert(ctx->sx_ctx, AES_CTX_xCM_SIZE);
+
+ // build lena_lenc block as big endian byte array
+ sx_math_u64_to_u8array(ctx->add_len << 3, &lena_lenc[0], sx_big_endian);
+ sx_math_u64_to_u8array(ctx->len << 3, &lena_lenc[8], sx_big_endian);
+ lena_lenc_blk = block_t_convert(lena_lenc, 16);
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ if (ctx->dir == SLI_GCM_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_final((const block_t *)&key, (const block_t *)&dummy, &dummy,
+ (const block_t *)&hw_ctx, &_tag, (const block_t *)&lena_lenc_blk);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_final((const block_t *)&key, (const block_t *)&dummy, &dummy,
+ (const block_t *)&hw_ctx, &_tag, (const block_t *)&lena_lenc_blk);
+ }
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+
+ memcpy(tag, tagbuf, tag_len);
+ return(status);
+ }
+}
+
+int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx,
+ int mode,
+ size_t length,
+ const unsigned char *iv,
+ size_t iv_len,
+ const unsigned char *add,
+ size_t add_len,
+ const unsigned char *input,
+ unsigned char *output,
+ size_t tag_len,
+ unsigned char *tag)
+{
+ int status;
+ uint32_t sx_ret;
+ sli_gcm_mode_t dir = mode == MBEDTLS_AES_ENCRYPT ? SLI_GCM_ENC : SLI_GCM_DEC;
+ block_t key;
+ block_t aad;
+ block_t _tag;
+ block_t nonce;
+ block_t data_in;
+ block_t data_out;
+ uint8_t tagbuf[16];
+
+ status = sli_validate_gcm_params(tag_len, iv_len, add_len);
+ if (status) {
+ return status;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ nonce = block_t_convert(iv, iv_len);
+ aad = block_t_convert(add, add_len);
+ _tag = block_t_convert(tagbuf, sizeof(tagbuf)); // CRYPTOACC supports only 128bits tags
+ data_in = block_t_convert(input, length);
+ data_out = block_t_convert(output, length);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ if (dir == SLI_GCM_ENC) {
+ sx_ret = sx_aes_gcm_encrypt((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&nonce, &_tag, (const block_t *)&aad);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&nonce, &_tag, (const block_t *)&aad);
+ }
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ mbedtls_zeroize(output, length);
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+
+ memcpy(tag, tagbuf, tag_len);
+ return(status);
+}
+
+int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx,
+ size_t length,
+ const unsigned char *iv,
+ size_t iv_len,
+ const unsigned char *add,
+ size_t add_len,
+ const unsigned char *tag,
+ size_t tag_len,
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int status;
+ uint32_t sx_ret;
+ block_t key;
+ block_t aad;
+ block_t _tag;
+ block_t nonce;
+ block_t data_in;
+ block_t data_out;
+ uint8_t tagbuf[16];
+
+ status = sli_validate_gcm_params(tag_len, iv_len, add_len);
+ if (status) {
+ return status;
+ }
+
+ key = block_t_convert(ctx->key, ctx->keybits / 8);
+ nonce = block_t_convert(iv, iv_len);
+ aad = block_t_convert(add, add_len);
+ _tag = block_t_convert(tagbuf, sizeof(tagbuf)); // CRYPTOACC supports only 128bits tags
+ data_in = block_t_convert(input, length);
+ data_out = block_t_convert(output, length);
+
+ status = cryptoacc_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ sx_ret = sx_aes_gcm_decrypt((const block_t *)&key, (const block_t *)&data_in, &data_out,
+ (const block_t *)&nonce, &_tag, (const block_t *)&aad);
+ status = cryptoacc_management_release();
+
+ if (sx_ret == CRYPTOLIB_SUCCESS) {
+ if (memcmp_time_cst((uint8_t*)tag, tagbuf, tag_len) == 0) {
+ return(status);
+ } else {
+ mbedtls_zeroize(output, length);
+ return(MBEDTLS_ERR_GCM_AUTH_FAILED);
+ }
+ } else {
+ mbedtls_zeroize(output, length);
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+}
+
+void mbedtls_gcm_free(mbedtls_gcm_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+ mbedtls_zeroize(ctx, sizeof(mbedtls_gcm_context) );
+}
+
+#endif /* MBEDTLS_GCM_ALT && MBEDTLS_GCM_C */
+
+#endif /* CRYPTOACC_PRESENT */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/error.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/error.c
new file mode 100644
index 000000000..2656e13b9
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/error.c
@@ -0,0 +1,890 @@
+/*
+ * Error message information
+ *
+ * Copyright The Mbed TLS Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "common.h"
+
+#include "mbedtls/error.h"
+
+#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY)
+
+#if defined(MBEDTLS_ERROR_C)
+
+#include "mbedtls/platform.h"
+
+#include
+#include
+
+#if defined(MBEDTLS_AES_C)
+#include "mbedtls/aes.h"
+#endif
+
+#if defined(MBEDTLS_ARIA_C)
+#include "mbedtls/aria.h"
+#endif
+
+#if defined(MBEDTLS_ASN1_PARSE_C)
+#include "mbedtls/asn1.h"
+#endif
+
+#if defined(MBEDTLS_BASE64_C)
+#include "mbedtls/base64.h"
+#endif
+
+#if defined(MBEDTLS_BIGNUM_C)
+#include "mbedtls/bignum.h"
+#endif
+
+#if defined(MBEDTLS_CAMELLIA_C)
+#include "mbedtls/camellia.h"
+#endif
+
+#if defined(MBEDTLS_CCM_C)
+#include "mbedtls/ccm.h"
+#endif
+
+#if defined(MBEDTLS_CHACHA20_C)
+#include "mbedtls/chacha20.h"
+#endif
+
+#if defined(MBEDTLS_CHACHAPOLY_C)
+#include "mbedtls/chachapoly.h"
+#endif
+
+#if defined(MBEDTLS_CIPHER_C)
+#include "mbedtls/cipher.h"
+#endif
+
+#if defined(MBEDTLS_CTR_DRBG_C)
+#include "mbedtls/ctr_drbg.h"
+#endif
+
+#if defined(MBEDTLS_DES_C)
+#include "mbedtls/des.h"
+#endif
+
+#if defined(MBEDTLS_DHM_C)
+#include "mbedtls/dhm.h"
+#endif
+
+#if defined(MBEDTLS_ECP_C)
+#include "mbedtls/ecp.h"
+#endif
+
+#if defined(MBEDTLS_ENTROPY_C)
+#include "mbedtls/entropy.h"
+#endif
+
+#if defined(MBEDTLS_ERROR_C)
+#include "mbedtls/error.h"
+#endif
+
+#if defined(MBEDTLS_PLATFORM_C)
+#include "mbedtls/platform.h"
+#endif
+
+#if defined(MBEDTLS_GCM_C)
+#include "mbedtls/gcm.h"
+#endif
+
+#if defined(MBEDTLS_HKDF_C)
+#include "mbedtls/hkdf.h"
+#endif
+
+#if defined(MBEDTLS_HMAC_DRBG_C)
+#include "mbedtls/hmac_drbg.h"
+#endif
+
+#if defined(MBEDTLS_LMS_C)
+#include "mbedtls/lms.h"
+#endif
+
+#if defined(MBEDTLS_MD_C)
+#include "mbedtls/md.h"
+#endif
+
+#if defined(MBEDTLS_NET_C)
+#include "mbedtls/net_sockets.h"
+#endif
+
+#if defined(MBEDTLS_OID_C)
+#include "mbedtls/oid.h"
+#endif
+
+#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
+#include "mbedtls/pem.h"
+#endif
+
+#if defined(MBEDTLS_PK_C)
+#include "mbedtls/pk.h"
+#endif
+
+#if defined(MBEDTLS_PKCS12_C)
+#include "mbedtls/pkcs12.h"
+#endif
+
+#if defined(MBEDTLS_PKCS5_C)
+#include "mbedtls/pkcs5.h"
+#endif
+
+#if defined(MBEDTLS_PKCS7_C)
+#include "mbedtls/pkcs7.h"
+#endif
+
+#if defined(MBEDTLS_POLY1305_C)
+#include "mbedtls/poly1305.h"
+#endif
+
+#if defined(MBEDTLS_RSA_C)
+#include "mbedtls/rsa.h"
+#endif
+
+#if defined(MBEDTLS_SHA1_C)
+#include "mbedtls/sha1.h"
+#endif
+
+#if defined(MBEDTLS_SHA256_C)
+#include "mbedtls/sha256.h"
+#endif
+
+#if defined(MBEDTLS_SHA3_C)
+#include "mbedtls/sha3.h"
+#endif
+
+#if defined(MBEDTLS_SHA512_C)
+#include "mbedtls/sha512.h"
+#endif
+
+#if defined(MBEDTLS_SSL_TLS_C)
+#include "mbedtls/ssl.h"
+#endif
+
+#if defined(MBEDTLS_THREADING_C)
+#include "mbedtls/threading.h"
+#endif
+
+#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
+#include "mbedtls/x509.h"
+#endif
+
+
+const char *mbedtls_high_level_strerr(int error_code)
+{
+ int high_level_error_code;
+
+ if (error_code < 0) {
+ error_code = -error_code;
+ }
+
+ /* Extract the high-level part from the error code. */
+ high_level_error_code = error_code & 0xFF80;
+
+ switch (high_level_error_code) {
+ /* Begin Auto-Generated Code. */
+ #if defined(MBEDTLS_CIPHER_C)
+ case -(MBEDTLS_ERR_CIPHER_FEATURE_UNAVAILABLE):
+ return( "CIPHER - The selected feature is not available" );
+ case -(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA):
+ return( "CIPHER - Bad input parameters" );
+ case -(MBEDTLS_ERR_CIPHER_ALLOC_FAILED):
+ return( "CIPHER - Failed to allocate memory" );
+ case -(MBEDTLS_ERR_CIPHER_INVALID_PADDING):
+ return( "CIPHER - Input data contains invalid padding and is rejected" );
+ case -(MBEDTLS_ERR_CIPHER_FULL_BLOCK_EXPECTED):
+ return( "CIPHER - Decryption of block requires a full block" );
+ case -(MBEDTLS_ERR_CIPHER_AUTH_FAILED):
+ return( "CIPHER - Authentication failed (for AEAD modes)" );
+ case -(MBEDTLS_ERR_CIPHER_INVALID_CONTEXT):
+ return( "CIPHER - The context is invalid. For example, because it was freed" );
+#endif /* MBEDTLS_CIPHER_C */
+
+#if defined(MBEDTLS_DHM_C)
+ case -(MBEDTLS_ERR_DHM_BAD_INPUT_DATA):
+ return( "DHM - Bad input parameters" );
+ case -(MBEDTLS_ERR_DHM_READ_PARAMS_FAILED):
+ return( "DHM - Reading of the DHM parameters failed" );
+ case -(MBEDTLS_ERR_DHM_MAKE_PARAMS_FAILED):
+ return( "DHM - Making of the DHM parameters failed" );
+ case -(MBEDTLS_ERR_DHM_READ_PUBLIC_FAILED):
+ return( "DHM - Reading of the public values failed" );
+ case -(MBEDTLS_ERR_DHM_MAKE_PUBLIC_FAILED):
+ return( "DHM - Making of the public value failed" );
+ case -(MBEDTLS_ERR_DHM_CALC_SECRET_FAILED):
+ return( "DHM - Calculation of the DHM secret failed" );
+ case -(MBEDTLS_ERR_DHM_INVALID_FORMAT):
+ return( "DHM - The ASN.1 data is not formatted correctly" );
+ case -(MBEDTLS_ERR_DHM_ALLOC_FAILED):
+ return( "DHM - Allocation of memory failed" );
+ case -(MBEDTLS_ERR_DHM_FILE_IO_ERROR):
+ return( "DHM - Read or write of file failed" );
+ case -(MBEDTLS_ERR_DHM_SET_GROUP_FAILED):
+ return( "DHM - Setting the modulus and generator failed" );
+#endif /* MBEDTLS_DHM_C */
+
+#if defined(MBEDTLS_ECP_C)
+ case -(MBEDTLS_ERR_ECP_BAD_INPUT_DATA):
+ return( "ECP - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL):
+ return( "ECP - The buffer is too small to write to" );
+ case -(MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE):
+ return( "ECP - The requested feature is not available, for example, the requested curve is not supported" );
+ case -(MBEDTLS_ERR_ECP_VERIFY_FAILED):
+ return( "ECP - The signature is not valid" );
+ case -(MBEDTLS_ERR_ECP_ALLOC_FAILED):
+ return( "ECP - Memory allocation failed" );
+ case -(MBEDTLS_ERR_ECP_RANDOM_FAILED):
+ return( "ECP - Generation of random value, such as ephemeral key, failed" );
+ case -(MBEDTLS_ERR_ECP_INVALID_KEY):
+ return( "ECP - Invalid private or public key" );
+ case -(MBEDTLS_ERR_ECP_SIG_LEN_MISMATCH):
+ return( "ECP - The buffer contains a valid signature followed by more data" );
+ case -(MBEDTLS_ERR_ECP_IN_PROGRESS):
+ return( "ECP - Operation in progress, call again with the same parameters to continue" );
+#endif /* MBEDTLS_ECP_C */
+
+#if defined(MBEDTLS_MD_C)
+ case -(MBEDTLS_ERR_MD_FEATURE_UNAVAILABLE):
+ return( "MD - The selected feature is not available" );
+ case -(MBEDTLS_ERR_MD_BAD_INPUT_DATA):
+ return( "MD - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_MD_ALLOC_FAILED):
+ return( "MD - Failed to allocate memory" );
+ case -(MBEDTLS_ERR_MD_FILE_IO_ERROR):
+ return( "MD - Opening or reading of file failed" );
+#endif /* MBEDTLS_MD_C */
+
+#if defined(MBEDTLS_PEM_PARSE_C) || defined(MBEDTLS_PEM_WRITE_C)
+ case -(MBEDTLS_ERR_PEM_NO_HEADER_FOOTER_PRESENT):
+ return( "PEM - No PEM header or footer found" );
+ case -(MBEDTLS_ERR_PEM_INVALID_DATA):
+ return( "PEM - PEM string is not as expected" );
+ case -(MBEDTLS_ERR_PEM_ALLOC_FAILED):
+ return( "PEM - Failed to allocate memory" );
+ case -(MBEDTLS_ERR_PEM_INVALID_ENC_IV):
+ return( "PEM - RSA IV is not in hex-format" );
+ case -(MBEDTLS_ERR_PEM_UNKNOWN_ENC_ALG):
+ return( "PEM - Unsupported key encryption algorithm" );
+ case -(MBEDTLS_ERR_PEM_PASSWORD_REQUIRED):
+ return( "PEM - Private key password can't be empty" );
+ case -(MBEDTLS_ERR_PEM_PASSWORD_MISMATCH):
+ return( "PEM - Given private key password does not allow for correct decryption" );
+ case -(MBEDTLS_ERR_PEM_FEATURE_UNAVAILABLE):
+ return( "PEM - Unavailable feature, e.g. hashing/encryption combination" );
+ case -(MBEDTLS_ERR_PEM_BAD_INPUT_DATA):
+ return( "PEM - Bad input parameters to function" );
+#endif /* MBEDTLS_PEM_PARSE_C || MBEDTLS_PEM_WRITE_C */
+
+#if defined(MBEDTLS_PK_C)
+ case -(MBEDTLS_ERR_PK_ALLOC_FAILED):
+ return( "PK - Memory allocation failed" );
+ case -(MBEDTLS_ERR_PK_TYPE_MISMATCH):
+ return( "PK - Type mismatch, eg attempt to encrypt with an ECDSA key" );
+ case -(MBEDTLS_ERR_PK_BAD_INPUT_DATA):
+ return( "PK - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_PK_FILE_IO_ERROR):
+ return( "PK - Read/write of file failed" );
+ case -(MBEDTLS_ERR_PK_KEY_INVALID_VERSION):
+ return( "PK - Unsupported key version" );
+ case -(MBEDTLS_ERR_PK_KEY_INVALID_FORMAT):
+ return( "PK - Invalid key tag or value" );
+ case -(MBEDTLS_ERR_PK_UNKNOWN_PK_ALG):
+ return( "PK - Key algorithm is unsupported (only RSA and EC are supported)" );
+ case -(MBEDTLS_ERR_PK_PASSWORD_REQUIRED):
+ return( "PK - Private key password can't be empty" );
+ case -(MBEDTLS_ERR_PK_PASSWORD_MISMATCH):
+ return( "PK - Given private key password does not allow for correct decryption" );
+ case -(MBEDTLS_ERR_PK_INVALID_PUBKEY):
+ return( "PK - The pubkey tag or value is invalid (only RSA and EC are supported)" );
+ case -(MBEDTLS_ERR_PK_INVALID_ALG):
+ return( "PK - The algorithm tag or value is invalid" );
+ case -(MBEDTLS_ERR_PK_UNKNOWN_NAMED_CURVE):
+ return( "PK - Elliptic curve is unsupported (only NIST curves are supported)" );
+ case -(MBEDTLS_ERR_PK_FEATURE_UNAVAILABLE):
+ return( "PK - Unavailable feature, e.g. RSA disabled for RSA key" );
+ case -(MBEDTLS_ERR_PK_SIG_LEN_MISMATCH):
+ return( "PK - The buffer contains a valid signature followed by more data" );
+ case -(MBEDTLS_ERR_PK_BUFFER_TOO_SMALL):
+ return( "PK - The output buffer is too small" );
+#endif /* MBEDTLS_PK_C */
+
+#if defined(MBEDTLS_PKCS12_C)
+ case -(MBEDTLS_ERR_PKCS12_BAD_INPUT_DATA):
+ return( "PKCS12 - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_PKCS12_FEATURE_UNAVAILABLE):
+ return( "PKCS12 - Feature not available, e.g. unsupported encryption scheme" );
+ case -(MBEDTLS_ERR_PKCS12_PBE_INVALID_FORMAT):
+ return( "PKCS12 - PBE ASN.1 data not as expected" );
+ case -(MBEDTLS_ERR_PKCS12_PASSWORD_MISMATCH):
+ return( "PKCS12 - Given private key password does not allow for correct decryption" );
+#endif /* MBEDTLS_PKCS12_C */
+
+#if defined(MBEDTLS_PKCS5_C)
+ case -(MBEDTLS_ERR_PKCS5_BAD_INPUT_DATA):
+ return( "PKCS5 - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_PKCS5_INVALID_FORMAT):
+ return( "PKCS5 - Unexpected ASN.1 data" );
+ case -(MBEDTLS_ERR_PKCS5_FEATURE_UNAVAILABLE):
+ return( "PKCS5 - Requested encryption or digest alg not available" );
+ case -(MBEDTLS_ERR_PKCS5_PASSWORD_MISMATCH):
+ return( "PKCS5 - Given private key password does not allow for correct decryption" );
+#endif /* MBEDTLS_PKCS5_C */
+
+#if defined(MBEDTLS_PKCS7_C)
+ case -(MBEDTLS_ERR_PKCS7_INVALID_FORMAT):
+ return( "PKCS7 - The format is invalid, e.g. different type expected" );
+ case -(MBEDTLS_ERR_PKCS7_FEATURE_UNAVAILABLE):
+ return( "PKCS7 - Unavailable feature, e.g. anything other than signed data" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_VERSION):
+ return( "PKCS7 - The PKCS #7 version element is invalid or cannot be parsed" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_CONTENT_INFO):
+ return( "PKCS7 - The PKCS #7 content info is invalid or cannot be parsed" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_ALG):
+ return( "PKCS7 - The algorithm tag or value is invalid or cannot be parsed" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_CERT):
+ return( "PKCS7 - The certificate tag or value is invalid or cannot be parsed" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNATURE):
+ return( "PKCS7 - Error parsing the signature" );
+ case -(MBEDTLS_ERR_PKCS7_INVALID_SIGNER_INFO):
+ return( "PKCS7 - Error parsing the signer's info" );
+ case -(MBEDTLS_ERR_PKCS7_BAD_INPUT_DATA):
+ return( "PKCS7 - Input invalid" );
+ case -(MBEDTLS_ERR_PKCS7_ALLOC_FAILED):
+ return( "PKCS7 - Allocation of memory failed" );
+ case -(MBEDTLS_ERR_PKCS7_VERIFY_FAIL):
+ return( "PKCS7 - Verification Failed" );
+ case -(MBEDTLS_ERR_PKCS7_CERT_DATE_INVALID):
+ return( "PKCS7 - The PKCS #7 date issued/expired dates are invalid" );
+#endif /* MBEDTLS_PKCS7_C */
+
+#if defined(MBEDTLS_RSA_C)
+ case -(MBEDTLS_ERR_RSA_BAD_INPUT_DATA):
+ return( "RSA - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_RSA_INVALID_PADDING):
+ return( "RSA - Input data contains invalid padding and is rejected" );
+ case -(MBEDTLS_ERR_RSA_KEY_GEN_FAILED):
+ return( "RSA - Something failed during generation of a key" );
+ case -(MBEDTLS_ERR_RSA_KEY_CHECK_FAILED):
+ return( "RSA - Key failed to pass the validity check of the library" );
+ case -(MBEDTLS_ERR_RSA_PUBLIC_FAILED):
+ return( "RSA - The public key operation failed" );
+ case -(MBEDTLS_ERR_RSA_PRIVATE_FAILED):
+ return( "RSA - The private key operation failed" );
+ case -(MBEDTLS_ERR_RSA_VERIFY_FAILED):
+ return( "RSA - The PKCS#1 verification failed" );
+ case -(MBEDTLS_ERR_RSA_OUTPUT_TOO_LARGE):
+ return( "RSA - The output buffer for decryption is not large enough" );
+ case -(MBEDTLS_ERR_RSA_RNG_FAILED):
+ return( "RSA - The random generator failed to generate non-zeros" );
+#endif /* MBEDTLS_RSA_C */
+
+#if defined(MBEDTLS_SSL_TLS_C)
+ case -(MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS):
+ return( "SSL - A cryptographic operation is in progress. Try again later" );
+ case -(MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE):
+ return( "SSL - The requested feature is not available" );
+ case -(MBEDTLS_ERR_SSL_BAD_INPUT_DATA):
+ return( "SSL - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_SSL_INVALID_MAC):
+ return( "SSL - Verification of the message MAC failed" );
+ case -(MBEDTLS_ERR_SSL_INVALID_RECORD):
+ return( "SSL - An invalid SSL record was received" );
+ case -(MBEDTLS_ERR_SSL_CONN_EOF):
+ return( "SSL - The connection indicated an EOF" );
+ case -(MBEDTLS_ERR_SSL_DECODE_ERROR):
+ return( "SSL - A message could not be parsed due to a syntactic error" );
+ case -(MBEDTLS_ERR_SSL_NO_RNG):
+ return( "SSL - No RNG was provided to the SSL module" );
+ case -(MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE):
+ return( "SSL - No client certification received from the client, but required by the authentication mode" );
+ case -(MBEDTLS_ERR_SSL_UNSUPPORTED_EXTENSION):
+ return( "SSL - Client received an extended server hello containing an unsupported extension" );
+ case -(MBEDTLS_ERR_SSL_NO_APPLICATION_PROTOCOL):
+ return( "SSL - No ALPN protocols supported that the client advertises" );
+ case -(MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED):
+ return( "SSL - The own private key or pre-shared key is not set, but needed" );
+ case -(MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED):
+ return( "SSL - No CA Chain is set, but required to operate" );
+ case -(MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE):
+ return( "SSL - An unexpected message was received from our peer" );
+ case -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE):
+ return( "SSL - A fatal alert message was received from our peer" );
+ case -(MBEDTLS_ERR_SSL_UNRECOGNIZED_NAME):
+ return( "SSL - No server could be identified matching the client's SNI" );
+ case -(MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY):
+ return( "SSL - The peer notified us that the connection is going to be closed" );
+ case -(MBEDTLS_ERR_SSL_BAD_CERTIFICATE):
+ return( "SSL - Processing of the Certificate handshake message failed" );
+ case -(MBEDTLS_ERR_SSL_RECEIVED_NEW_SESSION_TICKET):
+ return( "SSL - * Received NewSessionTicket Post Handshake Message. This error code is experimental and may be changed or removed without notice" );
+ case -(MBEDTLS_ERR_SSL_CANNOT_READ_EARLY_DATA):
+ return( "SSL - Not possible to read early data" );
+ case -(MBEDTLS_ERR_SSL_CANNOT_WRITE_EARLY_DATA):
+ return( "SSL - Not possible to write early data" );
+ case -(MBEDTLS_ERR_SSL_CACHE_ENTRY_NOT_FOUND):
+ return( "SSL - Cache entry not found" );
+ case -(MBEDTLS_ERR_SSL_ALLOC_FAILED):
+ return( "SSL - Memory allocation failed" );
+ case -(MBEDTLS_ERR_SSL_HW_ACCEL_FAILED):
+ return( "SSL - Hardware acceleration function returned with error" );
+ case -(MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH):
+ return( "SSL - Hardware acceleration function skipped / left alone data" );
+ case -(MBEDTLS_ERR_SSL_BAD_PROTOCOL_VERSION):
+ return( "SSL - Handshake protocol not within min/max boundaries" );
+ case -(MBEDTLS_ERR_SSL_HANDSHAKE_FAILURE):
+ return( "SSL - The handshake negotiation failed" );
+ case -(MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED):
+ return( "SSL - Session ticket has expired" );
+ case -(MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH):
+ return( "SSL - Public key type mismatch (eg, asked for RSA key exchange and presented EC key)" );
+ case -(MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY):
+ return( "SSL - Unknown identity received (eg, PSK identity)" );
+ case -(MBEDTLS_ERR_SSL_INTERNAL_ERROR):
+ return( "SSL - Internal error (eg, unexpected failure in lower-level module)" );
+ case -(MBEDTLS_ERR_SSL_COUNTER_WRAPPING):
+ return( "SSL - A counter would wrap (eg, too many messages exchanged)" );
+ case -(MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO):
+ return( "SSL - Unexpected message at ServerHello in renegotiation" );
+ case -(MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED):
+ return( "SSL - DTLS client must retry for hello verification" );
+ case -(MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL):
+ return( "SSL - A buffer is too small to receive or write a message" );
+ case -(MBEDTLS_ERR_SSL_WANT_READ):
+ return( "SSL - No data of requested type currently available on underlying transport" );
+ case -(MBEDTLS_ERR_SSL_WANT_WRITE):
+ return( "SSL - Connection requires a write call" );
+ case -(MBEDTLS_ERR_SSL_TIMEOUT):
+ return( "SSL - The operation timed out" );
+ case -(MBEDTLS_ERR_SSL_CLIENT_RECONNECT):
+ return( "SSL - The client initiated a reconnect from the same port" );
+ case -(MBEDTLS_ERR_SSL_UNEXPECTED_RECORD):
+ return( "SSL - Record header looks valid but is not expected" );
+ case -(MBEDTLS_ERR_SSL_NON_FATAL):
+ return( "SSL - The alert message received indicates a non-fatal error" );
+ case -(MBEDTLS_ERR_SSL_ILLEGAL_PARAMETER):
+ return( "SSL - A field in a message was incorrect or inconsistent with other fields" );
+ case -(MBEDTLS_ERR_SSL_CONTINUE_PROCESSING):
+ return( "SSL - Internal-only message signaling that further message-processing should be done" );
+ case -(MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS):
+ return( "SSL - The asynchronous operation is not completed yet" );
+ case -(MBEDTLS_ERR_SSL_EARLY_MESSAGE):
+ return( "SSL - Internal-only message signaling that a message arrived early" );
+ case -(MBEDTLS_ERR_SSL_UNEXPECTED_CID):
+ return( "SSL - An encrypted DTLS-frame with an unexpected CID was received" );
+ case -(MBEDTLS_ERR_SSL_VERSION_MISMATCH):
+ return( "SSL - An operation failed due to an unexpected version or configuration" );
+ case -(MBEDTLS_ERR_SSL_BAD_CONFIG):
+ return( "SSL - Invalid value in SSL config" );
+#endif /* MBEDTLS_SSL_TLS_C */
+
+#if defined(MBEDTLS_X509_USE_C) || defined(MBEDTLS_X509_CREATE_C)
+ case -(MBEDTLS_ERR_X509_FEATURE_UNAVAILABLE):
+ return( "X509 - Unavailable feature, e.g. RSA hashing/encryption combination" );
+ case -(MBEDTLS_ERR_X509_UNKNOWN_OID):
+ return( "X509 - Requested OID is unknown" );
+ case -(MBEDTLS_ERR_X509_INVALID_FORMAT):
+ return( "X509 - The CRT/CRL/CSR format is invalid, e.g. different type expected" );
+ case -(MBEDTLS_ERR_X509_INVALID_VERSION):
+ return( "X509 - The CRT/CRL/CSR version element is invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_SERIAL):
+ return( "X509 - The serial tag or value is invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_ALG):
+ return( "X509 - The algorithm tag or value is invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_NAME):
+ return( "X509 - The name tag or value is invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_DATE):
+ return( "X509 - The date tag or value is invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_SIGNATURE):
+ return( "X509 - The signature tag or value invalid" );
+ case -(MBEDTLS_ERR_X509_INVALID_EXTENSIONS):
+ return( "X509 - The extension tag or value is invalid" );
+ case -(MBEDTLS_ERR_X509_UNKNOWN_VERSION):
+ return( "X509 - CRT/CRL/CSR has an unsupported version number" );
+ case -(MBEDTLS_ERR_X509_UNKNOWN_SIG_ALG):
+ return( "X509 - Signature algorithm (oid) is unsupported" );
+ case -(MBEDTLS_ERR_X509_SIG_MISMATCH):
+ return( "X509 - Signature algorithms do not match. (see \\c ::mbedtls_x509_crt sig_oid)" );
+ case -(MBEDTLS_ERR_X509_CERT_VERIFY_FAILED):
+ return( "X509 - Certificate verification failed, e.g. CRL, CA or signature check failed" );
+ case -(MBEDTLS_ERR_X509_CERT_UNKNOWN_FORMAT):
+ return( "X509 - Format not recognized as DER or PEM" );
+ case -(MBEDTLS_ERR_X509_BAD_INPUT_DATA):
+ return( "X509 - Input invalid" );
+ case -(MBEDTLS_ERR_X509_ALLOC_FAILED):
+ return( "X509 - Allocation of memory failed" );
+ case -(MBEDTLS_ERR_X509_FILE_IO_ERROR):
+ return( "X509 - Read/write of file failed" );
+ case -(MBEDTLS_ERR_X509_BUFFER_TOO_SMALL):
+ return( "X509 - Destination buffer is too small" );
+ case -(MBEDTLS_ERR_X509_FATAL_ERROR):
+ return( "X509 - A fatal error occurred, eg the chain is too long or the vrfy callback failed" );
+#endif /* MBEDTLS_X509_USE_C || MBEDTLS_X509_CREATE_C */
+ /* End Auto-Generated Code. */
+
+ default:
+ break;
+ }
+
+ return NULL;
+}
+
+const char *mbedtls_low_level_strerr(int error_code)
+{
+ int low_level_error_code;
+
+ if (error_code < 0) {
+ error_code = -error_code;
+ }
+
+ /* Extract the low-level part from the error code. */
+ low_level_error_code = error_code & ~0xFF80;
+
+ switch (low_level_error_code) {
+ /* Begin Auto-Generated Code. */
+ #if defined(MBEDTLS_AES_C)
+ case -(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH):
+ return( "AES - Invalid key length" );
+ case -(MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH):
+ return( "AES - Invalid data input length" );
+ case -(MBEDTLS_ERR_AES_BAD_INPUT_DATA):
+ return( "AES - Invalid input data" );
+#endif /* MBEDTLS_AES_C */
+
+#if defined(MBEDTLS_ARIA_C)
+ case -(MBEDTLS_ERR_ARIA_BAD_INPUT_DATA):
+ return( "ARIA - Bad input data" );
+ case -(MBEDTLS_ERR_ARIA_INVALID_INPUT_LENGTH):
+ return( "ARIA - Invalid data input length" );
+#endif /* MBEDTLS_ARIA_C */
+
+#if defined(MBEDTLS_ASN1_PARSE_C)
+ case -(MBEDTLS_ERR_ASN1_OUT_OF_DATA):
+ return( "ASN1 - Out of data when parsing an ASN1 data structure" );
+ case -(MBEDTLS_ERR_ASN1_UNEXPECTED_TAG):
+ return( "ASN1 - ASN1 tag was of an unexpected value" );
+ case -(MBEDTLS_ERR_ASN1_INVALID_LENGTH):
+ return( "ASN1 - Error when trying to determine the length or invalid length" );
+ case -(MBEDTLS_ERR_ASN1_LENGTH_MISMATCH):
+ return( "ASN1 - Actual length differs from expected length" );
+ case -(MBEDTLS_ERR_ASN1_INVALID_DATA):
+ return( "ASN1 - Data is invalid" );
+ case -(MBEDTLS_ERR_ASN1_ALLOC_FAILED):
+ return( "ASN1 - Memory allocation failed" );
+ case -(MBEDTLS_ERR_ASN1_BUF_TOO_SMALL):
+ return( "ASN1 - Buffer too small when writing ASN.1 data structure" );
+#endif /* MBEDTLS_ASN1_PARSE_C */
+
+#if defined(MBEDTLS_BASE64_C)
+ case -(MBEDTLS_ERR_BASE64_BUFFER_TOO_SMALL):
+ return( "BASE64 - Output buffer too small" );
+ case -(MBEDTLS_ERR_BASE64_INVALID_CHARACTER):
+ return( "BASE64 - Invalid character in input" );
+#endif /* MBEDTLS_BASE64_C */
+
+#if defined(MBEDTLS_BIGNUM_C)
+ case -(MBEDTLS_ERR_MPI_FILE_IO_ERROR):
+ return( "BIGNUM - An error occurred while reading from or writing to a file" );
+ case -(MBEDTLS_ERR_MPI_BAD_INPUT_DATA):
+ return( "BIGNUM - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_MPI_INVALID_CHARACTER):
+ return( "BIGNUM - There is an invalid character in the digit string" );
+ case -(MBEDTLS_ERR_MPI_BUFFER_TOO_SMALL):
+ return( "BIGNUM - The buffer is too small to write to" );
+ case -(MBEDTLS_ERR_MPI_NEGATIVE_VALUE):
+ return( "BIGNUM - The input arguments are negative or result in illegal output" );
+ case -(MBEDTLS_ERR_MPI_DIVISION_BY_ZERO):
+ return( "BIGNUM - The input argument for division is zero, which is not allowed" );
+ case -(MBEDTLS_ERR_MPI_NOT_ACCEPTABLE):
+ return( "BIGNUM - The input arguments are not acceptable" );
+ case -(MBEDTLS_ERR_MPI_ALLOC_FAILED):
+ return( "BIGNUM - Memory allocation failed" );
+#endif /* MBEDTLS_BIGNUM_C */
+
+#if defined(MBEDTLS_CAMELLIA_C)
+ case -(MBEDTLS_ERR_CAMELLIA_BAD_INPUT_DATA):
+ return( "CAMELLIA - Bad input data" );
+ case -(MBEDTLS_ERR_CAMELLIA_INVALID_INPUT_LENGTH):
+ return( "CAMELLIA - Invalid data input length" );
+#endif /* MBEDTLS_CAMELLIA_C */
+
+#if defined(MBEDTLS_CCM_C)
+ case -(MBEDTLS_ERR_CCM_BAD_INPUT):
+ return( "CCM - Bad input parameters to the function" );
+ case -(MBEDTLS_ERR_CCM_AUTH_FAILED):
+ return( "CCM - Authenticated decryption failed" );
+#endif /* MBEDTLS_CCM_C */
+
+#if defined(MBEDTLS_CHACHA20_C)
+ case -(MBEDTLS_ERR_CHACHA20_BAD_INPUT_DATA):
+ return( "CHACHA20 - Invalid input parameter(s)" );
+#endif /* MBEDTLS_CHACHA20_C */
+
+#if defined(MBEDTLS_CHACHAPOLY_C)
+ case -(MBEDTLS_ERR_CHACHAPOLY_BAD_STATE):
+ return( "CHACHAPOLY - The requested operation is not permitted in the current state" );
+ case -(MBEDTLS_ERR_CHACHAPOLY_AUTH_FAILED):
+ return( "CHACHAPOLY - Authenticated decryption failed: data was not authentic" );
+#endif /* MBEDTLS_CHACHAPOLY_C */
+
+#if defined(MBEDTLS_CTR_DRBG_C)
+ case -(MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED):
+ return( "CTR_DRBG - The entropy source failed" );
+ case -(MBEDTLS_ERR_CTR_DRBG_REQUEST_TOO_BIG):
+ return( "CTR_DRBG - The requested random buffer length is too big" );
+ case -(MBEDTLS_ERR_CTR_DRBG_INPUT_TOO_BIG):
+ return( "CTR_DRBG - The input (entropy + additional data) is too large" );
+ case -(MBEDTLS_ERR_CTR_DRBG_FILE_IO_ERROR):
+ return( "CTR_DRBG - Read or write error in file" );
+#endif /* MBEDTLS_CTR_DRBG_C */
+
+#if defined(MBEDTLS_DES_C)
+ case -(MBEDTLS_ERR_DES_INVALID_INPUT_LENGTH):
+ return( "DES - The data input has an invalid length" );
+#endif /* MBEDTLS_DES_C */
+
+#if defined(MBEDTLS_ENTROPY_C)
+ case -(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED):
+ return( "ENTROPY - Critical entropy source failure" );
+ case -(MBEDTLS_ERR_ENTROPY_MAX_SOURCES):
+ return( "ENTROPY - No more sources can be added" );
+ case -(MBEDTLS_ERR_ENTROPY_NO_SOURCES_DEFINED):
+ return( "ENTROPY - No sources have been added to poll" );
+ case -(MBEDTLS_ERR_ENTROPY_NO_STRONG_SOURCE):
+ return( "ENTROPY - No strong sources have been added to poll" );
+ case -(MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR):
+ return( "ENTROPY - Read/write error in file" );
+#endif /* MBEDTLS_ENTROPY_C */
+
+#if defined(MBEDTLS_ERROR_C)
+ case -(MBEDTLS_ERR_ERROR_GENERIC_ERROR):
+ return( "ERROR - Generic error" );
+ case -(MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED):
+ return( "ERROR - This is a bug in the library" );
+#endif /* MBEDTLS_ERROR_C */
+
+#if defined(MBEDTLS_PLATFORM_C)
+ case -(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED):
+ return( "PLATFORM - Hardware accelerator failed" );
+ case -(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED):
+ return( "PLATFORM - The requested feature is not supported by the platform" );
+#endif /* MBEDTLS_PLATFORM_C */
+
+#if defined(MBEDTLS_GCM_C)
+ case -(MBEDTLS_ERR_GCM_AUTH_FAILED):
+ return( "GCM - Authenticated decryption failed" );
+ case -(MBEDTLS_ERR_GCM_BAD_INPUT):
+ return( "GCM - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_GCM_BUFFER_TOO_SMALL):
+ return( "GCM - An output buffer is too small" );
+#endif /* MBEDTLS_GCM_C */
+
+#if defined(MBEDTLS_HKDF_C)
+ case -(MBEDTLS_ERR_HKDF_BAD_INPUT_DATA):
+ return( "HKDF - Bad input parameters to function" );
+#endif /* MBEDTLS_HKDF_C */
+
+#if defined(MBEDTLS_HMAC_DRBG_C)
+ case -(MBEDTLS_ERR_HMAC_DRBG_REQUEST_TOO_BIG):
+ return( "HMAC_DRBG - Too many random requested in single call" );
+ case -(MBEDTLS_ERR_HMAC_DRBG_INPUT_TOO_BIG):
+ return( "HMAC_DRBG - Input too large (Entropy + additional)" );
+ case -(MBEDTLS_ERR_HMAC_DRBG_FILE_IO_ERROR):
+ return( "HMAC_DRBG - Read/write error in file" );
+ case -(MBEDTLS_ERR_HMAC_DRBG_ENTROPY_SOURCE_FAILED):
+ return( "HMAC_DRBG - The entropy source failed" );
+#endif /* MBEDTLS_HMAC_DRBG_C */
+
+#if defined(MBEDTLS_LMS_C)
+ case -(MBEDTLS_ERR_LMS_BAD_INPUT_DATA):
+ return( "LMS - Bad data has been input to an LMS function" );
+ case -(MBEDTLS_ERR_LMS_OUT_OF_PRIVATE_KEYS):
+ return( "LMS - Specified LMS key has utilised all of its private keys" );
+ case -(MBEDTLS_ERR_LMS_VERIFY_FAILED):
+ return( "LMS - LMS signature verification failed" );
+ case -(MBEDTLS_ERR_LMS_ALLOC_FAILED):
+ return( "LMS - LMS failed to allocate space for a private key" );
+ case -(MBEDTLS_ERR_LMS_BUFFER_TOO_SMALL):
+ return( "LMS - Input/output buffer is too small to contain requited data" );
+#endif /* MBEDTLS_LMS_C */
+
+#if defined(MBEDTLS_NET_C)
+ case -(MBEDTLS_ERR_NET_SOCKET_FAILED):
+ return( "NET - Failed to open a socket" );
+ case -(MBEDTLS_ERR_NET_CONNECT_FAILED):
+ return( "NET - The connection to the given server / port failed" );
+ case -(MBEDTLS_ERR_NET_BIND_FAILED):
+ return( "NET - Binding of the socket failed" );
+ case -(MBEDTLS_ERR_NET_LISTEN_FAILED):
+ return( "NET - Could not listen on the socket" );
+ case -(MBEDTLS_ERR_NET_ACCEPT_FAILED):
+ return( "NET - Could not accept the incoming connection" );
+ case -(MBEDTLS_ERR_NET_RECV_FAILED):
+ return( "NET - Reading information from the socket failed" );
+ case -(MBEDTLS_ERR_NET_SEND_FAILED):
+ return( "NET - Sending information through the socket failed" );
+ case -(MBEDTLS_ERR_NET_CONN_RESET):
+ return( "NET - Connection was reset by peer" );
+ case -(MBEDTLS_ERR_NET_UNKNOWN_HOST):
+ return( "NET - Failed to get an IP address for the given hostname" );
+ case -(MBEDTLS_ERR_NET_BUFFER_TOO_SMALL):
+ return( "NET - Buffer is too small to hold the data" );
+ case -(MBEDTLS_ERR_NET_INVALID_CONTEXT):
+ return( "NET - The context is invalid, eg because it was free()ed" );
+ case -(MBEDTLS_ERR_NET_POLL_FAILED):
+ return( "NET - Polling the net context failed" );
+ case -(MBEDTLS_ERR_NET_BAD_INPUT_DATA):
+ return( "NET - Input invalid" );
+#endif /* MBEDTLS_NET_C */
+
+#if defined(MBEDTLS_OID_C)
+ case -(MBEDTLS_ERR_OID_NOT_FOUND):
+ return( "OID - OID is not found" );
+ case -(MBEDTLS_ERR_OID_BUF_TOO_SMALL):
+ return( "OID - output buffer is too small" );
+#endif /* MBEDTLS_OID_C */
+
+#if defined(MBEDTLS_POLY1305_C)
+ case -(MBEDTLS_ERR_POLY1305_BAD_INPUT_DATA):
+ return( "POLY1305 - Invalid input parameter(s)" );
+#endif /* MBEDTLS_POLY1305_C */
+
+#if defined(MBEDTLS_SHA1_C)
+ case -(MBEDTLS_ERR_SHA1_BAD_INPUT_DATA):
+ return( "SHA1 - SHA-1 input data was malformed" );
+#endif /* MBEDTLS_SHA1_C */
+
+#if defined(MBEDTLS_SHA256_C)
+ case -(MBEDTLS_ERR_SHA256_BAD_INPUT_DATA):
+ return( "SHA256 - SHA-256 input data was malformed" );
+#endif /* MBEDTLS_SHA256_C */
+
+#if defined(MBEDTLS_SHA3_C)
+ case -(MBEDTLS_ERR_SHA3_BAD_INPUT_DATA):
+ return( "SHA3 - SHA-3 input data was malformed" );
+#endif /* MBEDTLS_SHA3_C */
+
+#if defined(MBEDTLS_SHA512_C)
+ case -(MBEDTLS_ERR_SHA512_BAD_INPUT_DATA):
+ return( "SHA512 - SHA-512 input data was malformed" );
+#endif /* MBEDTLS_SHA512_C */
+
+#if defined(MBEDTLS_THREADING_C)
+ case -(MBEDTLS_ERR_THREADING_BAD_INPUT_DATA):
+ return( "THREADING - Bad input parameters to function" );
+ case -(MBEDTLS_ERR_THREADING_MUTEX_ERROR):
+ return( "THREADING - Locking / unlocking / free failed with error code" );
+#endif /* MBEDTLS_THREADING_C */
+ /* End Auto-Generated Code. */
+
+ default:
+ break;
+ }
+
+ return NULL;
+}
+
+void mbedtls_strerror(int ret, char *buf, size_t buflen)
+{
+ size_t len;
+ int use_ret;
+ const char *high_level_error_description = NULL;
+ const char *low_level_error_description = NULL;
+
+ if (buflen == 0) {
+ return;
+ }
+
+ memset(buf, 0x00, buflen);
+
+ if (ret < 0) {
+ ret = -ret;
+ }
+
+ if (ret & 0xFF80) {
+ use_ret = ret & 0xFF80;
+
+ // Translate high level error code.
+ high_level_error_description = mbedtls_high_level_strerr(ret);
+
+ if (high_level_error_description == NULL) {
+ mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret);
+ } else {
+ mbedtls_snprintf(buf, buflen, "%s", high_level_error_description);
+ }
+
+#if defined(MBEDTLS_SSL_TLS_C)
+ // Early return in case of a fatal error - do not try to translate low
+ // level code.
+ if (use_ret == -(MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE)) {
+ return;
+ }
+#endif /* MBEDTLS_SSL_TLS_C */
+ }
+
+ use_ret = ret & ~0xFF80;
+
+ if (use_ret == 0) {
+ return;
+ }
+
+ // If high level code is present, make a concatenation between both
+ // error strings.
+ //
+ len = strlen(buf);
+
+ if (len > 0) {
+ if (buflen - len < 5) {
+ return;
+ }
+
+ mbedtls_snprintf(buf + len, buflen - len, " : ");
+
+ buf += len + 3;
+ buflen -= len + 3;
+ }
+
+ // Translate low level error code.
+ low_level_error_description = mbedtls_low_level_strerr(ret);
+
+ if (low_level_error_description == NULL) {
+ mbedtls_snprintf(buf, buflen, "UNKNOWN ERROR CODE (%04X)", (unsigned int) use_ret);
+ } else {
+ mbedtls_snprintf(buf, buflen, "%s", low_level_error_description);
+ }
+}
+
+#else /* MBEDTLS_ERROR_C */
+
+/*
+ * Provide a dummy implementation when MBEDTLS_ERROR_C is not defined
+ */
+void mbedtls_strerror(int ret, char *buf, size_t buflen)
+{
+ ((void) ret);
+
+ if (buflen > 0) {
+ buf[0] = '\0';
+ }
+}
+
+#endif /* MBEDTLS_ERROR_C */
+
+#if defined(MBEDTLS_TEST_HOOKS)
+void (*mbedtls_test_hook_error_add)(int, int, const char *, int);
+#endif
+
+#endif /* MBEDTLS_ERROR_C || MBEDTLS_ERROR_STRERROR_DUMMY */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ccm.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ccm.c
new file mode 100644
index 000000000..b50356a6a
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ccm.c
@@ -0,0 +1,344 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES-CCM abstraction based on PSA accelerators
+ *******************************************************************************
+ * # License
+ * Copyright 2021 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes an alternative implementation of various functions in
+ * ccm.c, using the accelerators incorporated in devices from Silicon Labs.
+ *
+ * This alternative implementation calls the PSA Crypto drivers provided
+ * by Silicon Labs. For details on these drivers, see \ref sl_psa_drivers.
+ */
+
+#include
+
+#if defined(MBEDTLS_AES_C) && defined(MBEDTLS_CCM_C) && defined(MBEDTLS_CCM_ALT)
+
+#include "mbedtls/ccm.h"
+#include "mbedtls/error.h"
+
+#if defined(MBEDTLS_PLATFORM_C)
+#include "mbedtls/platform.h"
+#else
+#include
+#define mbedtls_calloc calloc
+#define mbedtls_free free
+#if defined(MBEDTLS_SELF_TEST)
+#include
+#define mbedtls_printf printf
+#endif /* MBEDTLS_SELF_TEST */
+#endif /* MBEDTLS_PLATFORM_C */
+
+#include "psa/crypto.h"
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_functions.h"
+#define AEAD_IMPLEMENTATION_PRESENT
+#define SLI_DEVICE_HAS_AES_192
+#define AEAD_ENCRYPT_TAG_FCT sli_se_driver_aead_encrypt_tag
+#define AEAD_DECRYPT_TAG_FCT sli_se_driver_aead_decrypt_tag
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_functions.h"
+#define AEAD_IMPLEMENTATION_PRESENT
+#define SLI_DEVICE_HAS_AES_192
+#define AEAD_ENCRYPT_TAG_FCT sli_cryptoacc_transparent_aead_encrypt_tag
+#define AEAD_DECRYPT_TAG_FCT sli_cryptoacc_transparent_aead_decrypt_tag
+#elif defined(SLI_CRYPTOACC_PRESENT_SI91X)
+#include "sli_si91x_crypto_driver_functions.h"
+#define AEAD_IMPLEMENTATION_PRESENT
+#define AEAD_ENCRYPT_TAG_FCT sl_si91x_crypto_aead_encrypt
+#define AEAD_DECRYPT_TAG_FCT sl_si91x_crypto_aead_decrypt
+#endif
+
+#if defined(AEAD_IMPLEMENTATION_PRESENT)
+
+#include
+
+static int psa_status_to_mbedtls(psa_status_t status)
+{
+ switch ( status ) {
+ case PSA_SUCCESS:
+ return 0;
+ case PSA_ERROR_INVALID_SIGNATURE:
+ return MBEDTLS_ERR_CCM_AUTH_FAILED;
+ case PSA_ERROR_HARDWARE_FAILURE:
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ case PSA_ERROR_NOT_SUPPORTED:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ default:
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+}
+
+/*
+ * Initialize CCM context
+ */
+void mbedtls_ccm_init(mbedtls_ccm_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_ccm_context) );
+}
+
+/*
+ * Clear CCM context
+ */
+void mbedtls_ccm_free(mbedtls_ccm_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_ccm_context) );
+}
+
+/*
+ * CCM key schedule
+ */
+int mbedtls_ccm_setkey(mbedtls_ccm_context *ctx,
+ mbedtls_cipher_id_t cipher,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ if (ctx == NULL || key == NULL) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_ccm_context) );
+
+ if ( cipher != MBEDTLS_CIPHER_ID_AES ) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ if ( (128UL != keybits) && (192UL != keybits) && (256UL != keybits) ) {
+ /* Unsupported key size */
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ #if !defined(SLI_DEVICE_HAS_AES_192)
+ if (192UL == keybits) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+ #endif
+
+ ctx->keybits = keybits;
+ memcpy(ctx->key, key, keybits / 8);
+
+ return 0;
+}
+
+int mbedtls_ccm_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *add, size_t add_len,
+ const unsigned char *input, unsigned char *output,
+ unsigned char *tag, size_t tag_len)
+{
+ // 'Regular' CCM always outputs a tag of at least 4 bytes
+ if (tag_len < 4) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ return mbedtls_ccm_star_encrypt_and_tag(ctx, length, iv, iv_len, add, add_len,
+ input, output, tag, tag_len);
+}
+
+int mbedtls_ccm_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *add, size_t add_len,
+ const unsigned char *input, unsigned char *output,
+ const unsigned char *tag, size_t tag_len)
+{
+ // 'Regular' CCM always verifies a tag of at least 4 bytes
+ if (tag_len < 4) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ return mbedtls_ccm_star_auth_decrypt(ctx, length, iv, iv_len, add, add_len,
+ input, output, tag, tag_len);
+}
+
+int mbedtls_ccm_star_encrypt_and_tag(mbedtls_ccm_context *ctx, size_t length,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *add, size_t add_len,
+ const unsigned char *input, unsigned char *output,
+ unsigned char *tag, size_t tag_len)
+{
+ if ( ctx == NULL || iv == NULL || iv_len == 0
+ || (add_len > 0 && add == NULL) || add_len >= 0xFF00
+ || (length > 0 && input == NULL) || length >= 0xFF00
+ || (length > 0 && output == NULL)
+ || (tag_len > 0 && tag == NULL) ) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ psa_status_t psa_status;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attr, ctx->keybits);
+
+ if (tag_len > 0) {
+ psa_status = AEAD_ENCRYPT_TAG_FCT(
+ &attr, ctx->key, ctx->keybits / 8,
+ PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, tag_len),
+ iv, iv_len,
+ add, add_len,
+ input, length,
+ output, length, &length,
+ tag, tag_len, &tag_len);
+ } else {
+ (void) tag;
+ uint8_t dummy_tag[4];
+ psa_status = AEAD_ENCRYPT_TAG_FCT(
+ &attr, ctx->key, ctx->keybits / 8,
+ PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, sizeof(dummy_tag)),
+ iv, iv_len,
+ add, add_len,
+ input, length,
+ output, length, &length,
+ dummy_tag, sizeof(dummy_tag), &tag_len);
+ }
+
+ psa_reset_key_attributes(&attr);
+ return psa_status_to_mbedtls(psa_status);
+}
+
+int mbedtls_ccm_star_auth_decrypt(mbedtls_ccm_context *ctx, size_t length,
+ const unsigned char *iv, size_t iv_len,
+ const unsigned char *add, size_t add_len,
+ const unsigned char *input, unsigned char *output,
+ const unsigned char *tag, size_t tag_len)
+{
+ if ( ctx == NULL || iv == NULL || iv_len == 0
+ || (add_len > 0 && add == NULL) || add_len >= 0xFF00
+ || (length > 0 && input == NULL) || length >= 0xFF00
+ || (length > 0 && output == NULL)
+ || (tag_len > 0 && tag == NULL) ) {
+ return MBEDTLS_ERR_CCM_BAD_INPUT;
+ }
+
+ psa_status_t psa_status;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attr, ctx->keybits);
+
+ if (tag_len > 0) {
+ psa_status = AEAD_DECRYPT_TAG_FCT(
+ &attr, ctx->key, ctx->keybits / 8,
+ PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, tag_len),
+ iv, iv_len,
+ add, add_len,
+ input, length,
+ tag, tag_len,
+ output, length, &length);
+ } else {
+ // CCM(*) is symmetric in encryption/decryption of the data, so if we don't have
+ // to verify a tag we can transform ciphertext to plaintext by running an
+ // 'encrypt' operation and throwing away the tag.
+ (void) tag;
+ uint8_t dummy_tag[4];
+ psa_status = AEAD_ENCRYPT_TAG_FCT(
+ &attr, ctx->key, ctx->keybits / 8,
+ PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, sizeof(dummy_tag)),
+ iv, iv_len,
+ add, add_len,
+ input, length,
+ output, length, &length,
+ dummy_tag, sizeof(dummy_tag), &tag_len);
+ }
+
+ psa_reset_key_attributes(&attr);
+ return psa_status_to_mbedtls(psa_status);
+}
+
+/* Provide stubs for linkage purposes. To be implemented when implementing
+ * support for multipart AEAD in the PSA drivers, see [PSEC-3221] */
+int mbedtls_ccm_starts(mbedtls_ccm_context *ctx,
+ int mode,
+ const unsigned char *iv,
+ size_t iv_len)
+{
+ (void) ctx;
+ (void) mode;
+ (void) iv;
+ (void) iv_len;
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+}
+
+int mbedtls_ccm_set_lengths(mbedtls_ccm_context *ctx,
+ size_t total_ad_len,
+ size_t plaintext_len,
+ size_t tag_len)
+{
+ (void) ctx;
+ (void) total_ad_len;
+ (void) plaintext_len;
+ (void) tag_len;
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+}
+
+int mbedtls_ccm_update_ad(mbedtls_ccm_context *ctx,
+ const unsigned char *ad,
+ size_t ad_len)
+{
+ (void) ctx;
+ (void) ad;
+ (void) ad_len;
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+}
+
+int mbedtls_ccm_update(mbedtls_ccm_context *ctx,
+ const unsigned char *input, size_t input_len,
+ unsigned char *output, size_t output_size,
+ size_t *output_len)
+{
+ (void) ctx;
+ (void) input;
+ (void) input_len;
+ (void) output;
+ (void) output_size;
+ (void) output_len;
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+}
+
+int mbedtls_ccm_finish(mbedtls_ccm_context *ctx,
+ unsigned char *tag, size_t tag_len)
+{
+ (void) ctx;
+ (void) tag;
+ (void) tag_len;
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+}
+
+#endif /* AEAD_IMPLEMENTATION_PRESENT */
+
+#endif /* MBEDTLS_AES_C && MBEDTLS_CCM_C && MBEDTLS_CCM_ALT */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_cmac.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_cmac.c
new file mode 100644
index 000000000..666242862
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_cmac.c
@@ -0,0 +1,403 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES-CMAC abstraction based on PSA accelerators
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes an alternative implementation of various functions in
+ * cmac.c, using the accelerators incorporated in devices from Silicon Labs.
+ *
+ * This alternative implementation calls the PSA Crypto drivers provided
+ * by Silicon Labs. For details on these drivers, see \ref sl_psa_drivers.
+ */
+
+#include
+
+#if defined (MBEDTLS_CMAC_C) && defined(MBEDTLS_CMAC_ALT)
+
+#include "mbedtls/cmac.h"
+#include "mbedtls/error.h"
+
+#if defined(MBEDTLS_PLATFORM_C)
+#include "mbedtls/platform.h"
+#else
+#include
+#define mbedtls_calloc calloc
+#define mbedtls_free free
+#if defined(MBEDTLS_SELF_TEST)
+#include
+#define mbedtls_printf printf
+#endif /* MBEDTLS_SELF_TEST */
+#endif /* MBEDTLS_PLATFORM_C */
+
+#include "psa/crypto.h"
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_functions.h"
+#define SLI_DEVICE_HAS_AES_192
+#define MAC_IMPLEMENTATION_PRESENT
+#define MAC_SETUP_EN_FCT sli_se_transparent_mac_sign_setup
+#define MAC_SETUP_DE_FCT sli_se_transparent_mac_verify_setup
+#define MAC_UPDATE_FCT sli_se_transparent_mac_update
+#define MAC_FINISH_EN_FCT sli_se_transparent_mac_sign_finish
+#define MAC_FINISH_DE_FCT sli_se_transparent_mac_verify_finish
+#define MAC_ABORT_FCT sli_se_transparent_mac_abort
+#define MAC_ONESHOT_EN_FCT sli_se_transparent_mac_compute
+#define MAC_ONESHOT_DE_FCT sli_se_transparent_mac_verify
+
+#if defined(RADIOAES_PRESENT)
+#include "sli_protocol_crypto.h"
+#endif
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_functions.h"
+#define SLI_DEVICE_HAS_AES_192
+#define MAC_IMPLEMENTATION_PRESENT
+#define MAC_SETUP_EN_FCT sli_cryptoacc_transparent_mac_sign_setup
+#define MAC_SETUP_DE_FCT sli_cryptoacc_transparent_mac_verify_setup
+#define MAC_UPDATE_FCT sli_cryptoacc_transparent_mac_update
+#define MAC_FINISH_EN_FCT sli_cryptoacc_transparent_mac_sign_finish
+#define MAC_FINISH_DE_FCT sli_cryptoacc_transparent_mac_verify_finish
+#define MAC_ABORT_FCT sli_cryptoacc_transparent_mac_abort
+#define MAC_ONESHOT_EN_FCT sli_cryptoacc_transparent_mac_compute
+#define MAC_ONESHOT_DE_FCT sli_cryptoacc_transparent_mac_verify
+#endif
+
+#if defined(MAC_IMPLEMENTATION_PRESENT)
+
+#include
+
+static int psa_status_to_mbedtls(psa_status_t status)
+{
+ switch ( status ) {
+ case PSA_SUCCESS:
+ return 0;
+ case PSA_ERROR_HARDWARE_FAILURE:
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ case PSA_ERROR_NOT_SUPPORTED:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ default:
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+}
+
+static inline void sl_psa_set_key_type(psa_key_attributes_t *attributes,
+ psa_key_type_t type)
+{
+ /* Common case: quick path */
+ attributes->MBEDTLS_PRIVATE(type) = type;
+}
+
+int mbedtls_cipher_cmac_starts(mbedtls_cipher_context_t *ctx,
+ const unsigned char *key, size_t keybits)
+{
+ mbedtls_cipher_type_t type;
+ mbedtls_cmac_context_t *cmac_ctx;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ sl_psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+
+ if ( ctx == NULL || ctx->MBEDTLS_PRIVATE(cipher_info) == NULL || key == NULL ) {
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+
+ type = (mbedtls_cipher_type_t)ctx->MBEDTLS_PRIVATE(cipher_info)->MBEDTLS_PRIVATE(type);
+
+ switch ( type ) {
+ case MBEDTLS_CIPHER_AES_128_ECB:
+ psa_set_key_bits(&attr, 128);
+ break;
+ case MBEDTLS_CIPHER_AES_192_ECB:
+ #if defined(SLI_DEVICE_HAS_AES_192)
+ psa_set_key_bits(&attr, 192);
+ #else
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ #endif
+ break;
+ case MBEDTLS_CIPHER_AES_256_ECB:
+ psa_set_key_bits(&attr, 256);
+ break;
+ default:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ if ( ctx->MBEDTLS_PRIVATE(cmac_ctx) == NULL ) {
+ /* Allocate CMAC context memory if it hasn't already been allocated */
+ cmac_ctx = mbedtls_calloc(1, sizeof(struct mbedtls_cmac_context_t) );
+ if ( cmac_ctx == NULL ) {
+ return(MBEDTLS_ERR_CIPHER_ALLOC_FAILED);
+ }
+
+ ctx->MBEDTLS_PRIVATE(cmac_ctx) = cmac_ctx;
+ } else {
+ mbedtls_platform_zeroize(ctx->MBEDTLS_PRIVATE(cmac_ctx), sizeof(*ctx->MBEDTLS_PRIVATE(cmac_ctx)) );
+ }
+
+ return psa_status_to_mbedtls(
+ MAC_SETUP_EN_FCT(&ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx,
+ &attr,
+ key,
+ keybits / 8U,
+ PSA_ALG_CMAC) );
+}
+
+int mbedtls_cipher_cmac_update(mbedtls_cipher_context_t *ctx,
+ const unsigned char *input, size_t ilen)
+{
+ if ( ctx == NULL || ctx->MBEDTLS_PRIVATE(cipher_info) == NULL || input == NULL
+ || ctx->MBEDTLS_PRIVATE(cmac_ctx) == NULL ) {
+ return(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
+ }
+
+ return psa_status_to_mbedtls(
+ MAC_UPDATE_FCT(&ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx,
+ input,
+ ilen) );
+}
+
+int mbedtls_cipher_cmac_finish(mbedtls_cipher_context_t *ctx,
+ unsigned char *output)
+{
+ if ( ctx == NULL || ctx->MBEDTLS_PRIVATE(cipher_info) == NULL || ctx->MBEDTLS_PRIVATE(cmac_ctx) == NULL
+ || output == NULL ) {
+ return(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
+ }
+
+ size_t olen = 0;
+
+ return psa_status_to_mbedtls(
+ MAC_FINISH_EN_FCT(&ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx,
+ output,
+ MBEDTLS_AES_BLOCK_SIZE,
+ &olen) );
+}
+
+int mbedtls_cipher_cmac_reset(mbedtls_cipher_context_t *ctx)
+{
+ if ( ctx == NULL || ctx->MBEDTLS_PRIVATE(cipher_info) == NULL || ctx->MBEDTLS_PRIVATE(cmac_ctx) == NULL ) {
+ return(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
+ }
+
+ uint8_t key[32];
+ size_t key_len;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ sl_psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+
+ if ( ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx.cipher_mac.key_len > sizeof(key) ) {
+ return(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
+ }
+
+ /* Save the key to be able to restart the operation */
+ memcpy(key,
+ ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx.cipher_mac.key,
+ ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx.cipher_mac.key_len);
+ key_len = ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx.cipher_mac.key_len;
+ psa_set_key_bits(&attr, key_len * 8);
+
+ /* Abort and restart with the same key */
+ MAC_ABORT_FCT(&ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx);
+ return psa_status_to_mbedtls(
+ MAC_SETUP_EN_FCT(&ctx->MBEDTLS_PRIVATE(cmac_ctx)->ctx,
+ &attr,
+ key,
+ key_len,
+ PSA_ALG_CMAC) );
+}
+
+#if defined(RADIOAES_PRESENT) && defined(SEMAILBOX_PRESENT)
+/* For speeding up PBKDF2-CMAC, which needs a lot of iterations with small-size
+ * CMAC operations, we can dispatch these to the RADIOAES instance if there is
+ * one available.
+ *
+ * Function limitations: can only be used with AES-128 or AES-256, and needs to
+ * have as short as possible execution time to not block other time-sensitive
+ * operations (such as BLE RPA). Will always output a full CMAC (16 bytes).
+ *
+ * \param key Raw key bytes, \p keylen bytes long
+ * \param keylen Length of \p key in bytes, either 16 (AES-128) or 32 (AES-256)
+ * \param input Data bytes to calculate the CMAC over, length \p ilen bytes
+ * \param ilen Length in bytes of \p input
+ * \param output Output buffer for the calculated CMAC tag (16 bytes)
+ *
+ * \return \c 0 on success, MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED on failure
+ */
+static int sli_short_cmac_operation(const unsigned char *key, size_t keylen,
+ const unsigned char *input, size_t ilen,
+ unsigned char *output)
+{
+ sl_status_t status = sli_aes_cmac_radio(key,
+ keylen,
+ input,
+ ilen,
+ output);
+ if (status == SL_STATUS_OK) {
+ return 0;
+ } else {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+#endif
+
+int mbedtls_cipher_cmac(const mbedtls_cipher_info_t *cipher_info,
+ const unsigned char *key, size_t keylen,
+ const unsigned char *input, size_t ilen,
+ unsigned char *output)
+{
+ if ( cipher_info == NULL || key == NULL || input == NULL || output == NULL ) {
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+
+ switch ( cipher_info->MBEDTLS_PRIVATE(type) ) {
+ case MBEDTLS_CIPHER_AES_128_ECB:
+ if ( keylen != 128UL ) {
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+ break;
+ case MBEDTLS_CIPHER_AES_192_ECB:
+ #if defined(SLI_DEVICE_HAS_AES_192)
+ if ( keylen != 192UL ) {
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+ break;
+ #else
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ #endif
+ case MBEDTLS_CIPHER_AES_256_ECB:
+ if ( keylen != 256UL ) {
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+ break;
+ default:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+#if defined(RADIOAES_PRESENT) && defined(SEMAILBOX_PRESENT)
+ /* Use the fast shortcut if available */
+ if ( (keylen == 128UL || keylen == 256UL) && (ilen <= 2 * MBEDTLS_AES_BLOCK_SIZE) ) {
+ return sli_short_cmac_operation(key, keylen,
+ input, ilen, output);
+ }
+#endif
+
+ size_t olen = 0;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ sl_psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+
+ switch ( cipher_info->MBEDTLS_PRIVATE(type) ) {
+ case MBEDTLS_CIPHER_AES_128_ECB:
+ psa_set_key_bits(&attr, 128);
+ break;
+ case MBEDTLS_CIPHER_AES_192_ECB:
+ psa_set_key_bits(&attr, 192);
+ break;
+ case MBEDTLS_CIPHER_AES_256_ECB:
+ psa_set_key_bits(&attr, 256);
+ break;
+ default:
+ return MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA;
+ }
+
+ return psa_status_to_mbedtls(
+ MAC_ONESHOT_EN_FCT(&attr,
+ key, keylen / 8U,
+ PSA_ALG_CMAC,
+ input, ilen,
+ output, MBEDTLS_AES_BLOCK_SIZE, &olen) );
+}
+
+/*
+ * Implementation of AES-CMAC-PRF-128 defined in RFC 4615
+ */
+int mbedtls_aes_cmac_prf_128(const unsigned char *key, size_t key_length,
+ const unsigned char *input, size_t in_len,
+ unsigned char output[16])
+{
+ int ret;
+ unsigned char zero_key[MBEDTLS_AES_BLOCK_SIZE];
+ unsigned char int_key[MBEDTLS_AES_BLOCK_SIZE];
+
+ if ( key == NULL || input == NULL || output == NULL ) {
+ return(MBEDTLS_ERR_CIPHER_BAD_INPUT_DATA);
+ }
+
+ size_t olen = 0;
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ sl_psa_set_key_type(&attr, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attr, 128);
+
+ if ( key_length == MBEDTLS_AES_BLOCK_SIZE ) {
+ /* Use key as is */
+ memcpy(int_key, key, MBEDTLS_AES_BLOCK_SIZE);
+ } else {
+ memset(zero_key, 0, MBEDTLS_AES_BLOCK_SIZE);
+
+#if defined(RADIOAES_PRESENT) && defined(SEMAILBOX_PRESENT)
+ /* Use the fast shortcut if available */
+ if ( key_length <= 2 * MBEDTLS_AES_BLOCK_SIZE ) {
+ ret = sli_short_cmac_operation(zero_key, MBEDTLS_AES_BLOCK_SIZE * 8,
+ key, key_length, int_key);
+ } else
+#endif
+ {
+ ret = psa_status_to_mbedtls(
+ MAC_ONESHOT_EN_FCT(&attr,
+ zero_key, MBEDTLS_AES_BLOCK_SIZE,
+ PSA_ALG_CMAC,
+ key, key_length,
+ int_key, MBEDTLS_AES_BLOCK_SIZE, &olen) );
+ }
+ if ( ret != 0 ) {
+ goto exit;
+ }
+ }
+
+#if defined(RADIOAES_PRESENT) && defined(SEMAILBOX_PRESENT)
+ /* Use the fast shortcut if available */
+ if ( key_length <= 2 * MBEDTLS_AES_BLOCK_SIZE ) {
+ ret = sli_short_cmac_operation(int_key, MBEDTLS_AES_BLOCK_SIZE * 8,
+ input, in_len, (uint8_t*)output);
+ } else
+#endif
+ {
+ ret = psa_status_to_mbedtls(
+ MAC_ONESHOT_EN_FCT(&attr,
+ int_key, MBEDTLS_AES_BLOCK_SIZE,
+ PSA_ALG_CMAC,
+ input, in_len,
+ (uint8_t*)output, in_len, &olen) );
+ }
+
+ exit:
+ mbedtls_platform_zeroize(int_key, sizeof(int_key) );
+
+ return(ret);
+}
+
+#endif /* MAC_IMPLEMENTATION_PRESENT */
+
+#endif /* MBEDTLS_CMAC_C && MBEDTLS_CMAC_ALT */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ecdsa_ecdh.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ecdsa_ecdh.c
new file mode 100644
index 000000000..54ca61c0a
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_ecdsa_ecdh.c
@@ -0,0 +1,391 @@
+/***************************************************************************//**
+ * @file
+ * @brief mbed TLS elliptic curve operations accelerated by PSA crypto drivers
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes an alternative implementation of high-level ECDSA and ECDH
+ * functions from the mbed TLS API, using the relevant accelerators incorporated
+ * in devices from Silicon Labs.
+ *
+ * For Series-1 devices with a CRYPTO peripheral, see crypto_ecp.c.
+ *
+ * This alternative implementation calls the PSA Crypto drivers provided
+ * by Silicon Labs. For details on these drivers, see \ref sl_psa_drivers.
+ */
+
+#include
+
+#if defined(MBEDTLS_ECP_C)
+
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) \
+ || defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) \
+ || defined(MBEDTLS_ECDSA_GENKEY_ALT) \
+ || defined(MBEDTLS_ECDSA_VERIFY_ALT) \
+ || defined(MBEDTLS_ECDSA_SIGN_ALT)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_functions.h"
+#define ECC_IMPLEMENTATION_PRESENT
+#define ECC_KEYGEN_FCT sli_se_transparent_generate_key
+#define ECC_PUBKEY_FCT sli_se_transparent_export_public_key
+#define ECDSA_SIGN_FCT sli_se_transparent_sign_hash
+#define ECDSA_VERIFY_FCT sli_se_transparent_verify_hash
+#define ECDH_DERIVE_FCT sli_se_transparent_key_agreement
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_functions.h"
+#define ECC_IMPLEMENTATION_PRESENT
+#define ECC_KEYGEN_FCT sli_cryptoacc_transparent_generate_key
+#define ECC_PUBKEY_FCT sli_cryptoacc_transparent_export_public_key
+#define ECDSA_SIGN_FCT sli_cryptoacc_transparent_sign_hash
+#define ECDSA_VERIFY_FCT sli_cryptoacc_transparent_verify_hash
+#define ECDH_DERIVE_FCT sli_cryptoacc_transparent_key_agreement
+#endif
+
+#include "mbedtls/ecdh.h"
+#include "mbedtls/ecdsa.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/bignum.h"
+#include "mbedtls/error.h"
+#include "psa/crypto.h"
+
+#if defined(ECC_IMPLEMENTATION_PRESENT)
+static int psa_status_to_mbedtls(psa_status_t status)
+{
+ switch ( status ) {
+ case PSA_SUCCESS:
+ return 0;
+ case PSA_ERROR_INVALID_SIGNATURE:
+ return MBEDTLS_ERR_ECP_VERIFY_FAILED;
+ case PSA_ERROR_HARDWARE_FAILURE:
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ case PSA_ERROR_NOT_SUPPORTED:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ default:
+ return MBEDTLS_ERR_ERROR_GENERIC_ERROR;
+ }
+}
+
+static int mbedtls_grp_to_psa_attr(mbedtls_ecp_group_id id,
+ psa_key_attributes_t *attr)
+{
+ switch (id) {
+ case MBEDTLS_ECP_DP_SECP192R1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1);
+ psa_set_key_bits(attr, 192);
+ break;
+#if defined(CRYPTOACC_PRESENT)
+ case MBEDTLS_ECP_DP_SECP224R1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1);
+ psa_set_key_bits(attr, 224);
+ break;
+ case MBEDTLS_ECP_DP_SECP256K1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1);
+ psa_set_key_bits(attr, 256);
+ break;
+#endif
+ case MBEDTLS_ECP_DP_SECP256R1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1);
+ psa_set_key_bits(attr, 256);
+ break;
+ case MBEDTLS_ECP_DP_SECP384R1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1);
+ psa_set_key_bits(attr, 384);
+ break;
+ case MBEDTLS_ECP_DP_SECP521R1:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1);
+ psa_set_key_bits(attr, 521);
+ break;
+ case MBEDTLS_ECP_DP_CURVE25519:
+ attr->MBEDTLS_PRIVATE(type) = PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY);
+ psa_set_key_bits(attr, 255);
+ break;
+ default:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+ return PSA_SUCCESS;
+}
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) \
+ || defined(MBEDTLS_ECDSA_GENKEY_ALT)
+static int ecc_keygen(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q)
+{
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ uint8_t keybuf[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2 + 1u] = { 0 };
+
+ psa_status_t status = psa_status_to_mbedtls(
+ mbedtls_grp_to_psa_attr(grp->id, &attr) );
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ size_t keybytes;
+ status = psa_status_to_mbedtls(
+ ECC_KEYGEN_FCT(&attr,
+ keybuf,
+ sizeof(keybuf),
+ &keybytes) );
+
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY) {
+ mbedtls_mpi_read_binary_le(d, keybuf, keybytes);
+ } else {
+ mbedtls_mpi_read_binary(d, keybuf, keybytes);
+ }
+
+ status = psa_status_to_mbedtls(
+ ECC_PUBKEY_FCT(&attr,
+ keybuf,
+ keybytes,
+ keybuf,
+ sizeof(keybuf),
+ &keybytes) );
+
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ if ( PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY ) {
+ mbedtls_mpi_read_binary_le(&Q->MBEDTLS_PRIVATE(X), keybuf, keybytes);
+ } else {
+ // The first byte is used to store uncompressed representation byte.
+ mbedtls_mpi_read_binary(&Q->MBEDTLS_PRIVATE(X), keybuf + 1u, keybytes / 2);
+ mbedtls_mpi_read_binary(&Q->MBEDTLS_PRIVATE(Y), keybuf + keybytes / 2 + 1u, keybytes / 2);
+ mbedtls_mpi_lset(&Q->MBEDTLS_PRIVATE(Z), 1);
+ }
+
+ return status;
+}
+#endif /* #if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
+ || defined(MBEDTLS_ECDSA_GENKEY_ALT) */
+
+#if defined(MBEDTLS_ECDSA_GENKEY_ALT)
+/*
+ * Generate key pair
+ */
+int mbedtls_ecdsa_genkey(mbedtls_ecdsa_context *ctx, mbedtls_ecp_group_id gid,
+ int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+{
+ /* PSA uses internal entropy */
+ (void)f_rng;
+ (void)p_rng;
+
+ mbedtls_ecp_group_load(&ctx->MBEDTLS_PRIVATE(grp), gid);
+
+ return ecc_keygen(&ctx->MBEDTLS_PRIVATE(grp), &ctx->MBEDTLS_PRIVATE(d), &ctx->MBEDTLS_PRIVATE(Q));
+}
+#endif /* MBEDTLS_ECDSA_GENKEY_ALT */
+
+#if defined(MBEDTLS_ECDSA_SIGN_ALT)
+int mbedtls_ecdsa_sign(mbedtls_ecp_group *grp, mbedtls_mpi *r, mbedtls_mpi *s,
+ const mbedtls_mpi *d, const unsigned char *buf, size_t blen,
+ int (*f_rng)(void *, unsigned char *, size_t), void *p_rng)
+{
+ /* PSA uses internal entropy */
+ (void)f_rng;
+ (void)p_rng;
+
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+ uint8_t key_signature_buf[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2] = { 0 };
+
+ psa_status_t status = psa_status_to_mbedtls(
+ mbedtls_grp_to_psa_attr(grp->id, &attr));
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+ psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_SIGN_HASH);
+
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ size_t keybytes = PSA_BITS_TO_BYTES(psa_get_key_bits(&attr));
+
+ // Make sure d is in range 1..n-1
+ if ((mbedtls_mpi_cmp_int(d, 1) < 0) || (mbedtls_mpi_cmp_mpi(d, &grp->N) >= 0)) {
+ return MBEDTLS_ERR_ECP_INVALID_KEY;
+ }
+
+ mbedtls_mpi_write_binary(d, key_signature_buf, keybytes);
+
+ status = psa_status_to_mbedtls(
+ ECDSA_SIGN_FCT(&attr,
+ key_signature_buf,
+ keybytes,
+ PSA_ALG_ECDSA_ANY,
+ buf,
+ blen,
+ key_signature_buf,
+ sizeof(key_signature_buf),
+ &keybytes) );
+
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ mbedtls_mpi_read_binary(r, key_signature_buf, keybytes / 2);
+ mbedtls_mpi_read_binary(s, key_signature_buf + (keybytes / 2), keybytes / 2);
+
+ return status;
+}
+#endif /* MBEDTLS_ECDSA_SIGN_ALT */
+
+#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
+int mbedtls_ecdsa_verify(mbedtls_ecp_group *grp,
+ const unsigned char *buf, size_t blen,
+ const mbedtls_ecp_point *Q, const mbedtls_mpi *r, const mbedtls_mpi *s)
+{
+ uint8_t pub[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2 + 1] = { 0 };
+ uint8_t signature[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2] = { 0 };
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+
+ psa_status_t status = psa_status_to_mbedtls(
+ mbedtls_grp_to_psa_attr(grp->id, &attr) );
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ /* Check signature components r, s or both are not negative. */
+ if ( (r->MBEDTLS_PRIVATE(s) < 0) || (s->MBEDTLS_PRIVATE(s) < 0) ) {
+ return MBEDTLS_ERR_ECP_VERIFY_FAILED;
+ }
+
+ psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_VERIFY_HASH);
+
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ attr.MBEDTLS_PRIVATE(type) =
+ PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)));
+
+ size_t keybytes = PSA_BITS_TO_BYTES(psa_get_key_bits(&attr));
+
+ /* pull out signature info from mbedtls structures */
+ mbedtls_mpi_write_binary(r, signature, keybytes);
+ mbedtls_mpi_write_binary(s, &signature[keybytes], keybytes);
+
+ pub[0] = 0x04; // Uncompressed public key
+ mbedtls_mpi_write_binary(&Q->MBEDTLS_PRIVATE(X), &pub[1u], keybytes);
+ mbedtls_mpi_write_binary(&Q->MBEDTLS_PRIVATE(Y), &pub[keybytes + 1u], keybytes);
+
+ return psa_status_to_mbedtls(
+ ECDSA_VERIFY_FCT(&attr,
+ pub,
+ keybytes * 2 + 1u,
+ PSA_ALG_ECDSA_ANY,
+ buf,
+ blen,
+ signature,
+ keybytes * 2) );
+}
+#endif /* MBEDTLS_ECDSA_VERIFY_ALT */
+
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
+int mbedtls_ecdh_gen_public(mbedtls_ecp_group *grp, mbedtls_mpi *d, mbedtls_ecp_point *Q,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ /* PSA uses internal entropy */
+ (void)f_rng;
+ (void)p_rng;
+
+ return ecc_keygen(grp, d, Q);
+}
+#endif /* #if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) */
+
+#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
+int mbedtls_ecdh_compute_shared(mbedtls_ecp_group *grp, mbedtls_mpi *z,
+ const mbedtls_ecp_point *Q, const mbedtls_mpi *d,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ /* PSA uses internal entropy */
+ (void)f_rng;
+ (void)p_rng;
+
+ uint8_t pub[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2 + 1u] = { 0 };
+ uint8_t priv[((((MBEDTLS_ECP_MAX_BYTES) +3) / 4) * 4) * 2] = { 0 };
+ psa_key_attributes_t attr = PSA_KEY_ATTRIBUTES_INIT;
+
+ psa_status_t status = psa_status_to_mbedtls(
+ mbedtls_grp_to_psa_attr(grp->id, &attr) );
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+ psa_set_key_usage_flags(&attr, PSA_KEY_USAGE_DERIVE);
+
+ size_t keylen = PSA_BITS_TO_BYTES(psa_get_key_bits(&attr));
+ size_t publen;
+
+ /* pull out key info from mbedtls structures */
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY) {
+ publen = keylen;
+ mbedtls_mpi_write_binary_le(d, priv, keylen);
+ mbedtls_mpi_write_binary_le(&Q->MBEDTLS_PRIVATE(X), pub, keylen);
+ } else {
+ publen = 2 * keylen + 1u;
+ mbedtls_mpi_write_binary(d, priv, keylen);
+ pub[0] = 0x04; // uncompressed public key
+ mbedtls_mpi_write_binary(&Q->MBEDTLS_PRIVATE(X), pub + 1u, keylen);
+ mbedtls_mpi_write_binary(&Q->MBEDTLS_PRIVATE(Y), pub + keylen + 1u, keylen);
+ }
+
+ status = psa_status_to_mbedtls(
+ ECDH_DERIVE_FCT(PSA_ALG_ECDH,
+ &attr,
+ priv,
+ keylen,
+ pub,
+ publen,
+ pub,
+ sizeof(pub),
+ &publen) );
+
+ if ( status != PSA_SUCCESS ) {
+ return status;
+ }
+
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(&attr)) == PSA_ECC_FAMILY_MONTGOMERY) {
+ mbedtls_mpi_read_binary_le(z, pub, publen);
+ } else {
+ mbedtls_mpi_read_binary(z, pub, publen);
+ }
+ return status;
+}
+#endif /* #if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) */
+
+#endif /* ECC_IMPLEMENTATION_PRESENT */
+
+#endif /* #if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) || defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) */
+
+#endif /* #if defined(MBEDTLS_ECP_C) */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_sha.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_sha.c
new file mode 100644
index 000000000..2fd1743a5
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/mbedtls_sha.c
@@ -0,0 +1,242 @@
+/***************************************************************************//**
+ * @file
+ * @brief SHA-1, SHA-256 and SHA-512 mbedTLS plugin on top of PSA accelerators.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes an alternative implementation of the SHA functionality in
+ * mbed TLS' APIs, using the accelerators incorporated in devices from Silicon Labs.
+ *
+ * This alternative implementation calls the PSA Crypto drivers provided
+ * by Silicon Labs. For details on these drivers, see \ref sl_psa_drivers.
+ */
+
+#include
+
+#if (defined(MBEDTLS_SHA256_ALT) && defined(MBEDTLS_SHA256_C)) \
+ || (defined(MBEDTLS_SHA1_ALT) && defined(MBEDTLS_SHA1_C)) \
+ || (defined(MBEDTLS_SHA512_ALT) && defined(MBEDTLS_SHA512_C))
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_transparent_functions.h"
+#define HASH_IMPLEMENTATION_PRESENT
+#define HASH_SETUP_FCT sli_se_transparent_hash_setup
+#define HASH_UPDATE_FCT sli_se_transparent_hash_update
+#define HASH_FINISH_FCT sli_se_transparent_hash_finish
+#define HASH_ABORT_FCT sli_se_transparent_hash_abort
+#define HASH_ONESHOT_FCT sli_se_transparent_hash_compute
+#elif defined(CRYPTOACC_PRESENT)
+#include "sli_cryptoacc_transparent_functions.h"
+#define HASH_IMPLEMENTATION_PRESENT
+#define HASH_SETUP_FCT sli_cryptoacc_transparent_hash_setup
+#define HASH_UPDATE_FCT sli_cryptoacc_transparent_hash_update
+#define HASH_FINISH_FCT sli_cryptoacc_transparent_hash_finish
+#define HASH_ABORT_FCT sli_cryptoacc_transparent_hash_abort
+#define HASH_ONESHOT_FCT sli_cryptoacc_transparent_hash_compute
+#endif
+
+#include "mbedtls/error.h"
+#include "mbedtls/platform.h"
+
+#if defined(MBEDTLS_SHA1_ALT) && defined(MBEDTLS_SHA1_C)
+#include "mbedtls/sha1.h"
+#endif /* SHA1 acceleration active */
+
+#if defined(MBEDTLS_SHA256_ALT) && defined(MBEDTLS_SHA256_C)
+#include "mbedtls/sha256.h"
+#endif /* SHA256 acceleration active */
+
+#if defined(MBEDTLS_SHA512_ALT) && defined(MBEDTLS_SHA512_C)
+#include "mbedtls/sha512.h"
+#endif /* SHA512 acceleration active */
+
+#if defined(HASH_IMPLEMENTATION_PRESENT)
+static int psa_status_to_mbedtls(psa_status_t status, psa_algorithm_t alg)
+{
+ switch ( status ) {
+ case PSA_SUCCESS:
+ return 0;
+ case PSA_ERROR_HARDWARE_FAILURE:
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ case PSA_ERROR_NOT_SUPPORTED:
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ case PSA_ERROR_INVALID_ARGUMENT:
+ switch ( alg ) {
+#if defined(MBEDTLS_SHA1_ALT) && defined(MBEDTLS_SHA1_C)
+ case PSA_ALG_SHA_1:
+ return MBEDTLS_ERR_SHA1_BAD_INPUT_DATA;
+#endif
+#if defined(MBEDTLS_SHA256_ALT) && defined(MBEDTLS_SHA256_C)
+ case PSA_ALG_SHA_256:
+ return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
+#endif
+#if defined(MBEDTLS_SHA512_ALT) && defined(MBEDTLS_SHA512_C)
+ case PSA_ALG_SHA_512:
+ return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
+#endif
+ default:
+ return MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
+ }
+ default:
+ return MBEDTLS_ERR_ERROR_GENERIC_ERROR;
+ }
+}
+
+#if defined(MBEDTLS_SHA512_ALT) && (defined(MBEDTLS_SHA384_C) || defined(MBEDTLS_SHA512_C))
+
+void mbedtls_sha512_init(mbedtls_sha512_context *ctx)
+{
+ HASH_ABORT_FCT(ctx);
+}
+
+void mbedtls_sha512_free(mbedtls_sha512_context *ctx)
+{
+ HASH_ABORT_FCT(ctx);
+}
+
+void mbedtls_sha512_clone(mbedtls_sha512_context *dst,
+ const mbedtls_sha512_context *src)
+{
+ *dst = *src;
+}
+
+int mbedtls_sha512_starts(mbedtls_sha512_context *ctx, int is384)
+{
+ if (is384 > 1) {
+ return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA;
+ }
+
+ return psa_status_to_mbedtls(HASH_SETUP_FCT(ctx, is384 ? PSA_ALG_SHA_384 : PSA_ALG_SHA_512), PSA_ALG_SHA_512);
+}
+
+int mbedtls_sha512_update(mbedtls_sha512_context *ctx, const unsigned char *input,
+ size_t ilen)
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT(ctx, input, ilen), PSA_ALG_SHA_512);
+}
+
+int mbedtls_internal_sha512_process(mbedtls_sha512_context *ctx, const unsigned char data[128])
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT(ctx, data, 128), PSA_ALG_SHA_512);
+}
+
+int mbedtls_sha512_finish(mbedtls_sha512_context *ctx, unsigned char *output)
+{
+ size_t out_length = 0;
+ return psa_status_to_mbedtls(HASH_FINISH_FCT(ctx, output, 64, &out_length), PSA_ALG_SHA_512);
+}
+#endif /* SHA512 acceleration active */
+
+#if defined(MBEDTLS_SHA256_ALT) && (defined(MBEDTLS_SHA256_C) || defined(MBEDTLS_SHA224_C))
+void mbedtls_sha256_init(mbedtls_sha256_context *ctx)
+{
+ HASH_ABORT_FCT((void *)ctx);
+}
+
+void mbedtls_sha256_free(mbedtls_sha256_context *ctx)
+{
+ HASH_ABORT_FCT((void *)ctx);
+}
+
+void mbedtls_sha256_clone(mbedtls_sha256_context *dst,
+ const mbedtls_sha256_context *src)
+{
+ *dst = *src;
+}
+
+int mbedtls_sha256_starts(mbedtls_sha256_context *ctx, int is224)
+{
+ if (is224 > 1) {
+ return MBEDTLS_ERR_SHA256_BAD_INPUT_DATA;
+ }
+
+ return psa_status_to_mbedtls(HASH_SETUP_FCT((void *)ctx, is224 ? PSA_ALG_SHA_224 : PSA_ALG_SHA_256), PSA_ALG_SHA_256);
+}
+
+int mbedtls_sha256_update(mbedtls_sha256_context *ctx, const unsigned char *input,
+ size_t ilen)
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT((void *)ctx, input, ilen), PSA_ALG_SHA_256);
+}
+
+int mbedtls_internal_sha256_process(mbedtls_sha256_context *ctx, const unsigned char data[64])
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT((void *)ctx, data, 64), PSA_ALG_SHA_256);
+}
+
+int mbedtls_sha256_finish(mbedtls_sha256_context *ctx, unsigned char *output)
+{
+ size_t out_length = 0;
+ return psa_status_to_mbedtls(HASH_FINISH_FCT((void *)ctx, output, 32, &out_length), PSA_ALG_SHA_256);
+}
+#endif /* SHA256 acceleration active */
+
+#if defined(MBEDTLS_SHA1_ALT) && defined(MBEDTLS_SHA1_C)
+
+void mbedtls_sha1_init(mbedtls_sha1_context *ctx)
+{
+ HASH_ABORT_FCT((void *)ctx);
+}
+
+void mbedtls_sha1_free(mbedtls_sha1_context *ctx)
+{
+ HASH_ABORT_FCT((void *)ctx);
+}
+
+void mbedtls_sha1_clone(mbedtls_sha1_context *dst,
+ const mbedtls_sha1_context *src)
+{
+ *dst = *src;
+}
+
+int mbedtls_sha1_starts(mbedtls_sha1_context *ctx)
+{
+ return psa_status_to_mbedtls(HASH_SETUP_FCT((void *)ctx, PSA_ALG_SHA_1), PSA_ALG_SHA_1);
+}
+
+int mbedtls_sha1_update(mbedtls_sha1_context *ctx, const unsigned char *input, size_t ilen)
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT((void *)ctx, input, ilen), PSA_ALG_SHA_1);
+}
+
+int mbedtls_internal_sha1_process(mbedtls_sha1_context *ctx, const unsigned char data[64])
+{
+ return psa_status_to_mbedtls(HASH_UPDATE_FCT((void *)ctx, data, 64), PSA_ALG_SHA_1);
+}
+
+int mbedtls_sha1_finish(mbedtls_sha1_context *ctx, unsigned char output[20])
+{
+ size_t out_length = 0;
+ return psa_status_to_mbedtls(HASH_FINISH_FCT((void *)ctx, output, 20, &out_length), PSA_ALG_SHA_1);
+}
+#endif /* SHA1 acceleration active */
+
+#endif /* HASH_IMPLEMENTATION_PRESENT */
+#endif /* (SHA1 or SHA256 or SHA512) acceleration active */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_aes.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_aes.c
new file mode 100644
index 000000000..4614184a3
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_aes.c
@@ -0,0 +1,780 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES abstraction based on Secure Engine
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/*
+ * This file includes alternative plugin implementations of various
+ * functions in aes.c using the Secure Engine accelerator incorporated
+ * in Series-2 devices with Secure Engine from Silicon Laboratories.
+ */
+
+/**
+ * The AES block cipher was designed by Vincent Rijmen and Joan Daemen.
+ *
+ * http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf
+ * http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
+ */
+
+#include
+
+#if defined(MBEDTLS_AES_C)
+#if defined(MBEDTLS_AES_ALT)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+
+#include "sli_se_manager_mailbox.h"
+#include "sli_se_manager_internal.h"
+#include "se_management.h"
+#include "mbedtls/aes.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+#include
+
+/*
+ * Initialize AES context
+ */
+void mbedtls_aes_init(mbedtls_aes_context *ctx)
+{
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+}
+
+/*
+ * Clear AES context
+ */
+void mbedtls_aes_free(mbedtls_aes_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+}
+
+#if defined(MBEDTLS_CIPHER_MODE_XTS)
+void mbedtls_aes_xts_init(mbedtls_aes_xts_context *ctx)
+{
+ mbedtls_aes_init(&ctx->crypt);
+ mbedtls_aes_init(&ctx->tweak);
+}
+
+void mbedtls_aes_xts_free(mbedtls_aes_xts_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+
+ mbedtls_aes_free(&ctx->crypt);
+ mbedtls_aes_free(&ctx->tweak);
+}
+
+static int mbedtls_aes_xts_decode_keys(const unsigned char *key,
+ unsigned int keybits,
+ const unsigned char **key1,
+ unsigned int *key1bits,
+ const unsigned char **key2,
+ unsigned int *key2bits)
+{
+ const unsigned int half_keybits = keybits / 2;
+ const unsigned int half_keybytes = half_keybits / 8;
+
+ switch ( keybits ) {
+ case 256: break;
+ case 512: break;
+ default: return(MBEDTLS_ERR_AES_INVALID_KEY_LENGTH);
+ }
+
+ *key1bits = half_keybits;
+ *key2bits = half_keybits;
+ *key1 = &key[0];
+ *key2 = &key[half_keybytes];
+
+ return 0;
+}
+
+int mbedtls_aes_xts_setkey_enc(mbedtls_aes_xts_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ int ret;
+ const unsigned char *key1 = NULL;
+ const unsigned char *key2 = NULL;
+ unsigned int key1bits = 0;
+ unsigned int key2bits = 0;
+
+ ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits,
+ &key2, &key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set the tweak key. Always set tweak key for the encryption mode. */
+ ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set crypt key for encryption. */
+ return mbedtls_aes_setkey_enc(&ctx->crypt, key1, key1bits);
+}
+
+int mbedtls_aes_xts_setkey_dec(mbedtls_aes_xts_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ int ret;
+ const unsigned char *key1 = NULL;
+ const unsigned char *key2 = NULL;
+ unsigned int key1bits = 0;
+ unsigned int key2bits = 0;
+
+ if (ctx == NULL || key == NULL) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ ret = mbedtls_aes_xts_decode_keys(key, keybits, &key1, &key1bits,
+ &key2, &key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set the tweak key. Always set tweak key for encryption. */
+ ret = mbedtls_aes_setkey_enc(&ctx->tweak, key2, key2bits);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ /* Set crypt key for decryption. */
+ return mbedtls_aes_setkey_dec(&ctx->crypt, key1, key1bits);
+}
+
+/* Endianess with 64 bits values */
+#ifndef GET_UINT64_LE
+#define GET_UINT64_LE(n, b, i) \
+ { \
+ (n) = ( (uint64_t) (b)[(i) + 7] << 56) \
+ | ( (uint64_t) (b)[(i) + 6] << 48) \
+ | ( (uint64_t) (b)[(i) + 5] << 40) \
+ | ( (uint64_t) (b)[(i) + 4] << 32) \
+ | ( (uint64_t) (b)[(i) + 3] << 24) \
+ | ( (uint64_t) (b)[(i) + 2] << 16) \
+ | ( (uint64_t) (b)[(i) + 1] << 8) \
+ | ( (uint64_t) (b)[(i)]); \
+ }
+#endif
+
+#ifndef PUT_UINT64_LE
+#define PUT_UINT64_LE(n, b, i) \
+ { \
+ (b)[(i) + 7] = (unsigned char) ( (n) >> 56); \
+ (b)[(i) + 6] = (unsigned char) ( (n) >> 48); \
+ (b)[(i) + 5] = (unsigned char) ( (n) >> 40); \
+ (b)[(i) + 4] = (unsigned char) ( (n) >> 32); \
+ (b)[(i) + 3] = (unsigned char) ( (n) >> 24); \
+ (b)[(i) + 2] = (unsigned char) ( (n) >> 16); \
+ (b)[(i) + 1] = (unsigned char) ( (n) >> 8); \
+ (b)[(i)] = (unsigned char) ( (n) ); \
+ }
+#endif
+
+/*
+ * GF(2^128) multiplication function
+ *
+ * This function multiplies a field element by x in the polynomial field
+ * representation. It uses 64-bit word operations to gain speed but compensates
+ * for machine endianess and hence works correctly on both big and little
+ * endian machines.
+ */
+static void mbedtls_gf128mul_x_ble(unsigned char r[16],
+ const unsigned char x[16])
+{
+ uint64_t a, b, ra, rb;
+
+ GET_UINT64_LE(a, x, 0);
+ GET_UINT64_LE(b, x, 8);
+
+ ra = (a << 1) ^ 0x0087 >> (8 - ( (b >> 63) << 3) );
+ rb = (a >> 63) | (b << 1);
+
+ PUT_UINT64_LE(ra, r, 0);
+ PUT_UINT64_LE(rb, r, 8);
+}
+
+/*
+ * AES-XTS buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_xts(mbedtls_aes_xts_context *ctx,
+ int mode,
+ size_t length,
+ const unsigned char data_unit[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int ret;
+ size_t blocks = length / 16;
+ size_t leftover = length % 16;
+ unsigned char tweak[16];
+ unsigned char prev_tweak[16];
+ unsigned char tmp[16];
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ /* Data units must be at least 16 bytes long. */
+ if ( length < 16 ) {
+ return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
+ }
+
+ /* NIST SP 800-38E disallows data units larger than 2**20 blocks. */
+ if ( length > (1 << 20) * 16 ) {
+ return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
+ }
+
+ /* Compute the tweak. */
+ ret = mbedtls_aes_crypt_ecb(&ctx->tweak, MBEDTLS_AES_ENCRYPT,
+ data_unit, tweak);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ while ( blocks-- ) {
+ size_t i;
+
+ if ( leftover && (mode == MBEDTLS_AES_DECRYPT) && blocks == 0 ) {
+ /* We are on the last block in a decrypt operation that has
+ * leftover bytes, so we need to use the next tweak for this block,
+ * and this tweak for the lefover bytes. Save the current tweak for
+ * the leftovers and then update the current tweak for use on this,
+ * the last full block. */
+ memcpy(prev_tweak, tweak, sizeof(tweak) );
+ mbedtls_gf128mul_x_ble(tweak, tweak);
+ }
+
+ for ( i = 0; i < 16; i++ ) {
+ tmp[i] = input[i] ^ tweak[i];
+ }
+
+ ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp);
+ if ( ret != 0 ) {
+ return(ret);
+ }
+
+ for ( i = 0; i < 16; i++ ) {
+ output[i] = tmp[i] ^ tweak[i];
+ }
+
+ /* Update the tweak for the next block. */
+ mbedtls_gf128mul_x_ble(tweak, tweak);
+
+ output += 16;
+ input += 16;
+ }
+
+ if ( leftover ) {
+ /* If we are on the leftover bytes in a decrypt operation, we need to
+ * use the previous tweak for these bytes (as saved in prev_tweak). */
+ unsigned char *t = mode == MBEDTLS_AES_DECRYPT ? prev_tweak : tweak;
+
+ /* We are now on the final part of the data unit, which doesn't divide
+ * evenly by 16. It's time for ciphertext stealing. */
+ size_t i;
+ unsigned char *prev_output = output - 16;
+
+ /* Copy ciphertext bytes from the previous block to our output for each
+ * byte of cyphertext we won't steal. At the same time, copy the
+ * remainder of the input for this final round (since the loop bounds
+ * are the same). */
+ for ( i = 0; i < leftover; i++ ) {
+ output[i] = prev_output[i];
+ tmp[i] = input[i] ^ t[i];
+ }
+
+ /* Copy ciphertext bytes from the previous block for input in this
+ * round. */
+ for (; i < 16; i++ ) {
+ tmp[i] = prev_output[i] ^ t[i];
+ }
+
+ ret = mbedtls_aes_crypt_ecb(&ctx->crypt, mode, tmp, tmp);
+ if ( ret != 0 ) {
+ return ret;
+ }
+
+ /* Write the result back to the previous block, overriding the previous
+ * output we copied. */
+ for ( i = 0; i < 16; i++ ) {
+ prev_output[i] = tmp[i] ^ t[i];
+ }
+ }
+
+ return(0);
+}
+
+#endif /* MBEDTLS_CIPHER_MODE_XTS */
+
+/*
+ * AES key schedule (encryption)
+ */
+int mbedtls_aes_setkey_enc(mbedtls_aes_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ memset(ctx, 0, sizeof(mbedtls_aes_context) );
+
+ if ( (128UL != keybits) && (192UL != keybits) && (256UL != keybits) ) {
+ // Unsupported key size
+ return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH;
+ }
+
+ ctx->keybits = keybits;
+ memcpy(ctx->key, key, keybits / 8);
+
+ return 0;
+}
+
+/*
+ * AES key schedule (decryption)
+ */
+int mbedtls_aes_setkey_dec(mbedtls_aes_context *ctx,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ return mbedtls_aes_setkey_enc(ctx, key, keybits);
+}
+
+/*
+ * AES-ECB block encryption/decryption
+ */
+int mbedtls_aes_crypt_ecb(mbedtls_aes_context *ctx,
+ int mode,
+ const unsigned char input[16],
+ unsigned char output[16])
+{
+ sli_se_mailbox_response_t command_status;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL && ctx->keybits != 192UL && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT((mode == MBEDTLS_AES_ENCRYPT ? SLI_SE_COMMAND_AES_ENCRYPT : SLI_SE_COMMAND_AES_DECRYPT) | SLI_SE_COMMAND_OPTION_MODE_ECB | SLI_SE_COMMAND_OPTION_CONTEXT_WHOLE);
+ sli_se_datatransfer_t key = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, (ctx->keybits / 8));
+ sli_se_datatransfer_t in = SLI_SE_DATATRANSFER_DEFAULT((void*)input, 16);
+ sli_se_datatransfer_t out = SLI_SE_DATATRANSFER_DEFAULT(output, 16);
+
+ sli_se_mailbox_command_add_input(&command, &key);
+ sli_se_mailbox_command_add_input(&command, &in);
+ sli_se_mailbox_command_add_output(&command, &out);
+ sli_se_mailbox_command_add_parameter(&command, (ctx->keybits / 8));
+ sli_se_mailbox_command_add_parameter(&command, 16);
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ command_status = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( command_status == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return (int)command_status;
+ }
+}
+
+#if defined(MBEDTLS_CIPHER_MODE_CBC)
+
+/*
+ * AES-CBC buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cbc(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ sli_se_mailbox_response_t command_status;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ // Input length must be a multiple of 16 bytes which is the AES block
+ // length.
+ if ( length & 0xf ) {
+ return MBEDTLS_ERR_AES_INVALID_INPUT_LENGTH;
+ }
+
+ if ( ctx->keybits != 128UL && ctx->keybits != 192UL && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH;
+ }
+
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT((mode == MBEDTLS_AES_ENCRYPT ? SLI_SE_COMMAND_AES_ENCRYPT : SLI_SE_COMMAND_AES_DECRYPT) | SLI_SE_COMMAND_OPTION_MODE_CBC | SLI_SE_COMMAND_OPTION_CONTEXT_ADD);
+ sli_se_datatransfer_t key = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, (ctx->keybits / 8));
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT(iv, 16);
+ sli_se_datatransfer_t iv_out = SLI_SE_DATATRANSFER_DEFAULT(iv, 16);
+ sli_se_datatransfer_t in = SLI_SE_DATATRANSFER_DEFAULT((void*)input, length);
+ sli_se_datatransfer_t out = SLI_SE_DATATRANSFER_DEFAULT(output, length);
+
+ sli_se_mailbox_command_add_input(&command, &key);
+ sli_se_mailbox_command_add_input(&command, &iv_in);
+ sli_se_mailbox_command_add_input(&command, &in);
+ sli_se_mailbox_command_add_output(&command, &out);
+ sli_se_mailbox_command_add_output(&command, &iv_out);
+ sli_se_mailbox_command_add_parameter(&command, (ctx->keybits / 8));
+ sli_se_mailbox_command_add_parameter(&command, length);
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ command_status = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( command_status == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return (int)command_status;
+ }
+}
+#endif /* MBEDTLS_CIPHER_MODE_CBC */
+
+#if defined(MBEDTLS_CIPHER_MODE_CFB)
+/*
+ * AES-CFB128 buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cfb128(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ size_t *iv_off,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ size_t n = iv_off ? *iv_off : 0;
+ size_t processed = 0;
+ sli_se_mailbox_response_t command_status = SLI_SE_RESPONSE_OK;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( n > 15 ) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL && ctx->keybits != 192UL && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH;
+ }
+
+ while ( processed < length ) {
+ if ( n > 0 ) {
+ /* start by filling up the IV */
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ iv[n] = output[processed] = (unsigned char)(iv[n] ^ input[processed]);
+ } else {
+ int c = input[processed];
+ output[processed] = (unsigned char)(c ^ iv[n]);
+ iv[n] = (unsigned char) c;
+ }
+ n = (n + 1) & 0x0F;
+ processed++;
+ } else {
+ /* process one ore more blocks of data */
+ size_t iterations = (length - processed) / 16;
+
+ if ( iterations > 0 ) {
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT((mode == MBEDTLS_AES_ENCRYPT ? SLI_SE_COMMAND_AES_ENCRYPT : SLI_SE_COMMAND_AES_DECRYPT) | SLI_SE_COMMAND_OPTION_MODE_CFB | SLI_SE_COMMAND_OPTION_CONTEXT_ADD);
+ sli_se_datatransfer_t key = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, (ctx->keybits / 8));
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT(iv, 16);
+ sli_se_datatransfer_t iv_out = SLI_SE_DATATRANSFER_DEFAULT(iv, 16);
+ sli_se_datatransfer_t in = SLI_SE_DATATRANSFER_DEFAULT((void*)&input[processed], iterations * 16);
+ sli_se_datatransfer_t out = SLI_SE_DATATRANSFER_DEFAULT(&output[processed], iterations * 16);
+
+ sli_se_mailbox_command_add_input(&command, &key);
+ sli_se_mailbox_command_add_input(&command, &iv_in);
+ sli_se_mailbox_command_add_input(&command, &in);
+ sli_se_mailbox_command_add_output(&command, &out);
+ sli_se_mailbox_command_add_output(&command, &iv_out);
+ sli_se_mailbox_command_add_parameter(&command, (ctx->keybits / 8));
+ sli_se_mailbox_command_add_parameter(&command, iterations * 16);
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ command_status = sli_se_handle_mailbox_response();
+
+ se_management_release();
+ processed += iterations * 16;
+ }
+
+ if ( command_status != SLI_SE_RESPONSE_OK ) {
+ goto exit;
+ }
+
+ while ( length - processed > 0 ) {
+ if ( n == 0 ) {
+ // Need to update the IV but don't have a full block of input to pass to the SE
+ int status = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv);
+ if (status != 0) {
+ return status;
+ }
+ }
+ /* Save remainder to iv */
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ iv[n] = output[processed] = (unsigned char)(iv[n] ^ input[processed]);
+ } else {
+ int c = input[processed];
+ output[processed] = (unsigned char)(c ^ iv[n]);
+ iv[n] = (unsigned char) c;
+ }
+ n = (n + 1) & 0x0F;
+ processed++;
+ }
+ }
+ }
+
+ if ( iv_off ) {
+ *iv_off = n;
+ }
+
+ exit:
+ if ( command_status == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return (int)command_status;
+ }
+}
+
+/*
+ * AES-CFB8 buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_cfb8(mbedtls_aes_context *ctx,
+ int mode,
+ size_t length,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ unsigned char c;
+ unsigned char ov[17];
+ int ret = 0;
+
+ if ((mode != MBEDTLS_AES_ENCRYPT) && (mode != MBEDTLS_AES_DECRYPT)) {
+ return MBEDTLS_ERR_AES_BAD_INPUT_DATA;
+ }
+
+ if ( ctx->keybits != 128UL && ctx->keybits != 192UL && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH;
+ }
+
+ while ( length-- ) {
+ memcpy(ov, iv, 16);
+ if ( (ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv) ) != 0 ) {
+ return ret;
+ }
+
+ if ( mode == MBEDTLS_AES_DECRYPT ) {
+ ov[16] = *input;
+ }
+
+ c = *output++ = (unsigned char)(iv[0] ^ *input++);
+
+ if ( mode == MBEDTLS_AES_ENCRYPT ) {
+ ov[16] = c;
+ }
+
+ memcpy(iv, ov + 1, 16);
+ }
+
+ return ret;
+}
+#endif /*MBEDTLS_CIPHER_MODE_CFB */
+
+#if defined(MBEDTLS_CIPHER_MODE_CTR)
+/*
+ * AES-CTR buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_ctr(mbedtls_aes_context *ctx,
+ size_t length,
+ size_t *nc_off,
+ unsigned char nonce_counter[16],
+ unsigned char stream_block[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ size_t n = nc_off ? *nc_off : 0;
+ size_t processed = 0;
+ sli_se_mailbox_response_t command_status = SLI_SE_RESPONSE_OK;
+
+ if ( ctx->keybits != 128UL && ctx->keybits != 192UL && ctx->keybits != 256UL) {
+ return MBEDTLS_ERR_AES_INVALID_KEY_LENGTH;
+ }
+
+ while ( processed < length ) {
+ if ( n > 0 ) {
+ /* start by filling up the IV */
+ output[processed] = (unsigned char)(input[processed] ^ stream_block[n]);
+ n = (n + 1) & 0x0F;
+ processed++;
+ } else {
+ /* process one or more blocks of data */
+ size_t iterations = (length - processed) / 16;
+
+ if ( iterations > 0 ) {
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_ENCRYPT | SLI_SE_COMMAND_OPTION_MODE_CTR | SLI_SE_COMMAND_OPTION_CONTEXT_ADD);
+ sli_se_datatransfer_t key = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, (ctx->keybits / 8));
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT(nonce_counter, 16);
+ sli_se_datatransfer_t iv_out = SLI_SE_DATATRANSFER_DEFAULT(nonce_counter, 16);
+ sli_se_datatransfer_t in = SLI_SE_DATATRANSFER_DEFAULT((void*)&input[processed], iterations * 16);
+ sli_se_datatransfer_t out = SLI_SE_DATATRANSFER_DEFAULT(&output[processed], iterations * 16);
+
+ sli_se_mailbox_command_add_input(&command, &key);
+ sli_se_mailbox_command_add_input(&command, &iv_in);
+ sli_se_mailbox_command_add_input(&command, &in);
+ sli_se_mailbox_command_add_output(&command, &out);
+ sli_se_mailbox_command_add_output(&command, &iv_out);
+ sli_se_mailbox_command_add_parameter(&command, (ctx->keybits / 8));
+ sli_se_mailbox_command_add_parameter(&command, iterations * 16);
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ command_status = sli_se_handle_mailbox_response();
+
+ se_management_release();
+ processed += iterations * 16;
+ }
+
+ if ( command_status != SLI_SE_RESPONSE_OK ) {
+ goto exit;
+ }
+
+ while ( length - processed > 0 ) {
+ if ( n == 0 ) {
+ // Get a new stream block
+ int status = mbedtls_aes_crypt_ecb(ctx,
+ MBEDTLS_AES_ENCRYPT,
+ nonce_counter,
+ stream_block);
+ if (status != 0) {
+ return status;
+ }
+ // increment nonce counter...
+ for (size_t i = 0; i < 16; i++) {
+ nonce_counter[15 - i] = nonce_counter[15 - i] + 1;
+ if ( nonce_counter[15 - i] != 0 ) {
+ break;
+ }
+ }
+ }
+ /* Save remainder to iv */
+ output[processed] = (unsigned char)(input[processed] ^ stream_block[n]);
+ n = (n + 1) & 0x0F;
+ processed++;
+ }
+ }
+ }
+
+ if ( nc_off ) {
+ *nc_off = n;
+ }
+
+ exit:
+ if ( command_status == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return (int)command_status;
+ }
+}
+#endif /* MBEDTLS_CIPHER_MODE_CTR */
+
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+/*
+ * AES-OFB (Output Feedback Mode) buffer encryption/decryption
+ */
+int mbedtls_aes_crypt_ofb(mbedtls_aes_context *ctx,
+ size_t length,
+ size_t *iv_off,
+ unsigned char iv[16],
+ const unsigned char *input,
+ unsigned char *output)
+{
+ int ret = 0;
+ size_t n;
+
+ n = *iv_off;
+
+ if ( n > 15 ) {
+ return(MBEDTLS_ERR_AES_BAD_INPUT_DATA);
+ }
+
+ while ( length-- ) {
+ if ( n == 0 ) {
+ ret = mbedtls_aes_crypt_ecb(ctx, MBEDTLS_AES_ENCRYPT, iv, iv);
+ if ( ret != 0 ) {
+ goto exit;
+ }
+ }
+ *output++ = *input++ ^ iv[n];
+
+ n = (n + 1) & 0x0F;
+ }
+
+ *iv_off = n;
+
+ exit:
+ return(ret);
+}
+#endif /* MBEDTLS_CIPHER_MODE_OFB */
+
+#endif /* SEMAILBOX_PRESENT */
+
+#endif /* MBEDTLS_AES_ALT */
+
+#endif /* MBEDTLS_AES_C */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_gcm.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_gcm.c
new file mode 100644
index 000000000..462ec432c
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_gcm.c
@@ -0,0 +1,724 @@
+/***************************************************************************//**
+ * @file
+ * @brief AES-GCM abstraction via Silicon Labs SE
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes alternative plugin implementations of various
+ * functions in gcm.c using the SE accelerator incorporated
+ * in Series-2 devices with Secure Engine from Silicon Laboratories.
+ */
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_manager_mailbox.h"
+#include "mbedtls/build_info.h"
+
+#if defined(MBEDTLS_GCM_ALT) && defined(MBEDTLS_GCM_C)
+#include "mbedtls/gcm.h"
+#include "mbedtls/platform.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+#include "se_management.h"
+#include
+
+/* Implementation that should never be optimized out by the compiler */
+static void mbedtls_zeroize(void *v, size_t n)
+{
+ if (n == 0) {
+ return;
+ }
+ volatile unsigned char *p = v;
+ while ( n-- ) *p++ = 0;
+}
+
+static void sx_math_u64_to_u8array(uint64_t in, uint8_t *out)
+{
+ uint32_t i = 0;
+ for (i = 0; i < 8; i++) {
+ out[7 - i] = (in >> 8 * i) & 0xFF;
+ }
+}
+
+static int sli_validate_gcm_params(size_t tag_len,
+ size_t iv_len,
+ size_t add_len)
+{
+ // NOTE: tag lengths != 16 byte are only supported as of SE FW v1.2.0.
+ // Earlier firmware versions will return an error trying to verify non-16-byte
+ // tags using this function.
+ if ( tag_len < 4 || tag_len > 16 || iv_len == 0 ) {
+ return (MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ /* AD are limited to 2^64 bits, so 2^61 bytes. Since the length of AAD is
+ * limited by the mbedtls API to a size_t, length checking only needs to be
+ * done on 64-bit platforms. */
+#if SIZE_MAX > 0xFFFFFFFFUL
+ if (add_len >> 61 != 0) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+#else
+ (void) add_len;
+#endif /* 64-bit size_t */
+
+ /* Library does not support non-12-byte IVs */
+ if (iv_len != 12) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ return 0;
+}
+
+/*
+ * Initialize a context
+ */
+void mbedtls_gcm_init(mbedtls_gcm_context *ctx)
+{
+ if (ctx == NULL) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(mbedtls_gcm_context) );
+}
+
+// Set key
+int mbedtls_gcm_setkey(mbedtls_gcm_context *ctx,
+ mbedtls_cipher_id_t cipher,
+ const unsigned char *key,
+ unsigned int keybits)
+{
+ if (ctx == NULL
+ || key == NULL
+ || cipher != MBEDTLS_CIPHER_ID_AES
+ || (keybits != 128 && keybits != 192 && keybits != 256)) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ /* Store key in gcm context */
+ ctx->keybits = keybits;
+ memcpy(ctx->key, key, keybits / 8);
+
+ return 0;
+}
+
+int mbedtls_gcm_starts(mbedtls_gcm_context *ctx,
+ int mode,
+ const unsigned char *iv,
+ size_t iv_len)
+{
+ int status;
+
+ /* Check input parameters. */
+ if (ctx == NULL
+ || iv == NULL ) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ status = sli_validate_gcm_params(16, iv_len, 0);
+ if (status) {
+ return status;
+ }
+
+ /* Store input in context data structure. */
+ ctx->mode = mode;
+ ctx->len = 0;
+ ctx->add_len = 0;
+ ctx->last_op = false;
+ ctx->iv_len = iv_len;
+ memcpy(ctx->se_ctx_dec, iv, iv_len);
+ memcpy(ctx->se_ctx_enc, iv, iv_len);
+
+ return 0;
+}
+
+int mbedtls_gcm_update_ad(mbedtls_gcm_context *ctx,
+ const unsigned char *add,
+ size_t add_len)
+{
+ int status;
+ sli_se_mailbox_response_t se_response;
+
+ if (add_len > 0 && add == NULL) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ if (add_len == 0) {
+ return 0;
+ }
+
+ // This implementation only supports adding the full AD in one shot
+ if ( ctx->add_len > 0 ) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ status = sli_validate_gcm_params(16, 12, add_len);
+ if (status) {
+ return status;
+ }
+
+ // Start with encryption
+ // Need to do encryption twice: once to create the context, the other to pre-compute the tag in case there's no more data coming
+ // (SE doesn't support a type of 'finalize' command. All operations with 'END' set need to contain some data.)
+ sli_se_mailbox_command_t gcm_cmd_enc = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_ENCRYPT | SLI_SE_COMMAND_OPTION_CONTEXT_START);
+ sli_se_mailbox_command_t gcm_cmd_enc_full = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_ENCRYPT | SLI_SE_COMMAND_OPTION_CONTEXT_WHOLE);
+
+ sli_se_datatransfer_t key_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, ctx->iv_len);
+ sli_se_datatransfer_t aad_in = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+
+ sli_se_datatransfer_t key_in_full = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in_full = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, ctx->iv_len);
+ sli_se_datatransfer_t aad_in_full = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+
+ sli_se_datatransfer_t ctx_out = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_enc, sizeof(ctx->se_ctx_enc));
+ sli_se_datatransfer_t tag_out = SLI_SE_DATATRANSFER_DEFAULT(ctx->tagbuf, sizeof(ctx->tagbuf));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &key_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &iv_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &aad_in);
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_full, &key_in_full);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_full, &iv_in_full);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_full, &aad_in_full);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc, &ctx_out);
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc_full, &tag_out);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, 0);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_full, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_full, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_full, 0);
+
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ sli_se_mailbox_execute_command(&gcm_cmd_enc_full);
+ se_response = sli_se_handle_mailbox_response();
+ sli_se_mailbox_execute_command(&gcm_cmd_enc);
+ se_response |= sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ // Continue with decryption if needed
+ if (ctx->mode == MBEDTLS_GCM_DECRYPT) {
+ sli_se_mailbox_command_t gcm_cmd_dec = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_DECRYPT | SLI_SE_COMMAND_OPTION_CONTEXT_START);
+
+ sli_se_datatransfer_t key_in_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, ctx->iv_len);
+ sli_se_datatransfer_t aad_in_dec = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+
+ sli_se_datatransfer_t ctx_out_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, sizeof(ctx->se_ctx_dec));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &key_in_dec);
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &iv_in_dec);
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &aad_in_dec);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd_dec, &ctx_out_dec);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, 0);
+
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ sli_se_mailbox_execute_command(&gcm_cmd_dec);
+ se_response = sli_se_handle_mailbox_response();
+ se_management_release();
+ }
+
+ if (se_response == SLI_SE_RESPONSE_OK) {
+ ctx->add_len = add_len;
+ return 0;
+ } else {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+
+int mbedtls_gcm_update(mbedtls_gcm_context *ctx,
+ const unsigned char *input, size_t input_length,
+ unsigned char *output, size_t output_size,
+ size_t *output_length)
+{
+ int status;
+ sli_se_mailbox_response_t se_response;
+ uint8_t lena_lenc[16];
+ *output_length = 0;
+
+ if (ctx == NULL
+ || (input_length > 0 && input == NULL)
+ || (input_length > 0 && output == NULL)) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ if (input_length > output_size) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ if (input_length == 0) {
+ return 0;
+ }
+
+ /* Total length is restricted to 2^39 - 256 bits, ie 2^36 - 2^5 bytes
+ * Also check for possible overflow */
+ if ( ctx->len + input_length < ctx->len
+ || (uint64_t) ctx->len + input_length > 0xFFFFFFFE0ull ) {
+ return(MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ if ( ctx->last_op == true ) {
+ // We've already closed the input stream, no way back.
+ return (MBEDTLS_ERR_GCM_BAD_INPUT);
+ }
+
+ // Approach:
+ // * Encryption: encrypt regularly with context store. If input length is not a block multiple, close the operation and store the resulting tag in a tag buffer.
+ // * Decryption: decrypt regularly with context store. For each decryption, re-encrypt the decrypted data with context store. If input length is not a block multiple, close both operations and store the tag from the re-encrypt in a tag buffer.
+ // * In both cases, the (re-)encryption is done twice: once assuming there is more data to follow, and once assuming this is the final block.
+ // Explanation: SE doesn't support a type of 'finalize' command. All operations with 'END' set need to contain some data.
+
+ // Figure out whether we'll be closing out
+ bool first_op = (ctx->add_len == 0 && ctx->len == 0) ? true : false;
+
+ if ( input_length % 16 != 0) {
+ // Indicate that this is our last op
+ ctx->last_op = true;
+ }
+
+ if (first_op && ctx->last_op) {
+ // Need to store length in context for later.
+ ctx->len = input_length;
+ // optimisation: delegate to all-in-one handler
+ status = mbedtls_gcm_crypt_and_tag(ctx, ctx->mode, input_length,
+ ctx->se_ctx_dec, ctx->iv_len,
+ NULL, 0,
+ input, output,
+ // Compute max tag size (16 bytes)
+ 16, ctx->tagbuf);
+ if (status == 0) {
+ *output_length = input_length;
+ }
+ return status;
+ }
+
+ sx_math_u64_to_u8array(ctx->add_len << 3, &lena_lenc[0]);
+ sx_math_u64_to_u8array((ctx->len + input_length) << 3, &lena_lenc[8]);
+
+ // Need to be sure we can get the SE before starting to change any context variables
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ ctx->len += input_length;
+
+ if (ctx->mode == MBEDTLS_GCM_DECRYPT) {
+ // Run decryption first
+ sli_se_mailbox_command_t gcm_cmd_dec = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_DECRYPT | (first_op ? SLI_SE_COMMAND_OPTION_CONTEXT_START : (ctx->last_op ? SLI_SE_COMMAND_OPTION_CONTEXT_END : SLI_SE_COMMAND_OPTION_CONTEXT_ADD)));
+
+ sli_se_datatransfer_t key_in_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_ctx_in_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, (first_op ? ctx->iv_len : sizeof(ctx->se_ctx_dec)));
+ sli_se_datatransfer_t data_in_dec = SLI_SE_DATATRANSFER_DEFAULT((void*)input, input_length);
+ sli_se_datatransfer_t lenalenc_in_dec = SLI_SE_DATATRANSFER_DEFAULT(lena_lenc, sizeof(lena_lenc));
+ sli_se_datatransfer_t data_out_dec = SLI_SE_DATATRANSFER_DEFAULT(output, input_length);
+ sli_se_datatransfer_t ctx_out_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_dec, sizeof(ctx->se_ctx_dec));
+ sli_se_datatransfer_t mac_in_dec = SLI_SE_DATATRANSFER_DEFAULT(ctx->tagbuf, sizeof(ctx->tagbuf));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &key_in_dec);
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &iv_ctx_in_dec);
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &data_in_dec);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd_dec, &data_out_dec);
+ if (!ctx->last_op) {
+ sli_se_mailbox_command_add_output(&gcm_cmd_dec, &ctx_out_dec);
+ } else {
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &lenalenc_in_dec);
+ sli_se_mailbox_command_add_input(&gcm_cmd_dec, &mac_in_dec);
+ }
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, 0);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_dec, input_length);
+
+ sli_se_mailbox_execute_command(&gcm_cmd_dec);
+ se_response = sli_se_handle_mailbox_response();
+ // Getting an 'invalid signature' error here is acceptable, since we're not trying to verify the tag
+ if (se_response == SLI_SE_RESPONSE_INVALID_SIGNATURE) {
+ se_response = SLI_SE_RESPONSE_OK;
+ }
+ if (se_response != SLI_SE_RESPONSE_OK) {
+ goto exit;
+ }
+ }
+
+ if (!ctx->last_op) {
+ // we need to do the final calculation first, such that we keep the input context intact
+ sli_se_mailbox_command_t gcm_cmd_enc_final = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_ENCRYPT | (first_op ? SLI_SE_COMMAND_OPTION_CONTEXT_WHOLE : SLI_SE_COMMAND_OPTION_CONTEXT_END));
+
+ sli_se_datatransfer_t key_in_enc_final = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_ctx_in_enc_final = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_enc, (first_op ? ctx->iv_len : sizeof(ctx->se_ctx_enc)));
+ sli_se_datatransfer_t lenalenc_in_enc_final = SLI_SE_DATATRANSFER_DEFAULT(lena_lenc, sizeof(lena_lenc));
+ sli_se_datatransfer_t data_in_enc_final = SLI_SE_DATATRANSFER_DEFAULT(ctx->mode == MBEDTLS_GCM_ENCRYPT ? (void*)input : (void*)output, input_length);
+ sli_se_datatransfer_t data_out_enc_final = SLI_SE_DATATRANSFER_DEFAULT(NULL, input_length);
+ data_out_enc_final.length |= SLI_SE_DATATRANSFER_DISCARD;
+ sli_se_datatransfer_t tag_out_final = SLI_SE_DATATRANSFER_DEFAULT(ctx->tagbuf, sizeof(ctx->tagbuf));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_final, &key_in_enc_final);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_final, &iv_ctx_in_enc_final);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_final, &data_in_enc_final);
+
+ if (!first_op) {
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc_final, &lenalenc_in_enc_final);
+ }
+
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc_final, &data_out_enc_final);
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc_final, &tag_out_final);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_final, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_final, 0);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc_final, input_length);
+
+ sli_se_mailbox_execute_command(&gcm_cmd_enc_final);
+ se_response = sli_se_handle_mailbox_response();
+ if (se_response != SLI_SE_RESPONSE_OK) {
+ goto exit;
+ }
+ }
+
+ // Explicit scope block to help with stack usage optimisation
+ // Re-encrypt the decrypted data to keep the ongoing calculation alive in case we can
+ // continue calculation with another call to mbedtls_gcm_update.
+ {
+ sli_se_mailbox_command_t gcm_cmd_enc = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_ENCRYPT | (first_op ? SLI_SE_COMMAND_OPTION_CONTEXT_START : (ctx->last_op ? SLI_SE_COMMAND_OPTION_CONTEXT_END : SLI_SE_COMMAND_OPTION_CONTEXT_ADD)));
+ sli_se_datatransfer_t key_in_enc = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_ctx_in_enc = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_enc, (first_op ? ctx->iv_len : sizeof(ctx->se_ctx_enc)));
+ sli_se_datatransfer_t lenalenc_in_enc = SLI_SE_DATATRANSFER_DEFAULT(lena_lenc, sizeof(lena_lenc));
+ sli_se_datatransfer_t data_in_enc = SLI_SE_DATATRANSFER_DEFAULT(ctx->mode == MBEDTLS_GCM_ENCRYPT ? (void*)input : (void*)output, input_length);
+
+ sli_se_datatransfer_t data_out_enc = SLI_SE_DATATRANSFER_DEFAULT(output, input_length);
+ if (ctx->mode == MBEDTLS_GCM_DECRYPT) {
+ data_out_enc.data = NULL;
+ data_out_enc.length |= SLI_SE_DATATRANSFER_DISCARD;
+ }
+
+ sli_se_datatransfer_t tag_out_enc = SLI_SE_DATATRANSFER_DEFAULT(ctx->tagbuf, sizeof(ctx->tagbuf));
+ sli_se_datatransfer_t ctx_out_enc = SLI_SE_DATATRANSFER_DEFAULT(ctx->se_ctx_enc, sizeof(ctx->se_ctx_enc));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &key_in_enc);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &iv_ctx_in_enc);
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &data_in_enc);
+
+ if (ctx->last_op) {
+ sli_se_mailbox_command_add_input(&gcm_cmd_enc, &lenalenc_in_enc);
+ }
+
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc, &data_out_enc);
+
+ if (ctx->last_op) {
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc, &tag_out_enc);
+ } else {
+ sli_se_mailbox_command_add_output(&gcm_cmd_enc, &ctx_out_enc);
+ }
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, 0);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd_enc, input_length);
+
+ sli_se_mailbox_execute_command(&gcm_cmd_enc);
+ se_response = sli_se_handle_mailbox_response();
+ }
+
+ exit:
+ se_management_release();
+
+ if (se_response == SLI_SE_RESPONSE_OK) {
+ *output_length = input_length;
+ return(0);
+ } else {
+ mbedtls_zeroize(output, output_size);
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+}
+
+int mbedtls_gcm_finish(mbedtls_gcm_context *ctx,
+ unsigned char *output, size_t output_size,
+ size_t *output_length,
+ unsigned char *tag,
+ size_t tag_len)
+{
+ // Voiding these because our implementation does not support
+ // partial-block input (i.e. passing a partial block to
+ // update() will have caused the operation to finish already)
+ (void) output;
+ (void) output_size;
+ *output_length = 0;
+
+ if (ctx == NULL || tag == NULL) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ int status = sli_validate_gcm_params(tag_len, 12, 16);
+ if (status) {
+ return status;
+ }
+
+ if (ctx->add_len == 0 && ctx->len == 0) {
+ return mbedtls_gcm_crypt_and_tag(ctx, MBEDTLS_GCM_ENCRYPT,
+ 0, ctx->se_ctx_enc, 12,
+ NULL, 0,
+ NULL, NULL,
+ tag_len, tag);
+ }
+
+ memcpy(tag, ctx->tagbuf, tag_len);
+ return(0);
+}
+
+int mbedtls_gcm_crypt_and_tag(mbedtls_gcm_context *ctx,
+ int mode,
+ size_t length,
+ const unsigned char *iv,
+ size_t iv_len,
+ const unsigned char *add,
+ size_t add_len,
+ const unsigned char *input,
+ unsigned char *output,
+ size_t tag_len,
+ unsigned char *tag)
+{
+ sli_se_mailbox_response_t se_response;
+ uint8_t tagbuf[16];
+ int status;
+
+ /* Check input parameters. */
+ if (ctx == NULL
+ || iv == NULL
+ || (add_len > 0 && add == NULL)
+ || (length > 0 && input == NULL)
+ || (length > 0 && output == NULL)
+ || tag == NULL) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ status = sli_validate_gcm_params(tag_len, iv_len, add_len);
+ if (status) {
+ return status;
+ }
+
+ if ( mode == MBEDTLS_GCM_DECRYPT ) {
+ // Extract plaintext first
+ sli_se_mailbox_command_t gcm_cmd = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_DECRYPT | ((tag_len & 0xFF) << 8));
+
+ sli_se_datatransfer_t key_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT((void*)iv, iv_len);
+ sli_se_datatransfer_t aad_in = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+ sli_se_datatransfer_t data_in = SLI_SE_DATATRANSFER_DEFAULT((void*)input, length);
+ sli_se_datatransfer_t data_out = SLI_SE_DATATRANSFER_DEFAULT(output, length);
+ if (output == NULL) {
+ data_out.length |= SLI_SE_DATATRANSFER_DISCARD;
+ }
+ sli_se_datatransfer_t tag_in = SLI_SE_DATATRANSFER_DEFAULT(tag, tag_len);
+
+ sli_se_mailbox_command_add_input(&gcm_cmd, &key_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &iv_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &aad_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &data_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &tag_in);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd, &data_out);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, length);
+
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ sli_se_mailbox_execute_command(&gcm_cmd);
+ se_response = sli_se_handle_mailbox_response();
+ se_management_release();
+ // Getting an 'invalid signature' error here is acceptable, since we're not trying to verify the tag
+ if (se_response == SLI_SE_RESPONSE_INVALID_SIGNATURE) {
+ se_response = SLI_SE_RESPONSE_OK;
+ }
+ if (se_response != SLI_SE_RESPONSE_OK) {
+ goto exit;
+ }
+ // Re-encrypt the extracted plaintext to generate the tag to match
+ input = output;
+ output = NULL;
+ }
+
+ // Explicit scope block to help with stack usage optimisation
+ {
+ sli_se_mailbox_command_t gcm_cmd = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_ENCRYPT);
+
+ sli_se_datatransfer_t key_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT((void*)iv, iv_len);
+ sli_se_datatransfer_t aad_in = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+ sli_se_datatransfer_t data_in = SLI_SE_DATATRANSFER_DEFAULT((void*)input, length);
+ sli_se_datatransfer_t data_out = SLI_SE_DATATRANSFER_DEFAULT(output, length);
+ if (output == NULL) {
+ data_out.length |= SLI_SE_DATATRANSFER_DISCARD;
+ }
+ sli_se_datatransfer_t mac_out = SLI_SE_DATATRANSFER_DEFAULT(tagbuf, sizeof(tagbuf));
+
+ sli_se_mailbox_command_add_input(&gcm_cmd, &key_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &iv_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &aad_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &data_in);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd, &data_out);
+ sli_se_mailbox_command_add_output(&gcm_cmd, &mac_out);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, length);
+
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ /* Execute GCM operation */
+ sli_se_mailbox_execute_command(&gcm_cmd);
+ se_response = sli_se_handle_mailbox_response();
+ se_management_release();
+ }
+
+ exit:
+ if (se_response == SLI_SE_RESPONSE_OK) {
+ // For encryption, copy requested tag size to output tag buffer.
+ memcpy(tag, tagbuf, tag_len);
+ return(0);
+ } else {
+ mbedtls_zeroize(output, length);
+ mbedtls_zeroize(tagbuf, sizeof(tagbuf));
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+}
+
+int mbedtls_gcm_auth_decrypt(mbedtls_gcm_context *ctx,
+ size_t length,
+ const unsigned char *iv,
+ size_t iv_len,
+ const unsigned char *add,
+ size_t add_len,
+ const unsigned char *tag,
+ size_t tag_len,
+ const unsigned char *input,
+ unsigned char *output)
+{
+ sli_se_mailbox_response_t se_response;
+ int status;
+
+ /* Check input parameters. */
+ if (ctx == NULL
+ || iv == NULL
+ || (add_len > 0 && add == NULL)
+ || (length > 0 && input == NULL)
+ || (length > 0 && output == NULL)
+ || tag == NULL) {
+ return MBEDTLS_ERR_GCM_BAD_INPUT;
+ }
+
+ status = sli_validate_gcm_params(tag_len, iv_len, add_len);
+ if (status) {
+ return status;
+ }
+
+ // AES-GCM encryption and decryption are symmetrical. The SE only
+ // supports checking tag length of 16 bytes. In order to support
+ // smaller tag lengths, the decrypt-and-check routine is implemented
+ // as a call to encrypt-and-MAC, and a manual check of the MAC vs the
+ // expected MAC on the right tag length.
+
+ sli_se_mailbox_command_t gcm_cmd = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_AES_GCM_DECRYPT | ((tag_len & 0xFF) << 8));
+
+ sli_se_datatransfer_t key_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->key, ctx->keybits / 8);
+ sli_se_datatransfer_t iv_in = SLI_SE_DATATRANSFER_DEFAULT((void*)iv, iv_len);
+ sli_se_datatransfer_t aad_in = SLI_SE_DATATRANSFER_DEFAULT((void*)add, add_len);
+ sli_se_datatransfer_t data_in = SLI_SE_DATATRANSFER_DEFAULT((void*)input, length);
+ sli_se_datatransfer_t data_out = SLI_SE_DATATRANSFER_DEFAULT(output, length);
+ if (output == NULL) {
+ data_out.length |= SLI_SE_DATATRANSFER_DISCARD;
+ }
+ sli_se_datatransfer_t tag_in = SLI_SE_DATATRANSFER_DEFAULT((void*)tag, tag_len);
+
+ sli_se_mailbox_command_add_input(&gcm_cmd, &key_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &iv_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &aad_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &data_in);
+ sli_se_mailbox_command_add_input(&gcm_cmd, &tag_in);
+
+ sli_se_mailbox_command_add_output(&gcm_cmd, &data_out);
+
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, ctx->keybits / 8);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, add_len);
+ sli_se_mailbox_command_add_parameter(&gcm_cmd, length);
+
+ status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+ sli_se_mailbox_execute_command(&gcm_cmd);
+ se_response = sli_se_handle_mailbox_response();
+ se_management_release();
+
+ if (se_response == SLI_SE_RESPONSE_OK) {
+ return(0);
+ } else {
+ mbedtls_zeroize(output, length);
+ if (se_response == SLI_SE_RESPONSE_INVALID_SIGNATURE) {
+ return(MBEDTLS_ERR_GCM_AUTH_FAILED);
+ } else {
+ return(MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED);
+ }
+ }
+}
+
+void mbedtls_gcm_free(mbedtls_gcm_context *ctx)
+{
+ if ( ctx == NULL ) {
+ return;
+ }
+ mbedtls_zeroize(ctx, sizeof(mbedtls_gcm_context) );
+}
+
+#endif /* MBEDTLS_GCM_ALT && MBEDTLS_GCM_C */
+
+#endif /* CRYPTOACC_PRESENT */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_jpake.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_jpake.c
new file mode 100644
index 000000000..fe57b5d8a
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/se_jpake.c
@@ -0,0 +1,783 @@
+/***************************************************************************//**
+ * @file
+ * @brief ECC J-PAKE accelerated implementation
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+/**
+ * This file includes an alternative implementation of the standard
+ * mbedtls/libary/ecjpake.c using the secure engine incorporated in Series-2
+ * devices with Secure Engine from Silicon Laboratories.
+ */
+
+#include
+
+#if defined(MBEDTLS_ECJPAKE_ALT) && defined(MBEDTLS_ECJPAKE_C)
+
+#include "em_device.h"
+
+#if defined(SEMAILBOX_PRESENT)
+#include "sli_se_manager_mailbox.h"
+#include "se_management.h"
+#include "mbedtls/ecjpake.h"
+#include "mbedtls/platform_util.h"
+#include "mbedtls/error.h"
+#include
+
+static const char * const ecjpake_id[] = {
+ "client",
+ "server"
+};
+
+static int parse_tls_point(const uint8_t **ibuf, size_t *ilen, size_t *rlen,
+ uint8_t **obuf, size_t *olen)
+{
+ if (ilen == NULL || ibuf == NULL || obuf == NULL || olen == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ if (*ilen == 0 || *ibuf == NULL || *obuf == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // consume first byte, length of what follows
+ size_t field_length = **ibuf;
+ *ibuf += 1;
+ *ilen -= 1;
+ if (rlen != NULL) {
+ *rlen += 1;
+ }
+
+ if (field_length > *ilen) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // consume second byte, point type
+ uint8_t point_type = **ibuf;
+ size_t point_length = field_length - 1;
+ *ibuf += 1;
+ *ilen -= 1;
+
+ switch (point_type) {
+ case 0x0:
+ // Why would we ever get a zero-point?
+ return MBEDTLS_ERR_ECP_INVALID_KEY;
+ case 0x04:
+ break;
+ case 0x05:
+ // We don't support compressed points...
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ default:
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // copy out binary point
+ if (point_length > *olen) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ memcpy(*obuf, *ibuf, point_length);
+ *ibuf += point_length;
+ *ilen -= point_length;
+ *obuf += point_length;
+ *olen -= point_length;
+ if (rlen != NULL) {
+ *rlen += field_length;
+ }
+
+ return 0;
+}
+
+static int parse_tls_zkp(const uint8_t **ibuf, size_t *ilen, size_t *rlen,
+ uint8_t **obuf, size_t *olen)
+{
+ if (ilen == NULL || ibuf == NULL || obuf == NULL || olen == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ if (*ilen == 0 || *ibuf == NULL || *obuf == NULL || *olen < 96) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ int ret = parse_tls_point(ibuf, ilen, rlen, obuf, olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ if (*ilen < 1) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // consume first byte, length of what follows
+ size_t field_length = **ibuf;
+ *ibuf += 1;
+ *ilen -= 1;
+ if (rlen != NULL) {
+ *rlen += 1;
+ }
+
+ if (field_length > *ilen || field_length > *olen) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ if (field_length == 0) {
+ // scalar cannot be zero
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // right-adjust
+ size_t adjust_length = 32 - field_length;
+ memset(*obuf, 0, adjust_length);
+ *obuf += adjust_length;
+ *olen -= adjust_length;
+
+ // Consume field
+ memcpy(*obuf, *ibuf, field_length);
+ *obuf += field_length;
+ *olen -= field_length;
+ *ibuf += field_length;
+ *ilen -= field_length;
+
+ if (rlen != NULL) {
+ *rlen += field_length;
+ }
+
+ return 0;
+}
+
+static int write_tls_point(uint8_t **obuf, size_t *olen, size_t *wlen,
+ const uint8_t **ibuf, size_t *ilen, size_t point_length)
+{
+ if (ibuf == NULL || obuf == NULL || olen == NULL || ilen == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ if (*obuf == NULL || *ibuf == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // We can only output uncompressed points here
+ if (*olen < point_length + 2) {
+ return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL;
+ }
+
+ if (*ilen < point_length) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ **obuf = point_length + 1;
+ *obuf += 1;
+ *olen -= 1;
+
+ **obuf = 0x04;
+ *obuf += 1;
+ *olen -= 1;
+
+ memcpy(*obuf, *ibuf, point_length);
+
+ *obuf += point_length;
+ *olen -= point_length;
+ *ibuf += point_length;
+ *ilen -= point_length;
+
+ if (wlen != NULL) {
+ *wlen += point_length + 2;
+ }
+
+ return 0;
+}
+
+static int write_tls_zkp(uint8_t **obuf, size_t *olen, size_t *wlen,
+ const uint8_t **ibuf, size_t *ilen, size_t point_length)
+{
+ int ret = 0;
+
+ if (ibuf == NULL || obuf == NULL || olen == NULL || ilen == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ if (*obuf == NULL || *ibuf == NULL) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ ret = write_tls_point(obuf, olen, wlen, ibuf, ilen, point_length);
+
+ if (ret != 0) {
+ return ret;
+ }
+
+ size_t zkp_length = 32;
+
+ if (*olen < zkp_length + 1 || *ilen < zkp_length) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ **obuf = zkp_length;
+ *obuf += 1;
+ *olen -= 1;
+
+ memcpy(*obuf, *ibuf, zkp_length);
+
+ *obuf += zkp_length;
+ *olen -= zkp_length;
+ *ibuf += zkp_length;
+ *ilen -= zkp_length;
+
+ if (wlen != NULL) {
+ *wlen += zkp_length + 1;
+ }
+
+ return 0;
+}
+
+void mbedtls_ecjpake_init(mbedtls_ecjpake_context *ctx)
+{
+ memset(ctx, 0, sizeof(*ctx));
+}
+
+int mbedtls_ecjpake_setup(mbedtls_ecjpake_context *ctx,
+ mbedtls_ecjpake_role role,
+ mbedtls_md_type_t hash,
+ mbedtls_ecp_group_id curve,
+ const unsigned char *secret,
+ size_t len)
+{
+ if ( role != MBEDTLS_ECJPAKE_CLIENT && role != MBEDTLS_ECJPAKE_SERVER ) {
+ return(MBEDTLS_ERR_ECP_BAD_INPUT_DATA);
+ }
+
+ // SE only supports passphrases of maximum 32 bytes
+ if (len > 32) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // SE currently only supports SHA256 as JPAKE hashing mechanism
+ if (hash != MBEDTLS_MD_SHA256) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ // SE currently only supports ECDSA secp256r1 as curve
+ if (curve != MBEDTLS_ECP_DP_SECP256R1) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ ctx->curve_flags = 0x8000001FUL;
+ ctx->role = role;
+ ctx->pwd_len = len;
+ memcpy(ctx->pwd, secret, len);
+
+ return 0;
+}
+
+int mbedtls_ecjpake_check(const mbedtls_ecjpake_context *ctx)
+{
+ if (ctx->curve_flags == 0) {
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ return 0;
+}
+
+int mbedtls_ecjpake_set_point_format(mbedtls_ecjpake_context *ctx,
+ int point_format)
+{
+ switch (point_format) {
+ case MBEDTLS_ECP_PF_UNCOMPRESSED:
+ ctx->point_format = point_format;
+ return 0;
+ case MBEDTLS_ECP_PF_COMPRESSED:
+ return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
+ default:
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+}
+
+int mbedtls_ecjpake_write_round_one(mbedtls_ecjpake_context *ctx,
+ unsigned char *buf, size_t len, size_t *olen,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ // SE has internal RNG
+ (void)f_rng;
+ (void)p_rng;
+
+ int ret = 0;
+
+ // local storage for ZKPs
+ uint8_t zkp1[32 + 64];
+ uint8_t zkp2[32 + 64];
+
+ *olen = 0;
+
+ // SE command structures
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_JPAKE_R1_GENERATE);
+ sli_se_datatransfer_t domain_in = SLI_SE_DATATRANSFER_DEFAULT(NULL, 0);
+ sli_se_datatransfer_t userid = SLI_SE_DATATRANSFER_DEFAULT((void*)ecjpake_id[ctx->role], strlen(ecjpake_id[ctx->role]));
+ sli_se_datatransfer_t r_out = SLI_SE_DATATRANSFER_DEFAULT(ctx->r, 32);
+ sli_se_datatransfer_t Xm1_out = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xm1, 64);
+ sli_se_datatransfer_t zkp1_out = SLI_SE_DATATRANSFER_DEFAULT(zkp1, sizeof(zkp1));
+ sli_se_datatransfer_t Xm2_out = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xm2, 64);
+ sli_se_datatransfer_t zkp2_out = SLI_SE_DATATRANSFER_DEFAULT(zkp2, sizeof(zkp2));
+
+ sli_se_mailbox_command_add_input(&command, &domain_in);
+ sli_se_mailbox_command_add_input(&command, &userid);
+ sli_se_mailbox_command_add_output(&command, &r_out);
+ sli_se_mailbox_command_add_output(&command, &Xm1_out);
+ sli_se_mailbox_command_add_output(&command, &zkp1_out);
+ sli_se_mailbox_command_add_output(&command, &Xm2_out);
+ sli_se_mailbox_command_add_output(&command, &zkp2_out);
+
+ sli_se_mailbox_command_add_parameter(&command, ctx->curve_flags);
+ sli_se_mailbox_command_add_parameter(&command, strlen(ecjpake_id[ctx->role]));
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ sli_se_mailbox_response_t res = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( res == SLI_SE_RESPONSE_OK ) {
+ // To write TLS structures of ECJ-PAKE, we need to write:
+ // * Xm1
+ // * zkp1
+ // * Xm2
+ // * zkp2
+ uint8_t *obuf = buf;
+ const uint8_t *ibuf = ctx->Xm1;
+ size_t ilen = 64;
+
+ ret = write_tls_point(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ ibuf = zkp1;
+ ilen = 96;
+ ret = write_tls_zkp(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ ibuf = ctx->Xm2;
+ ilen = 64;
+ ret = write_tls_point(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ ibuf = zkp2;
+ ilen = 96;
+ ret = write_tls_zkp(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ return 0;
+ } else {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+
+int mbedtls_ecjpake_read_round_one(mbedtls_ecjpake_context *ctx,
+ const unsigned char *buf,
+ size_t len)
+{
+ int ret = 0;
+
+ // Should receive 2 binary points and 2 ZKPs
+
+ // local storage for ZKPs
+ uint8_t zkp1[32 + 64] = { 0 };
+ uint8_t zkp2[32 + 64] = { 0 };
+
+ uint8_t *obuf = ctx->Xp1;
+ size_t olen = 64;
+
+ // Parse structures
+ ret = parse_tls_point(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ obuf = zkp1;
+ olen = 96;
+ ret = parse_tls_zkp(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ obuf = ctx->Xp2;
+ olen = 64;
+ ret = parse_tls_point(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ obuf = zkp2;
+ olen = 96;
+ ret = parse_tls_zkp(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ if (len > 0) {
+ // Too much input
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // SE command structures
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_JPAKE_R1_VERIFY);
+ sli_se_datatransfer_t domain_in = SLI_SE_DATATRANSFER_DEFAULT(NULL, 0);
+ sli_se_datatransfer_t userid_mine = SLI_SE_DATATRANSFER_DEFAULT((void*)ecjpake_id[ctx->role], strlen(ecjpake_id[ctx->role]));
+ sli_se_datatransfer_t userid_peer = SLI_SE_DATATRANSFER_DEFAULT((void*)ecjpake_id[1 - ctx->role], strlen(ecjpake_id[1 - ctx->role]));
+
+ sli_se_datatransfer_t Xp1_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp1, 64);
+ sli_se_datatransfer_t zkp1_in = SLI_SE_DATATRANSFER_DEFAULT(zkp1, sizeof(zkp1));
+ sli_se_datatransfer_t Xp2_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp2, 64);
+ sli_se_datatransfer_t zkp2_in = SLI_SE_DATATRANSFER_DEFAULT(zkp2, sizeof(zkp2));
+
+ sli_se_mailbox_command_add_input(&command, &domain_in);
+ sli_se_mailbox_command_add_input(&command, &userid_mine);
+ sli_se_mailbox_command_add_input(&command, &userid_peer);
+
+ sli_se_mailbox_command_add_input(&command, &Xp1_in);
+ sli_se_mailbox_command_add_input(&command, &zkp1_in);
+ sli_se_mailbox_command_add_input(&command, &Xp2_in);
+ sli_se_mailbox_command_add_input(&command, &zkp2_in);
+
+ sli_se_mailbox_command_add_parameter(&command, ctx->curve_flags);
+ sli_se_mailbox_command_add_parameter(&command, strlen(ecjpake_id[ctx->role]));
+ sli_se_mailbox_command_add_parameter(&command, strlen(ecjpake_id[1 - ctx->role]));
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ sli_se_mailbox_response_t res = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( res == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return MBEDTLS_ERR_ECP_VERIFY_FAILED;
+ }
+}
+
+int mbedtls_ecjpake_write_round_two(mbedtls_ecjpake_context *ctx,
+ unsigned char *buf, size_t len, size_t *olen,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ // SE has internal RNG
+ (void)f_rng;
+ (void)p_rng;
+
+ int ret = 0;
+
+ *olen = 0;
+
+ uint8_t zkpA[32 + 64];
+ uint8_t xA[64];
+
+ // SE command structures
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_JPAKE_R2_GENERATE);
+ sli_se_datatransfer_t domain_in = SLI_SE_DATATRANSFER_DEFAULT(NULL, 0);
+ sli_se_datatransfer_t pwd_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->pwd, ctx->pwd_len);
+ sli_se_datatransfer_t userid = SLI_SE_DATATRANSFER_DEFAULT((void*)ecjpake_id[ctx->role], strlen(ecjpake_id[ctx->role]));
+ sli_se_datatransfer_t r_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->r, 32);
+ sli_se_datatransfer_t Xm1_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xm1, 64);
+ sli_se_datatransfer_t Xp1_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp1, 64);
+ sli_se_datatransfer_t Xp2_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp2, 64);
+
+ sli_se_datatransfer_t xA_out = SLI_SE_DATATRANSFER_DEFAULT(xA, sizeof(xA));
+ sli_se_datatransfer_t zkpA_out = SLI_SE_DATATRANSFER_DEFAULT(zkpA, sizeof(zkpA));
+
+ sli_se_mailbox_command_add_input(&command, &domain_in);
+ sli_se_mailbox_command_add_input(&command, &pwd_in);
+ sli_se_mailbox_command_add_input(&command, &userid);
+ sli_se_mailbox_command_add_input(&command, &r_in);
+ sli_se_mailbox_command_add_input(&command, &Xm1_in);
+ sli_se_mailbox_command_add_input(&command, &Xp1_in);
+ sli_se_mailbox_command_add_input(&command, &Xp2_in);
+
+ sli_se_mailbox_command_add_output(&command, &xA_out);
+ sli_se_mailbox_command_add_output(&command, &zkpA_out);
+
+ sli_se_mailbox_command_add_parameter(&command, ctx->curve_flags);
+ sli_se_mailbox_command_add_parameter(&command, ctx->pwd_len);
+ sli_se_mailbox_command_add_parameter(&command, strlen(ecjpake_id[ctx->role]));
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ sli_se_mailbox_response_t res = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( res == SLI_SE_RESPONSE_OK ) {
+ // If we are the server, we need to write out the ECParams
+ if ( ctx->role == MBEDTLS_ECJPAKE_SERVER ) {
+ if ( len < 3 + 66 + 66 + 33) {
+ return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL;
+ }
+ const mbedtls_ecp_curve_info *curve_info;
+
+ if ( (curve_info = mbedtls_ecp_curve_info_from_grp_id(MBEDTLS_ECP_DP_SECP256R1) ) == NULL ) {
+ return(MBEDTLS_ERR_ECP_BAD_INPUT_DATA);
+ }
+
+ // First byte is curve_type, always named_curve
+ *(buf++) = MBEDTLS_ECP_TLS_NAMED_CURVE;
+
+ // Next two bytes are the namedcurve value
+ *(buf++) = curve_info->tls_id >> 8;
+ *(buf++) = curve_info->tls_id & 0xFF;
+
+ *olen += 3;
+ len -= 3;
+ }
+
+ // To write TLS structures of ECJ-PAKE, we need to write:
+ // * XA in uncompressed form
+ // * zkpA in uncompressed form
+ uint8_t *obuf = buf;
+ const uint8_t *ibuf = xA;
+ size_t ilen = 64;
+
+ ret = write_tls_point(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ ibuf = zkpA;
+ ilen = 96;
+ ret = write_tls_zkp(&obuf, &len, olen, &ibuf, &ilen, 64);
+ if (ret != 0) {
+ return ret;
+ }
+
+ return 0;
+ } else {
+ return MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED;
+ }
+}
+
+int mbedtls_ecjpake_read_round_two(mbedtls_ecjpake_context *ctx,
+ const unsigned char *buf,
+ size_t len)
+{
+ int ret = 0;
+
+ // local storage for ZKP
+ uint8_t zkpB[32 + 64];
+
+ if ( ctx->role == MBEDTLS_ECJPAKE_CLIENT ) {
+ const mbedtls_ecp_curve_info *curve_info;
+ uint16_t tls_id;
+
+ if ( len < 3 ) {
+ return(MBEDTLS_ERR_ECP_BAD_INPUT_DATA);
+ }
+
+ // First byte is curve_type; only named_curve is handled
+ if ( *(buf++) != MBEDTLS_ECP_TLS_NAMED_CURVE ) {
+ return(MBEDTLS_ERR_ECP_BAD_INPUT_DATA);
+ }
+
+ // Next two bytes are the namedcurve value
+ tls_id = *(buf++);
+ tls_id <<= 8;
+ tls_id |= *(buf++);
+
+ if ( (curve_info = mbedtls_ecp_curve_info_from_tls_id(tls_id) ) == NULL ) {
+ return(MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED);
+ }
+
+ if (curve_info->grp_id != MBEDTLS_ECP_DP_SECP256R1) {
+ return MBEDTLS_ERR_PLATFORM_FEATURE_UNSUPPORTED;
+ }
+
+ len -= 3;
+ }
+
+ // Should receive 1 binary point and 1 ZKP
+ uint8_t *obuf = ctx->Xp;
+ size_t olen = 64;
+
+ // Parse structures
+ ret = parse_tls_point(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ obuf = zkpB;
+ olen = sizeof(zkpB);
+ ret = parse_tls_zkp(&buf, &len, NULL, &obuf, &olen);
+ if (ret != 0) {
+ return ret;
+ }
+
+ if (len > 0) {
+ // Too much input
+ return MBEDTLS_ERR_ECP_BAD_INPUT_DATA;
+ }
+
+ // SE command structures
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_JPAKE_R2_VERIFY);
+ sli_se_datatransfer_t domain_in = SLI_SE_DATATRANSFER_DEFAULT(NULL, 0);
+ sli_se_datatransfer_t userid_peer = SLI_SE_DATATRANSFER_DEFAULT((void*)ecjpake_id[1 - ctx->role], strlen(ecjpake_id[1 - ctx->role]));
+
+ sli_se_datatransfer_t Xm1_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xm1, 64);
+ sli_se_datatransfer_t Xm2_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xm2, 64);
+ sli_se_datatransfer_t Xp1_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp1, 64);
+ sli_se_datatransfer_t Xp_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp, 64);
+ sli_se_datatransfer_t zkpB_in = SLI_SE_DATATRANSFER_DEFAULT(zkpB, sizeof(zkpB));
+
+ sli_se_mailbox_command_add_input(&command, &domain_in);
+ sli_se_mailbox_command_add_input(&command, &userid_peer);
+
+ sli_se_mailbox_command_add_input(&command, &Xm1_in);
+ sli_se_mailbox_command_add_input(&command, &Xm2_in);
+ sli_se_mailbox_command_add_input(&command, &Xp1_in);
+ sli_se_mailbox_command_add_input(&command, &Xp_in);
+ sli_se_mailbox_command_add_input(&command, &zkpB_in);
+
+ sli_se_mailbox_command_add_parameter(&command, ctx->curve_flags);
+ sli_se_mailbox_command_add_parameter(&command, strlen(ecjpake_id[1 - ctx->role]));
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ sli_se_mailbox_response_t res = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( res == SLI_SE_RESPONSE_OK ) {
+ return 0;
+ } else {
+ return MBEDTLS_ERR_ECP_VERIFY_FAILED;
+ }
+}
+
+int mbedtls_ecjpake_derive_secret(mbedtls_ecjpake_context *ctx,
+ unsigned char *buf, size_t len, size_t *olen,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ // SE has internal RNG
+ (void)f_rng;
+ (void)p_rng;
+
+ if (len < 32) {
+ return MBEDTLS_ERR_ECP_BUFFER_TOO_SMALL;
+ }
+
+ // Generated session key needs to come out unprotected
+ uint32_t gen_key_flags = 32;
+
+ // SE command structures
+ sli_se_mailbox_command_t command = SLI_SE_MAILBOX_COMMAND_DEFAULT(SLI_SE_COMMAND_JPAKE_GEN_SESSIONKEY | SLI_SE_COMMAND_OPTION_HASH_SHA256);
+ sli_se_datatransfer_t domain_in = SLI_SE_DATATRANSFER_DEFAULT(NULL, 0);
+ sli_se_datatransfer_t pwd_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->pwd, ctx->pwd_len);
+
+ sli_se_datatransfer_t r_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->r, 32);
+ sli_se_datatransfer_t Xp2_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp2, 64);
+ sli_se_datatransfer_t Xp_in = SLI_SE_DATATRANSFER_DEFAULT(ctx->Xp, 64);
+ sli_se_datatransfer_t key_out = SLI_SE_DATATRANSFER_DEFAULT(buf, 32);
+
+ sli_se_mailbox_command_add_input(&command, &domain_in);
+ sli_se_mailbox_command_add_input(&command, &pwd_in);
+
+ sli_se_mailbox_command_add_input(&command, &r_in);
+ sli_se_mailbox_command_add_input(&command, &Xp2_in);
+ sli_se_mailbox_command_add_input(&command, &Xp_in);
+
+ sli_se_mailbox_command_add_output(&command, &key_out);
+
+ sli_se_mailbox_command_add_parameter(&command, ctx->curve_flags);
+ sli_se_mailbox_command_add_parameter(&command, ctx->pwd_len);
+ sli_se_mailbox_command_add_parameter(&command, gen_key_flags);
+
+ int status = se_management_acquire();
+ if (status != 0) {
+ return status;
+ }
+
+ sli_se_mailbox_execute_command(&command);
+ sli_se_mailbox_response_t res = sli_se_handle_mailbox_response();
+
+ se_management_release();
+
+ if ( res == SLI_SE_RESPONSE_OK ) {
+ *olen = 32;
+ return 0;
+ } else {
+ *olen = 0;
+ return MBEDTLS_ERR_ECP_VERIFY_FAILED;
+ }
+}
+
+int mbedtls_ecjpake_write_shared_key(mbedtls_ecjpake_context *ctx,
+ unsigned char *buf, size_t len, size_t *olen,
+ int (*f_rng)(void *, unsigned char *, size_t),
+ void *p_rng)
+{
+ (void)ctx;
+ (void)buf;
+ (void)len;
+ (void)olen;
+ (void)f_rng;
+ (void)p_rng;
+
+ return MBEDTLS_ERR_ECP_FEATURE_UNAVAILABLE;
+}
+
+void mbedtls_ecjpake_free(mbedtls_ecjpake_context *ctx)
+{
+ if (ctx == NULL) {
+ return;
+ }
+
+ memset(ctx, 0, sizeof(*ctx));
+}
+
+#endif /* #if defined(SEMAILBOX_PRESENT) */
+
+#endif /* #if defined(MBEDTLS_ECJPAKE_ALT) && defined(MBEDTLS_ECJPAKE_C) */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_hardware.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_hardware.c
new file mode 100644
index 000000000..89b29b5f6
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_hardware.c
@@ -0,0 +1,197 @@
+/***************************************************************************//**
+ * @file
+ * @brief Entropy driver for Silicon Labs devices.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+// -------------------------------------
+// Includes
+
+#include
+
+#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+#include "entropy_poll.h"
+#include "psa/crypto.h"
+
+#include "em_device.h"
+
+#if defined(MBEDTLS_TRNG_PRESENT) \
+ || defined(SEMAILBOX_PRESENT) \
+ || defined(CRYPTOACC_PRESENT)
+#define SLI_ENTROPY_HAVE_TRNG
+#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+/* If PSA is not configured with external RNG, do a forward declaration of the
+ * external RNG function here to allow us to call it for entropy as well. */
+psa_status_t mbedtls_psa_external_get_random(
+ void *context,
+ uint8_t *output, size_t output_size, size_t *output_length);
+#endif
+#endif
+
+#if !defined(MBEDTLS_ERR_ENTROPY_SOURCE_FAILED)
+/* Repeat declaration of MBEDTLS_ERR_ENTROPY_SOURCE_FAILED since the full entropy.h
+ * header is not always a clean include. I.e. when mbedtls_hardware_poll is used
+ * without having the full entropy module (with collector) present, the header will
+ * potentially complain about missing a SHA256/SHA512 context structure definition. */
+#define MBEDTLS_ERR_ENTROPY_SOURCE_FAILED -0x003C
+#endif
+
+/* For devices with an active TRNG errata, we need to rely on a different
+ * source of entropy. */
+#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89) \
+ || defined(_SILICON_LABS_GECKO_INTERNAL_SDID_95)
+ #define SLI_ENTROPY_REQUIRE_FALLBACK
+#endif
+
+#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89)
+#include "em_system.h" // SYSTEM_ChipRevisionGet()
+#endif
+
+// -------------------------------------
+// Local function definitions
+
+// Include radio entropy fallback if present & required
+#if defined(MBEDTLS_ENTROPY_RAIL_PRESENT) \
+ && (!defined(SLI_ENTROPY_HAVE_TRNG) || defined(SLI_ENTROPY_REQUIRE_FALLBACK))
+#include "rail.h"
+static int rail_get_random(unsigned char *output,
+ size_t len,
+ size_t *out_len)
+{
+ uint16_t rail_entropy_request_len;
+ if (len > UINT16_MAX) {
+ rail_entropy_request_len = UINT16_MAX;
+ } else {
+ rail_entropy_request_len = (uint16_t)len;
+ }
+
+ *out_len = (size_t)RAIL_GetRadioEntropy(RAIL_EFR32_HANDLE,
+ (uint8_t *)output,
+ rail_entropy_request_len);
+ return 0;
+}
+#endif // radio fallback
+
+#if defined(MBEDTLS_ENTROPY_ADC_C) \
+ && (!defined(SLI_ENTROPY_HAVE_TRNG) || defined(SLI_ENTROPY_REQUIRE_FALLBACK))
+#if !defined(MBEDTLS_ENTROPY_ADC_INSTANCE)
+#define MBEDTLS_ENTROPY_ADC_INSTANCE 0
+#endif
+
+#include "sl_entropy_adc.h"
+static int adc_get_random(unsigned char *output,
+ size_t len,
+ size_t *out_len)
+{
+ mbedtls_entropy_adc_context adc_ctx;
+ int ret = -1;
+
+ mbedtls_entropy_adc_init(&adc_ctx);
+ ret = mbedtls_entropy_adc_set_instance(&adc_ctx, MBEDTLS_ENTROPY_ADC_INSTANCE);
+ if (ret < 0) {
+ goto exit;
+ }
+
+ ret = mbedtls_entropy_adc_poll(&adc_ctx, output, len, out_len);
+
+ exit:
+ mbedtls_entropy_adc_free(&adc_ctx);
+ return ret;
+}
+#endif // ADC fallback
+
+#if (defined(MBEDTLS_ENTROPY_RAIL_PRESENT) || defined(MBEDTLS_ENTROPY_ADC_C)) \
+ && (!defined(SLI_ENTROPY_HAVE_TRNG) || defined(SLI_ENTROPY_REQUIRE_FALLBACK))
+static int rail_adc_entropy(unsigned char *output,
+ size_t len,
+ size_t *olen)
+{
+ (void) output;
+ (void) len;
+ (void) olen;
+
+ *olen = 0;
+ int ret = MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ #if defined(MBEDTLS_ENTROPY_RAIL_PRESENT)
+ ret = rail_get_random(output, len, olen);
+ if (*olen > 0 && ret == 0) {
+ // Return if we actually gathered something
+ // Otherwise, fallback to the ADC source if it is available.
+ return ret;
+ }
+ #endif // MBEDTLS_ENTROPY_RAIL_PRESENT
+ #if defined(MBEDTLS_ENTROPY_ADC_C)
+ ret = adc_get_random(output, len, olen);
+ #endif // MBEDTLS_ENTROPY_ADC_C
+ return ret;
+}
+#endif // RAIL and ADC entropy
+
+// -------------------------------------
+// Global function definitions
+
+int mbedtls_hardware_poll(void *data,
+ unsigned char *output,
+ size_t len,
+ size_t *olen)
+{
+ (void)data;
+
+#if defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89)
+ // TRNG entropy on EFR32xG13 is under errata on revisions < A3
+ SYSTEM_ChipRevision_TypeDef rev;
+ SYSTEM_ChipRevisionGet(&rev);
+
+ if ((rev.major == 1) && (rev.minor < 3)) {
+ // On affected revisions, fall back to radio (prefered) or ADC entropy
+ return rail_adc_entropy(output, len, olen);
+ }
+#elif defined(SLI_ENTROPY_REQUIRE_FALLBACK)
+ // Other devices for which this symbol is defined have TRNG erratas requiring
+ // fallback to other sources for all revisions.
+ return rail_adc_entropy(output, len, olen);
+#endif
+
+#if !defined(SLI_ENTROPY_REQUIRE_FALLBACK) \
+ || defined(_SILICON_LABS_GECKO_INTERNAL_SDID_89)
+ // Devices not requiring fallback (or fell through here because the active
+ // errata does not apply to the ICs revision) use a TRNG when available, but
+ // can also use the radio or ADC when no TRNG is present.
+ #if defined(SLI_ENTROPY_HAVE_TRNG)
+ psa_status_t status = mbedtls_psa_external_get_random(data, output, len, olen);
+ if (status == PSA_SUCCESS) {
+ return 0;
+ } else {
+ return MBEDTLS_ERR_ENTROPY_SOURCE_FAILED;
+ }
+ #else // SLI_ENTROPY_HAVE_TRNG
+ return rail_adc_entropy(output, len, olen);
+ #endif // SLI_ENTROPY_HAVE_TRNG
+#endif
+}
+
+#endif // MBEDTLS_ENTROPY_HARDWARE_ALT
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_nvseed.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_nvseed.c
new file mode 100644
index 000000000..4ade21eda
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_entropy_nvseed.c
@@ -0,0 +1,231 @@
+/***************************************************************************//**
+ * @file
+ * @brief Support for non-volatile-seed based entropy on Silicon Labs devices
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include
+
+#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
+
+#include
+#include "em_device.h"
+#include "nvm3_default.h"
+#include "mbedtls/entropy.h"
+#include "mbedtls/platform.h"
+
+#if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
+ #include "mbedtls/sha512.h"
+#elif defined(MBEDTLS_ENTROPY_SHA256_ACCUMULATOR)
+ #include "mbedtls/sha256.h"
+#else
+ #error "NV seed entropy requested, but no entropy accumulator available"
+#endif
+
+// -----------------------------------------------------------------------------
+// Defines
+
+#ifndef SLI_NV_SEED_NVM3_ID
+/** This NVM3 ID has been specifically allocated for the purpose of storing a
+ * non-volatile DRBG seed. The ID for where to store the seed can be overridden,
+ * but its default value should not be reused for any other purpose. */
+#define SLI_NV_SEED_NVM3_ID (0x870FFUL)
+#endif
+
+// -----------------------------------------------------------------------------
+// Static variables
+
+static int sli_nv_seed_has_been_opened = 0;
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+static int sli_nv_seed_init(void)
+{
+ if ( sli_nv_seed_has_been_opened == 0 ) {
+ Ecode_t nvm3_status = nvm3_initDefault();
+ if ( nvm3_status != ECODE_NVM3_OK ) {
+ return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+ sli_nv_seed_has_been_opened = 1;
+ }
+ return 0;
+}
+
+// If the seed hasn't been generated yet, or has somehow been lost (NVM3 area got wiped)
+// then we generate a device unique seed by hashing the contents of the device unique
+// data area (containing serial number, calibration data, etc) and the entire RAM content.
+static int sli_nv_seed_generate(uint8_t *buffer, size_t requested_length)
+{
+ int ret;
+ #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
+ uint8_t hash_buffer[64];
+ mbedtls_sha512_context ctx;
+ mbedtls_sha512_init(&ctx);
+
+ ret = mbedtls_sha512_starts(&ctx, 0);
+ if (ret != 0) {
+ goto exit;
+ }
+ // Device info
+ ret = mbedtls_sha512_update(&ctx, (const unsigned char *)DEVINFO, sizeof(DEVINFO_TypeDef));
+ if (ret != 0) {
+ goto exit;
+ }
+ // SRAM
+ ret = mbedtls_sha512_update(&ctx, (const unsigned char *)SRAM_BASE, SRAM_SIZE);
+ if (ret != 0) {
+ goto exit;
+ }
+ ret = mbedtls_sha512_finish(&ctx, hash_buffer);
+ if (ret != 0) {
+ goto exit;
+ }
+ #else
+ uint8_t hash_buffer[32];
+ mbedtls_sha256_context ctx;
+ mbedtls_sha256_init(&ctx);
+
+ ret = mbedtls_sha256_starts(&ctx, 0);
+ if (ret != 0) {
+ goto exit;
+ }
+ // Device info
+ ret = mbedtls_sha256_update(&ctx, (const unsigned char *)DEVINFO, sizeof(DEVINFO_TypeDef));
+ if (ret != 0) {
+ goto exit;
+ }
+ // SRAM
+ ret = mbedtls_sha256_update(&ctx, (const unsigned char *)SRAM_BASE, SRAM_SIZE);
+ if (ret != 0) {
+ goto exit;
+ }
+ ret = mbedtls_sha256_finish(&ctx, hash_buffer);
+ if (ret != 0) {
+ goto exit;
+ }
+ #endif
+ if (sizeof(hash_buffer) < requested_length) {
+ ret = MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+
+ exit:
+ #if defined(MBEDTLS_ENTROPY_SHA512_ACCUMULATOR)
+ mbedtls_sha512_free(&ctx);
+ #else
+ mbedtls_sha256_free(&ctx);
+ #endif
+
+ if (ret == 0) {
+ memcpy(buffer, hash_buffer, requested_length);
+ }
+ return ret;
+}
+
+// -----------------------------------------------------------------------------
+// Public functions
+
+/**
+ * This function implements the signature expected by the mbed TLS entropy
+ * module for reading a non-volatile seed.
+ * On Silicon Labs devices, this seed is auto-generated from the device-
+ * unique data (calibration data, serial number, ...) when no NV seed exists in
+ * non-volatile storage yet.
+ * When a seed is stored through sli_nv_seed_write it will be returned again
+ * by this function.
+ *
+ * The mbed TLS entropy module will call the seed write function itself each time
+ * the entropy module is initialised.
+ *
+ * This function is exposed to mbed TLS through setting the macro
+ * MBEDTLS_PLATFORM_STD_NV_SEED_READ to the function name (sli_nv_seed_read),
+ * in addition to MBEDTLS_PLATFORM_NV_SEED_ALT.
+ */
+int sli_nv_seed_read(unsigned char *buf, size_t buf_len)
+{
+ Ecode_t nvm3_status;
+ uint32_t obj_type;
+ size_t obj_len;
+ int ret;
+
+ ret = sli_nv_seed_init();
+ if ( ret != 0 ) {
+ return ret;
+ }
+
+ nvm3_status = nvm3_getObjectInfo(nvm3_defaultHandle, SLI_NV_SEED_NVM3_ID,
+ &obj_type, &obj_len);
+ if ( nvm3_status == ECODE_NVM3_OK ) {
+ /* Fail safe when the NV seed is not large enough to satisfy the
+ * polling function from the entropy module. */
+ if ( buf_len > obj_len ) {
+ return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+
+ /* Read the requested amount of data from the seed */
+ nvm3_status = nvm3_readPartialData(nvm3_defaultHandle, SLI_NV_SEED_NVM3_ID,
+ buf, 0, buf_len);
+ if ( nvm3_status != ECODE_NVM3_OK ) {
+ return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+
+ return buf_len;
+ } else if ( nvm3_status == ECODE_NVM3_ERR_KEY_NOT_FOUND ) {
+ /* Generate a device-unique seed on first run */
+ return sli_nv_seed_generate(buf, buf_len);
+ } else {
+ return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+}
+
+/**
+ * This function implements the signature expected by the mbed TLS entropy
+ * module for writing a seed value to non-volatile memory.
+ * When the storage backend fails, it will return an error code.
+ *
+ * This function is exposed to mbed TLS through setting the macro
+ * MBEDTLS_PLATFORM_STD_NV_SEED_WRITE to the function name (sli_nv_seed_write),
+ * in addition to MBEDTLS_PLATFORM_NV_SEED_ALT.
+ */
+int sli_nv_seed_write(unsigned char *buf, size_t buf_len)
+{
+ Ecode_t nvm3_status;
+ int ret;
+ ret = sli_nv_seed_init();
+ if ( ret != 0 ) {
+ return ret;
+ }
+
+ nvm3_status = nvm3_writeData(nvm3_defaultHandle, SLI_NV_SEED_NVM3_ID, buf, buf_len);
+ if ( nvm3_status == ECODE_NVM3_OK ) {
+ return buf_len;
+ } else {
+ return MBEDTLS_ERR_ENTROPY_FILE_IO_ERROR;
+ }
+}
+
+#endif // MBEDTLS_PLATFORM_NV_SEED_ALT
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_mbedtls.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_mbedtls.c
new file mode 100644
index 000000000..82ebd2c35
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_mbedtls.c
@@ -0,0 +1,121 @@
+/***************************************************************************//**
+ * @file
+ * @brief Initialize the Silicon Labs platform integration of mbedTLS.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#include "sl_mbedtls.h"
+#include "sl_assert.h"
+#include "mbedtls/build_info.h"
+#if !defined(SL_TRUSTZONE_NONSECURE)
+#if defined(SEMAILBOX_PRESENT) || defined(CRYPTOACC_PRESENT)
+#include "sl_se_manager.h"
+#endif
+#if defined(CRYPTOACC_PRESENT) && (_SILICON_LABS_32B_SERIES_2_CONFIG > 2)
+ #include "cryptoacc_management.h"
+#endif
+#endif // #if !defined(SL_TRUSTZONE_NONSECURE)
+
+#if defined(MBEDTLS_THREADING_ALT) && defined(MBEDTLS_THREADING_C)
+#include "mbedtls/threading.h"
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+#include "cmsis_os2.h"
+#include
+static volatile bool mbedtls_psa_slots_mutex_inited = false;
+
+/**
+ * \brief Lock all task switches
+ *
+ * \return Previous lock state
+ *
+ */
+static inline int32_t lock_task_switches(void)
+{
+ int32_t kernel_lock_state = 0;
+ osKernelState_t kernel_state = osKernelGetState();
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ kernel_lock_state = osKernelLock();
+ }
+ return kernel_lock_state;
+}
+
+/**
+ * \brief Restores the previous lock state
+ */
+static inline void restore_lock_state(int32_t kernel_lock_state)
+{
+ osKernelState_t kernel_state = osKernelGetState();
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ if (osKernelRestoreLock(kernel_lock_state) < 0) {
+ EFM_ASSERT(false);
+ }
+ }
+}
+
+#endif // defined(MBEDTLS_PSA_CRYPTO_C)
+#endif // defined(MBEDTLS_THREADING_ALT) && defined(MBEDTLS_THREADING_C)
+
+void sl_mbedtls_init(void)
+{
+#if !defined(SL_TRUSTZONE_NONSECURE)
+
+#if defined(SEMAILBOX_PRESENT) || defined(CRYPTOACC_PRESENT)
+ /* Initialize the SE Manager including the SE lock.
+ No need for critical region here since sl_se_init implements one. */
+ sl_status_t ret;
+ ret = sl_se_init();
+ EFM_ASSERT(ret == SL_STATUS_OK);
+#endif
+
+#if defined(CRYPTOACC_PRESENT) && (_SILICON_LABS_32B_SERIES_2_CONFIG > 2)
+ // Set up SCA countermeasures in hardware
+ cryptoacc_initialize_countermeasures();
+#endif // SILICON_LABS_32B_SERIES_2_CONFIG > 2
+
+#endif // #if !defined(SL_TRUSTZONE_NONSECURE)
+
+#if defined(MBEDTLS_THREADING_ALT) && defined(MBEDTLS_THREADING_C)
+ mbedtls_threading_set_alt(&THREADING_InitMutex,
+ &THREADING_FreeMutex,
+ &THREADING_TakeMutexBlocking,
+ &THREADING_GiveMutex);
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
+ // Initialize mutex for PSA slot access in psa_crypto_slot_management.c
+ if (!mbedtls_psa_slots_mutex_inited) {
+ int32_t kernel_lock_state = lock_task_switches();
+ if (!mbedtls_psa_slots_mutex_inited) {
+ mbedtls_mutex_init(&mbedtls_threading_key_slot_mutex);
+ mbedtls_psa_slots_mutex_inited = true;
+ }
+ restore_lock_state(kernel_lock_state);
+ }
+ #endif // #if defined(MBEDTLS_PSA_CRYPTO_C)
+ #if defined(MBEDTLS_THREADING_TEST)
+ mbedtls_test_thread_set_alt(&THREADING_ThreadCreate,
+ &THREADING_ThreadJoin);
+ #endif //MBEDTLS_THREADING_TEST
+#endif // #if defined(MBEDTLS_THREADING_ALT) && defined(MBEDTLS_THREADING_C)
+}
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_psa_crypto.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_psa_crypto.c
new file mode 100644
index 000000000..b3667279c
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sl_psa_crypto.c
@@ -0,0 +1,77 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto utility functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sl_psa_crypto.h"
+
+#include "sli_psa_driver_features.h"
+
+// -----------------------------------------------------------------------------
+// Global functions
+
+void sl_psa_set_key_lifetime_with_location_preference(
+ psa_key_attributes_t *attributes,
+ psa_key_persistence_t persistence,
+ psa_key_location_t preferred_location)
+{
+ psa_key_location_t selected_location = PSA_KEY_LOCATION_LOCAL_STORAGE;
+
+ switch (preferred_location) {
+ // The underlying values for wrapped and built-in keys are the same. In
+ // order to avoid compiler errors, we therefore use #elif in order to make
+ // sure that we do not get identical switch labels.
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ case SL_PSA_KEY_LOCATION_WRAPPED:
+ selected_location = SL_PSA_KEY_LOCATION_WRAPPED;
+ break;
+ #elif defined(SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS)
+ case SL_PSA_KEY_LOCATION_BUILTIN:
+ selected_location = SL_PSA_KEY_LOCATION_BUILTIN;
+ break;
+ #endif
+
+ default:
+ // Use the already set PSA_KEY_LOCATION_LOCAL_STORAGE.
+ break;
+ }
+
+ psa_key_lifetime_t lifetime =
+ PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(persistence,
+ selected_location);
+ psa_set_key_lifetime(attributes, lifetime);
+}
+
+psa_key_location_t sl_psa_get_most_secure_key_location(void)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ return SL_PSA_KEY_LOCATION_WRAPPED;
+ #else
+ return PSA_KEY_LOCATION_LOCAL_STORAGE;
+ #endif
+}
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sli_psa_crypto.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sli_psa_crypto.c
new file mode 100644
index 000000000..7d8cda687
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/sli_psa_crypto.c
@@ -0,0 +1,117 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs internal PSA Crypto utility functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_crypto.h"
+
+#include "psa/crypto.h"
+
+#include "mbedtls/aes.h"
+#include "mbedtls/ccm.h"
+#include "mbedtls/cipher.h"
+#include "mbedtls/ctr_drbg.h"
+#include "mbedtls/entropy.h"
+#include "mbedtls/md.h"
+#include "mbedtls/nist_kw.h"
+#include "mbedtls/pk.h"
+#include "mbedtls/sha1.h"
+#include "mbedtls/sha256.h"
+#include "mbedtls/ssl.h"
+#include "mbedtls/ssl_cookie.h"
+#include "mbedtls/x509_crt.h"
+
+// -----------------------------------------------------------------------------
+// Public function definitions
+
+size_t sli_psa_context_get_size(sli_psa_context_name_t ctx_type)
+{
+ switch (ctx_type) {
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_hash_operation_t):
+ return sizeof(psa_hash_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_cipher_operation_t):
+ return sizeof(psa_cipher_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_mac_operation_t):
+ return sizeof(psa_mac_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_aead_operation_t):
+ return sizeof(psa_aead_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_key_derivation_operation_t):
+ return sizeof(psa_key_derivation_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_pake_operation_t):
+ return sizeof(psa_pake_operation_t);
+ case SLI_PSA_CONTEXT_ENUM_NAME(psa_key_attributes_t):
+ return sizeof(psa_key_attributes_t);
+ default:
+ return 0;
+ }
+}
+
+size_t sli_mbedtls_context_get_size(sli_mbedtls_context_name_t ctx_type)
+{
+ switch (ctx_type) {
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_aes_context):
+ return sizeof(mbedtls_aes_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ccm_context):
+ return sizeof(mbedtls_ccm_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_cipher_context_t):
+ return sizeof(mbedtls_cipher_context_t);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ctr_drbg_context):
+ return sizeof(mbedtls_ctr_drbg_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_entropy_context):
+ return sizeof(mbedtls_entropy_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_md_context_t):
+ return sizeof(mbedtls_md_context_t);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_nist_kw_context):
+ return sizeof(mbedtls_nist_kw_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_pk_context):
+ return sizeof(mbedtls_pk_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_sha1_context):
+ return sizeof(mbedtls_sha1_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_sha256_context):
+ return sizeof(mbedtls_sha256_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_config):
+ return sizeof(mbedtls_ssl_config);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_context):
+ return sizeof(mbedtls_ssl_context);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_ssl_cookie_ctx):
+ return sizeof(mbedtls_ssl_cookie_ctx);
+ case SLI_MBEDTLS_CONTEXT_ENUM_NAME(mbedtls_x509_crt):
+ return sizeof(mbedtls_x509_crt);
+ default:
+ return 0;
+ }
+}
+
+bool sli_psa_key_is_unconditionally_copyable(psa_key_id_t key_id)
+{
+ bool is_persistent_zigbee_key = key_id >= SLI_PSA_KEY_ID_RANGE_ZIGBEE_START
+ && key_id <= SLI_PSA_KEY_ID_RANGE_ZIGBEE_END;
+ bool is_persistent_thread_key = key_id >= SLI_PSA_KEY_ID_RANGE_THREAD_START
+ && key_id <= SLI_PSA_KEY_ID_RANGE_THREAD_END;
+ return (is_persistent_zigbee_key || is_persistent_thread_key);
+}
diff --git a/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/version_features.c b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/version_features.c
new file mode 100644
index 000000000..a89cef997
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_mbedtls_support/src/version_features.c
@@ -0,0 +1,838 @@
+/*
+ * Version feature information
+ *
+ * Copyright The Mbed TLS Contributors
+ * SPDX-License-Identifier: Apache-2.0
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may
+ * not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "common.h"
+
+#if defined(MBEDTLS_VERSION_C)
+
+#include "mbedtls/version.h"
+
+#include
+
+static const char * const features[] = {
+#if defined(MBEDTLS_VERSION_FEATURES)
+ #if defined(MBEDTLS_HAVE_ASM)
+ "HAVE_ASM", //no-check-names
+#endif /* MBEDTLS_HAVE_ASM */
+#if defined(MBEDTLS_NO_UDBL_DIVISION)
+ "NO_UDBL_DIVISION", //no-check-names
+#endif /* MBEDTLS_NO_UDBL_DIVISION */
+#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION)
+ "NO_64BIT_MULTIPLICATION", //no-check-names
+#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */
+#if defined(MBEDTLS_HAVE_SSE2)
+ "HAVE_SSE2", //no-check-names
+#endif /* MBEDTLS_HAVE_SSE2 */
+#if defined(MBEDTLS_HAVE_TIME)
+ "HAVE_TIME", //no-check-names
+#endif /* MBEDTLS_HAVE_TIME */
+#if defined(MBEDTLS_HAVE_TIME_DATE)
+ "HAVE_TIME_DATE", //no-check-names
+#endif /* MBEDTLS_HAVE_TIME_DATE */
+#if defined(MBEDTLS_PLATFORM_MEMORY)
+ "PLATFORM_MEMORY", //no-check-names
+#endif /* MBEDTLS_PLATFORM_MEMORY */
+#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
+ "PLATFORM_NO_STD_FUNCTIONS", //no-check-names
+#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
+#if defined(MBEDTLS_PLATFORM_SETBUF_ALT)
+ "PLATFORM_SETBUF_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_SETBUF_ALT */
+#if defined(MBEDTLS_PLATFORM_EXIT_ALT)
+ "PLATFORM_EXIT_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_EXIT_ALT */
+#if defined(MBEDTLS_PLATFORM_TIME_ALT)
+ "PLATFORM_TIME_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_TIME_ALT */
+#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
+ "PLATFORM_FPRINTF_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */
+#if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
+ "PLATFORM_PRINTF_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */
+#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
+ "PLATFORM_SNPRINTF_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */
+#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)
+ "PLATFORM_VSNPRINTF_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */
+#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
+ "PLATFORM_NV_SEED_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
+#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
+ "PLATFORM_SETUP_TEARDOWN_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */
+#if defined(MBEDTLS_PLATFORM_MS_TIME_ALT)
+ "PLATFORM_MS_TIME_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_MS_TIME_ALT */
+#if defined(MBEDTLS_PLATFORM_GMTIME_R_ALT)
+ "PLATFORM_GMTIME_R_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_GMTIME_R_ALT */
+#if defined(MBEDTLS_PLATFORM_ZEROIZE_ALT)
+ "PLATFORM_ZEROIZE_ALT", //no-check-names
+#endif /* MBEDTLS_PLATFORM_ZEROIZE_ALT */
+#if defined(MBEDTLS_DEPRECATED_WARNING)
+ "DEPRECATED_WARNING", //no-check-names
+#endif /* MBEDTLS_DEPRECATED_WARNING */
+#if defined(MBEDTLS_DEPRECATED_REMOVED)
+ "DEPRECATED_REMOVED", //no-check-names
+#endif /* MBEDTLS_DEPRECATED_REMOVED */
+#if defined(MBEDTLS_TIMING_ALT)
+ "TIMING_ALT", //no-check-names
+#endif /* MBEDTLS_TIMING_ALT */
+#if defined(MBEDTLS_AES_ALT)
+ "AES_ALT", //no-check-names
+#endif /* MBEDTLS_AES_ALT */
+#if defined(MBEDTLS_ARIA_ALT)
+ "ARIA_ALT", //no-check-names
+#endif /* MBEDTLS_ARIA_ALT */
+#if defined(MBEDTLS_CAMELLIA_ALT)
+ "CAMELLIA_ALT", //no-check-names
+#endif /* MBEDTLS_CAMELLIA_ALT */
+#if defined(MBEDTLS_CCM_ALT)
+ "CCM_ALT", //no-check-names
+#endif /* MBEDTLS_CCM_ALT */
+#if defined(MBEDTLS_CHACHA20_ALT)
+ "CHACHA20_ALT", //no-check-names
+#endif /* MBEDTLS_CHACHA20_ALT */
+#if defined(MBEDTLS_CHACHAPOLY_ALT)
+ "CHACHAPOLY_ALT", //no-check-names
+#endif /* MBEDTLS_CHACHAPOLY_ALT */
+#if defined(MBEDTLS_CMAC_ALT)
+ "CMAC_ALT", //no-check-names
+#endif /* MBEDTLS_CMAC_ALT */
+#if defined(MBEDTLS_DES_ALT)
+ "DES_ALT", //no-check-names
+#endif /* MBEDTLS_DES_ALT */
+#if defined(MBEDTLS_DHM_ALT)
+ "DHM_ALT", //no-check-names
+#endif /* MBEDTLS_DHM_ALT */
+#if defined(MBEDTLS_ECJPAKE_ALT)
+ "ECJPAKE_ALT", //no-check-names
+#endif /* MBEDTLS_ECJPAKE_ALT */
+#if defined(MBEDTLS_GCM_ALT)
+ "GCM_ALT", //no-check-names
+#endif /* MBEDTLS_GCM_ALT */
+#if defined(MBEDTLS_NIST_KW_ALT)
+ "NIST_KW_ALT", //no-check-names
+#endif /* MBEDTLS_NIST_KW_ALT */
+#if defined(MBEDTLS_MD5_ALT)
+ "MD5_ALT", //no-check-names
+#endif /* MBEDTLS_MD5_ALT */
+#if defined(MBEDTLS_POLY1305_ALT)
+ "POLY1305_ALT", //no-check-names
+#endif /* MBEDTLS_POLY1305_ALT */
+#if defined(MBEDTLS_RIPEMD160_ALT)
+ "RIPEMD160_ALT", //no-check-names
+#endif /* MBEDTLS_RIPEMD160_ALT */
+#if defined(MBEDTLS_RSA_ALT)
+ "RSA_ALT", //no-check-names
+#endif /* MBEDTLS_RSA_ALT */
+#if defined(MBEDTLS_SHA1_ALT)
+ "SHA1_ALT", //no-check-names
+#endif /* MBEDTLS_SHA1_ALT */
+#if defined(MBEDTLS_SHA256_ALT)
+ "SHA256_ALT", //no-check-names
+#endif /* MBEDTLS_SHA256_ALT */
+#if defined(MBEDTLS_SHA512_ALT)
+ "SHA512_ALT", //no-check-names
+#endif /* MBEDTLS_SHA512_ALT */
+#if defined(MBEDTLS_ECP_ALT)
+ "ECP_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_ALT */
+#if defined(MBEDTLS_MD5_PROCESS_ALT)
+ "MD5_PROCESS_ALT", //no-check-names
+#endif /* MBEDTLS_MD5_PROCESS_ALT */
+#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT)
+ "RIPEMD160_PROCESS_ALT", //no-check-names
+#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */
+#if defined(MBEDTLS_SHA1_PROCESS_ALT)
+ "SHA1_PROCESS_ALT", //no-check-names
+#endif /* MBEDTLS_SHA1_PROCESS_ALT */
+#if defined(MBEDTLS_SHA256_PROCESS_ALT)
+ "SHA256_PROCESS_ALT", //no-check-names
+#endif /* MBEDTLS_SHA256_PROCESS_ALT */
+#if defined(MBEDTLS_SHA512_PROCESS_ALT)
+ "SHA512_PROCESS_ALT", //no-check-names
+#endif /* MBEDTLS_SHA512_PROCESS_ALT */
+#if defined(MBEDTLS_DES_SETKEY_ALT)
+ "DES_SETKEY_ALT", //no-check-names
+#endif /* MBEDTLS_DES_SETKEY_ALT */
+#if defined(MBEDTLS_DES_CRYPT_ECB_ALT)
+ "DES_CRYPT_ECB_ALT", //no-check-names
+#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */
+#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT)
+ "DES3_CRYPT_ECB_ALT", //no-check-names
+#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */
+#if defined(MBEDTLS_AES_SETKEY_ENC_ALT)
+ "AES_SETKEY_ENC_ALT", //no-check-names
+#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */
+#if defined(MBEDTLS_AES_SETKEY_DEC_ALT)
+ "AES_SETKEY_DEC_ALT", //no-check-names
+#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */
+#if defined(MBEDTLS_AES_ENCRYPT_ALT)
+ "AES_ENCRYPT_ALT", //no-check-names
+#endif /* MBEDTLS_AES_ENCRYPT_ALT */
+#if defined(MBEDTLS_AES_DECRYPT_ALT)
+ "AES_DECRYPT_ALT", //no-check-names
+#endif /* MBEDTLS_AES_DECRYPT_ALT */
+#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
+ "ECDH_GEN_PUBLIC_ALT", //no-check-names
+#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */
+#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
+ "ECDH_COMPUTE_SHARED_ALT", //no-check-names
+#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
+#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
+ "ECDSA_VERIFY_ALT", //no-check-names
+#endif /* MBEDTLS_ECDSA_VERIFY_ALT */
+#if defined(MBEDTLS_ECDSA_SIGN_ALT)
+ "ECDSA_SIGN_ALT", //no-check-names
+#endif /* MBEDTLS_ECDSA_SIGN_ALT */
+#if defined(MBEDTLS_ECDSA_GENKEY_ALT)
+ "ECDSA_GENKEY_ALT", //no-check-names
+#endif /* MBEDTLS_ECDSA_GENKEY_ALT */
+#if defined(MBEDTLS_ECP_INTERNAL_ALT)
+ "ECP_INTERNAL_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_INTERNAL_ALT */
+#if defined(MBEDTLS_ECP_NO_FALLBACK)
+ "ECP_NO_FALLBACK", //no-check-names
+#endif /* MBEDTLS_ECP_NO_FALLBACK */
+#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
+ "ECP_RANDOMIZE_JAC_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */
+#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
+ "ECP_ADD_MIXED_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */
+#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
+ "ECP_DOUBLE_JAC_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */
+#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
+ "ECP_NORMALIZE_JAC_MANY_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */
+#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
+ "ECP_NORMALIZE_JAC_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */
+#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
+ "ECP_DOUBLE_ADD_MXZ_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */
+#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
+ "ECP_RANDOMIZE_MXZ_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */
+#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
+ "ECP_NORMALIZE_MXZ_ALT", //no-check-names
+#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */
+#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+ "ENTROPY_HARDWARE_ALT", //no-check-names
+#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
+#if defined(MBEDTLS_AES_ROM_TABLES)
+ "AES_ROM_TABLES", //no-check-names
+#endif /* MBEDTLS_AES_ROM_TABLES */
+#if defined(MBEDTLS_AES_FEWER_TABLES)
+ "AES_FEWER_TABLES", //no-check-names
+#endif /* MBEDTLS_AES_FEWER_TABLES */
+#if defined(MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH)
+ "AES_ONLY_128_BIT_KEY_LENGTH", //no-check-names
+#endif /* MBEDTLS_AES_ONLY_128_BIT_KEY_LENGTH */
+#if defined(MBEDTLS_AES_USE_HARDWARE_ONLY)
+ "AES_USE_HARDWARE_ONLY", //no-check-names
+#endif /* MBEDTLS_AES_USE_HARDWARE_ONLY */
+#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY)
+ "CAMELLIA_SMALL_MEMORY", //no-check-names
+#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */
+#if defined(MBEDTLS_CHECK_RETURN_WARNING)
+ "CHECK_RETURN_WARNING", //no-check-names
+#endif /* MBEDTLS_CHECK_RETURN_WARNING */
+#if defined(MBEDTLS_CIPHER_MODE_CBC)
+ "CIPHER_MODE_CBC", //no-check-names
+#endif /* MBEDTLS_CIPHER_MODE_CBC */
+#if defined(MBEDTLS_CIPHER_MODE_CFB)
+ "CIPHER_MODE_CFB", //no-check-names
+#endif /* MBEDTLS_CIPHER_MODE_CFB */
+#if defined(MBEDTLS_CIPHER_MODE_CTR)
+ "CIPHER_MODE_CTR", //no-check-names
+#endif /* MBEDTLS_CIPHER_MODE_CTR */
+#if defined(MBEDTLS_CIPHER_MODE_OFB)
+ "CIPHER_MODE_OFB", //no-check-names
+#endif /* MBEDTLS_CIPHER_MODE_OFB */
+#if defined(MBEDTLS_CIPHER_MODE_XTS)
+ "CIPHER_MODE_XTS", //no-check-names
+#endif /* MBEDTLS_CIPHER_MODE_XTS */
+#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
+ "CIPHER_NULL_CIPHER", //no-check-names
+#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
+#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
+ "CIPHER_PADDING_PKCS7", //no-check-names
+#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
+#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
+ "CIPHER_PADDING_ONE_AND_ZEROS", //no-check-names
+#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */
+#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
+ "CIPHER_PADDING_ZEROS_AND_LEN", //no-check-names
+#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */
+#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
+ "CIPHER_PADDING_ZEROS", //no-check-names
+#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
+#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
+ "CTR_DRBG_USE_128_BIT_KEY", //no-check-names
+#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */
+#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED)
+ "ECDH_VARIANT_EVEREST_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
+ "ECP_DP_SECP192R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
+ "ECP_DP_SECP224R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
+ "ECP_DP_SECP256R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
+ "ECP_DP_SECP384R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
+ "ECP_DP_SECP521R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
+ "ECP_DP_SECP192K1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
+ "ECP_DP_SECP224K1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
+ "ECP_DP_SECP256K1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
+ "ECP_DP_BP256R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
+ "ECP_DP_BP384R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
+ "ECP_DP_BP512R1_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
+#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
+ "ECP_DP_CURVE25519_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
+#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
+ "ECP_DP_CURVE448_ENABLED", //no-check-names
+#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
+#if defined(MBEDTLS_ECP_NIST_OPTIM)
+ "ECP_NIST_OPTIM", //no-check-names
+#endif /* MBEDTLS_ECP_NIST_OPTIM */
+#if defined(MBEDTLS_ECP_RESTARTABLE)
+ "ECP_RESTARTABLE", //no-check-names
+#endif /* MBEDTLS_ECP_RESTARTABLE */
+#if defined(MBEDTLS_ECP_WITH_MPI_UINT)
+ "ECP_WITH_MPI_UINT", //no-check-names
+#endif /* MBEDTLS_ECP_WITH_MPI_UINT */
+#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
+ "ECDSA_DETERMINISTIC", //no-check-names
+#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
+#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
+ "KEY_EXCHANGE_PSK_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
+ "KEY_EXCHANGE_DHE_PSK_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
+ "KEY_EXCHANGE_ECDHE_PSK_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
+ "KEY_EXCHANGE_RSA_PSK_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
+ "KEY_EXCHANGE_RSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
+ "KEY_EXCHANGE_DHE_RSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
+ "KEY_EXCHANGE_ECDHE_RSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
+ "KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
+ "KEY_EXCHANGE_ECDH_ECDSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
+ "KEY_EXCHANGE_ECDH_RSA_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
+#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
+ "KEY_EXCHANGE_ECJPAKE_ENABLED", //no-check-names
+#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
+#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED)
+ "PK_PARSE_EC_EXTENDED", //no-check-names
+#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */
+#if defined(MBEDTLS_PK_PARSE_EC_COMPRESSED)
+ "PK_PARSE_EC_COMPRESSED", //no-check-names
+#endif /* MBEDTLS_PK_PARSE_EC_COMPRESSED */
+#if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
+ "ERROR_STRERROR_DUMMY", //no-check-names
+#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */
+#if defined(MBEDTLS_GENPRIME)
+ "GENPRIME", //no-check-names
+#endif /* MBEDTLS_GENPRIME */
+#if defined(MBEDTLS_FS_IO)
+ "FS_IO", //no-check-names
+#endif /* MBEDTLS_FS_IO */
+#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
+ "NO_DEFAULT_ENTROPY_SOURCES", //no-check-names
+#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
+#if defined(MBEDTLS_NO_PLATFORM_ENTROPY)
+ "NO_PLATFORM_ENTROPY", //no-check-names
+#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */
+#if defined(MBEDTLS_ENTROPY_FORCE_SHA256)
+ "ENTROPY_FORCE_SHA256", //no-check-names
+#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */
+#if defined(MBEDTLS_ENTROPY_NV_SEED)
+ "ENTROPY_NV_SEED", //no-check-names
+#endif /* MBEDTLS_ENTROPY_NV_SEED */
+#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
+ "PSA_CRYPTO_KEY_ID_ENCODES_OWNER", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER */
+#if defined(MBEDTLS_MEMORY_DEBUG)
+ "MEMORY_DEBUG", //no-check-names
+#endif /* MBEDTLS_MEMORY_DEBUG */
+#if defined(MBEDTLS_MEMORY_BACKTRACE)
+ "MEMORY_BACKTRACE", //no-check-names
+#endif /* MBEDTLS_MEMORY_BACKTRACE */
+#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
+ "PK_RSA_ALT_SUPPORT", //no-check-names
+#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
+#if defined(MBEDTLS_PKCS1_V15)
+ "PKCS1_V15", //no-check-names
+#endif /* MBEDTLS_PKCS1_V15 */
+#if defined(MBEDTLS_PKCS1_V21)
+ "PKCS1_V21", //no-check-names
+#endif /* MBEDTLS_PKCS1_V21 */
+#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
+ "PSA_CRYPTO_BUILTIN_KEYS", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS */
+#if defined(MBEDTLS_PSA_CRYPTO_CLIENT)
+ "PSA_CRYPTO_CLIENT", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_CLIENT */
+#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+ "PSA_CRYPTO_EXTERNAL_RNG", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG */
+#if defined(MBEDTLS_PSA_CRYPTO_SPM)
+ "PSA_CRYPTO_SPM", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_SPM */
+#if defined(MBEDTLS_PSA_P256M_DRIVER_ENABLED)
+ "PSA_P256M_DRIVER_ENABLED", //no-check-names
+#endif /* MBEDTLS_PSA_P256M_DRIVER_ENABLED */
+#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
+ "PSA_INJECT_ENTROPY", //no-check-names
+#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
+#if defined(MBEDTLS_RSA_NO_CRT)
+ "RSA_NO_CRT", //no-check-names
+#endif /* MBEDTLS_RSA_NO_CRT */
+#if defined(MBEDTLS_SELF_TEST)
+ "SELF_TEST", //no-check-names
+#endif /* MBEDTLS_SELF_TEST */
+#if defined(MBEDTLS_SHA256_SMALLER)
+ "SHA256_SMALLER", //no-check-names
+#endif /* MBEDTLS_SHA256_SMALLER */
+#if defined(MBEDTLS_SHA512_SMALLER)
+ "SHA512_SMALLER", //no-check-names
+#endif /* MBEDTLS_SHA512_SMALLER */
+#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES)
+ "SSL_ALL_ALERT_MESSAGES", //no-check-names
+#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
+ "SSL_DTLS_CONNECTION_ID", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
+#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT)
+ "SSL_DTLS_CONNECTION_ID_COMPAT", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID_COMPAT */
+#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
+ "SSL_ASYNC_PRIVATE", //no-check-names
+#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
+#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
+ "SSL_CONTEXT_SERIALIZATION", //no-check-names
+#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
+#if defined(MBEDTLS_SSL_DEBUG_ALL)
+ "SSL_DEBUG_ALL", //no-check-names
+#endif /* MBEDTLS_SSL_DEBUG_ALL */
+#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
+ "SSL_ENCRYPT_THEN_MAC", //no-check-names
+#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */
+#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
+ "SSL_EXTENDED_MASTER_SECRET", //no-check-names
+#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */
+#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
+ "SSL_KEEP_PEER_CERTIFICATE", //no-check-names
+#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
+#if defined(MBEDTLS_SSL_RENEGOTIATION)
+ "SSL_RENEGOTIATION", //no-check-names
+#endif /* MBEDTLS_SSL_RENEGOTIATION */
+#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
+ "SSL_MAX_FRAGMENT_LENGTH", //no-check-names
+#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */
+#if defined(MBEDTLS_SSL_RECORD_SIZE_LIMIT)
+ "SSL_RECORD_SIZE_LIMIT", //no-check-names
+#endif /* MBEDTLS_SSL_RECORD_SIZE_LIMIT */
+#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
+ "SSL_PROTO_TLS1_2", //no-check-names
+#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
+#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
+ "SSL_PROTO_TLS1_3", //no-check-names
+#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
+#if defined(MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE)
+ "SSL_TLS1_3_COMPATIBILITY_MODE", //no-check-names
+#endif /* MBEDTLS_SSL_TLS1_3_COMPATIBILITY_MODE */
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED)
+ "SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED", //no-check-names
+#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_ENABLED */
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED)
+ "SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED", //no-check-names
+#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_EPHEMERAL_ENABLED */
+#if defined(MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED)
+ "SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED", //no-check-names
+#endif /* MBEDTLS_SSL_TLS1_3_KEY_EXCHANGE_MODE_PSK_EPHEMERAL_ENABLED */
+#if defined(MBEDTLS_SSL_EARLY_DATA)
+ "SSL_EARLY_DATA", //no-check-names
+#endif /* MBEDTLS_SSL_EARLY_DATA */
+#if defined(MBEDTLS_SSL_PROTO_DTLS)
+ "SSL_PROTO_DTLS", //no-check-names
+#endif /* MBEDTLS_SSL_PROTO_DTLS */
+#if defined(MBEDTLS_SSL_ALPN)
+ "SSL_ALPN", //no-check-names
+#endif /* MBEDTLS_SSL_ALPN */
+#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
+ "SSL_DTLS_ANTI_REPLAY", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */
+#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
+ "SSL_DTLS_HELLO_VERIFY", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
+#if defined(MBEDTLS_SSL_DTLS_SRTP)
+ "SSL_DTLS_SRTP", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_SRTP */
+#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE)
+ "SSL_DTLS_CLIENT_PORT_REUSE", //no-check-names
+#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */
+#if defined(MBEDTLS_SSL_SESSION_TICKETS)
+ "SSL_SESSION_TICKETS", //no-check-names
+#endif /* MBEDTLS_SSL_SESSION_TICKETS */
+#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
+ "SSL_SERVER_NAME_INDICATION", //no-check-names
+#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
+#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
+ "SSL_VARIABLE_BUFFER_LENGTH", //no-check-names
+#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */
+#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN)
+ "TEST_CONSTANT_FLOW_MEMSAN", //no-check-names
+#endif /* MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN */
+#if defined(MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND)
+ "TEST_CONSTANT_FLOW_VALGRIND", //no-check-names
+#endif /* MBEDTLS_TEST_CONSTANT_FLOW_VALGRIND */
+#if defined(MBEDTLS_TEST_HOOKS)
+ "TEST_HOOKS", //no-check-names
+#endif /* MBEDTLS_TEST_HOOKS */
+#if defined(MBEDTLS_THREADING_ALT)
+ "THREADING_ALT", //no-check-names
+#endif /* MBEDTLS_THREADING_ALT */
+#if defined(MBEDTLS_THREADING_PTHREAD)
+ "THREADING_PTHREAD", //no-check-names
+#endif /* MBEDTLS_THREADING_PTHREAD */
+#if defined(MBEDTLS_USE_PSA_CRYPTO)
+ "USE_PSA_CRYPTO", //no-check-names
+#endif /* MBEDTLS_USE_PSA_CRYPTO */
+#if defined(MBEDTLS_PSA_CRYPTO_CONFIG)
+ "PSA_CRYPTO_CONFIG", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_CONFIG */
+#if defined(MBEDTLS_VERSION_FEATURES)
+ "VERSION_FEATURES", //no-check-names
+#endif /* MBEDTLS_VERSION_FEATURES */
+#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
+ "X509_TRUSTED_CERTIFICATE_CALLBACK", //no-check-names
+#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
+#if defined(MBEDTLS_X509_REMOVE_INFO)
+ "X509_REMOVE_INFO", //no-check-names
+#endif /* MBEDTLS_X509_REMOVE_INFO */
+#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
+ "X509_RSASSA_PSS_SUPPORT", //no-check-names
+#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
+#if defined(MBEDTLS_AESNI_C)
+ "AESNI_C", //no-check-names
+#endif /* MBEDTLS_AESNI_C */
+#if defined(MBEDTLS_AESCE_C)
+ "AESCE_C", //no-check-names
+#endif /* MBEDTLS_AESCE_C */
+#if defined(MBEDTLS_AES_C)
+ "AES_C", //no-check-names
+#endif /* MBEDTLS_AES_C */
+#if defined(MBEDTLS_ASN1_PARSE_C)
+ "ASN1_PARSE_C", //no-check-names
+#endif /* MBEDTLS_ASN1_PARSE_C */
+#if defined(MBEDTLS_ASN1_WRITE_C)
+ "ASN1_WRITE_C", //no-check-names
+#endif /* MBEDTLS_ASN1_WRITE_C */
+#if defined(MBEDTLS_BASE64_C)
+ "BASE64_C", //no-check-names
+#endif /* MBEDTLS_BASE64_C */
+#if defined(MBEDTLS_BIGNUM_C)
+ "BIGNUM_C", //no-check-names
+#endif /* MBEDTLS_BIGNUM_C */
+#if defined(MBEDTLS_CAMELLIA_C)
+ "CAMELLIA_C", //no-check-names
+#endif /* MBEDTLS_CAMELLIA_C */
+#if defined(MBEDTLS_ARIA_C)
+ "ARIA_C", //no-check-names
+#endif /* MBEDTLS_ARIA_C */
+#if defined(MBEDTLS_CCM_C)
+ "CCM_C", //no-check-names
+#endif /* MBEDTLS_CCM_C */
+#if defined(MBEDTLS_CHACHA20_C)
+ "CHACHA20_C", //no-check-names
+#endif /* MBEDTLS_CHACHA20_C */
+#if defined(MBEDTLS_CHACHAPOLY_C)
+ "CHACHAPOLY_C", //no-check-names
+#endif /* MBEDTLS_CHACHAPOLY_C */
+#if defined(MBEDTLS_CIPHER_C)
+ "CIPHER_C", //no-check-names
+#endif /* MBEDTLS_CIPHER_C */
+#if defined(MBEDTLS_CMAC_C)
+ "CMAC_C", //no-check-names
+#endif /* MBEDTLS_CMAC_C */
+#if defined(MBEDTLS_CTR_DRBG_C)
+ "CTR_DRBG_C", //no-check-names
+#endif /* MBEDTLS_CTR_DRBG_C */
+#if defined(MBEDTLS_DEBUG_C)
+ "DEBUG_C", //no-check-names
+#endif /* MBEDTLS_DEBUG_C */
+#if defined(MBEDTLS_DES_C)
+ "DES_C", //no-check-names
+#endif /* MBEDTLS_DES_C */
+#if defined(MBEDTLS_DHM_C)
+ "DHM_C", //no-check-names
+#endif /* MBEDTLS_DHM_C */
+#if defined(MBEDTLS_ECDH_C)
+ "ECDH_C", //no-check-names
+#endif /* MBEDTLS_ECDH_C */
+#if defined(MBEDTLS_ECDSA_C)
+ "ECDSA_C", //no-check-names
+#endif /* MBEDTLS_ECDSA_C */
+#if defined(MBEDTLS_ECJPAKE_C)
+ "ECJPAKE_C", //no-check-names
+#endif /* MBEDTLS_ECJPAKE_C */
+#if defined(MBEDTLS_ECP_C)
+ "ECP_C", //no-check-names
+#endif /* MBEDTLS_ECP_C */
+#if defined(MBEDTLS_ENTROPY_C)
+ "ENTROPY_C", //no-check-names
+#endif /* MBEDTLS_ENTROPY_C */
+#if defined(MBEDTLS_ERROR_C)
+ "ERROR_C", //no-check-names
+#endif /* MBEDTLS_ERROR_C */
+#if defined(MBEDTLS_GCM_C)
+ "GCM_C", //no-check-names
+#endif /* MBEDTLS_GCM_C */
+#if defined(MBEDTLS_HKDF_C)
+ "HKDF_C", //no-check-names
+#endif /* MBEDTLS_HKDF_C */
+#if defined(MBEDTLS_HMAC_DRBG_C)
+ "HMAC_DRBG_C", //no-check-names
+#endif /* MBEDTLS_HMAC_DRBG_C */
+#if defined(MBEDTLS_LMS_C)
+ "LMS_C", //no-check-names
+#endif /* MBEDTLS_LMS_C */
+#if defined(MBEDTLS_LMS_PRIVATE)
+ "LMS_PRIVATE", //no-check-names
+#endif /* MBEDTLS_LMS_PRIVATE */
+#if defined(MBEDTLS_NIST_KW_C)
+ "NIST_KW_C", //no-check-names
+#endif /* MBEDTLS_NIST_KW_C */
+#if defined(MBEDTLS_MD_C)
+ "MD_C", //no-check-names
+#endif /* MBEDTLS_MD_C */
+#if defined(MBEDTLS_MD5_C)
+ "MD5_C", //no-check-names
+#endif /* MBEDTLS_MD5_C */
+#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
+ "MEMORY_BUFFER_ALLOC_C", //no-check-names
+#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
+#if defined(MBEDTLS_NET_C)
+ "NET_C", //no-check-names
+#endif /* MBEDTLS_NET_C */
+#if defined(MBEDTLS_OID_C)
+ "OID_C", //no-check-names
+#endif /* MBEDTLS_OID_C */
+#if defined(MBEDTLS_PADLOCK_C)
+ "PADLOCK_C", //no-check-names
+#endif /* MBEDTLS_PADLOCK_C */
+#if defined(MBEDTLS_PEM_PARSE_C)
+ "PEM_PARSE_C", //no-check-names
+#endif /* MBEDTLS_PEM_PARSE_C */
+#if defined(MBEDTLS_PEM_WRITE_C)
+ "PEM_WRITE_C", //no-check-names
+#endif /* MBEDTLS_PEM_WRITE_C */
+#if defined(MBEDTLS_PK_C)
+ "PK_C", //no-check-names
+#endif /* MBEDTLS_PK_C */
+#if defined(MBEDTLS_PK_PARSE_C)
+ "PK_PARSE_C", //no-check-names
+#endif /* MBEDTLS_PK_PARSE_C */
+#if defined(MBEDTLS_PK_WRITE_C)
+ "PK_WRITE_C", //no-check-names
+#endif /* MBEDTLS_PK_WRITE_C */
+#if defined(MBEDTLS_PKCS5_C)
+ "PKCS5_C", //no-check-names
+#endif /* MBEDTLS_PKCS5_C */
+#if defined(MBEDTLS_PKCS7_C)
+ "PKCS7_C", //no-check-names
+#endif /* MBEDTLS_PKCS7_C */
+#if defined(MBEDTLS_PKCS12_C)
+ "PKCS12_C", //no-check-names
+#endif /* MBEDTLS_PKCS12_C */
+#if defined(MBEDTLS_PLATFORM_C)
+ "PLATFORM_C", //no-check-names
+#endif /* MBEDTLS_PLATFORM_C */
+#if defined(MBEDTLS_POLY1305_C)
+ "POLY1305_C", //no-check-names
+#endif /* MBEDTLS_POLY1305_C */
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+ "PSA_CRYPTO_C", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_C */
+#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
+ "PSA_CRYPTO_SE_C", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
+#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
+ "PSA_CRYPTO_STORAGE_C", //no-check-names
+#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */
+#if defined(MBEDTLS_PSA_ITS_FILE_C)
+ "PSA_ITS_FILE_C", //no-check-names
+#endif /* MBEDTLS_PSA_ITS_FILE_C */
+#if defined(MBEDTLS_RIPEMD160_C)
+ "RIPEMD160_C", //no-check-names
+#endif /* MBEDTLS_RIPEMD160_C */
+#if defined(MBEDTLS_RSA_C)
+ "RSA_C", //no-check-names
+#endif /* MBEDTLS_RSA_C */
+#if defined(MBEDTLS_SHA1_C)
+ "SHA1_C", //no-check-names
+#endif /* MBEDTLS_SHA1_C */
+#if defined(MBEDTLS_SHA224_C)
+ "SHA224_C", //no-check-names
+#endif /* MBEDTLS_SHA224_C */
+#if defined(MBEDTLS_SHA256_C)
+ "SHA256_C", //no-check-names
+#endif /* MBEDTLS_SHA256_C */
+#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT)
+ "SHA256_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
+#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_IF_PRESENT */
+#if defined(MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY)
+ "SHA256_USE_A64_CRYPTO_ONLY", //no-check-names
+#endif /* MBEDTLS_SHA256_USE_A64_CRYPTO_ONLY */
+#if defined(MBEDTLS_SHA384_C)
+ "SHA384_C", //no-check-names
+#endif /* MBEDTLS_SHA384_C */
+#if defined(MBEDTLS_SHA512_C)
+ "SHA512_C", //no-check-names
+#endif /* MBEDTLS_SHA512_C */
+#if defined(MBEDTLS_SHA3_C)
+ "SHA3_C", //no-check-names
+#endif /* MBEDTLS_SHA3_C */
+#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT)
+ "SHA512_USE_A64_CRYPTO_IF_PRESENT", //no-check-names
+#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_IF_PRESENT */
+#if defined(MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY)
+ "SHA512_USE_A64_CRYPTO_ONLY", //no-check-names
+#endif /* MBEDTLS_SHA512_USE_A64_CRYPTO_ONLY */
+#if defined(MBEDTLS_SSL_CACHE_C)
+ "SSL_CACHE_C", //no-check-names
+#endif /* MBEDTLS_SSL_CACHE_C */
+#if defined(MBEDTLS_SSL_COOKIE_C)
+ "SSL_COOKIE_C", //no-check-names
+#endif /* MBEDTLS_SSL_COOKIE_C */
+#if defined(MBEDTLS_SSL_TICKET_C)
+ "SSL_TICKET_C", //no-check-names
+#endif /* MBEDTLS_SSL_TICKET_C */
+#if defined(MBEDTLS_SSL_CLI_C)
+ "SSL_CLI_C", //no-check-names
+#endif /* MBEDTLS_SSL_CLI_C */
+#if defined(MBEDTLS_SSL_SRV_C)
+ "SSL_SRV_C", //no-check-names
+#endif /* MBEDTLS_SSL_SRV_C */
+#if defined(MBEDTLS_SSL_TLS_C)
+ "SSL_TLS_C", //no-check-names
+#endif /* MBEDTLS_SSL_TLS_C */
+#if defined(MBEDTLS_THREADING_C)
+ "THREADING_C", //no-check-names
+#endif /* MBEDTLS_THREADING_C */
+#if defined(MBEDTLS_TIMING_C)
+ "TIMING_C", //no-check-names
+#endif /* MBEDTLS_TIMING_C */
+#if defined(MBEDTLS_VERSION_C)
+ "VERSION_C", //no-check-names
+#endif /* MBEDTLS_VERSION_C */
+#if defined(MBEDTLS_X509_USE_C)
+ "X509_USE_C", //no-check-names
+#endif /* MBEDTLS_X509_USE_C */
+#if defined(MBEDTLS_X509_CRT_PARSE_C)
+ "X509_CRT_PARSE_C", //no-check-names
+#endif /* MBEDTLS_X509_CRT_PARSE_C */
+#if defined(MBEDTLS_X509_CRL_PARSE_C)
+ "X509_CRL_PARSE_C", //no-check-names
+#endif /* MBEDTLS_X509_CRL_PARSE_C */
+#if defined(MBEDTLS_X509_CSR_PARSE_C)
+ "X509_CSR_PARSE_C", //no-check-names
+#endif /* MBEDTLS_X509_CSR_PARSE_C */
+#if defined(MBEDTLS_X509_CREATE_C)
+ "X509_CREATE_C", //no-check-names
+#endif /* MBEDTLS_X509_CREATE_C */
+#if defined(MBEDTLS_X509_CRT_WRITE_C)
+ "X509_CRT_WRITE_C", //no-check-names
+#endif /* MBEDTLS_X509_CRT_WRITE_C */
+#if defined(MBEDTLS_X509_CSR_WRITE_C)
+ "X509_CSR_WRITE_C", //no-check-names
+#endif /* MBEDTLS_X509_CSR_WRITE_C */
+#endif /* MBEDTLS_VERSION_FEATURES */
+ NULL
+};
+
+int mbedtls_version_check_feature(const char *feature)
+{
+ const char * const *idx = features;
+
+ if (*idx == NULL) {
+ return -2;
+ }
+
+ if (feature == NULL) {
+ return -1;
+ }
+
+ if (strncmp(feature, "MBEDTLS_", 8)) {
+ return -1;
+ }
+
+ feature += 8;
+
+ while (*idx != NULL) {
+ if (!strcmp(*idx, feature)) {
+ return 0;
+ }
+ idx++;
+ }
+ return -1;
+}
+
+#endif /* MBEDTLS_VERSION_C */
diff --git a/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_protocol_crypto.h b/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_protocol_crypto.h
index 73a0eee8c..a14c58e6e 100644
--- a/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_protocol_crypto.h
+++ b/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_protocol_crypto.h
@@ -50,6 +50,13 @@
extern "C" {
#endif
+/***************************************************************************//**
+ * @brief Initialise Silabs internal protocol crypto library
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_protocol_crypto_init(void);
+
/***************************************************************************//**
* @brief AES-CTR block encryption/decryption optimized for radio
*
diff --git a/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c b/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c
index deb542c02..7fab1a2bf 100644
--- a/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c
+++ b/simplicity_sdk/platform/security/sl_component/sl_protocol_crypto/src/sli_radioaes_management.c
@@ -33,11 +33,11 @@
/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
#include "sli_radioaes_management.h"
-#include "sli_se_manager_osal.h"
+#include "sli_psec_osal.h"
#include "em_core.h"
-#if defined(SL_SE_MANAGER_THREADING)
-static se_manager_osal_mutex_t radioaes_lock = { 0 };
+#if defined(SLI_PSEC_THREADING)
+static sli_psec_osal_lock_t radioaes_lock = { 0 };
static volatile bool radioaes_lock_initialized = false;
#endif
@@ -82,6 +82,46 @@ static void sli_radioaes_update_mask(void)
}
#endif // SLI_RADIOAES_REQUIRES_MASKING
+// Initialize the RADIOAES lock (mutex) for mutual exclusive access
+sl_status_t sli_protocol_crypto_init(void)
+{
+ sl_status_t sl_status = SL_STATUS_OK;
+
+#if defined(SLI_PSEC_THREADING)
+ // Check flag first before going into a critical section, to avoid going into
+ // a critical section on every single acquire() call. Since the _initialized
+ // flag only transitions false -> true, we can in 99% of the calls avoid the
+ // critical section.
+ if (!radioaes_lock_initialized) {
+ int32_t kernel_lock_state = 0;
+ osKernelState_t kernel_state = sli_psec_osal_kernel_get_state();
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ kernel_lock_state = sli_psec_osal_kernel_lock();
+ if (kernel_lock_state < 0) {
+ return SL_STATUS_SUSPENDED;
+ }
+ }
+
+ // Check the flag again after entering the critical section. Now that we're
+ // in the critical section, we can be sure that we are the only ones looking
+ // at the flag and no-one is interrupting us during its manipulation.
+ if (!radioaes_lock_initialized) {
+ sl_status = sli_psec_osal_init_lock(&radioaes_lock);
+ if (sl_status == SL_STATUS_OK) {
+ radioaes_lock_initialized = true;
+ }
+ }
+
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ if (sli_psec_osal_kernel_restore_lock(kernel_lock_state) < 0) {
+ return SL_STATUS_INVALID_STATE;
+ }
+ }
+ }
+#endif
+ return sl_status;
+}
+
sl_status_t sli_radioaes_acquire(void)
{
#if defined(_CMU_CLKEN0_MASK)
@@ -101,53 +141,19 @@ sl_status_t sli_radioaes_acquire(void)
#endif
return SL_STATUS_ISR;
} else {
-#if defined(SL_SE_MANAGER_THREADING)
+#if defined(SLI_PSEC_THREADING)
sl_status_t ret = SL_STATUS_OK;
-
- // Non-IRQ, RTOS available: take mutex
- // Initialize mutex if that hasn't happened yet
-
- // Check flag first before going into a critical section, to avoid going into
- // a critical section on every single acquire() call. Since the _initialized
- // flag only transitions false -> true, we can in 99% of the calls avoid the
- // critical section.
if (!radioaes_lock_initialized) {
- int32_t kernel_lock_state = 0;
- osKernelState_t kernel_state = se_manager_osal_kernel_get_state();
- if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
- kernel_lock_state = se_manager_osal_kernel_lock();
- if (kernel_lock_state < 0) {
- return SL_STATUS_SUSPENDED;
- }
- }
-
- // Check the flag again after entering the critical section. Now that we're
- // in the critical section, we can be sure that we are the only ones looking
- // at the flag and no-one is interrupting us during its manipulation.
- if (!radioaes_lock_initialized) {
- ret = se_manager_osal_init_mutex(&radioaes_lock);
- if (ret == SL_STATUS_OK) {
- radioaes_lock_initialized = true;
- }
- }
-
- if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
- if (se_manager_osal_kernel_restore_lock(kernel_lock_state) < 0) {
- return SL_STATUS_INVALID_STATE;
- }
- }
- }
-
- if (ret == SL_STATUS_OK) {
- ret = se_manager_osal_take_mutex(&radioaes_lock);
+ ret = sli_protocol_crypto_init();
}
-
- #if defined(SLI_RADIOAES_REQUIRES_MASKING)
if (ret == SL_STATUS_OK) {
- sli_radioaes_update_mask();
+ ret = sli_psec_osal_take_lock(&radioaes_lock);
+ #if defined(SLI_RADIOAES_REQUIRES_MASKING)
+ if (ret == SL_STATUS_OK) {
+ sli_radioaes_update_mask();
+ }
+ #endif
}
- #endif
-
return ret;
#else
// Non-IRQ, no RTOS: busywait
@@ -168,9 +174,9 @@ sl_status_t sli_radioaes_release(void)
if ((SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0U) {
return SL_STATUS_OK;
}
-#if defined(SL_SE_MANAGER_THREADING)
- // Non-IRQ, RTOS available: free mutex
- return se_manager_osal_give_mutex(&radioaes_lock);
+#if defined(SLI_PSEC_THREADING)
+ // Non-IRQ, RTOS available: free lock
+ return sli_psec_osal_give_lock(&radioaes_lock);
#else
// Non-IRQ, no RTOS: nothing to do.
return SL_STATUS_OK;
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/cryptoacc_management.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/cryptoacc_management.h
new file mode 100644
index 000000000..d8410a97f
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/cryptoacc_management.h
@@ -0,0 +1,99 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs CRYPTOACC device management interface.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef CRYPTOACC_MANAGEMENT_H
+#define CRYPTOACC_MANAGEMENT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_crypto_plugins
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_cryptoacc_management CRYPTOACC device instance management
+ * \brief Management functions for the CRYPTOACC. These functions take care
+ * of not having two 'owners' simultaneously for the same CRYPTOACC
+ * device, which could potentially be causing conflicts and system
+ * lock-up.
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "psa/crypto.h"
+
+//------------------------------------------------------------------------------
+// Function Declarations
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Get ownership of the crypto device
+ *
+ * \return PSA_SUCCESS if successful, PSA_ERROR_HARDWARE_FAILURE on error
+ */
+psa_status_t cryptoacc_management_acquire(void);
+
+/**
+ * \brief Release ownership of the crypto device
+ *
+ * \return PSA_SUCCESS if successful, PSA_ERROR_HARDWARE_FAILURE on error
+ */
+psa_status_t cryptoacc_management_release(void);
+
+/**
+ * \brief Set up hardware SCA countermeasures
+ *
+ * \return PSA_SUCCESS if successful, PSA_ERROR_HARDWARE_FAILURE on error
+ *
+ * \note Will try to set up CM even if errors are returned early on.
+ * In that case, the function will return the first error code that is
+ * encountered, but only after CM has been set up.
+ */
+psa_status_t cryptoacc_initialize_countermeasures(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
+
+/** \} (end addtogroup sl_cryptoacc_management) */
+/** \} (end addtogroup sl_crypto_plugins) */
+
+/// @endcond
+
+#endif // CRYPTOACC_MANAGEMENT_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_driver_trng.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_driver_trng.h
new file mode 100644
index 000000000..b2c47849b
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_driver_trng.h
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * @file
+ * @brief Silicon Labs PSA Crypto TRNG driver functions for VSE devices.
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_CRYPTOACC_DRIVER_TRNG_H_
+#define SLI_CRYPTOACC_DRIVER_TRNG_H_
+
+#include "psa/crypto.h"
+
+#include "stddef.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//------------------------------------------------------------------------------
+// Global Variable Declarations
+
+/*
+ * \brief
+ * Global struct to be used by functions in the LibCryptoSoC library when
+ * generating randomness.
+ *
+ * \note
+ * The function pointed to by tis struct expects to the CRYPTOACC peripheral
+ * to be clocked before being called.
+ *
+ * \attention
+ * The use of this wrapper struct should __not__ be replaced by a naive struct
+ * containing a pointer to sx_trng_fill_blk().
+ *
+ * \warning
+ * Since the function pointed to by this wrapper is not able (or expected) to
+ * return an error code, any errors are therefore handled by resetting the
+ * system. This is deemed appropriate since a failed randomness generation may
+ * have severe security implications.
+ */
+extern const struct sx_rng sli_cryptoacc_trng_wrapper;
+
+//------------------------------------------------------------------------------
+// Function Declarations
+
+/*
+ * \brief
+ * Function for getting random data from the TRNG.
+ *
+ * \note
+ * This function will make attempted reads until the requested amount of
+ * randomness has been collected. If the function returns successfully, it
+ * can be assumed that the full length of requested data has been written.
+ *
+ * \return
+ * PSA_SUCCESS if no error was encountered, else PSA_ERROR_HARDWARE_FAILURE.
+ */
+psa_status_t sli_cryptoacc_trng_get_random(unsigned char *output, size_t len);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_CRYPTOACC_DRIVER_TRNG_H_
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_functions.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_functions.h
new file mode 100644
index 000000000..6d2101e6b
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_functions.h
@@ -0,0 +1,102 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver functions for CRYPTOACC.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_CRYPTOACC_OPAQUE_FUNCTIONS_H
+#define SLI_CRYPTOACC_OPAQUE_FUNCTIONS_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_cryptoacc CRYPTOACC opaque PSA driver
+ * \brief Driver plugin for Silicon Labs CRYPTOACC peripheral adhering to the
+ * PSA opaque accelerator specification.
+ * \{
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(SLI_PSA_DRIVER_FEATURE_PUF_KEY)
+
+#include "sli_cryptoacc_opaque_types.h"
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+
+#include "psa/crypto_driver_common.h"
+
+/* NOTE: This header file will be autogenerated by PSA Crypto build system based on
+ * the definitions in sli_cryptoacc_opaque_driver.json. However, until such a system is
+ * in place, we rely on manually writing the file */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+psa_status_t sli_cryptoacc_driver_single_shot_pbkdf2(psa_algorithm_t alg,
+ const psa_key_attributes_t *key_in_attributes,
+ const uint8_t *key_in_buffer,
+ size_t key_in_buffer_size,
+ const uint8_t* salt,
+ size_t salt_length,
+ const psa_key_attributes_t *key_out_attributes,
+ uint32_t iterations,
+ uint8_t *key_out_buffer,
+ size_t key_out_buffer_size);
+
+psa_status_t sli_cryptoacc_opaque_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_cryptoacc_opaque_get_builtin_key(psa_drv_slot_number_t slot_number,
+ psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_PSA_DRIVER_FEATURE_PUF_KEY
+
+/** \} (end addtogroup sl_psa_drivers_cryptoacc) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_CRYPTOACC_OPAQUE_FUNCTIONS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_types.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_types.h
new file mode 100644
index 000000000..55520aade
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_opaque_types.h
@@ -0,0 +1,59 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver API Types for VSE.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_CRYPTOACC_OPAQUE_TYPES_H
+#define SLI_CRYPTOACC_OPAQUE_TYPES_H
+
+#include "em_device.h"
+
+#define PSA_KEY_LOCATION_SLI_CRYPTOACC_OPAQUE PSA_KEY_LOCATION_SL_CRYPTOACC_OPAQUE
+
+#if defined(CRYPTOACC_PRESENT) && defined(SEPUF_PRESENT)
+
+#include "sli_psa_driver_features.h"
+#include "sl_psa_values.h"
+
+#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
+
+/// Context struct for opaque registered keys
+typedef struct {
+ /// Version field for the struct
+ uint8_t struct_version;
+ /// Builtin key ID
+ uint8_t builtin_key_id;
+ /// Reserved space (initialise to all-zero)
+ uint8_t reserved[2];
+} sli_cryptoacc_opaque_key_context_t;
+
+#endif // MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+
+#endif // CRYPTOACC_PRESENT && SEPUF_PRESENT
+
+#endif // SLI_CRYPTOACC_OPAQUE_TYPES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_functions.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_functions.h
new file mode 100644
index 000000000..73881564d
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_functions.h
@@ -0,0 +1,350 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver functions for CRYPTOACC.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_CRYPTOACC_TRANSPARENT_FUNCTIONS_H
+#define SLI_CRYPTOACC_TRANSPARENT_FUNCTIONS_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_cryptoacc CRYPTOACC transparent PSA driver
+ * \brief Driver plugin for Silicon Labs CRYPTOACC peripheral adhering to the
+ * PSA transparent accelerator specification.
+ * \{
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sli_cryptoacc_transparent_types.h"
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+/* NOTE: This header file will be autogenerated by PSA Crypto build system based on
+ * the definitions in sli_cryptoacc_transparent_driver.json. However, until such a system is
+ * in place, we rely on manually writing the file */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+psa_status_t sli_cryptoacc_transparent_driver_init(void);
+
+psa_status_t sli_cryptoacc_transparent_driver_deinit(void);
+
+psa_status_t sli_cryptoacc_transparent_hash_setup(sli_cryptoacc_transparent_hash_operation_t *operation,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_hash_update(sli_cryptoacc_transparent_hash_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_cryptoacc_transparent_hash_finish(sli_cryptoacc_transparent_hash_operation_t *operation,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length);
+
+psa_status_t sli_cryptoacc_transparent_hash_abort(sli_cryptoacc_transparent_hash_operation_t *operation);
+
+psa_status_t sli_cryptoacc_transparent_hash_compute(psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length);
+
+psa_status_t sli_cryptoacc_transparent_hash_clone(const sli_cryptoacc_transparent_hash_operation_t *source_operation,
+ sli_cryptoacc_transparent_hash_operation_t *target_operation);
+
+psa_status_t sli_cryptoacc_transparent_cipher_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_cryptoacc_transparent_cipher_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_cryptoacc_transparent_cipher_encrypt_setup(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_cipher_decrypt_setup(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_cipher_set_iv(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length);
+
+psa_status_t sli_cryptoacc_transparent_cipher_update(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_cryptoacc_transparent_cipher_finish(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_cryptoacc_transparent_cipher_abort(sli_cryptoacc_transparent_cipher_operation_t *operation);
+
+psa_status_t sli_cryptoacc_transparent_sign_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length);
+
+psa_status_t sli_cryptoacc_transparent_verify_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length);
+
+psa_status_t sli_cryptoacc_transparent_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_cryptoacc_transparent_mac_sign_setup(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_mac_verify_setup(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_mac_update(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_cryptoacc_transparent_mac_sign_finish(sli_cryptoacc_transparent_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_cryptoacc_transparent_mac_verify_finish(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length);
+
+psa_status_t sli_cryptoacc_transparent_mac_abort(sli_cryptoacc_transparent_mac_operation_t *operation);
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ const uint8_t* tag,
+ size_t tag_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt_setup(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt_setup(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_cryptoacc_transparent_aead_set_nonce(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_set_lengths(sli_cryptoacc_transparent_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_update_ad(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_update(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_finish(sli_cryptoacc_transparent_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_verify(sli_cryptoacc_transparent_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length);
+
+psa_status_t sli_cryptoacc_transparent_aead_abort(sli_cryptoacc_transparent_aead_operation_t *operation);
+
+psa_status_t sli_cryptoacc_transparent_generate_key(const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_length);
+
+psa_status_t sli_cryptoacc_transparent_export_public_key(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length);
+
+psa_status_t sli_cryptoacc_transparent_import_key(const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits);
+
+psa_status_t sli_cryptoacc_transparent_key_agreement(psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // CRYPTOACC_PRESENT
+
+/** \} (end addtogroup sl_psa_drivers_cryptoacc) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_CRYPTOACC_TRANSPARENT_FUNCTIONS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_types.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_types.h
new file mode 100644
index 000000000..6ddf0bd4b
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_cryptoacc_transparent_types.h
@@ -0,0 +1,136 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver API Types for CRYPTOACC.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_CRYPTOACC_TRANSPARENT_TYPES_H
+#define SLI_CRYPTOACC_TRANSPARENT_TYPES_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_cryptoacc
+ * \{
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sx_hash.h"
+#include "sx_aes.h"
+#include "sl_enum.h"
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+SL_ENUM(sli_aes_mode_t) {
+ SLI_AES_ENC = 1,
+ SLI_AES_DEC = 2,
+};
+
+typedef struct {
+ sx_hash_fct_t hash_type; ///< Hash type
+ uint32_t total; ///< Number of bytes processed
+ uint8_t state[32]; ///< Intermediate digest state
+ uint8_t buffer[64]; ///< Data block being processed
+} sli_cryptoacc_transparent_hash_operation_t;
+
+typedef struct {
+ sli_aes_mode_t direction; ///< Cipher direction (encrypt/decrypt)
+ psa_algorithm_t alg; ///< Algorithm (cipher and mode of operation)
+ uint8_t key[32]; ///< Key buffer
+ size_t key_len; ///< Length of key in bytes
+ uint8_t iv[16]; ///< IV buffer
+ size_t iv_len; ///< Length of IV in bytes
+ uint8_t streaming_block[16]; ///< Buffer for intermediate results
+ size_t processed_length; ///< Number of bytes processed
+} sli_cryptoacc_transparent_cipher_operation_t;
+
+typedef union {
+ struct {
+ psa_algorithm_t alg; ///< MAC type
+ uint8_t key[32]; ///< key buffer
+ size_t key_len; ///< key length
+ uint8_t current_block[16]; ///< current and potentially last block
+ size_t current_block_len; ///< current number of bytes in current block
+ uint8_t cmac_ctx[BLK_CIPHER_CTX_SIZE]; ///< CMAC state context
+ } cipher_mac;
+ #if defined(PSA_WANT_ALG_HMAC)
+ struct {
+ psa_algorithm_t alg; ///< HMAC type
+ sli_cryptoacc_transparent_hash_operation_t hash_ctx; ///< Hash context for multipart HMAC
+ uint8_t opad[64]; ///< opad for use during finalisation
+ } hmac;
+ #endif
+} sli_cryptoacc_transparent_mac_operation_t;
+
+typedef struct {
+ uint8_t nonce_length; ///< Nonce length
+ uint8_t nonce[16]; ///< Nonce buffer
+} sli_cryptoacc_transparent_aead_preinit_t;
+
+typedef struct {
+ sli_aes_mode_t direction; ///< xCM mode
+ psa_algorithm_t alg; ///< Algorithm
+ uint8_t key[32]; ///< Key buffer
+ size_t key_len; ///< Key length
+ size_t ad_len; ///< Length of additional data
+ size_t processed_len; ///< Current encrypted/decrypted message length
+ #if defined(PSA_WANT_ALG_CCM)
+ size_t total_length; ///< Total message length (only used for ccm)
+ #endif
+ uint8_t final_data[16]; ///< Input data saved for finish operation
+ uint8_t final_data_length; ///< Length of data saved
+ union {
+ sli_cryptoacc_transparent_aead_preinit_t preinit; ///< Values needed for initiating a multipart process
+ uint8_t xcm_ctx[BLK_CIPHER_CTX_xCM_SIZE]; ///< xCM state context
+ uint8_t tag_buf[16]; ///< Tag (only need for CCM when total message length is zero)
+ } ctx;
+} sli_cryptoacc_transparent_aead_operation_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // CRYPTOACC_PRESENT
+
+/** \} (end addtogroup sl_psa_drivers_cryptoacc) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_CRYPTOACC_TRANSPARENT_TYPES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_common.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_common.h
new file mode 100644
index 000000000..75c73bf18
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_common.h
@@ -0,0 +1,230 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto common driver functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSA_DRIVER_COMMON_H
+#define SLI_PSA_DRIVER_COMMON_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+#include "psa/crypto.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static inline functions
+
+/*******************************************************************************
+ * @brief
+ * Validate that a elliptic curve (in Weierstrass form) private key is valid.
+ * This fuction attempts to operate in constant time.
+ *
+ * @param[in] privkey
+ * A buffer containing the private key.
+ *
+ * @param padding_bytes
+ * A buffer containing the modulus (n) to compare the private key against.
+ *
+ * @return
+ * PSA_SUCCESS if the key is in [1, n-1], PSA_ERROR_INVALID_ARGUMENT otherwise.
+ ******************************************************************************/
+static inline psa_status_t sli_psa_validate_ecc_weierstrass_privkey(
+ const void *privkey,
+ const void *modulus,
+ size_t privkey_size)
+{
+ // Compare private key to maximum allowed value, n - 1,
+ // and also check that it is non-zero.
+
+ // Initial values.
+ uint8_t non_zero_accumulator = 0;
+ int32_t memcmp_res = 0;
+ int32_t diff = 0;
+
+ // Loop over every byte in the private key. We start from the end so that
+ // the final result we store reflects the first byte which differs between the
+ // two numbers (privkey and modulus).
+ for (size_t i = 0; i < privkey_size; ++i) {
+ // Partial non-zero check operation.
+ non_zero_accumulator |= ((uint8_t *)privkey)[privkey_size - 1 - i];
+
+ // Compute the difference between the current bytes being compared.
+ diff = ((uint8_t *)privkey)[privkey_size - 1 - i]
+ - ((uint8_t *)modulus)[privkey_size - 1 - i];
+
+ // This will only update memcmp_res if the difference is non-zero.
+ memcmp_res = (memcmp_res & - !diff) | diff;
+ }
+
+ if ((non_zero_accumulator == 0) || (memcmp_res >= 0)) {
+ // We have either failed because the private key turned out to be empty,
+ // or because the result of the memcmp indicated that the privkey was not
+ // smaller than the modulus.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ return PSA_SUCCESS;
+ }
+}
+
+/***************************************************************************//**
+ * @brief
+ * Clear a memory location in a way that is guaranteed not be optimized away
+ * by the compiler.
+ *
+ * @param[in] v
+ * Pointer to memory location.
+ *
+ * @param[in] n
+ * Number of bytes to clear.
+ ******************************************************************************/
+static inline psa_status_t sli_psa_zeroize(void *v, size_t n)
+{
+ if (n == 0) {
+ return PSA_SUCCESS;
+ }
+
+ volatile unsigned char *p = v;
+ while (n--) {
+ *p++ = 0;
+ }
+ return PSA_SUCCESS;
+}
+
+/***************************************************************************//**
+ * @brief
+ * Perform a memcmp() in 'constant time'.
+ *
+ * @param[in] a
+ * Pointer to the first memory location.
+ *
+ * @param[in] a
+ * Pointer to the second memory location.
+ *
+ * @param[in] n
+ * Number of bytes to compare between the two memory locations.
+ *
+ * @return
+ * Zero if the buffer contents are equal, non-zero otherwise.
+ ******************************************************************************/
+static inline uint8_t sli_psa_safer_memcmp(const uint8_t *a,
+ const uint8_t *b,
+ size_t n)
+{
+ uint8_t diff = 0u;
+
+ for (size_t i = 0; i < n; i++) {
+ diff |= a[i] ^ b[i];
+ }
+
+ return diff;
+}
+
+// -----------------------------------------------------------------------------
+// Function declarations
+
+/*******************************************************************************
+ * @brief
+ * Validate the PKCS#7 padding contained in the final block of plaintext
+ * in certain block cipher modes of operation. Based on the get_pkcs_padding()
+ * implementation in Mbed TLS.
+ *
+ * @param[in] padded_data
+ * A buffer of (at least) size 16 containing the padded final block.
+ *
+ * @param padded_data_length
+ * The length of the paddad data (should be 16). Parameter is mainly kept used
+ * in order to make it harder for the compiler to optimize out some of the
+ * "time-constantness".
+ *
+ * @param[out] padding_bytes
+ * The amount of padding bytes that the data contains.
+
+ *
+ * @return
+ * PSA_SUCCESS if the padding is valid, PSA_ERROR_INVALID_PADDING otherwise.
+ ******************************************************************************/
+psa_status_t sli_psa_validate_pkcs7_padding(uint8_t *padded_data,
+ size_t padded_data_length,
+ size_t *padding_bytes);
+
+/**
+ * \brief Initialize Galois field (2^128) multiplication table
+ *
+ * This function is used as part of a software-based GHASH (as defined in
+ * AES-GCM) algorithm, and originates from the mbed TLS implementation in gcm.c
+ *
+ * It takes the in the 'H' value for the GHASH operation (which is a block of
+ * zeroes encrypted using AES-ECB with the key to be used for GHASH/GCM), and
+ * converts it into a multiplication table for later use by the multiplication
+ * function.
+ *
+ * \param[in] Ek 'H' value for which to create the multiplication tables
+ * \param[out] HL Lower multiplication table for 'H'
+ * \param[out] HH Upper multiplication table for 'H'
+ */
+void sli_psa_software_ghash_setup(const uint8_t Ek[16],
+ uint64_t HL[16],
+ uint64_t HH[16]);
+
+/**
+ * \brief Galois field (2^128) multiplication operation
+ *
+ * This function is used as part of a software-based GHASH (as defined in
+ * AES-GCM) algorithm, and originates from the mbed TLS implementation in gcm.c
+ *
+ * This function takes in a 128-bit scalar and multiplies it with H (Galois
+ * field multiplication as defined in AES-GCM). H is not provided to this
+ * function directly. Instead, multiplication tables for the specific H need to
+ * be calculated first by \ref sli_psa_software_ghash_setup, and passed to this
+ * function.
+ *
+ * \param[in] HL Lower multiplication table for 'H'
+ * \param[in] HH Upper multiplication table for 'H'
+ * \param[out] output Output buffer for the multiplication result
+ * \param[in] input Input buffer for the scalar to multiply
+ */
+void sli_psa_software_ghash_multiply(const uint64_t HL[16],
+ const uint64_t HH[16],
+ uint8_t output[16],
+ const uint8_t input[16]);
+
+#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) \
+ && !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+
+// Declare the TRNG function prototype if it's not already declared by PSA
+psa_status_t mbedtls_psa_external_get_random(void *context,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+#endif // MBEDTLS_ENTROPY_HARDWARE_ALT && MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
+
+/// @endcond
+
+#endif // SLI_PSA_DRIVER_COMMON_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_features.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_features.h
new file mode 100644
index 000000000..3c8ae15c6
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_psa_driver_features.h
@@ -0,0 +1,393 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA Crypto driver feature enablement.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSA_DRIVER_FEATURES_H
+#define SLI_PSA_DRIVER_FEATURES_H
+
+#include "mbedtls/build_info.h"
+
+// -----------------------------------------------------------------------------
+// Feature inclusion (available AND requested)
+
+// -------------------------------------
+// Keys
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ #define SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+ #define SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE) && defined(SEPUF_PRESENT)
+ #define SLI_PSA_DRIVER_FEATURE_PUF_KEY
+#endif
+
+#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS) \
+ && (defined(SLI_MBEDTLS_DEVICE_HSE) || defined(SLI_PSA_DRIVER_FEATURE_PUF_KEY))
+ #define SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+ #define SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS
+#endif
+
+// -------------------------------------
+// TRNG
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) \
+ || defined(SLI_MBEDTLS_DEVICE_VSE) \
+ || defined(SLI_MBEDTLS_DEVICE_S1_WITH_TRNG) \
+ || defined(SLI_MBEDTLS_DEVICE_SI91X)
+ #define SLI_PSA_DRIVER_FEATURE_TRNG
+#endif
+
+#if defined(SLI_MBEDTLS_DEVICE_S1_WITH_TRNG_ERRATA)
+ #define SLI_PSA_DRIVER_FEATURE_TRNG_ERRATA_HANDLING
+#endif
+
+// -------------------------------------
+// Attestation
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3_CONFIG_301)
+ #define SLI_PSA_DRIVER_FEATURE_ATTESTATION
+#endif
+
+// -------------------------------------
+// AEAD
+
+#if defined(PSA_WANT_ALG_CCM) && defined(MBEDTLS_PSA_ACCEL_ALG_CCM)
+ #define SLI_PSA_DRIVER_FEATURE_AEAD
+ #define SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_CCM
+#endif
+
+#if defined(PSA_WANT_ALG_GCM) && defined(MBEDTLS_PSA_ACCEL_ALG_GCM)
+ #define SLI_PSA_DRIVER_FEATURE_AEAD
+ #define SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_GCM
+
+// TODO: add public config option.
+ #if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+// Can use software implementation in order to compute IVs.
+ #define SLI_PSA_DRIVER_FEATURE_GCM_IV_CALCULATION
+ #endif
+#endif
+
+#if defined(PSA_WANT_ALG_CHACHA20_POLY1305) && defined(MBEDTLS_PSA_ACCEL_ALG_CHACHA20_POLY1305)
+ #define SLI_PSA_DRIVER_FEATURE_AEAD
+ #define SLI_PSA_DRIVER_FEATURE_CHACHAPOLY
+#endif
+
+// -------------------------------------
+// Cipher
+
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_AES)
+
+ #define SLI_PSA_DRIVER_FEATURE_AES
+
+ #if defined(PSA_WANT_ALG_ECB_NO_PADDING) && defined(MBEDTLS_PSA_ACCEL_ALG_ECB_NO_PADDING)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_ECB
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_CTR) && defined(MBEDTLS_PSA_ACCEL_ALG_CTR)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_CTR
+ #define SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_CFB) && defined(MBEDTLS_PSA_ACCEL_ALG_CFB)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_CFB
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_OFB) && defined(MBEDTLS_PSA_ACCEL_ALG_OFB)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_OFB
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_CCM) && defined(MBEDTLS_PSA_ACCEL_ALG_CCM)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG
+ #define SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_CBC_NO_PADDING) && defined(MBEDTLS_PSA_ACCEL_ALG_CBC_NO_PADDING)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_CBC_NO_PADDING
+ #define SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+ #if defined(PSA_WANT_ALG_CBC_PKCS7) && defined(MBEDTLS_PSA_ACCEL_ALG_CBC_PKCS7)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7
+ #define SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+ #endif
+
+#endif
+
+#if defined(PSA_WANT_KEY_TYPE_CHACHA20) && defined(PSA_WANT_ALG_STREAM_CIPHER) \
+ && defined(MBEDTLS_PSA_ACCEL_KEY_TYPE_CHACHA20)
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_STREAM_CIPHER
+ #define SLI_PSA_DRIVER_FEATURE_CHACHA20
+ #define SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+#endif
+
+// -------------------------------------
+// Key derivation
+
+#if defined(PSA_WANT_ALG_HKDF) && defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ #define SLI_PSA_DRIVER_FEATURE_KDF
+ #define SLI_PSA_DRIVER_FEATURE_HKDF
+#endif
+
+#if defined(PSA_WANT_ALG_PBKDF2_HMAC) && defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ #define SLI_PSA_DRIVER_FEATURE_KDF
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2_HMAC
+#endif
+
+#if defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128) && defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) \
+ && defined(SLI_MBEDTLS_DEVICE_HSE_V2)
+ #define SLI_PSA_DRIVER_FEATURE_KDF
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2_CMAC
+#endif
+
+#if defined(PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128) && defined(SLI_PSA_DRIVER_FEATURE_PUF_KEY)
+ #define SLI_PSA_DRIVER_FEATURE_KDF
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2
+ #define SLI_PSA_DRIVER_FEATURE_PBKDF2_CMAC
+#endif
+
+// -------------------------------------
+// Hash
+
+#if defined(PSA_WANT_ALG_SHA_1) && defined(MBEDTLS_PSA_ACCEL_ALG_SHA_1)
+ #define SLI_PSA_DRIVER_FEATURE_HASH
+ #define SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_SHA1
+ #define SLI_PSA_DRIVER_FEATURE_HASH_STATE_32
+#endif
+
+#if defined(PSA_WANT_ALG_SHA_224) && defined(MBEDTLS_PSA_ACCEL_ALG_SHA_224)
+ #define SLI_PSA_DRIVER_FEATURE_HASH
+ #define SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_SHA224
+ #define SLI_PSA_DRIVER_FEATURE_HASH_STATE_32
+#endif
+
+#if defined(PSA_WANT_ALG_SHA_256) && defined(MBEDTLS_PSA_ACCEL_ALG_SHA_256)
+ #define SLI_PSA_DRIVER_FEATURE_HASH
+ #define SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_SHA256
+ #define SLI_PSA_DRIVER_FEATURE_HASH_STATE_32
+#endif
+
+#if defined(PSA_WANT_ALG_SHA_384) && defined(MBEDTLS_PSA_ACCEL_ALG_SHA_384)
+ #define SLI_PSA_DRIVER_FEATURE_HASH
+ #define SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_SHA384
+ #define SLI_PSA_DRIVER_FEATURE_HASH_STATE_64
+#endif
+
+#if defined(PSA_WANT_ALG_SHA_512) && defined(MBEDTLS_PSA_ACCEL_ALG_SHA_512)
+ #define SLI_PSA_DRIVER_FEATURE_HASH
+ #define SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_SHA512
+ #define SLI_PSA_DRIVER_FEATURE_HASH_STATE_64
+#endif
+
+// -------------------------------------
+// MAC
+
+#if defined(PSA_WANT_ALG_HMAC) && defined(MBEDTLS_PSA_ACCEL_ALG_HMAC)
+ #define SLI_PSA_DRIVER_FEATURE_MAC
+ #define SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_HMAC
+#endif
+
+#if defined(PSA_WANT_ALG_CMAC) && defined(MBEDTLS_PSA_ACCEL_ALG_CMAC)
+ #define SLI_PSA_DRIVER_FEATURE_MAC
+ #define SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_CMAC
+#endif
+
+#if defined(PSA_WANT_ALG_CBC_MAC) && defined(MBEDTLS_PSA_ACCEL_ALG_CBC_MAC)
+ #define SLI_PSA_DRIVER_FEATURE_MAC
+ #define SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+ #define SLI_PSA_DRIVER_FEATURE_CBC_MAC
+#endif
+
+// -------------------------------------
+// Elliptic curve cryptography
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_R1_192)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPR1
+ #define SLI_PSA_DRIVER_FEATURE_P192R1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_R1_224) \
+ && !defined(SLI_MBEDTLS_DEVICE_HSE_V1)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPR1
+ #define SLI_PSA_DRIVER_FEATURE_P224R1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_R1_256)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPR1
+ #define SLI_PSA_DRIVER_FEATURE_P256R1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_R1_384) \
+ && defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_384)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPR1
+ #define SLI_PSA_DRIVER_FEATURE_P384R1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_R1_521) \
+ && defined(MBEDTLS_PSA_ACCEL_ECC_SECP_R1_521)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPR1
+ #define SLI_PSA_DRIVER_FEATURE_P521R1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_SECP_K1_256) \
+ && defined(SLI_MBEDTLS_DEVICE_VSE)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_SECPK1
+ #define SLI_PSA_DRIVER_FEATURE_P256K1
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_MONTGOMERY_255) \
+ && defined(SLI_MBEDTLS_DEVICE_HSE)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_MONTGOMERY
+ #define SLI_PSA_DRIVER_FEATURE_CURVE25519
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_MONTGOMERY_448) \
+ && defined(MBEDTLS_PSA_ACCEL_ECC_MONTGOMERY_448)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_MONTGOMERY
+ #define SLI_PSA_DRIVER_FEATURE_CURVE448
+#endif
+
+#if (defined(PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT) \
+ || defined (PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE) \
+ || defined(PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY)) \
+ && defined(PSA_WANT_ECC_TWISTED_EDWARDS_255) \
+ && defined(SLI_MBEDTLS_DEVICE_HSE)
+ #define SLI_PSA_DRIVER_FEATURE_ECC
+ #define SLI_PSA_DRIVER_FEATURE_EDWARDS
+ #define SLI_PSA_DRIVER_FEATURE_EDWARDS25519
+#endif
+
+// -------------------------------------
+// Key agreement
+
+#if defined(PSA_WANT_ALG_ECDH) && defined(MBEDTLS_PSA_ACCEL_ALG_ECDH) \
+ && defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ #define SLI_PSA_DRIVER_FEATURE_KEY_AGREEMENT
+ #define SLI_PSA_DRIVER_FEATURE_ECDH
+#endif
+
+// -------------------------------------
+// Signature
+
+#if defined(PSA_WANT_ALG_ECDSA) && defined(MBEDTLS_PSA_ACCEL_ALG_ECDSA) \
+ && (defined(SLI_PSA_DRIVER_FEATURE_SECPR1) \
+ || defined(SLI_PSA_DRIVER_FEATURE_SECPK1))
+ #define SLI_PSA_DRIVER_FEATURE_SIGNATURE
+ #define SLI_PSA_DRIVER_FEATURE_ECDSA
+#endif
+
+#if defined(PSA_WANT_ALG_EDDSA) && defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ #define SLI_PSA_DRIVER_FEATURE_SIGNATURE
+ #define SLI_PSA_DRIVER_FEATURE_EDDSA
+#endif
+
+#endif // SLI_PSA_DRIVER_FEATURES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_aead.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_aead.h
new file mode 100644
index 000000000..3c491771f
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_aead.h
@@ -0,0 +1,204 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Secure Engine Driver AEAD functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_DRIVER_AEAD_H
+#define SLI_SE_DRIVER_AEAD_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+// -----------------------------------------------------------------------------
+// Types
+
+typedef struct {
+ sl_se_cipher_operation_t direction;
+ size_t ad_length;
+ size_t pt_length;
+ uint8_t nonce[16];
+ size_t nonce_length;
+} sli_se_driver_aead_preinit_t;
+
+typedef struct {
+ psa_algorithm_t alg;
+ sl_se_key_descriptor_t key_desc;
+ size_t ad_len;
+ size_t pt_len;
+ union {
+ sl_se_gcm_multipart_context_t gcm;
+ sl_se_ccm_multipart_context_t ccm;
+ sli_se_driver_aead_preinit_t preinit;
+ } ctx;
+} sli_se_driver_aead_operation_t;
+
+// -----------------------------------------------------------------------------
+// Functions
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+psa_status_t sli_se_driver_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length);
+
+psa_status_t sli_se_driver_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_se_driver_aead_encrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_se_driver_aead_decrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ const uint8_t* tag,
+ size_t tag_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_se_driver_aead_encrypt_decrypt_setup(sli_se_driver_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ sl_se_cipher_operation_t operation_direction,
+ uint8_t *key_storage_buffer,
+ size_t key_storage_buffer_size,
+ size_t key_storage_overhead);
+
+psa_status_t sli_se_driver_aead_set_nonce(sli_se_driver_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size);
+
+psa_status_t sli_se_driver_aead_set_lengths(sli_se_driver_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length);
+
+psa_status_t sli_se_driver_aead_update_ad(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_driver_aead_update(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_driver_aead_finish(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_se_driver_aead_verify(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_DRIVER_AEAD_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_cipher.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_cipher.h
new file mode 100644
index 000000000..fa5e8db6e
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_cipher.h
@@ -0,0 +1,135 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Secure Engine Driver cipher functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_DRIVER_CIPHER_H
+#define SLI_SE_DRIVER_CIPHER_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sl_se_manager_types.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+// -----------------------------------------------------------------------------
+// Types
+
+typedef struct {
+ sl_se_key_descriptor_t key_desc;
+ sl_se_cipher_operation_t direction;
+ psa_algorithm_t alg;
+ uint8_t iv[16];
+ size_t iv_len;
+ uint8_t streaming_block[16];
+ size_t processed_length;
+} sli_se_driver_cipher_operation_t;
+
+// -----------------------------------------------------------------------------
+// Functions
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+psa_status_t sli_se_driver_cipher_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_driver_cipher_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_driver_cipher_encrypt_setup(sli_se_driver_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_driver_cipher_decrypt_setup(sli_se_driver_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_driver_cipher_set_iv(sli_se_driver_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length);
+
+psa_status_t sli_se_driver_cipher_update(sli_se_driver_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_driver_cipher_finish(sli_se_driver_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_driver_cipher_abort(sli_se_driver_cipher_operation_t *operation);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_DRIVER_CIPHER_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_derivation.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_derivation.h
new file mode 100644
index 000000000..12f39de93
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_derivation.h
@@ -0,0 +1,105 @@
+/***************************************************************************//**
+ * @file
+ * @brief SE Driver for Silicon Labs devices with an embedded SE, for use with
+ * PSA Crypto and Mbed TLS
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_DRIVER_KEY_DERIVATION
+#define SLI_SE_DRIVER_KEY_DERIVATION
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_defines.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+#include "psa/crypto_platform.h"
+
+// -----------------------------------------------------------------------------
+// Structs and typedefs
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ #define SLI_SE_MAX_ECP_PRIVATE_KEY_SIZE (PSA_BITS_TO_BYTES(521))
+#else
+ #define SLI_SE_MAX_ECP_PRIVATE_KEY_SIZE (PSA_BITS_TO_BYTES(256))
+#endif
+
+#define SLI_SE_MAX_ECP_PUBLIC_KEY_SIZE (SLI_SE_MAX_ECP_PRIVATE_KEY_SIZE * 2)
+
+#define SLI_SE_MAX_PADDED_ECP_PRIVATE_KEY_SIZE \
+ (SLI_SE_MAX_ECP_PRIVATE_KEY_SIZE \
+ + sli_se_get_padding(SLI_SE_MAX_ECP_PRIVATE_KEY_SIZE))
+#define SLI_SE_MAX_PADDED_ECP_PUBLIC_KEY_SIZE \
+ (SLI_SE_MAX_PADDED_ECP_PRIVATE_KEY_SIZE * 2)
+
+// -----------------------------------------------------------------------------
+// Function declarations
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+psa_status_t sli_se_driver_key_agreement(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_DRIVER_KEY_DERIVATION
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_management.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_management.h
new file mode 100644
index 000000000..398d8acd9
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_key_management.h
@@ -0,0 +1,351 @@
+/***************************************************************************//**
+ * @file
+ * @brief SE Driver for Silicon Labs devices with an embedded SE, for use with
+ * PSA Crypto and Mbed TLS
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_DRIVER_KEY_MANAGEMENT_H
+#define SLI_SE_DRIVER_KEY_MANAGEMENT_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sli_se_opaque_types.h"
+#include "sli_se_version_dependencies.h"
+
+#include "sl_se_manager.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Defines and macros
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+/// Max available curve size
+ #define SLI_SE_MAX_CURVE_SIZE (521)
+#else
+/// Max available curve size
+ #define SLI_SE_MAX_CURVE_SIZE (256)
+#endif
+
+/// Byte size of maximum available ECC private key padded to word-alignment
+#define SLI_SE_MAX_PADDED_KEY_PAIR_SIZE \
+ (PSA_BITS_TO_BYTES(SLI_SE_MAX_CURVE_SIZE) \
+ + sli_se_get_padding(PSA_BITS_TO_BYTES(SLI_SE_MAX_CURVE_SIZE)))
+
+/// Byte size of maximum available ECDSA signature padded to word-alignment
+#define SLI_SE_MAX_PADDED_SIGNATURE_SIZE \
+ (PSA_ECDSA_SIGNATURE_SIZE(SLI_SE_MAX_CURVE_SIZE) \
+ + 2 * sli_se_get_padding(PSA_BITS_TO_BYTES(SLI_SE_MAX_CURVE_SIZE)))
+
+/// Byte size of maximum available ECC public key padded to word-alignment
+#define SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE (SLI_SE_MAX_PADDED_SIGNATURE_SIZE)
+
+/** Determine the number of bytes necessary to pad size to a word-alignment
+ * @param size
+ * Unsigend integer type.
+ * @returns the number of padding bytes required
+ */
+#define sli_se_get_padding(size) ((4 - (size & 3)) & 3)
+
+/** Pad size to word alignment
+ * @param size
+ * Unsigend integer type.
+ * @returns the number of padding bytes required
+ */
+#define sli_se_word_align(size) ((size + 3) & ~3)
+
+// -----------------------------------------------------------------------------
+// Static inline functions
+
+/**
+ * @brief
+ * Pad the big endian number in buffer with zeros
+ * @param tmp_buffer
+ * A buffer to store the padded number
+ * @param buffer
+ * The buffer containing the number
+ * @param buffer_size
+ * Byte size of the number to pad
+ * @note
+ * Buffer sizes must be pre-validated.
+ */
+static inline void sli_se_pad_big_endian(uint8_t *tmp_buffer,
+ const uint8_t *buffer,
+ size_t buffer_size)
+{
+ size_t padding = sli_se_get_padding(buffer_size);
+ memset(tmp_buffer, 0, padding); // Set the preceeding 0s
+ memcpy(tmp_buffer + padding, buffer, buffer_size); // Copy actual content
+}
+
+/**
+ * @brief
+ * Remove the padding from a zero-padded big endian number
+ * @param tmp_buffer
+ * Buffer containing the padded number
+ * @param buffer
+ * The buffer to write unpadded number to
+ * @param buffer_size
+ * Byte size of unpadded number
+ * @note
+ * Buffer sizes must be pre-validated.
+ */
+static inline void sli_se_unpad_big_endian(const uint8_t *tmp_buffer,
+ uint8_t *buffer,
+ size_t buffer_size)
+{
+ size_t padding = sli_se_get_padding(buffer_size);
+ memcpy(buffer, tmp_buffer + padding, buffer_size);
+}
+
+/**
+ * @brief
+ * Pad each coordinate of a big endian curve point
+ * @param tmp_buffer
+ * A buffer to store the padded point
+ * @param buffer
+ * The buffer containing the point
+ * @param coord_size
+ * Byte size of each coordinate
+ * @note
+ * Buffer sizes must be pre-validated.
+ */
+static inline void sli_se_pad_curve_point(uint8_t *tmp_buffer,
+ const uint8_t *buffer,
+ size_t coord_size)
+{
+ size_t padding = sli_se_get_padding(coord_size);
+ sli_se_pad_big_endian(tmp_buffer, buffer, coord_size);
+ sli_se_pad_big_endian(tmp_buffer + coord_size + padding,
+ buffer + coord_size,
+ coord_size);
+}
+
+/**
+ * @brief
+ * Strip away the padding from each coordinate of a big endian curve point
+ * @param tmp_buffer
+ * The buffer where the padded point is stored
+ * @param buffer
+ * A buffer to store the unpadded point
+ * @param coord_size
+ * Byte size of each coordinate
+ * @note
+ * Buffer sizes must be pre-validated.
+ */
+static inline void sli_se_unpad_curve_point(const uint8_t *tmp_buffer,
+ uint8_t *buffer,
+ size_t coord_size)
+{
+ size_t padding = sli_se_get_padding(coord_size);
+ sli_se_unpad_big_endian(tmp_buffer, buffer, coord_size);
+ sli_se_unpad_big_endian(tmp_buffer + coord_size + padding,
+ buffer + coord_size,
+ coord_size);
+}
+
+/**
+ * @brief
+ * Set the key desc to a plaintext key type pointing to data.
+ * @param[out] key_desc
+ * The SE manager key struct representing a key
+ * @param[in] data
+ * Buffer containing the key
+ * @param[in] data_length
+ * Length of the buffer
+ */
+static inline
+void sli_se_key_descriptor_set_plaintext(sl_se_key_descriptor_t *key_desc,
+ const uint8_t *data,
+ size_t data_length)
+{
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT;
+ key_desc->storage.location.buffer.pointer = (uint8_t *)data;
+ // TODO: Improve SE manager alignment requirements
+ key_desc->storage.location.buffer.size = sli_se_word_align(data_length);
+}
+
+/**
+ * @brief
+ * Determine if a format byte is necessary for the key type
+ * @param key_type
+ * PSA key type for the key in question
+ * @returns
+ * 1 if the key type requires a format byte,
+ * 0 otherwise
+ */
+static inline uint32_t sli_se_has_format_byte(psa_key_type_t key_type)
+{
+ if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ if ((PSA_KEY_TYPE_ECC_GET_FAMILY(key_type) != PSA_ECC_FAMILY_MONTGOMERY)
+ && (PSA_KEY_TYPE_ECC_GET_FAMILY(key_type) != PSA_ECC_FAMILY_TWISTED_EDWARDS)) {
+ return 1U;
+ }
+ }
+ return 0U;
+}
+
+// -----------------------------------------------------------------------------
+// Function declarations
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @brief
+ * Store the required parts of the key descriptor in the context placed the
+ * start of the given key buffer.
+ *
+ * @param key_desc[in]
+ * Key descriptor to export.
+ * @param key_buffer[out]
+ * Pointer to the key buffer containing key context.
+ * @param key_buffer_size[in]
+ * Size of key buffer.
+ * @returns
+ * PSA_SUCCESS stored key desc in context
+ * PSA_ERROR_BUFFER_TOO_SMALL output buffer is too small to hold an opaque key context
+ */
+psa_status_t store_key_desc_in_context(sl_se_key_descriptor_t *key_desc,
+ uint8_t *key_buffer,
+ size_t key_buffer_size);
+
+/**
+ * @brief
+ * Get the key descriptor from the key buffer and attributes
+ *
+ * @param[in] attributes
+ * The PSA attributes struct representing a key
+ * @param[in] key_buffer
+ * Buffer containing key context from PSA core
+ * @param[in] key_buffer_size
+ * Size of key_buffer
+ * @param[out] key_desc
+ * The SE manager key descriptor struct to populate
+ * @returns
+ * PSA_SUCCESS if everything is OK
+ * PSA_ERROR_INVALID_ARGUMENT if key buffer does not mach a valid key context
+ * @note
+ * The resulting key descriptor is only valid as long as the key_buffer
+ * array remains in scope. In practice, this is only guaranteed throughout a
+ * single driver function.
+ */
+psa_status_t sli_se_key_desc_from_input(const psa_key_attributes_t* attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ sl_se_key_descriptor_t *key_desc);
+
+/**
+ * @brief
+ * Build a key descriptor from a PSA attributest struct
+ *
+ * @param attributes
+ * The PSA attributes struct representing a key
+ * @param key_size
+ * Size of the key
+ * @param key_desc
+ * The SE manager key struct representing the same key
+ * @returns
+ * PSA_SUCCESS on success
+ * PSA_ERROR_INVALID_ARGUMENT on invalid attributes
+ */
+psa_status_t sli_se_key_desc_from_psa_attributes(const psa_key_attributes_t *attributes,
+ size_t key_size,
+ sl_se_key_descriptor_t *key_desc);
+
+/**
+ * @brief
+ * Set the relevant location field of the key descriptor
+ *
+ * @param[in] attributes
+ * The PSA attributes struct representing a key
+ * @param[in] key_buffer
+ * Buffer containing key context from PSA core
+ * @param[in] key_buffer_size
+ * Size of key_buffer
+ * @param[in] key_size
+ * Size of the key
+ * @param[out] key_desc
+ * The SE manager key descriptor struct to populate
+ * @returns
+ * PSA_SUCCESS if everything is OK
+ * PSA_ERROR_INVALID_ARGUMENT if key buffer does not mach a valid key context
+ */
+psa_status_t sli_se_set_key_desc_output(const psa_key_attributes_t* attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t key_size,
+ sl_se_key_descriptor_t *key_desc);
+
+// psa_generate_key entry point for both opaque and transparent drivers
+psa_status_t sli_se_driver_generate_key(const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *output_length);
+
+#if defined(SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN) \
+ && defined(MBEDTLS_ECP_C) \
+ && defined(MBEDTLS_PSA_CRYPTO_C) \
+ && SL_SE_SUPPORT_FW_PRIOR_TO_1_2_2
+psa_status_t sli_se_driver_validate_pubkey_with_fallback(psa_key_type_t key_type,
+ size_t key_bits,
+ const uint8_t *data,
+ size_t data_length);
+#endif // Software fallback for SE < 1.2.2
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_DRIVER_KEY_MANAGEMENT_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_mac.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_mac.h
new file mode 100644
index 000000000..35f7f8f18
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_driver_mac.h
@@ -0,0 +1,127 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Secure Engine Driver MAC functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_DRIVER_MAC_H
+#define SLI_SE_DRIVER_MAC_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_cipher.h"
+
+// -----------------------------------------------------------------------------
+// Types
+
+typedef struct {
+ psa_algorithm_t alg;
+ union {
+ sl_se_cmac_multipart_context_t cmac;
+ struct {
+ uint8_t iv[16];
+ size_t iv_len;
+ uint8_t streaming_block[16];
+ size_t processed_length;
+ } cbcmac;
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ struct {
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_STATE_64)
+ uint8_t hmac_result[64];
+ #else
+ uint8_t hmac_result[32];
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_STATE_64
+ size_t hmac_len;
+ } hmac;
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+ } ctx;
+} sli_se_driver_mac_operation_t;
+
+// -----------------------------------------------------------------------------
+// Functions
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+sl_se_hash_type_t sli_se_hash_type_from_psa_hmac_alg(psa_algorithm_t alg,
+ size_t *length);
+
+psa_status_t sli_se_driver_mac_compute(sl_se_key_descriptor_t *key_desc,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_se_driver_mac_sign_setup(sli_se_driver_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_driver_mac_update(sli_se_driver_mac_operation_t *operation,
+ sl_se_key_descriptor_t *key_desc,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_driver_mac_sign_finish(sli_se_driver_mac_operation_t *operation,
+ sl_se_key_descriptor_t *key_desc,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_DRIVER_MAC_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_functions.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_functions.h
new file mode 100644
index 000000000..8cd053e88
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_functions.h
@@ -0,0 +1,380 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver functions for SE.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_OPAQUE_FUNCTIONS_H
+#define SLI_SE_OPAQUE_FUNCTIONS_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) && defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+#include "sli_se_opaque_types.h"
+#include "sli_se_driver_key_management.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+
+// NOTE: This header file will be autogenerated by PSA Crypto build system based
+// on the definitions in sli_se_opaque_driver.json. However, until such a system
+// is in place, we rely on manually writing the file.
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//------------------------------------------------------------------------------
+// General
+
+psa_status_t sli_se_opaque_driver_init(void);
+
+psa_status_t sli_se_opaque_driver_deinit(void);
+
+//------------------------------------------------------------------------------
+// Key handling
+
+psa_status_t sli_se_opaque_export_key(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length);
+
+psa_status_t sli_se_opaque_import_key(const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits);
+
+psa_status_t sli_se_opaque_generate_key(const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length);
+
+psa_status_t sli_se_opaque_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length);
+
+psa_status_t sli_se_opaque_get_builtin_key(psa_drv_slot_number_t slot_number,
+ psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length);
+
+psa_status_t sli_se_opaque_copy_key(const psa_key_attributes_t *attributes,
+ const uint8_t *source_key,
+ size_t source_key_length,
+ uint8_t *target_key_buffer,
+ size_t target_key_buffer_size,
+ size_t *target_key_buffer_length);
+
+//------------------------------------------------------------------------------
+// MAC
+
+psa_status_t sli_se_opaque_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_se_opaque_mac_sign_setup(
+ sli_se_opaque_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_mac_verify_setup(
+ sli_se_opaque_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_mac_update(sli_se_opaque_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_opaque_mac_sign_finish(
+ sli_se_opaque_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_se_opaque_mac_verify_finish(
+ sli_se_opaque_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length);
+
+psa_status_t sli_se_opaque_mac_abort(sli_se_opaque_mac_operation_t *operation);
+
+//------------------------------------------------------------------------------
+// Signature
+
+psa_status_t sli_se_opaque_sign_message(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length);
+
+psa_status_t sli_se_opaque_verify_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ const uint8_t *signature,
+ size_t signature_length);
+
+psa_status_t sli_se_opaque_sign_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length);
+
+psa_status_t sli_se_opaque_verify_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length);
+
+//------------------------------------------------------------------------------
+// AEAD
+
+psa_status_t sli_se_opaque_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length);
+
+psa_status_t sli_se_opaque_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_se_opaque_aead_encrypt_setup(
+ sli_se_opaque_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_aead_decrypt_setup(
+ sli_se_opaque_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_aead_set_nonce(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size);
+
+psa_status_t sli_se_opaque_aead_set_lengths(
+ sli_se_opaque_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length);
+
+psa_status_t sli_se_opaque_aead_update_ad(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_opaque_aead_update(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_opaque_aead_finish(
+ sli_se_opaque_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_se_opaque_aead_verify(
+ sli_se_opaque_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length);
+
+psa_status_t sli_se_opaque_aead_abort(
+ sli_se_opaque_aead_operation_t *operation);
+
+//------------------------------------------------------------------------------
+// Cipher
+
+psa_status_t sli_se_opaque_cipher_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_opaque_cipher_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_opaque_cipher_encrypt_setup(
+ sli_se_opaque_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_cipher_decrypt_setup(
+ sli_se_opaque_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_opaque_cipher_set_iv(
+ sli_se_opaque_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length);
+
+psa_status_t sli_se_opaque_cipher_update(
+ sli_se_opaque_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_opaque_cipher_finish(
+ sli_se_opaque_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_opaque_cipher_abort(
+ sli_se_opaque_cipher_operation_t *operation);
+
+//------------------------------------------------------------------------------
+// Key agreement
+
+psa_status_t sli_se_opaque_key_agreement(psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE && SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_OPAQUE_FUNCTIONS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_types.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_types.h
new file mode 100644
index 000000000..b9764dddb
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_opaque_types.h
@@ -0,0 +1,160 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver API Internal Types for SE.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_OPAQUE_TYPES_H
+#define SLI_SE_OPAQUE_TYPES_H
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sl_se_manager_defines.h"
+#include "sl_se_manager_types.h"
+
+#include "sl_psa_values.h"
+
+#include "sli_se_driver_aead.h"
+#include "sli_se_driver_mac.h"
+#include "sli_se_driver_key_derivation.h"
+#include "sli_se_driver_cipher.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+#include "psa/crypto_platform.h"
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se PSA drivers for devices with Secure Engine
+ * \{
+ ******************************************************************************/
+
+// -----------------------------------------------------------------------------
+// Defines
+
+/// Location value for keys to be stored encrypted with the device-unique secret,
+/// or for accessing the built-in keys on Vault devices. Kept for backward
+/// compatibility reasons. Users should use SL_PSA_KEY_LOCATION_WRAPPED or
+/// SL_PSA_KEY_LOCATION_BUILTIN instead.
+#define PSA_KEY_LOCATION_SLI_SE_OPAQUE ((psa_key_location_t)0x000001UL)
+
+/// Version of opaque header struct
+#define SLI_SE_OPAQUE_KEY_CONTEXT_VERSION (0x01)
+
+// -----------------------------------------------------------------------------
+// Types
+
+#if defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+/// Key header for context struct of opaque registered keys
+typedef struct {
+ /// Version field for the struct
+ uint8_t struct_version;
+ /// Builtin key ID. Set to zero for a key header which is part of a \ref
+ /// sli_se_opaque_wrapped_key_context_t, otherwise set to an SE Manager builtin
+ /// key ID.
+ uint8_t builtin_key_id;
+ /// Reserved space (initialise to all-zero)
+ uint8_t reserved[2];
+} sli_se_opaque_key_context_header_t;
+
+/// Key context for wrapped keys
+typedef struct {
+ /// Key context header
+ sli_se_opaque_key_context_header_t header;
+
+ /// Key information required to construct an SE manager key descriptor
+ // sl_se_key_descriptor_t key_desc;
+ uint32_t key_type;
+ uint32_t key_size;
+ uint32_t key_flags;
+
+ /// wrapped_buffer is set to a distinctive size to make sizeof() result
+ /// in the overhead for storing a wrapped key.
+ /// A wrapped key will in reality consume more space than
+ /// SLI_SE_WRAPPED_KEY_OVERHEAD
+ uint8_t wrapped_buffer[SLI_SE_WRAPPED_KEY_OVERHEAD];
+ /// Variable member, accounting for the extra space
+ uint8_t fill[];
+} sli_se_opaque_wrapped_key_context_t;
+
+// Notes for JSON entry for wrapped driver:
+// "base_size": "sizeof(sli_se_opaque_wrapped_key_context_t)",
+// "symmetric_factor": 1,
+// "key_pair_size": 66,
+// "public_key_size" 133
+// Is 66/133 the largest keys we accept? What about custom curves?
+
+// ----------------------------------
+// Potential format for internal volatile keys
+// typedef struct {
+// sl_se_key_descriptor_t key_desc;
+// } sli_se_opaque_volatile_key_context;
+
+// Notes for JSON entry for internal volatile driver:
+// "base_size": "sizeof(sli_se_opaque_volatile_key_context)",
+// For the remaining entries, the defaults are fine.
+
+typedef struct {
+ sl_se_key_descriptor_t key_desc;
+ #if defined(PSA_WANT_ALG_HMAC)
+ uint8_t key[SLI_SE_WRAPPED_KEY_OVERHEAD + 64];
+ #else
+ uint8_t key[SLI_SE_WRAPPED_KEY_OVERHEAD + 32];
+ #endif
+ size_t key_len;
+ sli_se_driver_mac_operation_t operation;
+} sli_se_opaque_mac_operation_t;
+
+typedef struct {
+ uint8_t key[SLI_SE_WRAPPED_KEY_OVERHEAD + 32];
+ size_t key_len;
+ sli_se_driver_aead_operation_t operation;
+} sli_se_opaque_aead_operation_t;
+
+typedef struct {
+ uint8_t key[SLI_SE_WRAPPED_KEY_OVERHEAD + 32];
+ size_t key_len;
+ sli_se_driver_cipher_operation_t operation;
+} sli_se_opaque_cipher_operation_t;
+
+#endif // SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+/// @endcond
+#endif // SLI_SE_OPAQUE_TYPES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_functions.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_functions.h
new file mode 100644
index 000000000..49276ddab
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_functions.h
@@ -0,0 +1,400 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver functions for SE.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_SE_TRANSPARENT_FUNCTIONS_H
+#define SLI_SE_TRANSPARENT_FUNCTIONS_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se CRYPTOACC transparent PSA driver
+ * \brief Driver plugin for Silicon Labs SE peripheral adhering to the PSA
+ * transparent accelerator specification.
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sli_se_transparent_types.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+/* NOTE: This header file will be autogenerated by PSA Crypto build system based
+ * on the definitions in sli_se_transparent_driver.json. However, until such a
+ * system is in place, we rely on manually writing the file */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+//------------------------------------------------------------------------------
+// General
+
+psa_status_t sli_se_transparent_driver_init(void);
+
+psa_status_t sli_se_transparent_driver_deinit(void);
+
+//------------------------------------------------------------------------------
+// Hashing
+
+psa_status_t sli_se_transparent_hash_setup(
+ sli_se_transparent_hash_operation_t *operation,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_hash_update(
+ sli_se_transparent_hash_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_transparent_hash_finish(
+ sli_se_transparent_hash_operation_t *operation,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length);
+
+psa_status_t sli_se_transparent_hash_abort(
+ sli_se_transparent_hash_operation_t *operation);
+
+psa_status_t sli_se_transparent_hash_compute(psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length);
+
+psa_status_t sli_se_transparent_hash_clone(
+ const sli_se_transparent_hash_operation_t *source_operation,
+ sli_se_transparent_hash_operation_t *target_operation);
+
+//------------------------------------------------------------------------------
+// Cipher
+
+psa_status_t sli_se_transparent_cipher_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_transparent_cipher_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_transparent_cipher_encrypt_setup(
+ sli_se_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_cipher_decrypt_setup(
+ sli_se_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_cipher_set_iv(
+ sli_se_transparent_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length);
+
+psa_status_t sli_se_transparent_cipher_update(
+ sli_se_transparent_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_transparent_cipher_abort(
+ sli_se_transparent_cipher_operation_t *operation);
+
+psa_status_t sli_se_transparent_cipher_finish(
+ sli_se_transparent_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+//------------------------------------------------------------------------------
+// Signature
+
+psa_status_t sli_se_transparent_sign_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length);
+
+psa_status_t sli_se_transparent_verify_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ const uint8_t *signature,
+ size_t signature_length);
+
+psa_status_t sli_se_transparent_sign_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length);
+
+psa_status_t sli_se_transparent_verify_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length);
+
+//------------------------------------------------------------------------------
+// MAC
+
+psa_status_t sli_se_transparent_mac_compute(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_se_transparent_mac_sign_setup(
+ sli_se_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_mac_verify_setup(
+ sli_se_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_mac_update(
+ sli_se_transparent_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_transparent_mac_sign_finish(
+ sli_se_transparent_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length);
+
+psa_status_t sli_se_transparent_mac_verify_finish(
+ sli_se_transparent_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length);
+
+psa_status_t sli_se_transparent_mac_abort(
+ sli_se_transparent_mac_operation_t *operation);
+
+//------------------------------------------------------------------------------
+// AEAD
+
+psa_status_t sli_se_transparent_aead_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length);
+
+psa_status_t sli_se_transparent_aead_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+psa_status_t sli_se_transparent_aead_encrypt_setup(
+ sli_se_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_aead_decrypt_setup(
+ sli_se_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg);
+
+psa_status_t sli_se_transparent_aead_set_nonce(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_length);
+
+psa_status_t sli_se_transparent_aead_set_lengths(
+ sli_se_transparent_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length);
+
+psa_status_t sli_se_transparent_aead_update_ad(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length);
+
+psa_status_t sli_se_transparent_aead_update(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+psa_status_t sli_se_transparent_aead_finish(
+ sli_se_transparent_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length);
+
+psa_status_t sli_se_transparent_aead_verify(
+ sli_se_transparent_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length);
+
+psa_status_t sli_se_transparent_aead_abort(
+ sli_se_transparent_aead_operation_t *operation);
+
+//------------------------------------------------------------------------------
+// Key handling
+
+psa_status_t sli_se_transparent_generate_key(
+ const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *output_length);
+
+psa_status_t sli_se_transparent_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length);
+
+psa_status_t sli_se_transparent_import_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits);
+
+//------------------------------------------------------------------------------
+// Key agreement
+
+psa_status_t sli_se_transparent_key_agreement(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_TRANSPARENT_FUNCTIONS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_types.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_types.h
new file mode 100644
index 000000000..c99fa9df4
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_transparent_types.h
@@ -0,0 +1,117 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver API Types for SE.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_TRANSPARENT_TYPES_H
+#define SLI_SE_TRANSPARENT_TYPES_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers
+ * \{
+ ******************************************************************************/
+
+/***************************************************************************//**
+ * \addtogroup sl_psa_drivers_se
+ * \{
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sl_se_manager_types.h"
+
+#include "sli_se_driver_aead.h"
+#include "sli_se_driver_mac.h"
+#include "sli_se_driver_cipher.h"
+
+// Replace inclusion of crypto_driver_common.h with the new psa driver interface
+// header file when it becomes available.
+#include "psa/crypto_driver_common.h"
+
+// -----------------------------------------------------------------------------
+// Types
+
+#define PSA_KEY_LOCATION_SLI_SE_TRANSPARENT ((psa_key_location_t)0x000002UL)
+
+/// PSA transparent accelerator driver compatible context structure
+typedef struct {
+ sl_se_hash_type_t hash_type; ///< Hash type
+ union {
+ sl_se_sha1_multipart_context_t sha1_context;
+ sl_se_sha224_multipart_context_t sha224_context;
+ sl_se_sha256_multipart_context_t sha256_context;
+ #if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ sl_se_sha384_multipart_context_t sha384_context;
+ sl_se_sha512_multipart_context_t sha512_context;
+ #endif
+ } streaming_contexts;
+} sli_se_transparent_hash_operation_t;
+
+typedef struct {
+ uint8_t key[32];
+ size_t key_len;
+ sli_se_driver_cipher_operation_t operation;
+} sli_se_transparent_cipher_operation_t;
+
+typedef union {
+ struct {
+ sli_se_driver_mac_operation_t operation;
+ uint8_t key[32];
+ size_t key_len;
+ } cipher_mac;
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ struct {
+ psa_algorithm_t alg;
+ sli_se_transparent_hash_operation_t hash_ctx;
+ #if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ uint8_t opad[128];
+ #else
+ uint8_t opad[64];
+ #endif
+ } hmac;
+ #endif /* SLI_PSA_DRIVER_FEATURE_HMAC */
+} sli_se_transparent_mac_operation_t;
+
+typedef struct {
+ uint8_t key[32];
+ size_t key_len;
+ sli_se_driver_aead_operation_t operation;
+} sli_se_transparent_aead_operation_t;
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+/** \} (end addtogroup sl_psa_drivers_se) */
+/** \} (end addtogroup sl_psa_drivers) */
+
+/// @endcond
+
+#endif // SLI_SE_TRANSPARENT_TYPES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_version_dependencies.h b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_version_dependencies.h
new file mode 100644
index 000000000..355255112
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/inc/sli_se_version_dependencies.h
@@ -0,0 +1,141 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver SE Version Dependencies.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_SE_VERSION_DEPENDENCIES_H
+#define SLI_SE_VERSION_DEPENDENCIES_H
+
+/// @cond DO_NOT_INCLUDE_WITH_DOXYGEN
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #include "psa/crypto.h"
+ #include "sl_se_manager_types.h"
+#endif
+
+// -----------------------------------------------------------------------------
+// Version Constants
+
+// HSE specific constants
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+// The oldest firmware revision with support for checking the validity
+// of public ECC keys. Also see SL_SE_SUPPORT_FW_PRIOR_TO_1_2_2 and
+// SL_SE_ASSUME_FW_AT_LEAST_1_2_2.
+ #if !defined(SLI_SE_OLDEST_VERSION_WITH_PUBLIC_KEY_VALIDATION)
+ #define SLI_SE_OLDEST_VERSION_WITH_PUBLIC_KEY_VALIDATION (0x00010202U)
+ #endif
+
+// The SE version that first introduced a regression related to Ed25519. See
+// SL_SE_ASSUME_FW_UNAFFECTED_BY_ED25519_ERRATA.
+ #if !defined(SLI_SE_FIRST_VERSION_WITH_BROKEN_ED25519)
+ #define SLI_SE_FIRST_VERSION_WITH_BROKEN_ED25519 (0x00010202U)
+ #endif
+
+// The final SE version containing a bug causing Ed25519 to be broken. See
+// SL_SE_ASSUME_FW_UNAFFECTED_BY_ED25519_ERRATA.
+ #if !defined(SLI_SE_LAST_VERSION_WITH_BROKEN_ED25519)
+ #define SLI_SE_LAST_VERSION_WITH_BROKEN_ED25519 (0x00010208U)
+ #endif
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+// Common HSE/VSE constants
+
+// The first SE version that supports TrustZone Storage Root Key (SRK)
+#if !defined(SLI_SE_FIRST_VERSION_WITH_SRK_SUPPORT)
+ #if defined(SLI_MBEDTLS_DEVICE_SE_V2)
+ #define SLI_SE_FIRST_VERSION_WITH_SRK_SUPPORT (0x00020200)
+ #else
+ #define SLI_SE_FIRST_VERSION_WITH_SRK_SUPPORT (0x0001020c)
+ #endif
+#endif
+
+// -----------------------------------------------------------------------------
+// Preprocessor Guard Helper Defines
+
+// -------------------------------
+// ECDH
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #if !SL_SE_ASSUME_FW_AT_LEAST_1_2_2 && defined(SLI_MBEDTLS_DEVICE_HSE_V1)
+ #define SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN
+ #endif
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+// -------------------------------
+// EdDSA
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #if !SL_SE_ASSUME_FW_UNAFFECTED_BY_ED25519_ERRATA \
+ && defined(SLI_MBEDTLS_DEVICE_HSE_V1)
+ #define SLI_SE_VERSION_ED25519_ERRATA_UNCERTAIN
+ #endif
+
+ #if defined(SLI_SE_VERSION_ED25519_ERRATA_UNCERTAIN) \
+ && defined(SLI_PSA_DRIVER_FEATURE_EDWARDS25519)
+ #define SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED
+ #endif
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+// -----------------------------------------------------------------------------
+// Version macros
+
+// HSE specific macros
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #define SLI_SE_VERSION_PUBKEY_VALIDATION_REQUIRED(se_version) \
+ (se_version < SLI_SE_OLDEST_VERSION_WITH_PUBLIC_KEY_VALIDATION)
+
+ #define SLI_SE_VERSION_ED25519_BROKEN(se_version) \
+ (!((se_version < SLI_SE_FIRST_VERSION_WITH_BROKEN_ED25519) \
+ || (se_version > SLI_SE_LAST_VERSION_WITH_BROKEN_ED25519)))
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+// Common HSE/VSE macros
+#define SLI_VERSION_REMOVE_DIE_ID(version) ((version) & 0x00FFFFFFU)
+
+#define SLI_SE_VERSION_SUPPORTS_SRK(se_version) \
+ (SLI_VERSION_REMOVE_DIE_ID(se_version) >= SLI_SE_FIRST_VERSION_WITH_SRK_SUPPORT)
+
+// -----------------------------------------------------------------------------
+// Function declarations
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+psa_status_t sli_se_check_eddsa_errata(const psa_key_attributes_t* attributes,
+ sl_se_command_context_t* cmd_ctx);
+
+#ifdef __cplusplus
+}
+#endif
+
+/// @endcond
+
+#endif // SLI_SE_VERSION_DEPENDENCIES_H
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/cryptoacc_management.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/cryptoacc_management.c
new file mode 100644
index 000000000..07ae44eb8
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/cryptoacc_management.c
@@ -0,0 +1,136 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs CRYPTOACC device management interface.
+ *******************************************************************************
+ * # License
+ * Copyright 2018 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_manager_internal.h"
+
+#include "sli_cryptoacc_driver_trng.h"
+
+#include "sx_aes.h"
+#include "ba414ep_config.h"
+
+//------------------------------------------------------------------------------
+// RTOS Synchronization and Clocking Functions
+
+// Get ownership of an available CRYPTOACC device.
+psa_status_t cryptoacc_management_acquire(void)
+{
+ #if defined(MBEDTLS_THREADING_C)
+ if ((SCB->ICSR & SCB_ICSR_VECTACTIVE_Msk) != 0U) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Take SE lock - wait/block if taken by another thread.
+ sl_status_t ret = sli_se_lock_acquire();
+ if (ret != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ #endif
+
+ CMU->CLKEN1_SET = CMU_CLKEN1_CRYPTOACC;
+ CMU->CRYPTOACCCLKCTRL_SET = (CMU_CRYPTOACCCLKCTRL_PKEN
+ | CMU_CRYPTOACCCLKCTRL_AESEN);
+
+ return PSA_SUCCESS;
+}
+
+// Release ownership of a reserved CRYPTOACC device.
+psa_status_t cryptoacc_management_release(void)
+{
+ CMU->CLKEN1_CLR = CMU_CLKEN1_CRYPTOACC;
+ CMU->CRYPTOACCCLKCTRL_CLR = (CMU_CRYPTOACCCLKCTRL_PKEN
+ | CMU_CRYPTOACCCLKCTRL_AESEN);
+
+ #if defined(MBEDTLS_THREADING_C)
+ if (sli_se_lock_release() != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ #endif
+
+ return PSA_SUCCESS;
+}
+
+//------------------------------------------------------------------------------
+// Countermeasure Initialization Functions
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE_V2)
+
+psa_status_t cryptoacc_initialize_countermeasures(void)
+{
+ // Set to true when CM has been initialized
+ static bool cm_inited = false;
+
+ // Note on the error handling: we want to try and set up the countermeasures
+ // even if some of the steps fail. Hence, the first error code is stored and
+ // returned in the end if something goes wrong.
+ psa_status_t final_status = PSA_SUCCESS;
+ if (!cm_inited) {
+ // Set up the PK engine with a TRNG wrapper function to use for randomness
+ // generation. This will be used for future ECC operations as well, not only
+ // during the lifetime of this function.
+ ba414ep_set_rng(sli_cryptoacc_trng_wrapper);
+
+ // Seed the AES engine with a random mask. The highest bit must be set due
+ // to hardware requirements.
+ uint32_t mask = 0;
+ psa_status_t temp_status = sli_cryptoacc_trng_get_random((uint8_t *)&mask,
+ sizeof(mask));
+ if (temp_status != PSA_SUCCESS) {
+ final_status = temp_status;
+ }
+ mask |= (1U << 31);
+
+ temp_status = cryptoacc_management_acquire();
+ if (temp_status != PSA_SUCCESS) {
+ final_status = temp_status;
+ }
+ sx_aes_load_mask(mask);
+ temp_status = cryptoacc_management_release();
+ if ((temp_status != PSA_SUCCESS) && (final_status == PSA_SUCCESS)) {
+ final_status = temp_status;
+ }
+
+ // Only track that init was successful if no error codes popped up.
+ if (final_status == PSA_SUCCESS) {
+ cm_inited = true;
+ }
+ }
+
+ return final_status;
+}
+
+#endif // SLI_MBEDTLS_DEVICE_VSE_V2
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sl_psa_its_nvm3.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sl_psa_its_nvm3.c
new file mode 100644
index 000000000..70ae15134
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sl_psa_its_nvm3.c
@@ -0,0 +1,3303 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA ITS implementation based on Silicon Labs NVM3
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+// The psa_driver_wrappers.h file that we're including here assumes that it has
+// access to private struct members. Define this here in order to avoid
+// compilation errors.
+#define MBEDTLS_ALLOW_PRIVATE_ACCESS
+
+// -------------------------------------
+// Includes
+
+#include
+
+#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && !defined(MBEDTLS_PSA_ITS_FILE_C)
+
+#include "psa/internal_trusted_storage.h"
+#include "psa/sli_internal_trusted_storage.h"
+#include "nvm3_default.h"
+#include "mbedtls/platform.h"
+#include
+#include
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ #include
+ #include "psa/storage_common.h"
+#endif // TFM_CONFIG_SL_SECURE_LIBRARY
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ #include "psa_crypto_core.h"
+ #include "psa_crypto_driver_wrappers.h"
+ #if defined(SEMAILBOX_PRESENT)
+ #include "psa/crypto_extra.h"
+ #include "sl_psa_values.h"
+ #include "sli_se_opaque_functions.h"
+ #endif // defined(SEMAILBOX_PRESENT)
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// SLI_STATIC_TESTABLE is used to expose otherwise-static variables during
+// internal testing.
+#if defined(SLI_STATIC_TESTABLE)
+ #define SLI_STATIC
+#else
+ #define SLI_STATIC static
+#endif
+
+// -------------------------------------
+// Threading support
+
+#if defined(MBEDTLS_THREADING_C)
+ #include "cmsis_os2.h"
+ #include "mbedtls/threading.h"
+
+// Mutex for protecting access to the ITS instance
+SLI_STATIC mbedtls_threading_mutex_t its_mutex MUTEX_INIT;
+static volatile bool its_mutex_inited = false;
+
+/**
+ * \brief Lock all task switches
+ *
+ * \return Previous lock state
+ *
+ */
+static inline int32_t lock_task_switches(void)
+{
+ int32_t kernel_lock_state = 0;
+ osKernelState_t kernel_state = osKernelGetState();
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ kernel_lock_state = osKernelLock();
+ }
+ return kernel_lock_state;
+}
+
+/**
+ * \brief Restores the previous lock state
+ */
+static inline void restore_lock_state(int32_t kernel_lock_state)
+{
+ osKernelState_t kernel_state = osKernelGetState();
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) {
+ if (osKernelRestoreLock(kernel_lock_state) < 0) {
+ EFM_ASSERT(false);
+ }
+ }
+}
+
+#endif // defined(MBEDTLS_THREADING_C)
+
+/**
+ * \brief Pend on the ITS mutex
+ */
+void sli_its_acquire_mutex(void)
+{
+#if defined(MBEDTLS_THREADING_C)
+ if (!its_mutex_inited) {
+ int32_t kernel_lock_state = lock_task_switches();
+ if (!its_mutex_inited) {
+ // The ITS mutex needs to be recursive since the same thread may need
+ // to acquire it more than one time.
+ THREADING_SetRecursive(&its_mutex);
+ mbedtls_mutex_init(&its_mutex);
+ its_mutex_inited = true;
+ }
+ restore_lock_state(kernel_lock_state);
+ }
+ if (mbedtls_mutex_lock(&its_mutex) != 0) {
+ EFM_ASSERT(false);
+ }
+#endif
+}
+
+/**
+ * \brief Free the ITS mutex.
+ */
+void sli_its_release_mutex(void)
+{
+#if defined(MBEDTLS_THREADING_C)
+ if (its_mutex_inited) {
+ mbedtls_mutex_unlock(&its_mutex);
+ }
+#endif
+}
+
+// -------------------------------------
+// Defines
+
+#if (!SL_PSA_ITS_SUPPORT_V3_DRIVER)
+#define SLI_PSA_ITS_NVM3_RANGE_START SLI_PSA_ITS_NVM3_RANGE_BASE
+#define SLI_PSA_ITS_NVM3_RANGE_END SLI_PSA_ITS_NVM3_RANGE_START + SL_PSA_ITS_MAX_FILES
+
+#define SLI_PSA_ITS_NVM3_INVALID_KEY (0)
+#define SLI_PSA_ITS_NVM3_UNKNOWN_KEY (1)
+
+#if SL_PSA_ITS_MAX_FILES > SLI_PSA_ITS_NVM3_RANGE_SIZE
+#error "Trying to store more ITS files then our NVM3 range allows for"
+#endif
+
+#define SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE 16
+
+// Enable backwards-compatibility with keys stored with a v1 header unless disabled.
+#if !defined(SL_PSA_ITS_REMOVE_V1_HEADER_SUPPORT)
+#define SLI_PSA_ITS_SUPPORT_V1_FORMAT
+#endif
+
+// Internal error codes local to this compile unit
+#define SLI_PSA_ITS_ECODE_NO_VALID_HEADER (ECODE_EMDRV_NVM3_BASE - 1)
+#define SLI_PSA_ITS_ECODE_NEEDS_UPGRADE (ECODE_EMDRV_NVM3_BASE - 2)
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+// Define some cryptographic constants if not already set. This depends on the underlying
+// crypto accelerator in use (CRYPTOACC has these defines, but not SEMAILBOX).
+#if !defined(AES_MAC_SIZE)
+#define AES_MAC_SIZE 16
+#endif
+
+#if !defined(AES_IV_GCM_SIZE)
+#define AES_IV_GCM_SIZE 12
+#endif
+
+#define SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD (AES_IV_GCM_SIZE + AES_MAC_SIZE)
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Local global static variables
+
+SLI_STATIC bool nvm3_uid_set_cache_initialized = false;
+SLI_STATIC uint32_t nvm3_uid_set_cache[(SL_PSA_ITS_MAX_FILES + 31) / 32] = { 0 };
+
+typedef struct {
+ psa_storage_uid_t uid;
+ nvm3_ObjectKey_t object_id;
+ bool set;
+} previous_lookup_t;
+
+static previous_lookup_t previous_lookup = {
+ 0, 0, false
+};
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+// The root key is an AES-256 key, and is therefore 32 bytes.
+#define ROOT_KEY_SIZE (32)
+// The session key is derived from CMAC, which means it is equal to the AES block size, i.e. 16 bytes
+#define SESSION_KEY_SIZE (16)
+
+#if !defined(SEMAILBOX_PRESENT)
+typedef struct {
+ bool initialized;
+ uint8_t data[ROOT_KEY_SIZE];
+} root_key_t;
+
+static root_key_t g_root_key = {
+ .initialized = false,
+ .data = { 0 },
+};
+#endif // !defined(SEMAILBOX_PRESENT)
+
+typedef struct {
+ bool active;
+ psa_storage_uid_t uid;
+ uint8_t data[SESSION_KEY_SIZE];
+} session_key_t;
+
+static session_key_t g_cached_session_key = {
+ .active = false,
+ .uid = 0,
+ .data = { 0 },
+};
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Structs
+
+#if defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT)
+typedef struct {
+ uint32_t magic;
+ psa_storage_uid_t uid;
+ psa_storage_create_flags_t flags;
+} sl_its_file_meta_v1_t;
+#endif // defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT)
+
+// Due to alignment constraints on the 64-bit UID, the v2 header struct is
+// serialized to 16 bytes instead of the 24 bytes the v1 header compiles to.
+typedef struct {
+ uint32_t magic;
+ psa_storage_create_flags_t flags;
+ psa_storage_uid_t uid;
+} sli_its_file_meta_v2_t;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+typedef struct {
+ uint8_t iv[AES_IV_GCM_SIZE];
+ // When encrypted & authenticated, MAC is stored at the end of the data array
+ uint8_t data[];
+} sli_its_encrypted_blob_t;
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Local function prototypes
+
+static nvm3_ObjectKey_t get_nvm3_id(psa_storage_uid_t uid, bool find_empty_slot);
+static nvm3_ObjectKey_t prepare_its_get_nvm3_id(psa_storage_uid_t uid);
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+static inline bool object_lives_in_s(const void *object, size_t object_size);
+#endif // defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+static psa_status_t derive_session_key(uint8_t *iv,
+ size_t iv_size,
+ uint8_t *session_key,
+ size_t session_key_size);
+
+static psa_status_t encrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ size_t *blob_length);
+
+static psa_status_t decrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+static psa_status_t authenticate_its_file(nvm3_ObjectKey_t nvm3_object_id,
+ psa_storage_uid_t *authenticated_uid);
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Local function definitions
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+// If an object of given size is fully encapsulated in a region of
+// secure domain the function returns true.
+static inline bool object_lives_in_s(const void *object, size_t object_size)
+{
+ cmse_address_info_t cmse_flags;
+
+ for (size_t i = 0u; i < object_size; i++) {
+ cmse_flags = cmse_TTA((uint32_t *)object + i);
+ if (!cmse_flags.flags.secure) {
+ return false;
+ }
+ }
+
+ return true;
+}
+#endif // defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+
+static inline void cache_set(nvm3_ObjectKey_t key)
+{
+ uint32_t i = key - SLI_PSA_ITS_NVM3_RANGE_START;
+ uint32_t bin = i / 32;
+ uint32_t offset = i - 32 * bin;
+ nvm3_uid_set_cache[bin] |= (1 << offset);
+}
+
+static inline void cache_clear(nvm3_ObjectKey_t key)
+{
+ uint32_t i = key - SLI_PSA_ITS_NVM3_RANGE_START;
+ uint32_t bin = i / 32;
+ uint32_t offset = i - 32 * bin;
+ nvm3_uid_set_cache[bin] ^= (1 << offset);
+}
+
+static inline bool cache_lookup(nvm3_ObjectKey_t key)
+{
+ uint32_t i = key - SLI_PSA_ITS_NVM3_RANGE_START;
+ uint32_t bin = i / 32;
+ uint32_t offset = i - 32 * bin;
+ return (bool)((nvm3_uid_set_cache[bin] >> offset) & 0x1);
+}
+
+static void init_cache(void)
+{
+ size_t num_keys_referenced_by_nvm3;
+ nvm3_ObjectKey_t keys_referenced_by_nvm3[SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE] = { 0 };
+
+ for (nvm3_ObjectKey_t range_start = SLI_PSA_ITS_NVM3_RANGE_START;
+ range_start < SLI_PSA_ITS_NVM3_RANGE_END;
+ range_start += SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE) {
+ nvm3_ObjectKey_t range_end = range_start + SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE;
+ if (range_end > SLI_PSA_ITS_NVM3_RANGE_END) {
+ range_end = SLI_PSA_ITS_NVM3_RANGE_END;
+ }
+
+ num_keys_referenced_by_nvm3 = nvm3_enumObjects(nvm3_defaultHandle,
+ keys_referenced_by_nvm3,
+ sizeof(keys_referenced_by_nvm3) / sizeof(nvm3_ObjectKey_t),
+ range_start,
+ range_end - 1);
+
+ for (size_t i = 0; i < num_keys_referenced_by_nvm3; i++) {
+ cache_set(keys_referenced_by_nvm3[i]);
+ }
+ }
+
+ nvm3_uid_set_cache_initialized = true;
+}
+
+// Read the file metadata for a specific NVM3 ID
+static Ecode_t get_file_metadata(nvm3_ObjectKey_t key,
+ sli_its_file_meta_v2_t* metadata,
+ size_t* its_file_offset,
+ size_t* its_file_size)
+{
+ // Initialize output variables to safe default
+ if (its_file_offset != NULL) {
+ *its_file_offset = 0;
+ }
+ if (its_file_size != NULL) {
+ *its_file_size = 0;
+ }
+
+ Ecode_t status = nvm3_readPartialData(nvm3_defaultHandle,
+ key,
+ metadata,
+ 0,
+ sizeof(sli_its_file_meta_v2_t));
+ if (status != ECODE_NVM3_OK) {
+ return status;
+ }
+
+#if defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT)
+ // Re-read in v1 header format and translate to the latest structure version
+ if (metadata->magic == SLI_PSA_ITS_META_MAGIC_V1) {
+ sl_its_file_meta_v1_t key_meta_v1 = { 0 };
+ status = nvm3_readPartialData(nvm3_defaultHandle,
+ key,
+ &key_meta_v1,
+ 0,
+ sizeof(sl_its_file_meta_v1_t));
+
+ if (status != ECODE_NVM3_OK) {
+ return status;
+ }
+
+ metadata->flags = key_meta_v1.flags;
+ metadata->uid = key_meta_v1.uid;
+ metadata->magic = SLI_PSA_ITS_META_MAGIC_V2;
+
+ if (its_file_offset != NULL) {
+ *its_file_offset = sizeof(sl_its_file_meta_v1_t);
+ }
+
+ status = SLI_PSA_ITS_ECODE_NEEDS_UPGRADE;
+ } else
+#endif
+ {
+ if (its_file_offset != NULL) {
+ *its_file_offset = sizeof(sli_its_file_meta_v2_t);
+ }
+ }
+
+ if (metadata->magic != SLI_PSA_ITS_META_MAGIC_V2) {
+ // No valid header found in this object
+ return SLI_PSA_ITS_ECODE_NO_VALID_HEADER;
+ }
+
+ if (its_file_offset != NULL && its_file_size != NULL) {
+ // Calculate the ITS file size if requested
+ uint32_t obj_type;
+ Ecode_t info_status = nvm3_getObjectInfo(nvm3_defaultHandle,
+ key,
+ &obj_type,
+ its_file_size);
+ if (info_status != ECODE_NVM3_OK) {
+ return info_status;
+ }
+
+ *its_file_size = *its_file_size - *its_file_offset;
+ }
+
+ return status;
+}
+
+// Search through NVM3 for uid
+static nvm3_ObjectKey_t get_nvm3_id(psa_storage_uid_t uid, bool find_empty_slot)
+{
+ Ecode_t status;
+ sli_its_file_meta_v2_t key_meta;
+
+ if (find_empty_slot) {
+ for (size_t i = 0; i < SL_PSA_ITS_MAX_FILES; i++) {
+ if (!cache_lookup(i + SLI_PSA_ITS_NVM3_RANGE_START)) {
+ return i + SLI_PSA_ITS_NVM3_RANGE_START;
+ }
+ }
+ } else {
+ if (previous_lookup.set) {
+ if (previous_lookup.uid == uid) {
+ return previous_lookup.object_id;
+ }
+ }
+
+ for (size_t i = 0; i < SL_PSA_ITS_MAX_FILES; i++) {
+ if (!cache_lookup(i + SLI_PSA_ITS_NVM3_RANGE_START)) {
+ continue;
+ }
+ nvm3_ObjectKey_t object_id = i + SLI_PSA_ITS_NVM3_RANGE_START;
+
+ status = get_file_metadata(object_id, &key_meta, NULL, NULL);
+
+ if (status == ECODE_NVM3_OK
+ || status == SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ if (key_meta.uid == uid) {
+ previous_lookup.set = true;
+ previous_lookup.object_id = object_id;
+ previous_lookup.uid = uid;
+
+ return object_id;
+ } else {
+ continue;
+ }
+ }
+
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER
+ || status == ECODE_NVM3_ERR_READ_DATA_SIZE) {
+ // we don't expect any other data in our range then PSA ITS files.
+ // delete the file if the magic doesn't match or the object on disk
+ // is too small to even have full metadata.
+ status = nvm3_deleteObject(nvm3_defaultHandle, object_id);
+ if (status != ECODE_NVM3_OK) {
+ return SLI_PSA_ITS_NVM3_RANGE_END + 1U;
+ }
+ }
+ }
+ }
+
+ return SLI_PSA_ITS_NVM3_RANGE_END + 1U;
+}
+
+// Perform NVM3 open and fill the look-up table.
+// Try to find the mapping NVM3 object ID with PSA ITS UID.
+static nvm3_ObjectKey_t prepare_its_get_nvm3_id(psa_storage_uid_t uid)
+{
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ // With SKL the NVM3 instance must be initialized by the NS app. We therefore check that
+ // it has been opened (which is done on init) rather than actually doing the init.
+ if (!nvm3_defaultHandle->hasBeenOpened) {
+#else
+ if (nvm3_initDefault() != ECODE_NVM3_OK) {
+#endif
+ return SLI_PSA_ITS_NVM3_RANGE_END + 1U;
+ }
+
+ if (nvm3_uid_set_cache_initialized == false) {
+ init_cache();
+ }
+
+ return get_nvm3_id(uid, false);
+}
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+static inline void cache_session_key(uint8_t *session_key, psa_storage_uid_t uid)
+{
+ // Cache the session key
+ memcpy(g_cached_session_key.data, session_key, sizeof(g_cached_session_key.data));
+ g_cached_session_key.uid = uid;
+ g_cached_session_key.active = true;
+}
+
+/**
+ * \brief Derive a session key for ITS file encryption from the initialized root key and provided IV.
+ *
+ * \param[in] iv Pointer to array containing the initialization vector to be used in the key derivation.
+ * \param[in] iv_size Size of the IV buffer in bytes. Must be 12 bytes (AES-GCM IV size).
+ * \param[out] session_key Pointer to array where derived session key shall be stored.
+ * \param[out] session_key_size Size of the derived session key output array. Must be at least 32 bytes (AES-256 key size).
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because iv or session_key is NULL, or their sizes are incorrect.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t derive_session_key(uint8_t *iv, size_t iv_size, uint8_t *session_key, size_t session_key_size)
+{
+ if (iv == NULL
+ || iv_size != AES_IV_GCM_SIZE
+ || session_key == NULL
+ || session_key_size < SESSION_KEY_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+#if defined(SEMAILBOX_PRESENT)
+ // For HSE devices, use the builtin TrustZone Root Key
+ psa_set_key_id(&attributes, SL_SE_BUILTIN_KEY_TRUSTZONE_ID);
+
+ psa_key_lifetime_t reported_lifetime;
+ psa_drv_slot_number_t reported_slot;
+ status = mbedtls_psa_platform_get_builtin_key(psa_get_key_id(&attributes),
+ &reported_lifetime,
+ &reported_slot);
+
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ psa_set_key_lifetime(&attributes, reported_lifetime);
+
+ uint8_t key_buffer[sizeof(sli_se_opaque_key_context_header_t)];
+ size_t key_buffer_size;
+ status = sli_se_opaque_get_builtin_key(reported_slot,
+ &attributes,
+ key_buffer,
+ sizeof(key_buffer),
+ &key_buffer_size);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+#else // defined(SEMAILBOX_PRESENT)
+ // For VSE devices, use the previously initialized root key
+ if (!g_root_key.initialized) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Prepare root key attributes
+ psa_set_key_algorithm(&attributes, PSA_ALG_CMAC);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, ROOT_KEY_SIZE * 8);
+
+ // Point the key buffer to the global root key
+ uint8_t *key_buffer = (uint8_t*)g_root_key.data;
+ size_t key_buffer_size = sizeof(g_root_key.data);
+#endif // defined(SEMAILBOX_PRESENT)
+
+ // Use CMAC as a key derivation function
+ size_t session_key_length;
+ status = psa_driver_wrapper_mac_compute(
+ &attributes,
+ key_buffer,
+ key_buffer_size,
+ PSA_ALG_CMAC,
+ iv,
+ iv_size,
+ session_key,
+ session_key_size,
+ &session_key_length);
+
+ // Verify that the key derivation was successful before transferring the key to the caller
+ if (status != PSA_SUCCESS || session_key_length != SESSION_KEY_SIZE) {
+ memset(session_key, 0, session_key_size);
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return status;
+}
+
+/**
+ * \brief Encrypt and authenticate ITS data with AES-128-GCM, storing the result in an encrypted blob.
+ *
+ * \param[in] metadata ITS metadata to be used as authenticated additional data.
+ * \param[in] plaintext Pointer to array containing data to be encrypted.
+ * \param[in] plaintext_size Size of provided plaintext data array.
+ * \param[out] blob Pointer to array where the resulting encrypted blob shall be placed.
+ * \param[in] blob_size Size of the output array. Must be at least as big as plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ * \param[out] blob_length Resulting size of the output blob.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t encrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ size_t *blob_length)
+{
+ if (metadata == NULL
+ || (plaintext == NULL && plaintext_size > 0)
+ || blob == NULL
+ || blob_size < plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ || blob_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Generate IV
+ size_t iv_length = 0;
+ psa_status_t psa_status = mbedtls_psa_external_get_random(NULL, blob->iv, AES_IV_GCM_SIZE, &iv_length);
+
+ if (psa_status != PSA_SUCCESS || iv_length != AES_IV_GCM_SIZE) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Prepare encryption key
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT);
+ psa_set_key_algorithm(&attributes, PSA_ALG_GCM);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, SESSION_KEY_SIZE * 8);
+
+ uint8_t session_key[SESSION_KEY_SIZE];
+ psa_status = derive_session_key(blob->iv, AES_IV_GCM_SIZE, session_key, sizeof(session_key));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ cache_session_key(session_key, metadata->uid);
+
+ // Retrieve data to be encrypted
+ if (plaintext_size != 0U) {
+ memcpy(blob->data, ((uint8_t*)plaintext), plaintext_size);
+ }
+
+ // Encrypt and authenticate blob
+ size_t output_length = 0;
+ psa_status = psa_driver_wrapper_aead_encrypt(
+ &attributes,
+ session_key, sizeof(session_key),
+ PSA_ALG_GCM,
+ blob->iv, sizeof(blob->iv),
+ (uint8_t*)metadata, sizeof(sli_its_file_meta_v2_t), // metadata is AAD
+ blob->data, plaintext_size,
+ blob->data, plaintext_size + AES_MAC_SIZE, // output == input for in-place encryption
+ &output_length);
+
+ // Clear the local session key immediately after we're done using it
+ memset(session_key, 0, sizeof(session_key));
+
+ if (psa_status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (output_length != plaintext_size + AES_MAC_SIZE) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *blob_length = output_length + AES_IV_GCM_SIZE;
+
+ return PSA_SUCCESS;
+}
+
+/**
+ * \brief Decrypt and authenticate encrypted ITS data.
+ *
+ * \param[in] metadata ITS metadata to be used as authenticated additional data. Must be identical to the metadata used during encryption.
+ * \param[in] blob Encrypted blob containing data to be decrypted.
+ * \param[in] blob_size Size of the encrypted blob in bytes.
+ * \param[out] plaintext Pointer to array where the decrypted plaintext shall be placed.
+ * \param[in] plaintext_size Size of the plaintext array. Must be equal to sizeof(blob->data) - AES_MAC_SIZE.
+ * \param[out] plaintext_length Resulting length of the decrypted plaintext.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the decrypted data failed.
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t decrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ if (metadata == NULL
+ || blob == NULL
+ || blob_size < plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ || (plaintext == NULL && plaintext_size > 0)
+ || plaintext_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Prepare decryption key
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(&attributes, PSA_ALG_GCM);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, SESSION_KEY_SIZE * 8);
+
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint8_t session_key[SESSION_KEY_SIZE];
+
+ if (g_cached_session_key.active && g_cached_session_key.uid == metadata->uid) {
+ // Use cached session key if it's already set and UID matches
+ memcpy(session_key, g_cached_session_key.data, sizeof(session_key));
+ } else {
+ psa_status = derive_session_key(blob->iv, AES_IV_GCM_SIZE, session_key, sizeof(session_key));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ cache_session_key(session_key, metadata->uid);
+ }
+
+ // Decrypt and authenticate blob
+ size_t output_length = 0;
+ psa_status = psa_driver_wrapper_aead_decrypt(
+ &attributes,
+ session_key, sizeof(session_key),
+ PSA_ALG_GCM,
+ blob->iv, sizeof(blob->iv),
+ (uint8_t*)metadata, sizeof(sli_its_file_meta_v2_t), // metadata is AAD
+ blob->data, plaintext_size + AES_MAC_SIZE,
+ plaintext, plaintext_size,
+ &output_length);
+
+ // Clear the session key immediately after we're done using it
+ memset(session_key, 0, sizeof(session_key));
+
+ // Invalid signature likely means that NVM data was tampered with
+ if (psa_status == PSA_ERROR_INVALID_SIGNATURE) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ if (psa_status != PSA_SUCCESS
+ || output_length != plaintext_size) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *plaintext_length = output_length;
+
+ return PSA_SUCCESS;
+}
+
+/**
+ * \brief Authenticate encrypted ITS data and return the UID of the ITS file that was authenticated.
+ *
+ * \details NOTE: This function will run decrypt_its_file() internally. The difference from the decrypt_its_file()
+ * function is that authenticate_its_file() reads the NVM3 data, decrypts it in order to authenticate the
+ * stored data, and then discards the plaintext. This is needed since PSA Crypto doesn't support the
+ * GMAC primitive directly, which means we have to run a full GCM decrypt for authentication.
+ *
+ * \param[in] nvm3_object_id The NVM3 id corresponding to the stored ITS file.
+ * \param[out] authenticated_uid UID for the authenticated ITS file.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the decrypted data failed.
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t authenticate_its_file(nvm3_ObjectKey_t nvm3_object_id,
+ psa_storage_uid_t *authenticated_uid)
+{
+ psa_status_t ret = PSA_ERROR_CORRUPTION_DETECTED;
+ sli_its_file_meta_v2_t *its_file_meta = NULL;
+ sli_its_encrypted_blob_t *blob = NULL;
+
+ uint32_t obj_type;
+ size_t its_file_size = 0;
+ Ecode_t status = nvm3_getObjectInfo(nvm3_defaultHandle,
+ nvm3_object_id,
+ &obj_type,
+ &its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ uint8_t *its_file_buffer = mbedtls_calloc(1, its_file_size);
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ memset(its_file_buffer, 0, its_file_size);
+
+ status = nvm3_readData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ goto cleanup;
+ }
+
+ its_file_meta = (sli_its_file_meta_v2_t*)its_file_buffer;
+ blob = (sli_its_encrypted_blob_t*)(its_file_buffer + sizeof(sli_its_file_meta_v2_t));
+
+ // Decrypt and authenticate blob
+ size_t plaintext_length;
+ ret = decrypt_its_file(its_file_meta,
+ blob,
+ its_file_size - sizeof(sli_its_file_meta_v2_t),
+ blob->data,
+ its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (ret != PSA_SUCCESS) {
+ goto cleanup;
+ }
+
+ if (plaintext_length != (its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ ret = PSA_ERROR_INVALID_SIGNATURE;
+ goto cleanup;
+ }
+
+ if (authenticated_uid != NULL) {
+ *authenticated_uid = its_file_meta->uid;
+ }
+
+ ret = PSA_SUCCESS;
+
+ cleanup:
+
+ // Discard output, as we're only interested in whether the authentication check passed or not.
+ memset(its_file_buffer, 0, its_file_size);
+ mbedtls_free(its_file_buffer);
+
+ return ret;
+}
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Global function definitions
+
+/**
+ * \brief create a new or modify an existing uid/value pair
+ *
+ * \param[in] uid the identifier for the data
+ * \param[in] data_length The size in bytes of the data in `p_data`
+ * \param[in] p_data A buffer containing the data
+ * \param[in] create_flags The flags that the data will be stored with
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_NOT_PERMITTED The operation failed because the provided `uid` value was already created with PSA_STORAGE_FLAG_WRITE_ONCE
+ * \retval PSA_ERROR_NOT_SUPPORTED The operation failed because one or more of the flags provided in `create_flags` is not supported or is not valid
+ * \retval PSA_ERROR_INSUFFICIENT_STORAGE The operation failed because there was insufficient space on the storage medium
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_data`)
+ * is invalid, for example is `NULL` or references memory the caller cannot access
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+psa_status_t psa_its_set(psa_storage_uid_t uid,
+ uint32_t data_length,
+ const void *p_data,
+ psa_storage_create_flags_t create_flags)
+{
+ if (data_length > NVM3_MAX_OBJECT_SIZE) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ if ((data_length != 0U) && (p_data == NULL)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (create_flags != PSA_STORAGE_FLAG_WRITE_ONCE
+ && create_flags != PSA_STORAGE_FLAG_NONE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ && create_flags != PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ if ((create_flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE)
+ && (!object_lives_in_s(p_data, data_length))) {
+ // The flag indicates that this data should not be set by the non-secure domain
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+#endif
+ sli_its_acquire_mutex();
+ nvm3_ObjectKey_t nvm3_object_id = prepare_its_get_nvm3_id(uid);
+ Ecode_t status;
+ psa_status_t ret = PSA_SUCCESS;
+ sli_its_file_meta_v2_t* its_file_meta;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ psa_storage_uid_t authenticated_uid;
+ sli_its_encrypted_blob_t *blob = NULL;
+ size_t blob_length = 0u;
+ psa_status_t psa_status;
+
+ size_t its_file_size = data_length + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#else
+ size_t its_file_size = data_length;
+#endif
+
+ uint8_t *its_file_buffer = mbedtls_calloc(1, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ if (its_file_buffer == NULL) {
+ ret = PSA_ERROR_INSUFFICIENT_MEMORY;
+ goto exit;
+ }
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+
+ its_file_meta = (sli_its_file_meta_v2_t *)its_file_buffer;
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ // ITS UID was not found. Request a new.
+ nvm3_object_id = get_nvm3_id(0ULL, true);
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ // The storage is full, or an error was returned during cleanup.
+ ret = PSA_ERROR_INSUFFICIENT_STORAGE;
+ } else {
+ its_file_meta->uid = uid;
+ its_file_meta->magic = SLI_PSA_ITS_META_MAGIC_V2;
+ }
+ } else {
+ // ITS UID was found. Read ITS meta data.
+ status = get_file_metadata(nvm3_object_id, its_file_meta, NULL, NULL);
+
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+ if (its_file_meta->flags == PSA_STORAGE_FLAG_WRITE_ONCE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ || its_file_meta->flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ ret = PSA_ERROR_NOT_PERMITTED;
+ goto exit;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // If the UID already exists, authenticate the existing value and make sure the stored UID is the same.
+ ret = authenticate_its_file(nvm3_object_id, &authenticated_uid);
+ if (ret != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ if (authenticated_uid != uid) {
+ ret = PSA_ERROR_NOT_PERMITTED;
+ goto exit;
+ }
+#endif
+ }
+
+ its_file_meta->flags = create_flags;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Everything after the file metadata will make up the encrypted & authenticated blob
+ blob = (sli_its_encrypted_blob_t*)(its_file_buffer + sizeof(sli_its_file_meta_v2_t));
+
+ // Encrypt and authenticate the provided data
+ psa_status = encrypt_its_file(its_file_meta,
+ (uint8_t*)p_data,
+ data_length,
+ blob,
+ its_file_size,
+ &blob_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ ret = psa_status;
+ goto exit;
+ }
+
+ if (blob_length != its_file_size) {
+ ret = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+
+#else
+ if (data_length != 0U) {
+ memcpy(its_file_buffer + sizeof(sli_its_file_meta_v2_t), ((uint8_t*)p_data), data_length);
+ }
+#endif
+
+ status = nvm3_writeData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer, its_file_size + sizeof(sli_its_file_meta_v2_t));
+
+ if (status == ECODE_NVM3_OK) {
+ // Power-loss might occur, however upon boot, the look-up table will be
+ // re-filled as long as the data has been successfully written to NVM3.
+ cache_set(nvm3_object_id);
+ } else {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ if (its_file_buffer != NULL) {
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ mbedtls_free(its_file_buffer);
+ }
+ sli_its_release_mutex();
+ return ret;
+}
+
+/**
+ * \brief Retrieve the value associated with a provided uid
+ *
+ * \param[in] uid The uid value
+ * \param[in] data_offset The starting offset of the data requested
+ * \param[in] data_length the amount of data requested (and the minimum allocated size of the `p_data` buffer)
+ * \param[out] p_data The buffer where the data will be placed upon successful completion
+ * \param[out] p_data_length The amount of data returned in the p_data buffer
+ *
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided `uid` value was not found in the storage
+ * \retval PSA_ERROR_BUFFER_TOO_SMALL The operation failed because the data associated with provided uid is larger than `data_size`
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_data`, `p_data_length`)
+ * is invalid. For example is `NULL` or references memory the caller cannot access.
+ * In addition, this can also happen if an invalid offset was provided.
+ */
+psa_status_t psa_its_get(psa_storage_uid_t uid,
+ uint32_t data_offset,
+ uint32_t data_length,
+ void *p_data,
+ size_t *p_data_length)
+{
+ psa_status_t ret = PSA_ERROR_CORRUPTION_DETECTED;
+
+ if ((data_length != 0U) && (p_data_length == NULL)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (data_length != 0U) {
+ // If the request amount of data is 0, allow invalid pointer of the output buffer.
+ if ((p_data == NULL)
+ || ((uint32_t)p_data < SRAM_BASE)
+ || ((uint32_t)p_data > (SRAM_BASE + SRAM_SIZE - data_length))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ sli_its_encrypted_blob_t *blob = NULL;
+ size_t plaintext_length;
+ psa_status_t psa_status;
+#endif
+ size_t its_file_data_size = 0u;
+ Ecode_t status;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+
+ sli_its_acquire_mutex();
+ nvm3_ObjectKey_t nvm3_object_id = prepare_its_get_nvm3_id(uid);
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ ret = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+
+ status = get_file_metadata(nvm3_object_id, &its_file_meta, &its_file_offset, &its_file_size);
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER) {
+ ret = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ if (its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+ && !object_lives_in_s(p_data, data_length)) {
+ // The flag indicates that this data should not be read back to the non-secure domain
+ ret = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+#endif
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Subtract IV and MAC from ITS file as the below checks concern the actual data size
+ its_file_data_size = its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#else
+ its_file_data_size = its_file_size;
+#endif
+
+ if (data_length != 0U) {
+ if ((data_offset >= its_file_data_size) && (its_file_data_size != 0U)) {
+ ret = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+
+ if ((its_file_data_size == 0U) && (data_offset != 0U)) {
+ ret = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ } else {
+ // Allow the offset at the data size boundary if the requested amount of data is zero.
+ if (data_offset > its_file_data_size) {
+ ret = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ }
+
+ if (data_length > (its_file_data_size - data_offset)) {
+ *p_data_length = its_file_data_size - data_offset;
+ } else {
+ *p_data_length = data_length;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // its_file_size includes size of sli_its_encrypted_blob_t struct
+ blob = (sli_its_encrypted_blob_t*)mbedtls_calloc(1, its_file_size);
+ if (blob == NULL) {
+ ret = PSA_ERROR_INSUFFICIENT_MEMORY;
+ goto exit;
+ }
+ memset(blob, 0, its_file_size);
+
+ status = nvm3_readPartialData(nvm3_defaultHandle,
+ nvm3_object_id,
+ blob,
+ its_file_offset,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+ // Decrypt and authenticate blob
+ psa_status = decrypt_its_file(&its_file_meta,
+ blob,
+ its_file_size,
+ blob->data,
+ its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ ret = psa_status;
+ goto exit;
+ }
+
+ if (plaintext_length != (its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ ret = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ }
+
+ // Verify that the requested UID is equal to the retrieved and authenticated UID
+ if (uid != its_file_meta.uid) {
+ ret = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+
+ if (*p_data_length > 0) {
+ memcpy(p_data, blob->data + data_offset, *p_data_length);
+ }
+ ret = PSA_SUCCESS;
+
+ exit:
+ if (blob != NULL) {
+ memset(blob, 0, its_file_size);
+ mbedtls_free(blob);
+ }
+ sli_its_release_mutex();
+#else
+ // If no encryption is used, just read out the data and write it directly to the output buffer
+ status = nvm3_readPartialData(nvm3_defaultHandle, nvm3_object_id, p_data, its_file_offset + data_offset, *p_data_length);
+
+ if (status != ECODE_NVM3_OK) {
+ ret = PSA_ERROR_STORAGE_FAILURE;
+ } else {
+ ret = PSA_SUCCESS;
+ }
+
+ exit:
+ sli_its_release_mutex();
+#endif
+
+ return ret;
+}
+
+/**
+ * \brief Retrieve the metadata about the provided uid
+ *
+ * \param[in] uid The uid value
+ * \param[out] p_info A pointer to the `psa_storage_info_t` struct that will be populated with the metadata
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided uid value was not found in the storage
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_info`)
+ * is invalid, for example is `NULL` or references memory the caller cannot access
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the stored metadata failed.
+ */
+psa_status_t psa_its_get_info(psa_storage_uid_t uid,
+ struct psa_storage_info_t *p_info)
+{
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ if (p_info == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ Ecode_t status;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+
+ sli_its_acquire_mutex();
+ nvm3_ObjectKey_t nvm3_object_id = prepare_its_get_nvm3_id(uid);
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+
+ status = get_file_metadata(nvm3_object_id, &its_file_meta, &its_file_offset, &its_file_size);
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Authenticate the ITS file (both metadata and ciphertext) before returning the metadata.
+ // Note that this can potentially induce a significant performance hit.
+ psa_storage_uid_t authenticated_uid;
+ psa_status = authenticate_its_file(nvm3_object_id, &authenticated_uid);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ if (authenticated_uid != uid) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ }
+#endif
+
+ p_info->flags = its_file_meta.flags;
+ p_info->size = its_file_size;
+
+ psa_status = PSA_SUCCESS;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Remove IV and MAC size from file size
+ p_info->size = its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#endif
+ exit:
+ sli_its_release_mutex();
+ return psa_status;
+}
+
+/**
+ * \brief Remove the provided key and its associated data from the storage
+ *
+ * \param[in] uid The uid value
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided key value was not found in the storage
+ * \retval PSA_ERROR_NOT_PERMITTED The operation failed because the provided key value was created with PSA_STORAGE_FLAG_WRITE_ONCE
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ */
+psa_status_t psa_its_remove(psa_storage_uid_t uid)
+{
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ Ecode_t status;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+
+ sli_its_acquire_mutex();
+ nvm3_ObjectKey_t nvm3_object_id = prepare_its_get_nvm3_id(uid);
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+
+ status = get_file_metadata(nvm3_object_id, &its_file_meta, &its_file_offset, &its_file_size);
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+ if (its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ || its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ psa_status = PSA_ERROR_NOT_PERMITTED;
+ goto exit;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // If the UID already exists, authenticate the existing value and make sure the stored UID is the same.
+ psa_storage_uid_t authenticated_uid;
+ psa_status = authenticate_its_file(nvm3_object_id, &authenticated_uid);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ if (authenticated_uid != uid) {
+ psa_status = PSA_ERROR_NOT_PERMITTED;
+ goto exit;
+ }
+#endif
+
+ status = nvm3_deleteObject(nvm3_defaultHandle, nvm3_object_id);
+
+ if (status == ECODE_NVM3_OK) {
+ // Power-loss might occur, however upon boot, the look-up table will be
+ // re-filled as long as the data has been successfully written to NVM3.
+ if (previous_lookup.set && previous_lookup.uid == uid) {
+ previous_lookup.set = false;
+ }
+ cache_clear(nvm3_object_id);
+
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ sli_its_release_mutex();
+ return psa_status;
+}
+
+// -------------------------------------
+// Silicon Labs extensions
+static psa_storage_uid_t psa_its_identifier_of_slot(mbedtls_svc_key_id_t key)
+{
+#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
+ // Encode the owner in the upper 32 bits. This means that if
+ // owner values are nonzero (as they are on a PSA platform),
+ // no key file will ever have a value less than 0x100000000, so
+ // the whole range 0..0xffffffff is available for non-key files.
+ uint32_t unsigned_owner_id = MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(key);
+ return ((uint64_t)unsigned_owner_id << 32) | MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key);
+#else
+ // Use the key id directly as a file name.
+ // psa_is_key_id_valid() in psa_crypto_slot_management.c
+ // is responsible for ensuring that key identifiers do not have a
+ // value that is reserved for non-key files.
+ return key;
+#endif
+}
+
+psa_status_t sli_psa_its_change_key_id(mbedtls_svc_key_id_t old_id,
+ mbedtls_svc_key_id_t new_id)
+{
+ psa_storage_uid_t old_uid = psa_its_identifier_of_slot(old_id);
+ psa_storage_uid_t new_uid = psa_its_identifier_of_slot(new_id);
+ Ecode_t status;
+ uint32_t obj_type;
+ size_t its_file_size = 0;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ int8_t *its_file_buffer = NULL;
+ sli_its_file_meta_v2_t* metadata = NULL;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ sli_its_encrypted_blob_t *blob = NULL;
+ size_t plaintext_length;
+ size_t blob_length;
+ psa_status_t encrypt_status;
+ psa_status_t decrypt_status;
+#endif
+ sli_its_acquire_mutex();
+
+ // Check whether the key to migrate exists on disk
+ nvm3_ObjectKey_t nvm3_object_id = prepare_its_get_nvm3_id(old_uid);
+ if (nvm3_object_id > SLI_PSA_ITS_NVM3_RANGE_END) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ }
+
+ // Get total length to allocate
+ status = nvm3_getObjectInfo(nvm3_defaultHandle,
+ nvm3_object_id,
+ &obj_type,
+ &its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+ // Allocate temporary buffer and cast it to the metadata format
+ its_file_buffer = mbedtls_calloc(1, its_file_size);
+ if (its_file_buffer == NULL) {
+ psa_status = PSA_ERROR_INSUFFICIENT_MEMORY;
+ goto exit;
+ }
+ metadata = (sli_its_file_meta_v2_t*) its_file_buffer;
+
+ // Read contents of pre-existing key into the temporary buffer
+ status = nvm3_readData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Decrypt and authenticate blob
+ blob = (sli_its_encrypted_blob_t*)(its_file_buffer + sizeof(sli_its_file_meta_v2_t));
+ decrypt_status = decrypt_its_file(metadata,
+ blob,
+ its_file_size - sizeof(sli_its_file_meta_v2_t),
+ blob->data,
+ its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (decrypt_status != PSA_SUCCESS) {
+ psa_status = decrypt_status;
+ goto exit;
+ }
+
+ if (plaintext_length != (its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ }
+#endif
+
+ // Swap out the old UID for the new one
+#if defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT)
+ if (metadata->magic == SLI_PSA_ITS_META_MAGIC_V1) {
+ // Recast as v1 metadata
+ sl_its_file_meta_v1_t* metadata_v1 = (sl_its_file_meta_v1_t*) its_file_buffer;
+ if (metadata_v1->uid != old_uid) {
+ psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ goto exit;
+ }
+ metadata_v1->uid = new_uid;
+ } else
+#endif
+ if (metadata->magic == SLI_PSA_ITS_META_MAGIC_V2) {
+ if (metadata->uid != old_uid) {
+ psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ goto exit;
+ }
+ metadata->uid = new_uid;
+ } else {
+ psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ goto exit;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Encrypt and authenticate the modified data data
+ encrypt_status = encrypt_its_file(metadata,
+ blob->data,
+ plaintext_length,
+ blob,
+ its_file_size - sizeof(sli_its_file_meta_v2_t),
+ &blob_length);
+
+ if (encrypt_status != PSA_SUCCESS) {
+ psa_status = encrypt_status;
+ goto exit;
+ }
+
+ if (blob_length != (its_file_size - sizeof(sli_its_file_meta_v2_t))) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+#endif
+
+ // Overwrite the NVM3 token with the changed buffer
+ status = nvm3_writeData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer,
+ its_file_size);
+ if (status == ECODE_NVM3_OK) {
+ // Update last lookup and report success
+ if (previous_lookup.set) {
+ if (previous_lookup.uid == old_uid) {
+ previous_lookup.uid = new_uid;
+ }
+ }
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ if (its_file_buffer != NULL) {
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size);
+ mbedtls_free(its_file_buffer);
+ }
+ sli_its_release_mutex();
+ return psa_status;
+}
+
+/**
+ * \brief Check if the ITS encryption is enabled
+ */
+psa_status_t sli_psa_its_encrypted(void)
+{
+ #if defined(SLI_PSA_ITS_ENCRYPTED)
+ return PSA_SUCCESS;
+ #else
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif
+}
+
+#if defined(SLI_PSA_ITS_ENCRYPTED) && !defined(SEMAILBOX_PRESENT)
+/**
+ * \brief Set the root key to be used when deriving session keys for ITS encryption.
+ *
+ * \param[in] root_key Buffer containing the root key.
+ * \param[in] root_key_size Size of the root key in bytes. Must be 32 (256 bits).
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The key was successfully set.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The root key was NULL or had an invalid size.
+ * \retval PSA_ERROR_ALREADY_EXISTS The root key has already been initialized.
+ */
+psa_status_t sli_psa_its_set_root_key(uint8_t *root_key, size_t root_key_size)
+{
+ // Check that arguments are valid
+ if (root_key == NULL || root_key_size != sizeof(g_root_key.data)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check that the root key has not already been set
+ // (This is possibly too restrictive. For TrustZone usage this can be enforced by
+ // not exposing the function to NS instead.)
+ if (g_root_key.initialized) {
+ return PSA_ERROR_ALREADY_EXISTS;
+ }
+
+ // Store the provided root key and mark it as initialized
+ memcpy(g_root_key.data, root_key, sizeof(g_root_key.data));
+ g_root_key.initialized = true;
+
+ return PSA_SUCCESS;
+}
+#endif // defined(SLI_PSA_ITS_ENCRYPTED) && !defined(SEMAILBOX_PRESENT)
+
+#else // (!SL_PSA_ITS_SUPPORT_V3_DRIVER)
+
+// -------------------------------------
+// Defines
+#define SLI_PSA_ITS_V3_DRIVER (0x3A)
+#define SLI_PSA_ITS_V2_DRIVER (0x74)
+#define SLI_PSA_ITS_NOT_CHECKED (0xE8)
+#define SLI_PSA_ITS_V2_DRIVER_FLAG_NVM3_ID (SLI_PSA_ITS_NVM3_RANGE_START - 1)
+#define SLI_PSA_ITS_NVM3_INVALID_KEY (0)
+#define SLI_PSA_ITS_NVM3_UNKNOWN_KEY (1)
+
+#if SL_PSA_ITS_MAX_FILES > SLI_PSA_ITS_NVM3_RANGE_SIZE
+#error "Trying to store more ITS files then our NVM3 range allows for"
+#endif
+
+#define SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE 16
+
+// Internal error codes local to this compile unit
+#define SLI_PSA_ITS_ECODE_NO_VALID_HEADER (ECODE_EMDRV_NVM3_BASE - 1)
+#define SLI_PSA_ITS_ECODE_NEEDS_UPGRADE (ECODE_EMDRV_NVM3_BASE - 2)
+
+// -------------------------------------
+// Local global static variables
+
+SLI_STATIC bool nvm3_uid_set_cache_initialized = false;
+SLI_STATIC uint32_t nvm3_uid_set_cache[(SL_PSA_ITS_MAX_FILES + 31) / 32] = { 0 };
+SLI_STATIC uint32_t nvm3_uid_tomb_cache[(SL_PSA_ITS_MAX_FILES + 31) / 32] = { 0 };
+#if SL_PSA_ITS_SUPPORT_V2_DRIVER
+SLI_STATIC uint32_t its_driver_version = SLI_PSA_ITS_NOT_CHECKED;
+#endif // SL_PSA_ITS_SUPPORT_V2_DRIVER
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+// The root key is an AES-256 key, and is therefore 32 bytes.
+#define ROOT_KEY_SIZE (32)
+// The session key is derived from CMAC, which means it is equal to the AES block size, i.e. 16 bytes
+#define SESSION_KEY_SIZE (16)
+
+#if !defined(SEMAILBOX_PRESENT)
+typedef struct {
+ bool initialized;
+ uint8_t data[ROOT_KEY_SIZE];
+} root_key_t;
+
+static root_key_t g_root_key = {
+ .initialized = false,
+ .data = { 0 },
+};
+#endif // !defined(SEMAILBOX_PRESENT)
+
+typedef struct {
+ bool active;
+ psa_storage_uid_t uid;
+ uint8_t data[SESSION_KEY_SIZE];
+} session_key_t;
+
+static session_key_t g_cached_session_key = {
+ .active = false,
+ .uid = 0,
+ .data = { 0 },
+};
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Structs
+
+#if defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+typedef struct {
+ uint32_t magic;
+ psa_storage_uid_t uid;
+ psa_storage_create_flags_t flags;
+} sl_its_file_meta_v1_t;
+#endif // defined(SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+
+// -------------------------------------
+// Local function prototypes
+
+static psa_status_t find_nvm3_id(psa_storage_uid_t uid,
+ bool find_empty_slot,
+ sli_its_file_meta_v2_t* its_file_meta,
+ size_t* its_file_offset,
+ size_t* its_file_size,
+ nvm3_ObjectKey_t * output_nvm3_id);
+static nvm3_ObjectKey_t derive_nvm3_id(psa_storage_uid_t uid);
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+static inline bool object_lives_in_s(const void *object, size_t object_size);
+#endif
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+static psa_status_t derive_session_key(uint8_t *iv,
+ size_t iv_size,
+ uint8_t *session_key,
+ size_t session_key_size);
+
+static psa_status_t sli_decrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length);
+
+static psa_status_t authenticate_its_file(nvm3_ObjectKey_t nvm3_object_id,
+ psa_storage_uid_t *authenticated_uid);
+#endif
+
+#if SL_PSA_ITS_SUPPORT_V2_DRIVER
+static psa_status_t psa_its_get_legacy(nvm3_ObjectKey_t nvm3_object_id,
+ sli_its_file_meta_v2_t* its_file_meta,
+ size_t its_file_size,
+ size_t its_file_offset, void *p_data);
+static psa_status_t detect_legacy_versions();
+static psa_status_t upgrade_all_keys();
+
+#if defined (SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+psa_status_t psa_its_set_v1(psa_storage_uid_t uid,
+ uint32_t data_length,
+ const void *p_data,
+ psa_storage_create_flags_t create_flags);
+#endif // SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL
+#endif // SL_PSA_ITS_SUPPORT_V2_DRIVER
+
+// -------------------------------------
+// Local function definitions
+static inline uint32_t get_index(nvm3_ObjectKey_t key)
+{
+ return (key - (SLI_PSA_ITS_NVM3_RANGE_START)) / 32;
+}
+
+static inline uint32_t get_offset(nvm3_ObjectKey_t key)
+{
+ return (key - (SLI_PSA_ITS_NVM3_RANGE_START)) % 32;
+}
+
+static inline void set_cache(nvm3_ObjectKey_t key)
+{
+ nvm3_uid_set_cache[get_index(key)] |= (1 << get_offset(key));
+ nvm3_uid_tomb_cache[get_index(key)] &= ~(1 << get_offset(key));
+}
+
+static inline void set_tomb(nvm3_ObjectKey_t key)
+{
+ nvm3_uid_tomb_cache[get_index(key)] |= (1 << get_offset(key));
+
+ uint32_t cache_not_empty = 0;
+ for ( size_t i = 0; i < (((SL_PSA_ITS_MAX_FILES) +31) / 32); i++ ) {
+ cache_not_empty += nvm3_uid_set_cache[i];
+ }
+ if (cache_not_empty == 0) {
+ for ( size_t i = 0; i < (((SL_PSA_ITS_MAX_FILES) +31) / 32); i++ ) {
+ nvm3_uid_tomb_cache[i] = 0;
+ }
+ }
+}
+
+#if SL_PSA_ITS_SUPPORT_V2_DRIVER
+static inline psa_status_t write_driver_v3()
+{
+ uint8_t driver_verison = SLI_PSA_ITS_V3_DRIVER;
+ Ecode_t status;
+ status = nvm3_writeData(nvm3_defaultHandle,
+ SLI_PSA_ITS_V2_DRIVER_FLAG_NVM3_ID,
+ &driver_verison, sizeof(uint8_t));
+ if ( status != ECODE_NVM3_OK ) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ return PSA_SUCCESS;
+}
+#endif
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+// If an object of given size is fully encapsulated in a region of
+// secure domain the function returns true.
+static inline bool object_lives_in_s(const void *object, size_t object_size)
+{
+ cmse_address_info_t cmse_flags;
+
+ for (size_t i = 0u; i < object_size; i++) {
+ cmse_flags = cmse_TTA((uint32_t *)object + i);
+ if (!cmse_flags.flags.secure) {
+ return false;
+ }
+ }
+
+ return true;
+}
+#endif
+
+static inline void clear_cache(nvm3_ObjectKey_t key)
+{
+ nvm3_uid_set_cache[get_index(key)] ^= (1 << get_offset(key));
+}
+
+static inline bool lookup_cache(nvm3_ObjectKey_t key)
+{
+ return (bool)((nvm3_uid_set_cache[get_index(key)] >> get_offset(key)) & 0x1);
+}
+
+static inline bool lookup_tomb(nvm3_ObjectKey_t key)
+{
+ return (bool)((nvm3_uid_tomb_cache[get_index(key)] >> get_offset(key)) & 0x1);
+}
+
+static inline nvm3_ObjectKey_t increment_obj_id(nvm3_ObjectKey_t id)
+{
+ return SLI_PSA_ITS_NVM3_RANGE_START + ((id - SLI_PSA_ITS_NVM3_RANGE_START + 1)
+ % SL_PSA_ITS_MAX_FILES);
+}
+static inline nvm3_ObjectKey_t prng(psa_storage_uid_t uid)
+{
+// Squash uid down to a 32 bit word
+ nvm3_ObjectKey_t uid_32 = uid & 0xFFFFFFFF;
+ nvm3_ObjectKey_t xored_32 = (uid >> 32) ^ uid_32;
+ nvm3_ObjectKey_t temp;
+// Accumulate all "entropy" towards the LSB, since that is where we need it
+ for ( size_t i = 1; i < 4; i++ ) {
+ temp = xored_32 ^ (xored_32 >> (8 * i));
+ if ((temp & 0x3) != 0 ) {
+ temp = temp << 2;
+ }
+ uid_32 = (uid_32 + temp);
+ }
+ return uid_32;
+}
+
+static inline nvm3_ObjectKey_t derive_nvm3_id(psa_storage_uid_t uid)
+{
+ return SLI_PSA_ITS_NVM3_RANGE_START + (prng(uid) % (SL_PSA_ITS_MAX_FILES));
+}
+
+static void init_cache(void)
+{
+ size_t num_keys_referenced_by_nvm3;
+ nvm3_ObjectKey_t keys_referenced_by_nvm3[SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE] = { 0 };
+ size_t num_del_keys_from_nvm3;
+ nvm3_ObjectKey_t deleted_keys_from_nvm3[SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE] = { 0 };
+ for (nvm3_ObjectKey_t range_start = SLI_PSA_ITS_NVM3_RANGE_START;
+ range_start < SLI_PSA_ITS_NVM3_RANGE_END;
+ range_start += SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE) {
+ nvm3_ObjectKey_t range_end = range_start + SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE;
+ if (range_end > SLI_PSA_ITS_NVM3_RANGE_END) {
+ range_end = SLI_PSA_ITS_NVM3_RANGE_END;
+ }
+
+ num_keys_referenced_by_nvm3 = nvm3_enumObjects(nvm3_defaultHandle,
+ keys_referenced_by_nvm3,
+ sizeof(keys_referenced_by_nvm3) / sizeof(nvm3_ObjectKey_t),
+ range_start,
+ range_end - 1);
+
+ for (size_t i = 0; i < num_keys_referenced_by_nvm3; i++) {
+ set_cache(keys_referenced_by_nvm3[i]);
+ }
+ num_del_keys_from_nvm3 = nvm3_enumDeletedObjects(nvm3_defaultHandle,
+ deleted_keys_from_nvm3,
+ sizeof(deleted_keys_from_nvm3) / sizeof(nvm3_ObjectKey_t),
+ range_start,
+ range_end - 1);
+ for (size_t i = 0; i < num_del_keys_from_nvm3; i++) {
+ set_tomb(deleted_keys_from_nvm3[i]);
+ }
+ }
+ nvm3_uid_set_cache_initialized = true;
+}
+
+// Read the file metadata for a specific NVM3 ID
+static Ecode_t get_file_metadata(nvm3_ObjectKey_t key,
+ sli_its_file_meta_v2_t* metadata,
+ size_t* its_file_offset,
+ size_t* its_file_size)
+{
+ // Initialize output variables to safe default
+ if (its_file_offset != NULL) {
+ *its_file_offset = 0;
+ }
+ if (its_file_size != NULL) {
+ *its_file_size = 0;
+ }
+
+ Ecode_t status = nvm3_readPartialData(nvm3_defaultHandle,
+ key,
+ metadata,
+ 0,
+ sizeof(sli_its_file_meta_v2_t));
+ if (status != ECODE_NVM3_OK) {
+ return status;
+ }
+
+#if defined (SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+ // Re-read in v1 header format and translate to the latest structure version
+ if (metadata->magic == SLI_PSA_ITS_META_MAGIC_V1) {
+ sl_its_file_meta_v1_t key_meta_v1 = { 0 };
+ status = nvm3_readPartialData(nvm3_defaultHandle,
+ key,
+ &key_meta_v1,
+ 0,
+ sizeof(sl_its_file_meta_v1_t));
+
+ if (status != ECODE_NVM3_OK) {
+ return status;
+ }
+
+ metadata->flags = key_meta_v1.flags;
+ metadata->uid = key_meta_v1.uid;
+ metadata->magic = SLI_PSA_ITS_META_MAGIC_V2;
+
+ if (its_file_offset != NULL) {
+ *its_file_offset = sizeof(sl_its_file_meta_v1_t);
+ }
+
+ status = SLI_PSA_ITS_ECODE_NEEDS_UPGRADE;
+ } else
+#endif
+ {
+ if (its_file_offset != NULL) {
+ *its_file_offset = sizeof(sli_its_file_meta_v2_t);
+ }
+ }
+
+ if (metadata->magic != SLI_PSA_ITS_META_MAGIC_V2) {
+ // No valid header found in this object
+ return SLI_PSA_ITS_ECODE_NO_VALID_HEADER;
+ }
+
+ if (its_file_offset != NULL && its_file_size != NULL) {
+ // Calculate the ITS file size if requested
+ uint32_t obj_type;
+ Ecode_t info_status = nvm3_getObjectInfo(nvm3_defaultHandle,
+ key,
+ &obj_type,
+ its_file_size);
+ if (info_status != ECODE_NVM3_OK) {
+ return info_status;
+ }
+
+ *its_file_size = *its_file_size - *its_file_offset;
+ }
+
+ return status;
+}
+
+#if SL_PSA_ITS_SUPPORT_V2_DRIVER
+static psa_status_t psa_its_get_legacy(nvm3_ObjectKey_t nvm3_object_id,
+ sli_its_file_meta_v2_t* its_file_meta,
+ size_t its_file_size,
+ size_t its_file_offset,
+ void *p_data)
+{
+ Ecode_t status;
+ if (its_file_size == 0) {
+ if (its_file_meta != NULL) {
+ return PSA_ERROR_DATA_INVALID;
+ }
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ sli_its_encrypted_blob_t *blob = NULL;
+ size_t plaintext_length;
+
+ // its_file_size includes size of sli_its_encrypted_blob_t struct
+ blob = (sli_its_encrypted_blob_t*)mbedtls_calloc(1, its_file_size);
+ if (blob == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ memset(blob, 0, its_file_size);
+
+ status = nvm3_readPartialData(nvm3_defaultHandle,
+ nvm3_object_id,
+ blob,
+ its_file_offset,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto cleanup;
+ }
+
+ // Decrypt and authenticate blob
+ psa_status = sli_decrypt_its_file(its_file_meta,
+ blob,
+ its_file_size,
+ blob->data,
+ its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ goto cleanup;
+ }
+
+ if (plaintext_length != (its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto cleanup;
+ }
+
+ if (its_file_size + its_file_offset > 0) {
+ memcpy(p_data, blob->data, its_file_size + its_file_offset);
+ }
+ psa_status = PSA_SUCCESS;
+
+ cleanup:
+ if (blob != NULL) {
+ memset(blob, 0, its_file_size);
+ mbedtls_free(blob);
+ }
+ return psa_status;
+#else
+ // If no encryption is used, just read out the data and write it directly to the output buffer
+ status = nvm3_readPartialData(nvm3_defaultHandle, nvm3_object_id, p_data,
+ its_file_offset, its_file_size);
+
+ if (status != ECODE_NVM3_OK) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ } else {
+ return PSA_SUCCESS;
+ }
+#endif
+}
+
+// Function sets detect the presence of v1 and v2 its driver. If there is something
+// stored in v1/v2 driver range, it sets its_driver_version to SLI_PSA_ITS_V2_DRIVER.
+static psa_status_t detect_legacy_versions()
+{
+ uint8_t driver_verison = 0;
+ Ecode_t status;
+ status = nvm3_readData(nvm3_defaultHandle, SLI_PSA_ITS_V2_DRIVER_FLAG_NVM3_ID,
+ &driver_verison, sizeof(uint8_t));
+ if ((status != ECODE_NVM3_OK) && (status != ECODE_NVM3_ERR_KEY_NOT_FOUND)) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ if (driver_verison == SLI_PSA_ITS_V3_DRIVER) {
+ its_driver_version = SLI_PSA_ITS_V3_DRIVER;
+ return PSA_SUCCESS;
+ }
+
+ size_t num_keys_referenced_by_nvm3;
+
+ nvm3_ObjectKey_t keys_referenced_by_nvm3[SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE] = {
+ 0
+ };
+
+ for ( nvm3_ObjectKey_t range_start = SLI_PSA_ITS_NVM3_RANGE_START_V2_DRIVER;
+ range_start < SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER;
+ range_start += SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE ) {
+ nvm3_ObjectKey_t range_end =
+ range_start + SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE;
+ if (range_end > SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER ) {
+ range_end = SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER;
+ }
+
+ num_keys_referenced_by_nvm3 = nvm3_enumObjects(nvm3_defaultHandle,
+ keys_referenced_by_nvm3,
+ sizeof(keys_referenced_by_nvm3)
+ / sizeof(nvm3_ObjectKey_t),
+ range_start,
+ range_end - 1);
+
+ if (num_keys_referenced_by_nvm3 > 0) {
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+ status = get_file_metadata(keys_referenced_by_nvm3[0],
+ &its_file_meta, &its_file_offset,
+ &its_file_size);
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER) {
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ if ((its_file_meta.magic == SLI_PSA_ITS_META_MAGIC_V1)
+ || (its_file_meta.magic == SLI_PSA_ITS_META_MAGIC_V2)) {
+ its_driver_version = SLI_PSA_ITS_V2_DRIVER;
+ return PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ }
+ }
+ its_driver_version = SLI_PSA_ITS_V3_DRIVER;
+ return PSA_SUCCESS;
+}
+
+static psa_status_t upgrade_all_keys()
+{
+ size_t num_keys_referenced_by_nvm3;
+ nvm3_ObjectKey_t keys_referenced_by_nvm3[SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE] = {
+ 0
+ };
+ Ecode_t status;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_data_size;
+ uint8_t * its_file_buffer = NULL;
+
+ size_t its_file_size = 0;
+ size_t its_file_offset;
+
+ for ( nvm3_ObjectKey_t range_start = SLI_PSA_ITS_NVM3_RANGE_START_V2_DRIVER;
+ range_start < SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER;
+ range_start += SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE ) {
+ nvm3_ObjectKey_t range_end =
+ range_start + SLI_PSA_ITS_CACHE_INIT_CHUNK_SIZE;
+ if (range_end >= SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER ) {
+ range_end = SLI_PSA_ITS_NVM3_RANGE_END_V2_DRIVER;
+ }
+
+ num_keys_referenced_by_nvm3 = nvm3_enumObjects(nvm3_defaultHandle,
+ keys_referenced_by_nvm3,
+ sizeof(keys_referenced_by_nvm3)
+ /
+ sizeof(nvm3_ObjectKey_t),
+ range_start,
+ range_end - 1);
+ for ( size_t i = 0; i < num_keys_referenced_by_nvm3; i++ ) {
+ its_file_size = 0;
+ its_file_offset = 0;
+ status = get_file_metadata(keys_referenced_by_nvm3[i],
+ &(its_file_meta), &its_file_offset,
+ &its_file_size);
+ if ( status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER) {
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ if ( status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Subtract IV and MAC from ITS file as the below checks concern the actual data size
+ its_file_data_size = its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#else
+ its_file_data_size = its_file_size;
+#endif
+
+ if ((its_file_meta.magic != SLI_PSA_ITS_META_MAGIC_V2)
+ && (its_file_meta.magic != SLI_PSA_ITS_META_MAGIC_V1)) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ its_file_buffer = mbedtls_calloc(1, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ psa_status = psa_its_get_legacy(keys_referenced_by_nvm3[i],
+ &(its_file_meta),
+ its_file_size,
+ its_file_offset,
+ its_file_buffer);
+#else
+ psa_status = psa_its_get_legacy(keys_referenced_by_nvm3[i],
+ NULL,
+ its_file_size,
+ its_file_offset,
+ its_file_buffer);
+#endif
+ if (psa_status != PSA_SUCCESS) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+#if defined (SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+ if (its_file_meta.magic == SLI_PSA_ITS_META_MAGIC_V1) {
+ psa_status = psa_its_set_v1(its_file_meta.uid, its_file_data_size,
+ its_file_buffer, its_file_meta.flags);
+ } else if (its_file_meta.magic == SLI_PSA_ITS_META_MAGIC_V2)
+#endif
+ {
+ psa_status = psa_its_set(its_file_meta.uid, its_file_data_size,
+ its_file_buffer, its_file_meta.flags);
+ }
+
+ if ((psa_status != PSA_SUCCESS) && (psa_status
+ != PSA_ERROR_NOT_PERMITTED)) {
+ goto exit;
+ }
+ status = nvm3_deleteObject(nvm3_defaultHandle,
+ keys_referenced_by_nvm3[i]);
+
+ if ( status != ECODE_NVM3_OK ) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ mbedtls_free(its_file_buffer);
+ }
+ }
+ return PSA_SUCCESS;
+
+ exit:
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ mbedtls_free(its_file_buffer);
+ return psa_status;
+}
+
+#if defined (SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL)
+psa_status_t psa_its_set_v1(psa_storage_uid_t uid,
+ uint32_t data_length,
+ const void *p_data,
+ psa_storage_create_flags_t create_flags)
+{
+ if ((data_length != 0U) && (p_data == NULL)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (create_flags != PSA_STORAGE_FLAG_WRITE_ONCE
+ && create_flags != PSA_STORAGE_FLAG_NONE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ && create_flags != PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ if ((create_flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE)
+ && (!object_lives_in_s(p_data, data_length))) {
+ // The flag indicates that this data should not be set by the non-secure domain
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+#endif
+
+ Ecode_t status;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ sl_its_file_meta_v1_t* its_file_meta;
+ nvm3_ObjectKey_t nvm3_object_id = 0;
+ size_t its_file_size = data_length;
+
+ uint8_t *its_file_buffer = mbedtls_calloc(1, its_file_size + sizeof(sl_its_file_meta_v1_t));
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ memset(its_file_buffer, 0, its_file_size + sizeof(sl_its_file_meta_v1_t));
+
+ its_file_meta = (sl_its_file_meta_v1_t *)its_file_buffer;
+ sli_its_file_meta_v2_t its_file_meta_v2;
+
+ sli_its_acquire_mutex();
+ psa_status = find_nvm3_id(uid, true, &its_file_meta_v2, NULL, NULL,
+ &nvm3_object_id);
+ if (psa_status != PSA_SUCCESS) {
+ if (psa_status == PSA_ERROR_DOES_NOT_EXIST) {
+ psa_status = PSA_ERROR_INSUFFICIENT_STORAGE;
+ }
+ goto exit;
+ }
+
+ its_file_meta->magic = SLI_PSA_ITS_META_MAGIC_V1;
+ its_file_meta->uid = uid;
+ its_file_meta->flags = create_flags;
+
+ if (data_length != 0U) {
+ memcpy(its_file_buffer + sizeof(sl_its_file_meta_v1_t), ((uint8_t*)
+ p_data), data_length);
+ }
+
+ status = nvm3_writeData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer, its_file_size + sizeof
+ (sl_its_file_meta_v1_t));
+
+ if (status == ECODE_NVM3_OK) {
+ // Power-loss might occur, however upon boot, the look-up table will be
+ // re-filled as long as the data has been successfully written to NVM3.
+ set_cache(nvm3_object_id);
+ } else {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size + sizeof(sl_its_file_meta_v1_t));
+ mbedtls_free(its_file_buffer);
+ sli_its_release_mutex();
+ return psa_status;
+}
+#endif //SLI_PSA_ITS_SUPPORT_V1_FORMAT_INTERNAL
+#endif //SL_PSA_ITS_SUPPORT_V1_DRIVER
+
+/**
+ * \brief Search through NVM3 for correct uid
+ *
+ * \param[in] uid UID under what we want to store the data
+ * \param[in] find_empty_slot Indicates whether we want to find existing data or empty space for storing new.
+ * \param[out] its_file_meta Meta information of ITS file
+ * \param[out] its_file_offset Offset of ITS file
+ * \param[out] its_file_size Size of ITS file
+ * \param[out] output_nvm3_id NVM3 ID corresponding to UID.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The data with this UID are not stored in NVM3
+ * \retval PSA_ERROR_NOT_PERMITTED The requested operation is not permitted
+ */
+static psa_status_t find_nvm3_id(psa_storage_uid_t uid,
+ bool find_empty_slot,
+ sli_its_file_meta_v2_t* its_file_meta,
+ size_t* its_file_offset,
+ size_t* its_file_size,
+ nvm3_ObjectKey_t * output_nvm3_id)
+{
+ Ecode_t status;
+ nvm3_ObjectKey_t tmp_id = 0;
+ nvm3_ObjectKey_t nvm3_object_id = 0;
+ nvm3_object_id = derive_nvm3_id(uid);
+
+ if (nvm3_uid_set_cache_initialized == false) {
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY) \
+ // With SKL the NVM3 instance must be initialized by the NS app. We therefore check that
+ // it has been opened (which is done on init) rather than actually doing the init.
+ if (!nvm3_defaultHandle->hasBeenOpened) {
+#else
+ if (nvm3_initDefault() != ECODE_NVM3_OK) {
+#endif
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+#if SL_PSA_ITS_SUPPORT_V2_DRIVER
+ if ( its_driver_version == SLI_PSA_ITS_NOT_CHECKED ) {
+ if ( detect_legacy_versions() != PSA_SUCCESS ) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+ if ( its_driver_version == SLI_PSA_ITS_V2_DRIVER ) {
+ psa_status_t psa_status = upgrade_all_keys();
+ if ( psa_status != PSA_SUCCESS ) {
+ return psa_status;
+ }
+ psa_status = write_driver_v3();
+ if ( psa_status != PSA_SUCCESS ) {
+ return psa_status;
+ }
+ } else {
+ init_cache();
+ }
+ } else {
+ init_cache();
+ }
+#else
+ init_cache();
+#endif
+ }
+
+ for (size_t i = 0; i < SL_PSA_ITS_MAX_FILES; ++i ) {
+ if (!lookup_cache(nvm3_object_id)) {
+ // dont exist
+ if (lookup_tomb(nvm3_object_id)) {
+ // tombstone
+ if (tmp_id == 0 ) {
+ // mark first empty space
+ tmp_id = nvm3_object_id;
+ }
+ nvm3_object_id = increment_obj_id(nvm3_object_id);
+ continue;
+ } else {
+ // empty space
+ if (find_empty_slot) {
+ if (tmp_id != 0) {
+ *output_nvm3_id = tmp_id;
+ return PSA_SUCCESS;
+ }
+ *output_nvm3_id = nvm3_object_id;
+ return PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ }
+ }
+ status = get_file_metadata(nvm3_object_id, its_file_meta, its_file_offset,
+ its_file_size);
+
+ if (status == SLI_PSA_ITS_ECODE_NO_VALID_HEADER
+ || status == ECODE_NVM3_ERR_READ_DATA_SIZE) {
+ // we don't expect any other data in our range then PSA ITS files.
+ // delete the file if the magic doesn't match or the object on disk
+ // is too small to even have full metadata.
+ status = nvm3_deleteObject(nvm3_defaultHandle, nvm3_object_id);
+ if (status != ECODE_NVM3_OK) {
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ }
+
+ if (status != ECODE_NVM3_OK
+ && status != SLI_PSA_ITS_ECODE_NEEDS_UPGRADE) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ if (its_file_meta->uid != uid) {
+ nvm3_object_id = increment_obj_id(nvm3_object_id);
+ } else {
+ if (find_empty_slot) {
+ if (its_file_meta->flags == PSA_STORAGE_FLAG_WRITE_ONCE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ || its_file_meta->flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ return PSA_ERROR_NOT_PERMITTED;
+ }
+ }
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // If the UID already exists, authenticate the existing value and make sure the stored UID is the same.
+ // Note that this can potentially induce a significant performance hit.
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ psa_storage_uid_t authenticated_uid = 0;
+ psa_status = authenticate_its_file(nvm3_object_id, &authenticated_uid);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ if (authenticated_uid != uid) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+#endif
+ *output_nvm3_id = nvm3_object_id;
+ return PSA_SUCCESS;
+ }
+ }
+ if (find_empty_slot) {
+ if (tmp_id != 0) {
+ *output_nvm3_id = tmp_id;
+ return PSA_SUCCESS;
+ }
+ }
+ return PSA_ERROR_DOES_NOT_EXIST;
+}
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+static inline void cache_session_key(uint8_t *session_key, psa_storage_uid_t uid)
+{
+ // Cache the session key
+ memcpy(g_cached_session_key.data, session_key, sizeof(g_cached_session_key.data));
+ g_cached_session_key.uid = uid;
+ g_cached_session_key.active = true;
+}
+
+/**
+ * \brief Derive a session key for ITS file encryption from the initialized root key and provided IV.
+ *
+ * \param[in] iv Pointer to array containing the initialization vector to be used in the key derivation.
+ * \param[in] iv_size Size of the IV buffer in bytes. Must be 12 bytes (AES-GCM IV size).
+ * \param[out] session_key Pointer to array where derived session key shall be stored.
+ * \param[out] session_key_size Size of the derived session key output array. Must be at least 32 bytes (AES-256 key size).
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because iv or session_key is NULL, or their sizes are incorrect.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t derive_session_key(uint8_t *iv, size_t iv_size, uint8_t *session_key, size_t session_key_size)
+{
+ if (iv == NULL
+ || iv_size != AES_GCM_IV_SIZE
+ || session_key == NULL
+ || session_key_size < SESSION_KEY_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+
+#if defined(SEMAILBOX_PRESENT)
+ // For HSE devices, use the builtin TrustZone Root Key
+ psa_set_key_id(&attributes, SL_SE_BUILTIN_KEY_TRUSTZONE_ID);
+
+ psa_key_lifetime_t reported_lifetime;
+ psa_drv_slot_number_t reported_slot;
+ status = mbedtls_psa_platform_get_builtin_key(psa_get_key_id(&attributes),
+ &reported_lifetime,
+ &reported_slot);
+
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ psa_set_key_lifetime(&attributes, reported_lifetime);
+
+ uint8_t key_buffer[sizeof(sli_se_opaque_key_context_header_t)];
+ size_t key_buffer_size;
+ status = sli_se_opaque_get_builtin_key(reported_slot,
+ &attributes,
+ key_buffer,
+ sizeof(key_buffer),
+ &key_buffer_size);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+#else // defined(SEMAILBOX_PRESENT)
+ // For VSE devices, use the previously initialized root key
+ if (!g_root_key.initialized) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Prepare root key attributes
+ psa_set_key_algorithm(&attributes, PSA_ALG_CMAC);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, ROOT_KEY_SIZE * 8);
+
+ // Point the key buffer to the global root key
+ uint8_t *key_buffer = (uint8_t*)g_root_key.data;
+ size_t key_buffer_size = sizeof(g_root_key.data);
+#endif // defined(SEMAILBOX_PRESENT)
+
+ // Use CMAC as a key derivation function
+ size_t session_key_length;
+ status = psa_driver_wrapper_mac_compute(
+ &attributes,
+ key_buffer,
+ key_buffer_size,
+ PSA_ALG_CMAC,
+ iv,
+ iv_size,
+ session_key,
+ session_key_size,
+ &session_key_length);
+
+ // Verify that the key derivation was successful before transferring the key to the caller
+ if (status != PSA_SUCCESS || session_key_length != SESSION_KEY_SIZE) {
+ memset(session_key, 0, session_key_size);
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return status;
+}
+
+/**
+ * \brief Encrypt and authenticate ITS data with AES-128-GCM, storing the result in an encrypted blob.
+ *
+ * \param[in] metadata ITS metadata to be used as authenticated additional data.
+ * \param[in] plaintext Pointer to array containing data to be encrypted.
+ * \param[in] plaintext_size Size of provided plaintext data array.
+ * \param[out] blob Pointer to array where the resulting encrypted blob shall be placed.
+ * \param[in] blob_size Size of the output array. Must be at least as big as plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ * \param[out] blob_length Resulting size of the output blob.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+psa_status_t sli_encrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ size_t *blob_length)
+{
+ if (metadata == NULL
+ || (plaintext == NULL && plaintext_size > 0)
+ || blob == NULL
+ || blob_size < plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ || blob_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Generate IV
+ size_t iv_length = 0;
+ psa_status_t psa_status = mbedtls_psa_external_get_random(NULL, blob->iv, AES_GCM_IV_SIZE, &iv_length);
+
+ if (psa_status != PSA_SUCCESS || iv_length != AES_GCM_IV_SIZE) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Prepare encryption key
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_ENCRYPT);
+ psa_set_key_algorithm(&attributes, PSA_ALG_GCM);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, SESSION_KEY_SIZE * 8);
+
+ uint8_t session_key[SESSION_KEY_SIZE];
+ psa_status = derive_session_key(blob->iv, AES_GCM_IV_SIZE, session_key, sizeof(session_key));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ cache_session_key(session_key, metadata->uid);
+
+ // Retrieve data to be encrypted
+ if (plaintext_size != 0U) {
+ memcpy(blob->data, ((uint8_t*)plaintext), plaintext_size);
+ }
+
+ // Encrypt and authenticate blob
+ size_t output_length = 0;
+ psa_status = psa_driver_wrapper_aead_encrypt(
+ &attributes,
+ session_key, sizeof(session_key),
+ PSA_ALG_GCM,
+ blob->iv, sizeof(blob->iv),
+ (uint8_t*)metadata, sizeof(sli_its_file_meta_v2_t), // metadata is AAD
+ blob->data, plaintext_size,
+ blob->data, plaintext_size + AES_GCM_MAC_SIZE, // output == input for in-place encryption
+ &output_length);
+
+ // Clear the local session key immediately after we're done using it
+ memset(session_key, 0, sizeof(session_key));
+
+ if (psa_status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (output_length != plaintext_size + AES_GCM_MAC_SIZE) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *blob_length = output_length + AES_GCM_IV_SIZE;
+
+ return PSA_SUCCESS;
+}
+
+/**
+ * \brief Decrypt and authenticate encrypted ITS data.
+ *
+ * \param[in] metadata ITS metadata to be used as authenticated additional data. Must be identical to the metadata used during encryption.
+ * \param[in] blob Encrypted blob containing data to be decrypted.
+ * \param[in] blob_size Size of the encrypted blob in bytes.
+ * \param[out] plaintext Pointer to array where the decrypted plaintext shall be placed.
+ * \param[in] plaintext_size Size of the plaintext array. Must be equal to sizeof(blob->data) - AES_GCM_MAC_SIZE.
+ * \param[out] plaintext_length Resulting length of the decrypted plaintext.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the decrypted data failed.
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t sli_decrypt_its_file(sli_its_file_meta_v2_t *metadata,
+ sli_its_encrypted_blob_t *blob,
+ size_t blob_size,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ if (metadata == NULL
+ || blob == NULL
+ || blob_size < plaintext_size + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD
+ || (plaintext == NULL && plaintext_size > 0)
+ || plaintext_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Prepare decryption key
+ psa_key_attributes_t attributes = PSA_KEY_ATTRIBUTES_INIT;
+ psa_set_key_usage_flags(&attributes, PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(&attributes, PSA_ALG_GCM);
+ psa_set_key_type(&attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_bits(&attributes, SESSION_KEY_SIZE * 8);
+
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint8_t session_key[SESSION_KEY_SIZE];
+
+ if (g_cached_session_key.active && g_cached_session_key.uid == metadata->uid) {
+ // Use cached session key if it's already set and UID matches
+ memcpy(session_key, g_cached_session_key.data, sizeof(session_key));
+ } else {
+ psa_status = derive_session_key(blob->iv, AES_GCM_IV_SIZE, session_key, sizeof(session_key));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ cache_session_key(session_key, metadata->uid);
+ }
+
+ // Decrypt and authenticate blob
+ size_t output_length = 0;
+ psa_status = psa_driver_wrapper_aead_decrypt(
+ &attributes,
+ session_key, sizeof(session_key),
+ PSA_ALG_GCM,
+ blob->iv, sizeof(blob->iv),
+ (uint8_t*)metadata, sizeof(sli_its_file_meta_v2_t), // metadata is AAD
+ blob->data, plaintext_size + AES_GCM_MAC_SIZE,
+ plaintext, plaintext_size,
+ &output_length);
+
+ // Clear the session key immediately after we're done using it
+ memset(session_key, 0, sizeof(session_key));
+
+ // Invalid signature likely means that NVM data was tampered with
+ if (psa_status == PSA_ERROR_INVALID_SIGNATURE) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ if (psa_status != PSA_SUCCESS
+ || output_length != plaintext_size) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *plaintext_length = output_length;
+
+ return PSA_SUCCESS;
+}
+
+/**
+ * \brief Authenticate encrypted ITS data and return the UID of the ITS file that was authenticated.
+ *
+ * \details NOTE: This function will run sli_decrypt_its_file() internally. The difference from the sli_decrypt_its_file()
+ * function is that authenticate_its_file() reads the NVM3 data, decrypts it in order to authenticate the
+ * stored data, and then discards the plaintext. This is needed since PSA Crypto doesn't support the
+ * GMAC primitive directly, which means we have to run a full GCM decrypt for authentication.
+ *
+ * \param[in] nvm3_object_id The NVM3 id corresponding to the stored ITS file.
+ * \param[out] authenticated_uid UID for the authenticated ITS file.
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the decrypted data failed.
+ * \retval PSA_ERROR_BAD_STATE The root key has not been initialized.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one or more arguments are NULL or of invalid size.
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ */
+static psa_status_t authenticate_its_file(nvm3_ObjectKey_t nvm3_object_id,
+ psa_storage_uid_t *authenticated_uid)
+{
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ sli_its_file_meta_v2_t *its_file_meta = NULL;
+ sli_its_encrypted_blob_t *blob = NULL;
+
+ uint32_t obj_type;
+ size_t its_file_size = 0;
+ Ecode_t status = nvm3_getObjectInfo(nvm3_defaultHandle,
+ nvm3_object_id,
+ &obj_type,
+ &its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ uint8_t *its_file_buffer = mbedtls_calloc(1, its_file_size);
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ memset(its_file_buffer, 0, its_file_size);
+
+ status = nvm3_readData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto cleanup;
+ }
+
+ its_file_meta = (sli_its_file_meta_v2_t*)its_file_buffer;
+ blob = (sli_its_encrypted_blob_t*)(its_file_buffer + sizeof(sli_its_file_meta_v2_t));
+
+ // Decrypt and authenticate blob
+ size_t plaintext_length;
+ psa_status = sli_decrypt_its_file(its_file_meta,
+ blob,
+ its_file_size - sizeof(sli_its_file_meta_v2_t),
+ blob->data,
+ its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ goto cleanup;
+ }
+
+ if (plaintext_length != (its_file_size - sizeof(sli_its_file_meta_v2_t) - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto cleanup;
+ }
+
+ if (authenticated_uid != NULL) {
+ *authenticated_uid = its_file_meta->uid;
+ }
+
+ psa_status = PSA_SUCCESS;
+
+ cleanup:
+
+ // Discard output, as we're only interested in whether the authentication check passed or not.
+ memset(its_file_buffer, 0, its_file_size);
+ mbedtls_free(its_file_buffer);
+
+ return psa_status;
+}
+#endif // defined(SLI_PSA_ITS_ENCRYPTED)
+
+// -------------------------------------
+// Global function definitions
+
+/**
+ * \brief create a new or modify an existing uid/value pair
+ *
+ * \param[in] uid the identifier for the data
+ * \param[in] data_length The size in bytes of the data in `p_data`
+ * \param[in] p_data A buffer containing the data
+ * \param[in] create_flags The flags that the data will be stored with
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_NOT_PERMITTED The operation failed because the provided `uid` value was already created with PSA_STORAGE_FLAG_WRITE_ONCE
+ * \retval PSA_ERROR_NOT_SUPPORTED The operation failed because one or more of the flags provided in `create_flags` is not supported or is not valid
+ * \retval PSA_ERROR_INSUFFICIENT_STORAGE The operation failed because there was insufficient space on the storage medium
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_data`)
+ * is invalid, for example is `NULL` or references memory the caller cannot access
+ * \retval PSA_ERROR_HARDWARE_FAILURE The operation failed because an internal cryptographic operation failed.
+ * \retval PSA_ERROR_INVALID_SIGNATURE The operation failed because the provided `uid` doesnt match the autenticated uid from the storage
+ */
+psa_status_t psa_its_set(psa_storage_uid_t uid,
+ uint32_t data_length,
+ const void *p_data,
+ psa_storage_create_flags_t create_flags)
+{
+ if ((data_length != 0U) && (p_data == NULL)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if ((data_length > NVM3_MAX_OBJECT_SIZE)) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ if (create_flags != PSA_STORAGE_FLAG_WRITE_ONCE
+ && create_flags != PSA_STORAGE_FLAG_NONE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ && create_flags != PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+#endif
+ ) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ if ((create_flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE)
+ && (!object_lives_in_s(p_data, data_length))) {
+ // The flag indicates that this data should not be set by the non-secure domain
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+#endif
+
+ Ecode_t status;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ sli_its_file_meta_v2_t* its_file_meta;
+ nvm3_ObjectKey_t nvm3_object_id = 0;
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ sli_its_encrypted_blob_t *blob = NULL;
+ size_t its_file_size = data_length + SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+ size_t blob_length = 0u;
+#else
+ size_t its_file_size = data_length;
+#endif
+
+ uint8_t *its_file_buffer = mbedtls_calloc(1, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+
+ its_file_meta = (sli_its_file_meta_v2_t *)its_file_buffer;
+
+ sli_its_acquire_mutex();
+ psa_status = find_nvm3_id(uid, true, its_file_meta, NULL, NULL, &nvm3_object_id);
+ if (psa_status != PSA_SUCCESS) {
+ if (psa_status == PSA_ERROR_DOES_NOT_EXIST) {
+ psa_status = PSA_ERROR_INSUFFICIENT_STORAGE;
+ }
+ goto exit;
+ }
+
+ its_file_meta->magic = SLI_PSA_ITS_META_MAGIC_V2;
+ its_file_meta->uid = uid;
+ its_file_meta->flags = create_flags;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Everything after the the file metadata will make up the encrypted & authenticated blob
+ blob = (sli_its_encrypted_blob_t*)(its_file_buffer + sizeof(sli_its_file_meta_v2_t));
+
+ // Encrypt and authenticate the provided data
+ psa_status = sli_encrypt_its_file(its_file_meta,
+ (uint8_t*)p_data,
+ data_length,
+ blob,
+ its_file_size,
+ &blob_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ if (blob_length != its_file_size) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+
+#else
+ if (data_length != 0U) {
+ memcpy(its_file_buffer + sizeof(sli_its_file_meta_v2_t), ((uint8_t*)p_data), data_length);
+ }
+#endif
+
+ status = nvm3_writeData(nvm3_defaultHandle,
+ nvm3_object_id,
+ its_file_buffer, its_file_size + sizeof(sli_its_file_meta_v2_t));
+
+ if (status == ECODE_NVM3_OK) {
+ // Power-loss might occur, however upon boot, the look-up table will be
+ // re-filled as long as the data has been successfully written to NVM3.
+ set_cache(nvm3_object_id);
+ } else {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size + sizeof(sli_its_file_meta_v2_t));
+ mbedtls_free(its_file_buffer);
+ sli_its_release_mutex();
+ return psa_status;
+}
+
+/**
+ * \brief Retrieve the value associated with a provided uid
+ *
+ * \param[in] uid The uid value
+ * \param[in] data_offset The starting offset of the data requested
+ * \param[in] data_length the amount of data requested (and the minimum allocated size of the `p_data` buffer)
+ * \param[out] p_data The buffer where the data will be placed upon successful completion
+ * \param[out] p_data_length The amount of data returned in the p_data buffer
+ *
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided `uid` value was not found in the storage
+ * \retval PSA_ERROR_BUFFER_TOO_SMALL The operation failed because the data associated with provided uid is larger than `data_size`
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_data`, `p_data_length`)
+ * is invalid. For example is `NULL` or references memory the caller cannot access.
+ * In addition, this can also happen if an invalid offset was provided.
+ */
+psa_status_t psa_its_get(psa_storage_uid_t uid,
+ uint32_t data_offset,
+ uint32_t data_length,
+ void *p_data,
+ size_t *p_data_length)
+{
+ if ((data_length != 0U) && (p_data_length == NULL)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (data_length != 0U) {
+ // If the request amount of data is 0, allow invalid pointer of the output buffer.
+ if ((p_data == NULL)
+ || ((uint32_t)p_data < SRAM_BASE)
+ || ((uint32_t)p_data > (SRAM_BASE + SRAM_SIZE - data_length))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ size_t plaintext_length;
+ sli_its_encrypted_blob_t *blob = NULL;
+#endif
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ Ecode_t status;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0u;
+ size_t its_file_data_size = 0u;
+ size_t its_file_offset = 0u;
+ nvm3_ObjectKey_t nvm3_object_id;
+
+ sli_its_acquire_mutex();
+ psa_status = find_nvm3_id(uid, false, &its_file_meta, &its_file_offset, &its_file_size, &nvm3_object_id);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ if (its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE
+ && !object_lives_in_s(p_data, data_length)) {
+ // The flag indicates that this data should not be read back to the non-secure domain
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+#endif
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Subtract IV and MAC from ITS file as the below checks concern the actual data size
+ its_file_data_size = its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#else
+ its_file_data_size = its_file_size;
+#endif
+
+ if (data_length != 0U) {
+ if ((data_offset >= its_file_data_size) && (its_file_data_size != 0U)) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+
+ if ((its_file_data_size == 0U) && (data_offset != 0U)) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ } else {
+ // Allow the offset at the data size boundary if the requested amount of data is zero.
+ if (data_offset > its_file_data_size) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ }
+
+ if (data_length > (its_file_data_size - data_offset)) {
+ *p_data_length = its_file_data_size - data_offset;
+ } else {
+ *p_data_length = data_length;
+ }
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // its_file_size includes size of sli_its_encrypted_blob_t struct
+ blob = (sli_its_encrypted_blob_t*)mbedtls_calloc(1, its_file_size);
+ if (blob == NULL) {
+ psa_status = PSA_ERROR_INSUFFICIENT_MEMORY;
+ goto exit;
+ }
+ memset(blob, 0, its_file_size);
+
+ status = nvm3_readPartialData(nvm3_defaultHandle,
+ nvm3_object_id,
+ blob,
+ its_file_offset,
+ its_file_size);
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ goto exit;
+ }
+
+ // Decrypt and authenticate blob
+ psa_status = sli_decrypt_its_file(&its_file_meta,
+ blob,
+ its_file_size,
+ blob->data,
+ its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD,
+ &plaintext_length);
+
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ if (plaintext_length != (its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD)) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ }
+
+ // Verify that the requested UID is equal to the retrieved and authenticated UID
+ if (uid != its_file_meta.uid) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+
+ if (*p_data_length > 0) {
+ memcpy(p_data, blob->data + data_offset, *p_data_length);
+ }
+ psa_status = PSA_SUCCESS;
+
+ exit:
+ if (blob != NULL) {
+ memset(blob, 0, its_file_size);
+ mbedtls_free(blob);
+ }
+ sli_its_release_mutex();
+#else
+ // If no encryption is used, just read out the data and write it directly to the output buffer
+ status = nvm3_readPartialData(nvm3_defaultHandle, nvm3_object_id, p_data, its_file_offset + data_offset, *p_data_length);
+
+ if (status != ECODE_NVM3_OK) {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+
+ exit:
+ sli_its_release_mutex();
+#endif
+
+ return psa_status;
+}
+
+/**
+ * \brief Retrieve the metadata about the provided uid
+ *
+ * \param[in] uid The uid value
+ * \param[out] p_info A pointer to the `psa_storage_info_t` struct that will be populated with the metadata
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided uid value was not found in the storage
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ * \retval PSA_ERROR_INVALID_ARGUMENT The operation failed because one of the provided pointers(`p_info`)
+ * is invalid, for example is `NULL` or references memory the caller cannot access
+ * \retval PSA_ERROR_INVALID_SIGANTURE The operation failed because authentication of the stored metadata failed.
+ */
+psa_status_t psa_its_get_info(psa_storage_uid_t uid,
+ struct psa_storage_info_t *p_info)
+{
+ if (p_info == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+ nvm3_ObjectKey_t nvm3_object_id;
+
+ sli_its_acquire_mutex();
+ psa_status = find_nvm3_id(uid, false, &its_file_meta, &its_file_offset, &its_file_size, &nvm3_object_id);
+ if (psa_status != PSA_SUCCESS) {
+ sli_its_release_mutex();
+ return psa_status;
+ }
+
+ p_info->flags = its_file_meta.flags;
+ p_info->size = its_file_size;
+
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ // Remove IV and MAC size from file size
+ p_info->size = its_file_size - SLI_ITS_ENCRYPTED_BLOB_SIZE_OVERHEAD;
+#endif
+ sli_its_release_mutex();
+ return PSA_SUCCESS;
+}
+
+/**
+ * \brief Remove the provided key and its associated data from the storage
+ *
+ * \param[in] uid The uid value
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The operation completed successfully
+ * \retval PSA_ERROR_DOES_NOT_EXIST The operation failed because the provided key value was not found in the storage
+ * \retval PSA_ERROR_NOT_PERMITTED The operation failed because the provided key value was created with PSA_STORAGE_FLAG_WRITE_ONCE
+ * \retval PSA_ERROR_STORAGE_FAILURE The operation failed because the physical storage has failed (Fatal error)
+ */
+psa_status_t psa_its_remove(psa_storage_uid_t uid)
+{
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ Ecode_t status;
+ sli_its_file_meta_v2_t its_file_meta = { 0 };
+ size_t its_file_size = 0;
+ size_t its_file_offset = 0;
+ nvm3_ObjectKey_t nvm3_object_id;
+
+ sli_its_acquire_mutex();
+ psa_status = find_nvm3_id(uid, false, &its_file_meta, &its_file_offset, &its_file_size, &nvm3_object_id);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+ if (its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE
+#if defined(TFM_CONFIG_SL_SECURE_LIBRARY)
+ || (its_file_meta.flags == PSA_STORAGE_FLAG_WRITE_ONCE_SECURE_ACCESSIBLE)
+#endif
+ ) {
+ psa_status = PSA_ERROR_NOT_PERMITTED;
+ goto exit;
+ }
+ status = nvm3_deleteObject(nvm3_defaultHandle, nvm3_object_id);
+ if (status == ECODE_NVM3_OK) {
+ // Power-loss might occur, however upon boot, the look-up table will be
+ // re-filled as long as the data has been successfully written to NVM3.
+ clear_cache(nvm3_object_id);
+ set_tomb(nvm3_object_id);
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ exit:
+ sli_its_release_mutex();
+ return psa_status;
+}
+
+// -------------------------------------
+// Silicon Labs extensions
+
+static psa_storage_uid_t psa_its_identifier_of_slot(mbedtls_svc_key_id_t key)
+{
+#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
+ /* Encode the owner in the upper 32 bits. This means that if
+ * owner values are nonzero (as they are on a PSA platform),
+ * no key file will ever have a value less than 0x100000000, so
+ * the whole range 0..0xffffffff is available for non-key files. */
+ uint32_t unsigned_owner_id = MBEDTLS_SVC_KEY_ID_GET_OWNER_ID(key);
+ return ((uint64_t) unsigned_owner_id << 32) | MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key);
+#else
+ /* Use the key id directly as a file name.
+ * psa_is_key_id_valid() in psa_crypto_slot_management.c
+ * is responsible for ensuring that key identifiers do not have a
+ * value that is reserved for non-key files. */
+ return key;
+#endif
+}
+
+psa_status_t sli_psa_its_change_key_id(mbedtls_svc_key_id_t old_id,
+ mbedtls_svc_key_id_t new_id)
+{
+ psa_storage_uid_t old_uid = psa_its_identifier_of_slot(old_id);
+ psa_storage_uid_t new_uid = psa_its_identifier_of_slot(new_id);
+ size_t its_file_size = 0;
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ if (old_id == new_id) {
+ return PSA_SUCCESS;
+ }
+ // Check whether the key to migrate exists on disk
+ struct psa_storage_info_t p_info;
+ status = psa_its_get_info(old_uid, &p_info);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Allocate temporary buffer and cast it to the metadata format
+ uint8_t *its_file_buffer = mbedtls_calloc(1, p_info.size);
+ if (its_file_buffer == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ // Read contents of pre-existing key into the temporary buffer
+ status = psa_its_get(old_uid, 0, p_info.size, its_file_buffer,
+ &its_file_size);
+
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ status = psa_its_set(new_uid, its_file_size, its_file_buffer,
+ p_info.flags);
+
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ status = psa_its_remove(old_uid);
+
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ exit:
+ // Clear and free key buffer before return.
+ memset(its_file_buffer, 0, its_file_size);
+ mbedtls_free(its_file_buffer);
+ return status;
+}
+
+/**
+ * \brief Check if the ITS encryption is enabled
+ */
+psa_status_t sli_psa_its_encrypted(void)
+{
+#if defined(SLI_PSA_ITS_ENCRYPTED)
+ return PSA_SUCCESS;
+#else
+ return PSA_ERROR_NOT_SUPPORTED;
+#endif
+}
+
+#if defined(SLI_PSA_ITS_ENCRYPTED) && !defined(SEMAILBOX_PRESENT)
+/**
+ * \brief Set the root key to be used when deriving session keys for ITS encryption.
+ *
+ * \param[in] root_key Buffer containing the root key.
+ * \param[in] root_key_size Size of the root key in bytes. Must be 32 (256 bits).
+ *
+ * \return A status indicating the success/failure of the operation
+ *
+ * \retval PSA_SUCCESS The key was successfully set.
+ * \retval PSA_ERROR_INVALID_ARGUMENT The root key was NULL or had an invalid size.
+ * \retval PSA_ERROR_ALREADY_EXISTS The root key has already been initialized.
+ */
+psa_status_t sli_psa_its_set_root_key(uint8_t *root_key, size_t root_key_size)
+{
+ // Check that arguments are valid
+ if (root_key == NULL || root_key_size != sizeof(g_root_key.data)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check that the root key has not already been set
+ // (This is possibly too restrictive. For TrustZone usage this can be enforced by
+ // not exposing the function to NS instead.)
+ if (g_root_key.initialized) {
+ return PSA_ERROR_ALREADY_EXISTS;
+ }
+
+ // Store the provided root key and mark it as initialized
+ memcpy(g_root_key.data, root_key, sizeof(g_root_key.data));
+ g_root_key.initialized = true;
+
+ return PSA_SUCCESS;
+}
+#endif // defined(SLI_PSA_ITS_ENCRYPTED) && !defined(SEMAILBOX_PRESENT)
+#endif // (!SL_PSA_ITS_SUPPORT_V3_DRIVER)
+#endif // MBEDTLS_PSA_CRYPTO_STORAGE_C && !MBEDTLS_PSA_ITS_FILE_C
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_key_derivation.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_key_derivation.c
new file mode 100644
index 000000000..54500723a
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_key_derivation.c
@@ -0,0 +1,304 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver Key Derivation functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2023 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+#include "psa/crypto.h"
+#include "sli_mbedtls_omnipresent.h"
+#include "sli_cryptoacc_opaque_types.h"
+#include "sli_psa_driver_common.h"
+#include "cryptoacc_management.h"
+#include "cryptolib_def.h"
+#include "sx_errors.h"
+#include "sx_aes.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Defines
+
+#if defined(SLI_PSA_DRIVER_FEATURE_PBKDF2)
+#define PBKDF2_COUNTER_ENCODING_SIZE (4u)
+
+// -----------------------------------------------------------------------------
+// Static helper functions
+
+/// @brief
+/// Converting a value to a big endian octet string.
+static void uint32_to_octet_string(uint32_t value, uint8_t buffer[4])
+{
+ for (uint8_t i = 0; i < 4; i++) {
+ buffer[i] = (uint8_t)((value >> (8 * (3 - i))) & 0xFF);
+ }
+}
+
+/// @brief
+/// XOR the data pointed to by the two input blocks (of len 16 B). Result is
+/// stored in dk.
+///
+/// @note
+/// This function assumes that both block_t:s point to word-aligned addresses.
+static void xorbuf(block_t dk, block_t u)
+{
+ for (uint32_t i = 0; i < u.len; i += 4) {
+ *(uint32_t*)((uint32_t)dk.addr + i) ^= *(uint32_t*)((uint32_t)u.addr + i);
+ }
+}
+
+// -----------------------------------------------------------------------------
+// Custom implementation of PBKDF2 using AES-CMAC-128-PRF
+
+/// @brief
+/// Perform the PBKDF2 algorithm with AES-CMAC-128-PRF.
+static psa_status_t derive_key_pbkdf2_aes_cmac_128_prf(
+ block_t *password,
+ block_t *salt,
+ uint32_t iterations,
+ uint32_t derived_key_length,
+ block_t *derived_key)
+{
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ // Buffers for storing temporary/partial results of the operation.
+ uint8_t temp_buf_1[AES_MAC_SIZE];
+ block_t temp_blk_1 = block_t_convert(temp_buf_1, AES_MAC_SIZE);
+ uint8_t temp_buf_2[AES_MAC_SIZE];
+ block_t temp_blk_2 = block_t_convert(temp_buf_2, AES_MAC_SIZE);
+
+ // Make sure that we can handle the length of the salt input.
+ if (salt->len > DERIV_MAX_SALT_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Make sure that the output key length is sufficient.
+ if (derived_key->len < derived_key_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Buffer for appending the iteration counter to the input salt before
+ // applying the PRF.
+ uint8_t internal_data_buf[DERIV_MAX_SALT_SIZE + PBKDF2_COUNTER_ENCODING_SIZE]
+ = { 0 };
+ block_t internal_data_blk =
+ block_t_convert(internal_data_buf,
+ salt->len + PBKDF2_COUNTER_ENCODING_SIZE);
+
+ uint8_t *counter_encoding = &internal_data_buf[salt->len];
+
+ // Read the user provided salt into our internal buffer.
+ memcpy(internal_data_buf, salt->addr, salt->len);
+
+ // It is possible that the password provided is not of the expected size for
+ // AES-128. In those cases, we will have to expand the password to 16 bytes;
+ // this is done as described in RFC4615.
+ uint8_t internal_password_buf[AES_KEYSIZE_128] = { 0 };
+ if (password->len != AES_KEYSIZE_128) {
+ block_t internal_password_blk =
+ block_t_convert(internal_password_buf, sizeof(internal_password_buf));
+ // Acquire hardware lock and execute CMAC operation
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ uint32_t sx_ret = sx_aes_cmac_generate(&internal_password_blk,
+ password,
+ &internal_password_blk);
+ status = cryptoacc_management_release();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ *password = internal_password_blk;
+ }
+
+ uint32_t output_key_length = 0;
+ uint32_t i = 1;
+ while (output_key_length < derived_key_length) {
+ // Encode counter value.
+ uint32_to_octet_string(i, counter_encoding);
+
+ // First Block (U_1).
+ // Acquire hardware lock and execute CMAC operation
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ uint32_t sx_ret = sx_aes_cmac_generate(password,
+ &internal_data_blk,
+ &temp_blk_1);
+ status = cryptoacc_management_release();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ memcpy(temp_blk_2.addr, temp_blk_1.addr, AES_MAC_SIZE);
+
+ // Remaining blocks (U_j).
+ for (uint32_t j = 1; j < iterations; j++) {
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_cmac_generate(password, &temp_blk_1, &temp_blk_1);
+ status = cryptoacc_management_release();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ xorbuf(temp_blk_2, temp_blk_1);
+ }
+
+ uint32_t partial_output_length =
+ (derived_key_length - output_key_length >= AES_MAC_SIZE)
+ ? (AES_MAC_SIZE) : (derived_key_length - output_key_length);
+
+ output_key_length += partial_output_length;
+
+ memcpy(derived_key->addr, temp_blk_2.addr, partial_output_length);
+ derived_key->len -= partial_output_length;
+ if (!(derived_key->flags & BLOCK_S_CONST_ADDR)) {
+ derived_key->addr += partial_output_length;
+ }
+
+ i += 1;
+ }
+
+ return PSA_SUCCESS;
+}
+
+psa_status_t sli_cryptoacc_driver_single_shot_pbkdf2(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *key_in_attributes,
+ const uint8_t *key_in_buffer,
+ size_t key_in_buffer_size,
+ const uint8_t* salt,
+ size_t salt_length,
+ const psa_key_attributes_t *key_out_attributes,
+ uint32_t iterations,
+ uint8_t *key_out_buffer,
+ size_t key_out_buffer_size)
+{
+ if (key_in_buffer == NULL
+ || key_in_attributes == NULL
+ || salt == NULL
+ || key_out_attributes == NULL
+ || key_out_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ size_t key_out_size = PSA_BITS_TO_BYTES(psa_get_key_bits(key_out_attributes));
+ psa_status_t psa_status = PSA_ERROR_NOT_SUPPORTED;
+
+ if (key_out_buffer_size < key_out_size) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (iterations == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_lifetime_t lifetime = psa_get_key_lifetime(key_in_attributes);
+ psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime);
+ block_t key_block = NULL_blk;
+
+ switch (location) {
+ case PSA_KEY_LOCATION_LOCAL_STORAGE:
+ {
+#if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ if (PSA_KEY_TYPE_IS_ECC(psa_get_key_type(key_in_attributes))) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+ key_block = block_t_convert(key_in_buffer, key_in_buffer_size);
+ break;
+ }
+
+#if defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+ case PSA_KEY_LOCATION_SL_CRYPTOACC_OPAQUE:
+ {
+ if (key_in_buffer_size < sizeof(sli_cryptoacc_opaque_key_context_t)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // The only opaque key that is currently supported is the PUF key
+ sli_cryptoacc_opaque_key_context_t *key_context =
+ (sli_cryptoacc_opaque_key_context_t *)key_in_buffer;
+ if (key_context->builtin_key_id != 0) {
+ switch (key_context->builtin_key_id) {
+ case SLI_CRYPTOACC_BUILTIN_KEY_PUF_SLOT:
+ // Using this key block as input will make the AES engine use the PUF-
+ // derived key for the operation.
+ // Make sure that the attributes and so on match our expectations
+ if (psa_get_key_bits(key_in_attributes) != 256) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ key_block = AES_KEY1_256;
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ break;
+ }
+#endif // SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+
+ switch (alg) {
+ case PSA_ALG_PBKDF2_AES_CMAC_PRF_128:
+ {
+ #define AES_CMAC_PRF_128_BLOCK_SIZE 128
+ // The out key length can atmost be 128 bits long.
+ if ( !key_out_size || (key_out_size > PSA_BITS_TO_BYTES(AES_CMAC_PRF_128_BLOCK_SIZE)) ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ block_t salt_block = block_t_convert(salt, salt_length);
+ block_t key_out_block = block_t_convert(key_out_buffer, key_out_buffer_size);
+ psa_status = derive_key_pbkdf2_aes_cmac_128_prf(&key_block, &salt_block, iterations, key_out_size, &key_out_block);
+ break;
+ }
+ default:
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ }
+ return psa_status;
+}
+
+#endif // defined(SLI_PSA_DRIVER_FEATURE_PBKDF2)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_trng.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_trng.c
new file mode 100644
index 000000000..472597719
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_driver_trng.c
@@ -0,0 +1,434 @@
+/*******************************************************************************
+ * @file
+ * @brief Driver for TRNG randomness generation through the TRNG peripheral on
+ VSE devices.
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "psa/crypto.h"
+
+#include "cryptoacc_management.h"
+#include "sli_cryptoacc_driver_trng.h"
+
+#include "sx_errors.h"
+#include "cryptolib_types.h"
+#include "sx_trng.h"
+#include "sx_rng.h"
+#include "sx_memcpy.h"
+#include "ba431_config.h"
+
+#include "sl_assert.h"
+#include "em_device.h"
+
+#if (SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP)
+ #include "sl_component_catalog.h"
+ #if defined(SL_CATALOG_POWER_MANAGER_PRESENT)
+ #include "sl_power_manager.h"
+ #else
+ #error "The 'Power Manager' component must be included in the project"
+ #endif // SL_CATALOG_POWER_MANAGER_PRESENT
+#endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+//------------------------------------------------------------------------------
+// Defines
+
+// Perform the TRNG conditioning test on startup.
+#define DO_TRNG_COND_TEST (1)
+
+// Allow performing a few retries before determining that the TRNG is in a
+// seriously bad state and cannot be initialized properly.
+#define MAX_INITIALIZATION_ATTEMPTS (4)
+
+// Magic word written to the random data buffer in RAM. Used as a basic sanity
+// check to make sure that the data actually has been retained during sleep.
+#define BUFFERED_RANDOMNESS_MAGIC_WORD (0xF55E0830)
+
+//------------------------------------------------------------------------------
+// Forward Declarations
+
+static void cryptoacc_trng_get_random_wrapper(void *unused_state,
+ block_t output);
+
+#if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+static void store_trng_fifo_data(sl_power_manager_em_t from,
+ sl_power_manager_em_t to);
+
+#endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+//------------------------------------------------------------------------------
+// Static Constants
+
+static const block_t trng_fifo_block = {
+ .addr = (uint8_t *)ADDR_BA431_FIFO,
+ .len = 0,
+ .flags = BLOCK_S_CONST_ADDR,
+};
+
+#if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+static const sl_power_manager_em_transition_event_info_t buffer_trng_data_event = {
+ .event_mask = SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_EM2
+ | SL_POWER_MANAGER_EVENT_TRANSITION_ENTERING_EM3,
+ .on_event = store_trng_fifo_data,
+};
+
+#endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+//------------------------------------------------------------------------------
+// Global Constants
+
+const struct sx_rng sli_cryptoacc_trng_wrapper = {
+ .param = NULL,
+ .get_rand_blk = cryptoacc_trng_get_random_wrapper,
+};
+
+//------------------------------------------------------------------------------
+// Static Variables
+
+#if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+static sl_power_manager_em_transition_event_handle_t buffer_trng_handle = { 0 };
+
+// Keep all of the buffered randomness in the .bss section. Powering down the
+// RAM bank containing this section would be a clear user error. We prefer to
+// not use the heap for this data since the heap section expands (based on the
+// linkerfile) into RAM banks that technically would be OK to power down.
+static uint32_t buffered_randomness[SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP + 1]
+ = { 0 };
+static size_t n_buffered_random_bytes = 0;
+
+#endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+//------------------------------------------------------------------------------
+// Static Function Definitions
+
+#if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+/*
+ * \brief
+ * Callback function for buffering all bytes currently in the TRNG FIFO.
+ *
+ * \details
+ * Will be called by the Power Manager on EM2/EM3 entry. Before this function
+ * returns, it will unsubscribe to the Power Manager event that caused it to
+ * trigger.
+ *
+ * \attention
+ * This function will disable the TRNG (NDRBG).
+ */
+static void store_trng_fifo_data(sl_power_manager_em_t from,
+ sl_power_manager_em_t to)
+{
+ (void)to;
+ (void)from;
+
+ // It should be safe to assume that the CRYPTOACC resource won't be acquired
+ // by anyone when we're entering EM2/EM2.
+ if (cryptoacc_management_acquire() != PSA_SUCCESS) {
+ return;
+ }
+
+ // We don't want the TRNG to start refilling the FIFO after we've read all of
+ // the remaining data (since we'll necessarily go below the refill threshold).
+ ba431_disable_ndrng();
+
+ block_t buffered_randomness_block =
+ block_t_convert(buffered_randomness,
+ SX_MIN(sizeof(uint32_t) * ba431_read_fifolevel(),
+ SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP * sizeof(uint32_t)));
+
+ memcpy_blk(buffered_randomness_block,
+ trng_fifo_block,
+ buffered_randomness_block.len);
+
+ if (cryptoacc_management_release() != PSA_SUCCESS) {
+ return;
+ }
+
+ n_buffered_random_bytes = buffered_randomness_block.len;
+
+ // Write a magic word to the end of the RAM buffer. This will be checked
+ // before the buffered data is used, as a basic sanity check that the data was
+ // actually retained in EM2/EM3.
+ buffered_randomness[SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP]
+ = BUFFERED_RANDOMNESS_MAGIC_WORD;
+
+ // We are no longer interested in knowing if the device goes to sleep now that
+ // we have buffered the TRNG data.
+ sl_power_manager_unsubscribe_em_transition_event(&buffer_trng_handle);
+}
+
+#endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+static psa_status_t wait_until_trng_is_ready_for_sleep(void)
+{
+ // We do not want to risk clocking down the CRYPTOACC while the ring
+ // oscillators are still spinning, since that means that they will not be
+ // shut down (unless EM2 or lower is entered).
+ uint32_t current_trng_status = BA431_STATE_RESET;
+ while (((current_trng_status = ba431_read_status()) & BA431_STAT_MASK_STATE)
+ != BA431_STATE_FIFOFULLOFF) {
+ switch (current_trng_status & BA431_STAT_MASK_STATE) {
+ case BA431_STATE_STARTUP:
+ case BA431_STATE_RUNNING:
+ case BA431_STATE_FIFOFULLON:
+ // These are the only valid states that we would expect the TRNG to be
+ // in now that we have read randomness from it.
+ break;
+ default:
+ return PSA_ERROR_HARDWARE_FAILURE;
+ break;
+ }
+ }
+
+ // Make sure that no new alarms have been triggered while the FIFO was being
+ // filled. All other (more serious) continous test failures will result in the
+ // TRNG control finite state machine moving to the error state: meaning that
+ // we would have already returned in the switch statement above.
+ if (current_trng_status & BA431_STAT_MASK_PREALM_INT) {
+ // The severity of a preliminary noise alarm is lower than other alarms that
+ // will put the TRNG in an error state. Instead of (potentially) triggering
+ // a system reset, we will make sure to disable the TRNG such that it needs
+ // to be re-initialized before the next use: that will cause startup tests
+ // to run again.
+ ba431_disable_ndrng();
+ }
+
+ return PSA_SUCCESS;
+}
+
+static psa_status_t wait_until_trng_has_started(void)
+{
+ uint32_t ba431_status = 0;
+ ba431_state_t ba431_state = BA431_STATE_RESET;
+
+ // Poll the status until the startup routine has finished.
+ do {
+ ba431_status = ba431_read_status();
+ ba431_state = (ba431_state_t) (ba431_status & BA431_STAT_MASK_STATE);
+ } while ((ba431_state == BA431_STATE_RESET)
+ || (ba431_state == BA431_STATE_STARTUP));
+
+ // Make sure that the NIST-800-90B startup test passed (the fact that we have
+ // left the startup state means that the corresponding AIS31 test also
+ // passed).
+ if (ba431_status & BA431_STAT_MASK_STARTUP_FAIL) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // This would have been caught by the above startup failure check.
+ EFM_ASSERT(ba431_state != BA431_STATE_ERROR);
+
+ return PSA_SUCCESS;
+}
+
+static psa_status_t initialize_trng(void)
+{
+ size_t attempts_remaining = MAX_INITIALIZATION_ATTEMPTS;
+
+ while (attempts_remaining--) {
+ if (sx_trng_init(DO_TRNG_COND_TEST) != CRYPTOLIB_SUCCESS) {
+ continue;
+ }
+
+ // The implementation of sx_trng_get_rand_blk() doesn't actually assert
+ // that the startup check passed successfully (only that the TRNG is no
+ // longer in a reset- or startup state). Therefore, we will implement our
+ // own functions for waiting until the startup has completed and then
+ // getting randomness from the TRNG FIFO.
+ if (wait_until_trng_has_started() != PSA_SUCCESS) {
+ continue;
+ }
+
+ // When we reach this point, the TRNG has started successfully and is ready
+ // to be used.
+ return PSA_SUCCESS;
+ }
+
+ // If we against all odds reach this point, we have not been able to
+ // initialize the TRNG even after multiple retries.
+ return PSA_ERROR_HARDWARE_FAILURE;
+}
+
+static bool trng_needs_initialization(void)
+{
+ // If the TRNG (NDRNG) is not enabled, it most definitely is not initialized.
+ if ((ba431_read_controlreg() & BA431_CTRL_NDRNG_ENABLE) == 0u) {
+ return true;
+ }
+
+ // If a full word of the conditioning (whitening) key is all zero, it probably
+ // hasn't been initialized properly.
+ uint32_t cond_key[4] = { 0 };
+ ba431_read_conditioning_key(cond_key);
+ if ((cond_key[0] == 0)
+ || (cond_key[1] == 0)
+ || (cond_key[2] == 0)
+ || (cond_key[3] == 0)) {
+ return true;
+ }
+
+ // No conditions were met, which means that the TRNG must have already been
+ // initialized.
+ return false;
+}
+
+static psa_status_t cryptoacc_trng_get_random(block_t output)
+{
+ EFM_ASSERT(!(output.flags & BLOCK_S_CONST_ADDR));
+
+ #if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+ // Service as much of the request as possible from the already collected
+ // randomness which was buffered when EM2/EM3 was entered previously.
+ if ((n_buffered_random_bytes > 0)
+ && (buffered_randomness[SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP]
+ == BUFFERED_RANDOMNESS_MAGIC_WORD)) {
+ block_t chunk_block = block_t_convert(output.addr,
+ SX_MIN(output.len,
+ n_buffered_random_bytes));
+ uint8_t *start_of_unused_randomness
+ = (uint8_t *)buffered_randomness
+ + SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP * sizeof(uint32_t)
+ - n_buffered_random_bytes;
+ block_t buffered_randomness_block =
+ block_t_convert(start_of_unused_randomness, n_buffered_random_bytes);
+ memcpy_blk(chunk_block, buffered_randomness_block, chunk_block.len);
+
+ n_buffered_random_bytes -= chunk_block.len;
+ output.len -= chunk_block.len;
+ output.addr += chunk_block.len;
+
+ if (n_buffered_random_bytes == 0) {
+ // Remove the magic word from RAM.
+ buffered_randomness[SL_VSE_MAX_TRNG_WORDS_BUFFERED_DURING_SLEEP] = 0;
+ }
+ if (output.len == 0) {
+ return PSA_SUCCESS;
+ }
+ }
+ #endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+
+ if (trng_needs_initialization()) {
+ // In addition to configuring the TRNG, this function will also wait until
+ // the hardware is fully ready for usage.
+ psa_status_t status = initialize_trng();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ #if SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+ // Now that we have initialized the TRNG, we know that its FIFO level will
+ // never go below the threshold level (outside of the duration of this
+ // function). In order to avoid wasting already generated random words, we
+ // will now register a callback function for storing randomness on EM2/EM3
+ // entry.
+ sl_power_manager_subscribe_em_transition_event(&buffer_trng_handle,
+ &buffer_trng_data_event);
+ #endif // SL_VSE_BUFFER_TRNG_DATA_DURING_SLEEP
+ }
+
+ size_t n_bytes_generated = 0;
+ while (n_bytes_generated < output.len) {
+ // Don't attempt to read more from the TRNG FIFO than the amount of random
+ // words that it currently holds.
+ block_t chunk_block = block_t_convert(
+ output.addr + n_bytes_generated,
+ SX_MIN(output.len - n_bytes_generated,
+ sizeof(uint32_t) * (ba431_read_fifolevel())));
+ memcpy_blk(chunk_block, trng_fifo_block, chunk_block.len);
+ n_bytes_generated += chunk_block.len;
+ }
+
+ // Potential bad states reached by the TRNG during the above randomness
+ // generation will be handled by this function.
+ psa_status_t status = wait_until_trng_is_ready_for_sleep();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ return PSA_SUCCESS;
+}
+
+//------------------------------------------------------------------------------
+// Public Function Definitions
+
+/*
+ * \brief
+ * Wrapper function for getting random data from the TRNG.
+ *
+ * \details
+ * Even though it is declared with a static scope, a function pointer to this
+ * function will be exposed so that it is indirectly usable for other
+ * compilation units as well.
+ *
+ * \note
+ * This function does not assume any responsibility to acquire and release
+ * ownership of the CRYPTOACC peripheral.
+ *
+ * \warning
+ * This function is called from contexts where it is not possible to return an
+ * error code. Any errors are therefore handled by resetting the system. This
+ * is deemed appropriate since a failed randomness generation may have severe
+ * security implications.
+ */
+static void cryptoacc_trng_get_random_wrapper(void *unused_state,
+ block_t output)
+{
+ (void)unused_state;
+
+ if (cryptoacc_trng_get_random(output) != PSA_SUCCESS) {
+ EFM_ASSERT(false);
+ sx_trng_apply_soft_reset();
+ NVIC_SystemReset();
+ }
+}
+
+psa_status_t sli_cryptoacc_trng_get_random(unsigned char *output, size_t len)
+{
+ psa_status_t status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ status = cryptoacc_trng_get_random(block_t_convert(output, len));
+ if (status != PSA_SUCCESS) {
+ // Soft reset such that the next attempt (if the function is called again)
+ // is more likely to succeed.
+ sx_trng_apply_soft_reset();
+ cryptoacc_management_release();
+ return status;
+ }
+
+ return cryptoacc_management_release();
+}
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_builtin_keys.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_builtin_keys.c
new file mode 100644
index 000000000..4cc4ab509
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_builtin_keys.c
@@ -0,0 +1,115 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Builtin key functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+#include "sl_psa_values.h"
+#include
+#include "mbedtls/platform.h"
+#include "sli_cryptoacc_opaque_types.h"
+#include
+
+#if defined(SLI_PSA_DRIVER_FEATURE_PUF_KEY) && defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
+
+psa_status_t sli_cryptoacc_opaque_get_builtin_key(psa_drv_slot_number_t slot_number,
+ psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length)
+{
+ sli_cryptoacc_opaque_key_context_t header = { 0 };
+
+ // Set key type and permissions according to key ID
+ switch (slot_number) {
+ case SLI_CRYPTOACC_BUILTIN_KEY_PUF_SLOT:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_AES);
+ if (PSA_ALG_IS_KEY_DERIVATION(SL_CRYPTOACC_BUILTIN_KEY_PUF_ALG)) {
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_DERIVE);
+ } else if (PSA_ALG_IS_MAC(SL_CRYPTOACC_BUILTIN_KEY_PUF_ALG)) {
+ psa_set_key_usage_flags(attributes, (PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE));
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ psa_set_key_algorithm(attributes, SL_CRYPTOACC_BUILTIN_KEY_PUF_ALG);
+ break;
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+
+ psa_set_key_lifetime(attributes,
+ PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(
+ PSA_KEY_PERSISTENCE_READ_ONLY,
+ PSA_KEY_LOCATION_SL_CRYPTOACC_OPAQUE) );
+
+ // Check the key buffer size after populating the key attributes:
+ // From mbedTLS, psa-driver-interface.md (snippet):
+ //
+ // This entry point may return the following status values:
+ // (...)
+ // * PSA_ERROR_BUFFER_TOO_SMALL: key_buffer_size is insufficient.
+ // In this case, the driver must pass the key's attributes in
+ // *attributes. In particular, get_builtin_key(slot_number,
+ // &attributes, NULL, 0) is a way for the core to obtain the
+ // key's attributes.
+ if (key_buffer_size < sizeof(sli_cryptoacc_opaque_key_context_t)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ header.struct_version = SLI_CRYPTOACC_OPAQUE_KEY_CONTEXT_VERSION;
+ header.builtin_key_id = (uint8_t)slot_number;
+
+ memcpy(key_buffer, &header, sizeof(sli_cryptoacc_opaque_key_context_t));
+ *key_buffer_length = sizeof(sli_cryptoacc_opaque_key_context_t);
+ return PSA_SUCCESS;
+}
+
+#if !defined(PSA_CRYPTO_DRIVER_TEST)
+psa_status_t mbedtls_psa_platform_get_builtin_key(
+ mbedtls_svc_key_id_t key_id,
+ psa_key_lifetime_t *lifetime,
+ psa_drv_slot_number_t *slot_number)
+{
+ switch (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key_id)) {
+ case SL_CRYPTOACC_BUILTIN_KEY_PUF_ID:
+ // Slot number is just the same as the key ID
+ *slot_number = SLI_CRYPTOACC_BUILTIN_KEY_PUF_SLOT;
+ break;
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ *lifetime = PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(
+ PSA_KEY_PERSISTENCE_READ_ONLY,
+ PSA_KEY_LOCATION_SL_CRYPTOACC_OPAQUE);
+ return PSA_SUCCESS;
+}
+
+#endif // !PSA_CRYPTO_DRIVER_TEST
+
+#endif // SLI_PSA_DRIVER_FEATURE_PUF_KEY && MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_mac.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_mac.c
new file mode 100644
index 000000000..6f8c081bb
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_opaque_driver_mac.c
@@ -0,0 +1,150 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver Mac functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2022 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT) && defined(SEPUF_PRESENT)
+
+#include
+
+#include "sli_cryptoacc_opaque_types.h"
+#include "sli_psa_driver_common.h"
+#include "cryptoacc_management.h"
+// Replace inclusion of psa/crypto_xxx.h with the new psa driver common
+// interface header file when it becomes available.
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+#include "psa/crypto_extra.h"
+#include "cryptolib_def.h"
+#include "sx_errors.h"
+#include "sx_aes.h"
+
+psa_status_t sli_cryptoacc_opaque_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+#if defined(MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
+ if (key_buffer == NULL
+ || attributes == NULL
+ || mac == NULL
+ || mac_length == NULL
+ || ((input == NULL) && (input_length > 0))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (key_buffer_size < sizeof(sli_cryptoacc_opaque_key_context_t)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // The only opaque key that is currently supported is the PUF key
+ sli_cryptoacc_opaque_key_context_t *key_context =
+ (sli_cryptoacc_opaque_key_context_t *)key_buffer;
+ block_t key_block = NULL_blk;
+ switch (key_context->builtin_key_id) {
+ case SLI_CRYPTOACC_BUILTIN_KEY_PUF_SLOT:
+ // Using this key block as input will make the AES engine use the PUF-
+ // derived key for the operation.
+ // Make sure that the attributes and so on match our expectations
+ if (psa_get_key_bits(attributes) != 256) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ key_block = AES_KEY1_256;
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status;
+
+ switch (alg) {
+ case PSA_ALG_CMAC:
+ {
+ // The builting key specifies PSA_ALG_CMAC without a truncated length.
+ // Therefore, we only support full size MAC output.
+ if (mac_size < BLK_CIPHER_MAC_SIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ uint8_t sx_mac_buf[BLK_CIPHER_MAC_SIZE];
+ block_t input_block = block_t_convert(input, input_length);
+ block_t mac_block = block_t_convert(sx_mac_buf, sizeof(sx_mac_buf));
+
+ // Acquire hardware lock and execute CMAC operation
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ uint32_t sx_ret = sx_aes_cmac_generate(&key_block,
+ &input_block,
+ &mac_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Output mac if operation is successful
+ if (status == PSA_SUCCESS) {
+ memcpy(mac, sx_mac_buf, BLK_CIPHER_MAC_SIZE);
+ *mac_length = BLK_CIPHER_MAC_SIZE;
+ } else {
+ *mac_length = 0;
+ }
+ memset(sx_mac_buf, 0, BLK_CIPHER_MAC_SIZE);
+ break;
+ }
+ default:
+ status = PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return status;
+
+#else // MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS
+}
+
+#endif // defined(CRYPTOACC_PRESENT) || defined(SEPUF_PRESENT)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_aead.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_aead.c
new file mode 100644
index 000000000..932d95e17
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_aead.c
@@ -0,0 +1,1836 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver AEAD functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sli_cryptoacc_transparent_types.h"
+#include "sli_cryptoacc_transparent_functions.h"
+#include "sli_psa_driver_common.h"
+#include "cryptoacc_management.h"
+// Replace inclusion of psa/crypto_xxx.h with the new psa driver common
+// interface header file when it becomes available.
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+#include "sx_aes.h"
+#include "sx_errors.h"
+#include "cryptolib_types.h"
+
+#include
+
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+static psa_status_t check_aead_parameters(const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg,
+ size_t nonce_length,
+ size_t additional_data_length)
+{
+ size_t tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (tag_length < 4
+ || tag_length > 16
+ || tag_length % 2 != 0
+ || nonce_length < 7
+ || nonce_length > 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // AD are limited to 2^64 bits, so 2^61 bytes.
+ // We need not check if SIZE_MAX (max of size_t) is less than 2^61 (0x2000000000000000)
+#if SIZE_MAX > 0x2000000000000000ull
+ if (additional_data_length >> 61 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+#else // SIZE_MAX > 0x2000000000000000ull
+ (void) additional_data_length;
+#endif // SIZE_MAX > 0x2000000000000000ull
+ if ((tag_length < 4) || (tag_length > 16)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (nonce_length == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+#if !defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ if (nonce_length != AES_IV_GCM_SIZE) {
+ // Libcryptosoc only supports 12 bytes long IVs.
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+#endif // ! SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ break;
+#endif // PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+
+#if !defined(PSA_WANT_ALG_GCM)
+ (void) additional_data_length;
+#endif // !PSA_WANT_ALG_GCM
+
+ switch (psa_get_key_bits(attributes)) {
+ case 128: // fallthrough
+ case 192: // fallthrough
+ case 256:
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+#if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION) && defined(PSA_WANT_ALG_GCM)
+/* Do GCM in software in case the IV isn't 12 bytes, since that's the only
+ * thing the accelerator supports. */
+static psa_status_t sli_cryptoacc_software_gcm(const uint8_t* keybuf,
+ size_t key_length,
+ const uint8_t* nonce,
+ size_t nonce_length,
+ const uint8_t* additional_data,
+ size_t additional_data_length,
+ const uint8_t* input,
+ uint8_t* output,
+ size_t plaintext_length,
+ size_t tag_length,
+ uint8_t* tag,
+ bool encrypt_ndecrypt)
+{
+ // Step 1: calculate H = Ek(0)
+ uint8_t Ek[16] = { 0 };
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key = block_t_convert(keybuf, key_length);
+ block_t data_in = block_t_convert(Ek, sizeof(Ek));
+ block_t data_out = block_t_convert(Ek, sizeof(Ek));
+
+ psa_status_t status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_ecb_encrypt(&key,
+ &data_in,
+ &data_out);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Step 2: calculate IV = GHASH(H, {}, IV)
+ uint8_t iv[16] = { 0 };
+ uint64_t HL[16], HH[16];
+
+ sli_psa_software_ghash_setup(Ek, HL, HH);
+
+ for (size_t i = 0; i < nonce_length; i += 16) {
+ // Mix in IV
+ for (size_t j = 0; j < (nonce_length - i > 16 ? 16 : nonce_length - i); j++) {
+ iv[j] ^= nonce[i + j];
+ }
+ // Update result
+ sli_psa_software_ghash_multiply(HL, HH, iv, iv);
+ }
+
+ iv[12] ^= (nonce_length * 8) >> 24;
+ iv[13] ^= (nonce_length * 8) >> 16;
+ iv[14] ^= (nonce_length * 8) >> 8;
+ iv[15] ^= (nonce_length * 8) >> 0;
+
+ sli_psa_software_ghash_multiply(HL, HH, iv, iv);
+
+ // Step 3: Calculate first counter block for tag generation
+ uint8_t tagbuf[16] = { 0 };
+ data_in = block_t_convert(iv, sizeof(iv));
+ data_out = block_t_convert(tagbuf, sizeof(tagbuf));
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_ecb_encrypt(&key,
+ &data_in,
+ &data_out);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // If we're decrypting, mix in the to-be-checked tag value before transforming
+ if (!encrypt_ndecrypt) {
+ for (size_t i = 0; i < tag_length; i++) {
+ tagbuf[i] ^= tag[i];
+ }
+ }
+
+ // Step 4: increment IV (ripple increment)
+ for (size_t i = 0; i < 16; i++) {
+ iv[15 - i]++;
+
+ if (iv[15 - i] != 0) {
+ break;
+ }
+ }
+
+ // Step 5: Accumulate additional data
+ memset(Ek, 0, sizeof(Ek));
+ for (size_t i = 0; i < additional_data_length; i += 16) {
+ // Mix in additional data as much as we have
+ for (size_t j = 0;
+ j < (additional_data_length - i > 16 ? 16 : additional_data_length - i);
+ j++) {
+ Ek[j] ^= additional_data[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+
+ // Step 6: If we're decrypting, accumulate the ciphertext before it gets transformed
+ if (!encrypt_ndecrypt) {
+ for (size_t i = 0; i < plaintext_length; i += 16) {
+ // Mix in ciphertext
+ for (size_t j = 0;
+ j < (plaintext_length - i > 16 ? 16 : plaintext_length - i);
+ j++) {
+ Ek[j] ^= input[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+ }
+
+ // Step 7: transform data using AES-CTR
+ if (plaintext_length) {
+ data_in = block_t_convert(input, plaintext_length);
+ data_out = block_t_convert(output, plaintext_length);
+ block_t nonce_internal = block_t_convert(iv, sizeof(iv));
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_ctr_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_internal);
+
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Step 8: If we're encrypting, accumulate the ciphertext now
+ if (encrypt_ndecrypt) {
+ for (size_t i = 0; i < plaintext_length; i += 16) {
+ // Mix in ciphertext
+ for (size_t j = 0;
+ j < (plaintext_length - i > 16 ? 16 : plaintext_length - i);
+ j++) {
+ Ek[j] ^= output[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+ }
+
+ // Step 9: add len(A) || len(C) block to tag calculation
+ uint64_t bitlen = additional_data_length * 8;
+ Ek[0] ^= bitlen >> 56;
+ Ek[1] ^= bitlen >> 48;
+ Ek[2] ^= bitlen >> 40;
+ Ek[3] ^= bitlen >> 32;
+ Ek[4] ^= bitlen >> 24;
+ Ek[5] ^= bitlen >> 16;
+ Ek[6] ^= bitlen >> 8;
+ Ek[7] ^= bitlen >> 0;
+
+ bitlen = plaintext_length * 8;
+ Ek[8] ^= bitlen >> 56;
+ Ek[9] ^= bitlen >> 48;
+ Ek[10] ^= bitlen >> 40;
+ Ek[11] ^= bitlen >> 32;
+ Ek[12] ^= bitlen >> 24;
+ Ek[13] ^= bitlen >> 16;
+ Ek[14] ^= bitlen >> 8;
+ Ek[15] ^= bitlen >> 0;
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+
+ // Step 10: calculate tag value
+ for (size_t i = 0; i < tag_length; i++) {
+ tagbuf[i] ^= Ek[i];
+ }
+
+ // Step 11: output tag for encrypt operation, check tag for decrypt
+ if (encrypt_ndecrypt) {
+ memcpy(tag, tagbuf, tag_length);
+ } else {
+ uint8_t accumulator = 0;
+ for (size_t i = 0; i < tag_length; i++) {
+ accumulator |= tagbuf[i];
+ }
+ if (accumulator != 0) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ }
+
+ return PSA_SUCCESS;
+}
+#endif // SLI_PSA_SUPPORT_GCM_IV_CALCULATION && PSA_WANT_ALG_GCM
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length)
+{
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+ if (ciphertext_size <= plaintext_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ size_t tag_length = 0;
+ psa_status_t psa_status = sli_cryptoacc_transparent_aead_encrypt_tag(
+ attributes, key_buffer, key_buffer_size, alg,
+ nonce, nonce_length,
+ additional_data, additional_data_length,
+ plaintext, plaintext_length,
+ ciphertext, plaintext_length, ciphertext_length,
+ &ciphertext[plaintext_length], ciphertext_size - plaintext_length, &tag_length);
+
+ if (psa_status == PSA_SUCCESS) {
+ *ciphertext_length += tag_length;
+ }
+
+ return psa_status;
+
+#else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+ if (attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ if (ciphertext_length < tag_length
+ || ciphertext == NULL
+ || (tag_length > 16)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Split the tag in its own buffer to avoid potential issues when the
+ // plaintext buffer extends into the tag area
+ uint8_t check_tag[16];
+ memcpy(check_tag, &ciphertext[ciphertext_length - tag_length], tag_length);
+
+ return sli_cryptoacc_transparent_aead_decrypt_tag(
+ attributes, key_buffer, key_buffer_size, alg,
+ nonce, nonce_length,
+ additional_data, additional_data_length,
+ ciphertext, ciphertext_length - tag_length,
+ check_tag, tag_length,
+ plaintext, plaintext_size, plaintext_length);
+#else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (key_buffer == NULL
+ || attributes == NULL
+ || nonce == NULL
+ || (additional_data == NULL && additional_data_length > 0)
+ || (plaintext == NULL && plaintext_length > 0)
+ || (plaintext_length > 0 && (ciphertext == NULL || ciphertext_size == 0))
+ || ciphertext_length == NULL || tag_length == NULL
+ || tag_size == 0 || tag == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t key_bits = psa_get_key_bits(attributes);
+ *tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ // Verify that the driver supports the given parameters.
+ psa_status_t status = check_aead_parameters(attributes, alg, nonce_length, additional_data_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Check input-key size.
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check sufficient output buffer size.
+ if ((ciphertext_size < plaintext_length)
+ || (tag_size < *tag_length)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((ciphertext > plaintext) && (ciphertext < (plaintext + plaintext_length))) {
+ memmove(ciphertext, plaintext, plaintext_length);
+ plaintext = ciphertext;
+ }
+
+ psa_status_t return_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+
+ block_t key = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ block_t aad_block = block_t_convert(additional_data, additional_data_length);
+ block_t nonce_internal = block_t_convert(nonce, nonce_length);
+ block_t data_in = block_t_convert(plaintext, plaintext_length);
+ block_t data_out = block_t_convert(ciphertext, plaintext_length);
+ block_t tag_block = block_t_convert(tag, *tag_length);
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+
+ // Check length of plaintext.
+ {
+ unsigned char q = 16 - 1 - (unsigned char) nonce_length;
+ if (q < sizeof(plaintext_length)
+ && plaintext_length >= (1UL << (q * 8))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_ccm_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_internal,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return_status = PSA_SUCCESS;
+ break;
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (nonce_length == AES_IV_GCM_SIZE) {
+ uint8_t tagbuf[16];
+ tag_block = block_t_convert(tagbuf, sizeof(tagbuf));
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_gcm_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_internal,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ // Copy only requested part of computed tag to user output buffer.
+ memcpy(tag, tagbuf, *tag_length);
+ return_status = PSA_SUCCESS;
+ }
+#if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ else {
+ return_status = sli_cryptoacc_software_gcm(key_buffer, PSA_BITS_TO_BYTES(key_bits),
+ nonce, nonce_length,
+ additional_data, additional_data_length,
+ plaintext,
+ ciphertext,
+ plaintext_length,
+ *tag_length,
+ tag,
+ true);
+ }
+#else // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ else {
+ return_status = PSA_ERROR_NOT_SUPPORTED;
+ }
+#endif // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ break;
+#endif // PSA_WANT_ALG_GCM
+ }
+
+ if (return_status == PSA_SUCCESS) {
+ *ciphertext_length = plaintext_length;
+ } else {
+ *ciphertext_length = 0;
+ *tag_length = 0;
+ }
+
+ return return_status;
+
+#else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_size;
+ (void)tag_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt_tag(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ const uint8_t* tag,
+ size_t tag_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+ if (attributes == NULL
+ || key_buffer == NULL
+ || nonce == NULL
+ || (additional_data == NULL && additional_data_length > 0)
+ || (ciphertext == NULL && ciphertext_length > 0)
+ || (plaintext == NULL && plaintext_size > 0)
+ || plaintext_length == NULL
+ || tag == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Verify that the driver supports the given parameters.
+ size_t key_bits = psa_get_key_bits(attributes);
+ psa_status_t status = check_aead_parameters(attributes, alg, nonce_length, additional_data_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Check input-key size.
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check sufficient output buffer size.
+ if (plaintext_size < ciphertext_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((plaintext > ciphertext) && (plaintext < (ciphertext + ciphertext_length))) {
+ memmove(plaintext, ciphertext, ciphertext_length);
+ ciphertext = plaintext;
+ }
+
+ psa_status_t return_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key = NULL_blk;
+ block_t aad_block = NULL_blk;
+ block_t tag_block = NULL_blk;
+ block_t nonce_internal = NULL_blk;
+ block_t data_in = NULL_blk;
+ block_t data_out = NULL_blk;
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+
+ {
+ // Check length of ciphertext.
+ unsigned char q = 16 - 1 - (unsigned char) nonce_length;
+ if (q < sizeof(ciphertext_length)
+ && ciphertext_length >= (1UL << (q * 8))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ key = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ aad_block = block_t_convert(additional_data, additional_data_length);
+ tag_block = block_t_convert(tag, tag_length);
+ nonce_internal = block_t_convert(nonce, nonce_length);
+ data_in = block_t_convert(ciphertext, ciphertext_length);
+ data_out = block_t_convert(plaintext, ciphertext_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_ccm_decrypt_verify(&key,
+ &data_in,
+ &data_out,
+ &nonce_internal,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret == CRYPTOLIB_INVALID_SIGN_ERR) {
+ return_status = PSA_ERROR_INVALID_SIGNATURE;
+ } else if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ *plaintext_length = ciphertext_length;
+ return_status = PSA_SUCCESS;
+ }
+ break;
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ uint8_t tagbuf[16];
+ uint32_t diff = 0;
+
+ if (nonce_length == AES_IV_GCM_SIZE) {
+ key = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ aad_block = block_t_convert(additional_data, additional_data_length);
+ tag_block = block_t_convert(tagbuf, sizeof(tagbuf));
+ nonce_internal = block_t_convert(nonce, nonce_length);
+ data_in = block_t_convert(ciphertext, ciphertext_length);
+ data_out = block_t_convert(plaintext, ciphertext_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_aes_gcm_decrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_internal,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ // Check that the provided tag equals the calculated one
+ // (in constant time). Note that the tag returned by ccm_auth_crypt
+ // is encrypted, so we don't have to decrypt the tag.
+ diff = sli_psa_safer_memcmp(tag, tagbuf, tag_length);
+ sli_psa_zeroize(tagbuf, tag_length);
+
+ if (diff != 0) {
+ return_status = PSA_ERROR_INVALID_SIGNATURE;
+ } else {
+ *plaintext_length = ciphertext_length;
+ return_status = PSA_SUCCESS;
+ }
+
+ break;
+ }
+ }
+#if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ else {
+ return_status = sli_cryptoacc_software_gcm(key_buffer, PSA_BITS_TO_BYTES(key_bits),
+ nonce, nonce_length,
+ additional_data, additional_data_length,
+ ciphertext,
+ plaintext,
+ ciphertext_length,
+ tag_length,
+ (uint8_t*)tag,
+ false);
+ if (return_status == PSA_SUCCESS) {
+ *plaintext_length = ciphertext_length;
+ }
+ }
+#else // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ else {
+ return_status = PSA_ERROR_NOT_SUPPORTED;
+ }
+#endif // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ break;
+ }
+#endif // PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (return_status != PSA_SUCCESS) {
+ *plaintext_length = 0;
+ sli_psa_zeroize(plaintext, plaintext_size);
+ }
+
+ return return_status;
+
+#else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+static psa_status_t transparent_aead_encrypt_decrypt_setup(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ sli_aes_mode_t operation_direction)
+{
+ if (operation == NULL
+ || attributes == NULL
+ || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+
+ size_t key_bits = psa_get_key_bits(attributes);
+ size_t key_size = PSA_BITS_TO_BYTES(key_bits);
+
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (sizeof(operation->key) < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Validate key type.
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Validate tag length.
+ if ( PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes), key_bits, alg) > 16 ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Validate operation.
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined (PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ operation->alg = alg;
+ break;
+ }
+ #endif
+ #if defined (PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ operation->alg = alg;
+ break;
+ }
+ #endif
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ memcpy(operation->key, key_buffer, key_size);
+ operation->key_len = key_size;
+
+ operation->direction = operation_direction;
+
+ return PSA_SUCCESS;
+}
+#endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+psa_status_t sli_cryptoacc_transparent_aead_encrypt_setup(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ return transparent_aead_encrypt_decrypt_setup(operation, attributes, key_buffer, key_buffer_size, alg, SLI_AES_ENC);
+
+ #else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_decrypt_setup(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ return transparent_aead_encrypt_decrypt_setup(operation, attributes, key_buffer, key_buffer_size, alg, SLI_AES_DEC);
+
+ #else // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_set_nonce(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size)
+{
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (operation == NULL || nonce == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Not able to set nonce twice.
+ if (operation->ctx.preinit.nonce_length != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (nonce_size > sizeof(operation->ctx.preinit.nonce)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Validate operation.
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(operation->alg, 0)) {
+#if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ if (nonce_size != 12) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ }
+#endif
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ if (nonce_size < 7 || nonce_size > 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ }
+#endif
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ memcpy(operation->ctx.preinit.nonce, nonce, nonce_size);
+ operation->ctx.preinit.nonce_length = nonce_size;
+ return PSA_SUCCESS;
+
+#else //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+ (void)operation;
+ (void)nonce;
+ (void)nonce_size;
+ return PSA_ERROR_NOT_SUPPORTED;
+#endif
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_set_lengths(sli_cryptoacc_transparent_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ (void)ad_length;
+
+ // Check if operation has already started
+ if (operation->ad_len != 0 || operation->processed_len != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // To pass current PSA Crypto test suite, tag length encoded in the
+ // algorithm needs to be checked at this point.
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(operation->alg, 0)) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ if ((PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) % 2 != 0)
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) < 4
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ operation->total_length = plaintext_length;
+
+ break;
+#endif
+#if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ (void)plaintext_length;
+ if (PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) < 4
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+#endif
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ return PSA_SUCCESS;
+ #else//PSA_WANT_ALG_CCM
+ (void)operation;
+ (void)ad_length;
+ (void)plaintext_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif//PSA_WANT_ALG_CCM
+}
+
+#if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+static psa_status_t cryptoacc_aead_start(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ psa_status_t return_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+
+ psa_algorithm_t alg = operation->alg;
+
+ block_t ctx_out_block = block_t_convert(operation->ctx.xcm_ctx, sizeof(operation->ctx.xcm_ctx));
+
+ block_t key = block_t_convert(operation->key, operation->key_len);
+ block_t aad_block = block_t_convert(input, input_length);
+ block_t nonce_block = block_t_convert(operation->ctx.preinit.nonce, operation->ctx.preinit.nonce_length);
+ block_t data_in = NULL_blk;
+ block_t data_out = NULL_blk;
+
+ // Get ownership.
+ return_status = cryptoacc_management_acquire();
+ if (return_status != PSA_SUCCESS) {
+ return return_status;
+ }
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ uint32_t tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+ if (operation->direction == SLI_AES_ENC) {
+ // CCM finish must have input data, in the case of pt_len = 0 and aad_len != 0 we
+ // need to precompute the tag. (Only needed for encrypt)
+ if (operation->total_length == 0 && input_length != 0) {
+ block_t tag_block = block_t_convert(operation->ctx.tag_buf, tag_length);
+ sx_ret = sx_aes_ccm_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &tag_block,
+ &aad_block);
+
+ goto exit;
+ } else {
+ sx_ret = sx_aes_ccm_encrypt_init(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block,
+ tag_length,
+ operation->total_length);
+ }
+ } else {
+ sx_ret = sx_aes_ccm_decrypt_init(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block,
+ tag_length,
+ operation->total_length);
+ }
+ break;
+ }
+#endif//PSA_WANT_ALG_CCM
+#if defined (PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_init(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_init(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ }
+ goto exit;
+ break;
+#endif//PSA_WANT_ALG_GCM
+ }
+
+ exit:
+
+ // Release ownership.
+ return_status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || return_status != PSA_SUCCESS ) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ operation->ad_len += input_length;
+ return PSA_SUCCESS;
+}
+#endif //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+psa_status_t sli_cryptoacc_transparent_aead_update_ad(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (operation->ad_len > 0 || operation->processed_len > 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // No additional data.
+ if (input_length == 0) {
+ return PSA_SUCCESS;
+ }
+
+ return cryptoacc_aead_start(operation, input, input_length);
+#else //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+#endif//PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_update(sli_cryptoacc_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Check output buffer size is not too small. The required size =
+ // input_length + residual data stored in context object from previous update
+ // The PSA Crypto tests require output buffer can hold the residual bytes in
+ // the last AES block even if these are not processed and written in this call
+ // ( they are postponed to the next call to update or finish ).
+
+ if (output_size < input_length + operation->final_data_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (((input == NULL || output == NULL) && input_length > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check variable overflow
+ if (operation->processed_len > 0xFFFFFFFF - input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ *output_length = 0;
+
+ if (input_length == 0) {
+ return PSA_SUCCESS;
+ }
+
+ psa_algorithm_t alg = operation->alg;
+
+ psa_status_t return_status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+
+ block_t key = block_t_convert(operation->key, operation->key_len);
+
+ block_t ctx_in_block = block_t_convert(operation->ctx.xcm_ctx, sizeof(operation->ctx.xcm_ctx));
+ block_t ctx_out_block = block_t_convert(operation->ctx.xcm_ctx, sizeof(operation->ctx.xcm_ctx));
+
+ block_t input_block = block_t_convert(input, input_length);
+ block_t output_block = block_t_convert(output, input_length);
+
+ // The extra logic is to support non-blocksize input data.
+
+ // Store data in context if there is space in the data buffer.
+ if ((input_length + operation->final_data_length) < 16 && input_length < 16) {
+ if (operation->final_data_length > 16) {
+ // Invalid context.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memcpy(operation->final_data + operation->final_data_length, input, input_length);
+ operation->final_data_length += input_length;
+ return PSA_SUCCESS;
+ }
+
+ if (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0) == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0)) {
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ cryptoacc_aead_start(operation, NULL, 0);
+ }
+ }
+
+ uint8_t input_offset = 0;
+
+#if defined(PSA_WANT_ALG_GCM)
+ block_t aad_block = NULL_blk;
+ block_t nonce_block = NULL_blk;
+
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ // Operation is not initialized.
+ nonce_block = block_t_convert(operation->ctx.preinit.nonce, operation->ctx.preinit.nonce_length);
+ }
+#endif
+
+ if (operation->final_data_length) {
+ if (operation->final_data_length > 16) {
+ // Invalid context.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // If there is data stored in context: fill final_data buffer and process it first.
+ input_offset = 16 - operation->final_data_length;
+ memcpy(operation->final_data + operation->final_data_length, input, input_offset);
+
+#if defined(PSA_WANT_ALG_CCM)
+ if (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0) == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0)) {
+ if (operation->processed_len + 16 == operation->total_length) {
+ operation->final_data_length = 16;
+ return PSA_SUCCESS;
+ }
+ }
+#endif
+
+ block_t input_block_final = block_t_convert(operation->final_data, 16);
+ block_t output_block_final = block_t_convert(output, 16);
+
+ return_status = cryptoacc_management_acquire();
+ if (return_status != PSA_SUCCESS) {
+ return return_status;
+ }
+
+ #if defined(PSA_WANT_ALG_GCM)
+ if (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0) == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0)) {
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ // Not initialized.
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_init(&key,
+ &input_block_final,
+ &output_block_final,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_init(&key,
+ &input_block_final,
+ &output_block_final,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ }
+ } else {
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_update(&key,
+ &input_block_final,
+ &output_block_final,
+ &ctx_in_block,
+ &ctx_out_block);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_update(&key,
+ &input_block_final,
+ &output_block_final,
+ &ctx_in_block,
+ &ctx_out_block);
+ }
+ }
+ }
+ #endif //PSA_WANT_ALG_GCM
+
+ #if defined(PSA_WANT_ALG_CCM)
+ if (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0) == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0)) {
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_ccm_encrypt_update(&key,
+ &input_block_final,
+ &output_block_final,
+ &ctx_in_block,
+ &ctx_out_block);
+ } else {
+ sx_ret = sx_aes_ccm_decrypt_update(&key,
+ &input_block_final,
+ &output_block_final,
+ &ctx_in_block,
+ &ctx_out_block);
+ }
+ }
+ #endif //PSA_WANT_ALG_CCM
+
+ // Release ownership.
+ return_status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || return_status != PSA_SUCCESS ) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ operation->final_data_length = 0;
+ input_length -= input_offset;
+ operation->processed_len += 16;
+ output += 16;
+ *output_length += 16;
+ }
+
+ // Store data in context if there is space in the data buffer.
+ if (input_length < 16 && !operation->final_data_length && input_length < 16) {
+ memcpy(operation->final_data, input + input_offset, input_length);
+ operation->final_data_length = input_length;
+ return PSA_SUCCESS;
+ }
+
+ // Store data that is not a multiple of 16 in context.
+ uint8_t res_data_length = input_length % 16;
+ memcpy(operation->final_data, input + input_offset + (input_length - res_data_length), res_data_length);
+ operation->final_data_length = res_data_length;
+ input_length -= res_data_length;
+
+ // Get ownership.
+ return_status = cryptoacc_management_acquire();
+ if (return_status != PSA_SUCCESS) {
+ return return_status;
+ }
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ // CCM multipart finish will hardfault without input data, so we must always save
+ // some data for the final operation.
+ if ((operation->processed_len + input_length) == operation->total_length) {
+ memcpy(operation->final_data, input + (input_length - 16), 16);
+ operation->final_data_length = 16;
+ input_length -= operation->final_data_length;
+ if (!input_length) {
+ return_status = cryptoacc_management_release();
+ return return_status;
+ }
+ }
+
+ input_block = block_t_convert(input + input_offset, input_length);
+ output_block = block_t_convert(output, input_length);
+
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_ccm_encrypt_update(&key,
+ &input_block,
+ &output_block,
+ &ctx_in_block,
+ &ctx_out_block);
+ } else {
+ sx_ret = sx_aes_ccm_decrypt_update(&key,
+ &input_block,
+ &output_block,
+ &ctx_in_block,
+ &ctx_out_block);
+ }
+ break;
+ #endif //PSA_WANT_ALG_CCM
+ #if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+
+ input_block = block_t_convert(input + input_offset, input_length);
+ output_block = block_t_convert(output, input_length);
+
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ // Not initialized.
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_init(&key,
+ &input_block,
+ &output_block,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_init(&key,
+ &input_block,
+ &output_block,
+ &nonce_block,
+ &ctx_out_block,
+ &aad_block);
+ }
+ } else {
+ if (operation->direction == SLI_AES_ENC) {
+ sx_ret = sx_aes_gcm_encrypt_update(&key,
+ &input_block,
+ &output_block,
+ &ctx_in_block,
+ &ctx_out_block);
+ } else {
+ sx_ret = sx_aes_gcm_decrypt_update(&key,
+ &input_block,
+ &output_block,
+ &ctx_in_block,
+ &ctx_out_block);
+ }
+ }
+ break;
+ #endif //PSA_WANT_ALG_GCM
+ default:
+ (void) cryptoacc_management_release();
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // Release ownership.
+ return_status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || return_status != PSA_SUCCESS ) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *output_length += input_length;
+ operation->processed_len += input_length;
+ return return_status;
+
+ #else //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_finish(sli_cryptoacc_transparent_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (ciphertext_size < operation->final_data_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ uint32_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+
+ if (tag_size < tag_len) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ block_t key = block_t_convert(operation->key, operation->key_len);
+
+ uint8_t tagbuf[16];
+ block_t tag_block = block_t_convert(tagbuf, sizeof(tagbuf));
+
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+
+ psa_algorithm_t alg = operation->alg;
+
+ if (operation->direction != SLI_AES_ENC) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ // Operation is not initialized.
+
+ block_t nonce_block = block_t_convert(operation->ctx.preinit.nonce, operation->ctx.preinit.nonce_length);
+ block_t data_in = NULL_blk;
+ block_t data_out = NULL_blk;
+ block_t aad_block = NULL_blk;
+
+ // Get ownership.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ tag_block = block_t_convert(tagbuf, tag_len);
+ sx_ret = sx_aes_ccm_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &tag_block,
+ &aad_block);
+ *ciphertext_length = 0;
+ break;
+ }
+ #endif //PSA_WANT_ALG_CCM
+ #if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ data_in = block_t_convert(operation->final_data, operation->final_data_length);
+ data_out = block_t_convert(ciphertext, operation->final_data_length);
+ sx_ret = sx_aes_gcm_encrypt(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &tag_block,
+ &aad_block);
+ *ciphertext_length = operation->final_data_length;
+ break;
+ }
+ #endif //PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // Release ownership.
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS ) {
+ *ciphertext_length = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ memcpy(tag, tagbuf, tag_len);
+ return PSA_SUCCESS;
+ }
+
+ #if defined(PSA_WANT_ALG_GCM)
+ uint32_t lena_lenc[4];
+ lena_lenc[0] = __REV(operation->ad_len >> 29);
+ lena_lenc[1] = __REV((operation->ad_len << 3) & 0xFFFFFFFFUL);
+ lena_lenc[2] = __REV((operation->processed_len + operation->final_data_length) >> 29);
+ lena_lenc[3] = __REV(((operation->processed_len + operation->final_data_length) << 3) & 0xFFFFFFFFUL);
+
+ block_t len_a_c = block_t_convert(lena_lenc, sizeof(lena_lenc));
+ #endif
+
+ block_t ctx_in_block = block_t_convert(operation->ctx.xcm_ctx, sizeof(operation->ctx.xcm_ctx));
+
+ block_t data_in_block = block_t_convert(operation->final_data, operation->final_data_length);
+ block_t data_out_block = block_t_convert(ciphertext, operation->final_data_length);
+
+ // Get ownership.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ if (operation->ad_len != 0 && operation->total_length == 0) {
+ // Tag is calculated in update_ad.
+ memcpy(tag, operation->ctx.tag_buf, tag_len);
+ return PSA_SUCCESS;
+ }
+
+ sx_ret = sx_aes_ccm_encrypt_final(
+ &key,
+ &data_in_block,
+ &data_out_block,
+ &ctx_in_block,
+ &tag_block);
+ break;
+ }
+ #endif //PSA_WANT_ALG_CCM
+ #if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ sx_ret = sx_aes_gcm_encrypt_final(
+ &key,
+ &data_in_block,
+ &data_out_block,
+ &ctx_in_block,
+ &tag_block,
+ &len_a_c);
+ break;
+ }
+ #endif //PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // Release ownership.
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ memcpy(tag, tagbuf, tag_size);
+ *ciphertext_length = operation->final_data_length;
+ *tag_length = tag_len;
+ return status;
+
+ #else //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+ (void)operation;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_size;
+ (void)tag_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif //PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM)
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_verify(sli_cryptoacc_transparent_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length)
+{
+ #if defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_GCM)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (tag == NULL || tag_length == 0 ) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ if (plaintext_size < operation->final_data_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ block_t key = block_t_convert(operation->key, operation->key_len);
+
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+
+ psa_algorithm_t alg = operation->alg;
+ if (operation->direction != SLI_AES_DEC) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->ad_len == 0 && operation->processed_len == 0) {
+ // Operation is not initialized.
+ block_t nonce_block = block_t_convert(operation->ctx.preinit.nonce, operation->ctx.preinit.nonce_length);
+ block_t aad_block = NULL_blk;
+ block_t data_in = NULL_blk;
+ block_t data_out = NULL_blk;
+ // Get ownership.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ block_t tag_block = block_t_convert(tag, tag_length);
+ sx_ret = sx_aes_ccm_decrypt_verify(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ *plaintext_length = 0;
+ break;
+ }
+ #endif//PSA_WANT_ALG_CCM
+ #if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ block_t tag_block = block_t_convert(tag, tag_length);
+
+ data_in = block_t_convert(operation->final_data, operation->final_data_length);
+ data_out = block_t_convert(plaintext, operation->final_data_length);
+
+ sx_ret = sx_aes_gcm_decrypt_verify(&key,
+ &data_in,
+ &data_out,
+ &nonce_block,
+ &tag_block,
+ &aad_block);
+ status = cryptoacc_management_release();
+ if (sx_ret == CRYPTOLIB_INVALID_SIGN_ERR) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *plaintext_length = operation->final_data_length;
+ break;
+ }
+ #endif//PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+ }
+
+ #if defined(PSA_WANT_ALG_GCM)
+ uint32_t lena_lenc[4];
+ lena_lenc[0] = __REV(operation->ad_len >> 29);
+ lena_lenc[1] = __REV((operation->ad_len << 3) & 0xFFFFFFFFUL);
+ lena_lenc[2] = __REV((operation->processed_len + operation->final_data_length) >> 29);
+ lena_lenc[3] = __REV(((operation->processed_len + operation->final_data_length) << 3) & 0xFFFFFFFFUL);
+ block_t len_a_c = block_t_convert(lena_lenc, sizeof(lena_lenc));
+ #endif
+
+ block_t ctx_in_block = block_t_convert(operation->ctx.xcm_ctx, sizeof(operation->ctx.xcm_ctx));
+ block_t tag_block = block_t_convert(tag, tag_length);
+
+ block_t data_in_block = block_t_convert(operation->final_data, operation->final_data_length);
+ block_t data_out_block = block_t_convert(plaintext, operation->final_data_length);
+
+ // Get ownership.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ {
+ uint32_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+ if (tag_length != tag_len) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ sx_ret = sx_aes_ccm_decrypt_verify_final(
+ &key,
+ &data_in_block,
+ &data_out_block,
+ &ctx_in_block,
+ &tag_block);
+ break;
+ }
+ #endif//PSA_WANT_ALG_CCM
+ #if defined(PSA_WANT_ALG_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ {
+ sx_ret = sx_aes_gcm_decrypt_verify_final(
+ &key,
+ &data_in_block,
+ &data_out_block,
+ &ctx_in_block,
+ &tag_block,
+ &len_a_c);
+ break;
+ }
+ #endif//PSA_WANT_ALG_GCM
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Release ownership.
+ status = cryptoacc_management_release();
+
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (sx_ret == CRYPTOLIB_INVALID_SIGN_ERR) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ if (sx_ret != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *plaintext_length = operation->final_data_length;
+
+ return PSA_SUCCESS;
+
+ #else//PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+ (void)operation;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+ (void)tag;
+ (void)tag_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif//PSA_WANT_ALG_CCM || PSA_WANT_ALG_GCM
+}
+
+psa_status_t sli_cryptoacc_transparent_aead_abort(sli_cryptoacc_transparent_aead_operation_t *operation)
+{
+ // No state is ever left in HW, so zeroing context should do the trick
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+ return PSA_SUCCESS;
+}
+
+#endif // defined(CRYPTOACC_PRESENT)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_cipher.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_cipher.c
new file mode 100644
index 000000000..59eb04932
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_cipher.c
@@ -0,0 +1,2168 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Cipher functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sli_cryptoacc_transparent_types.h"
+#include "sli_cryptoacc_transparent_functions.h"
+#include "sli_psa_driver_common.h"
+#include "cryptoacc_management.h"
+// Replace inclusion of psa/crypto_xxx.h with the new psa driver commong
+// interface header file when it becomes available.
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+#include "psa/crypto_extra.h"
+#include "cryptolib_def.h"
+#include "sx_errors.h"
+#include "sx_aes.h"
+
+#include
+
+/** Encrypt a message using a symmetric cipher.
+ *
+ * This function encrypts a message with a random IV (initialization
+ * vector). Use the multipart operation interface with a
+ * #psa_cipher_operation_t object to provide other forms of IV.
+ *
+ * \param handle Handle to the key to use for the operation.
+ * It must remain valid until the operation
+ * terminates.
+ * \param alg The cipher algorithm to compute
+ * (\c PSA_ALG_XXX value such that
+ * #PSA_ALG_IS_CIPHER(\p alg) is true).
+ * \param[in] input Buffer containing the message to encrypt.
+ * \param input_length Size of the \p input buffer in bytes.
+ * \param[out] output Buffer where the output is to be written.
+ * The output contains the IV followed by
+ * the ciphertext proper.
+ * \param output_size Size of the \p output buffer in bytes.
+ * \param[out] output_length On success, the number of bytes
+ * that make up the output.
+ *
+ * \retval #PSA_SUCCESS
+ * Success.
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ * \p handle is not compatible with \p alg.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ * \p alg is not supported or is not a cipher algorithm.
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE
+ * \retval #PSA_ERROR_HARDWARE_FAILURE
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED
+ * \retval #PSA_ERROR_STORAGE_FAILURE
+ * \retval #PSA_ERROR_BAD_STATE
+ * The library has not been previously initialized by psa_crypto_init().
+ * It is implementation-dependent whether a failure to initialize
+ * results in this error code.
+ */
+psa_status_t sli_cryptoacc_transparent_cipher_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ psa_status_t status = PSA_ERROR_GENERIC_ERROR;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key;
+ block_t data_in;
+ block_t data_out;
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+#if defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)
+ uint8_t tmp_buf[16] = { 0 };
+#endif
+#if defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)
+ block_t iv_block;
+#endif
+#endif // MBEDTLS_PSA_CRYPTO_C
+ // Argument check
+ if (key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || (iv == NULL && iv_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check key type and size.
+ switch (alg) {
+ case PSA_ALG_ECB_NO_PADDING:
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+#if defined(PSA_WANT_ALG_CTR)
+ case PSA_ALG_CTR:
+#endif
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+#endif
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+#endif
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+#endif
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+#endif
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+#endif
+#endif /* MBEDTLS_PSA_CRYPTO_C */
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (key_buffer_size < (psa_get_key_bits(attributes) / 8)
+ || !(psa_get_key_bits(attributes) == 128
+ || psa_get_key_bits(attributes) == 192
+ || psa_get_key_bits(attributes) == 256)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // 0-length encrypt/decrypt is allowed according to the unit tests in PSA
+ if (input_length == 0) {
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ // Encrypt.
+ switch (alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING: {
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // We cannot do ECB on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(output, input_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ecb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(MBEDTLS_PSA_CRYPTO_C)
+#if defined(PSA_WANT_KEY_TYPE_AES) && defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR: {
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+#if defined(PSA_WANT_ALG_CCM)
+ if (alg == PSA_ALG_CCM_STAR_NO_TAG) {
+ if (iv_length != 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // AES-CCM*-no-tag is basically AES-CTR with preformatted IV
+ tmp_buf[0] = 1;
+ memcpy(&tmp_buf[1], iv, 13);
+ tmp_buf[14] = 0;
+ tmp_buf[15] = 1;
+ iv_block = block_t_convert(tmp_buf, AES_IV_SIZE);
+ } else
+#endif
+ {
+ if (iv_length != AES_IV_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ iv_block = block_t_convert(iv, AES_IV_SIZE);
+ }
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(output, input_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ctr_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB: {
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (iv_length != AES_IV_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Copy final input bytes before they are overwritten (in case of overlap with output buffer).
+ memcpy(tmp_buf, input + (input_length / 16) * 16, input_length % 16);
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+
+ size_t input_length_full_blocks = (input_length / 16) * 16;
+
+ // Process full blocks.
+ if (input_length_full_blocks > 0) {
+ iv_block = block_t_convert(iv, AES_IV_SIZE);
+ data_in = block_t_convert(input, input_length_full_blocks);
+ data_out = block_t_convert(output,
+ input_length_full_blocks);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cfb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process final bytes.
+ if (input_length % 16 != 0) {
+ iv_block = block_t_convert(&output[input_length_full_blocks - 16],
+ AES_IV_SIZE);
+ data_in = block_t_convert(tmp_buf, 16);
+ data_out = block_t_convert(tmp_buf, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cfb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output + input_length_full_blocks,
+ tmp_buf,
+ input_length % 16);
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB: {
+ uint8_t final_block[16];
+
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (iv_length != AES_IV_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Copy final input bytes before they are overwritten (in case of overlap with output buffer).
+ memcpy(final_block, input + (input_length / 16) * 16, input_length % 16);
+
+ // Copy IV to tmp buf in order to avoid overwriting it with intermediate IV.
+ memcpy(tmp_buf, iv, AES_IV_SIZE);
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ iv_block = block_t_convert(tmp_buf, AES_IV_SIZE);
+
+ size_t input_length_full_blocks = (input_length / 16) * 16;
+
+ // Process full blocks.
+ if (input_length_full_blocks > 0) {
+ data_in = block_t_convert(input, input_length_full_blocks);
+ data_out = block_t_convert(output, input_length_full_blocks);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ofb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process leftover bytes.
+ if (input_length % 16 != 0) {
+ data_in = block_t_convert(final_block, 16);
+ data_out = block_t_convert(final_block, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ofb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output + input_length_full_blocks,
+ final_block,
+ input_length % 16);
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING) || defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_NO_PADDING:
+ // We cannot do CBC without padding on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // fall through
+ case PSA_ALG_CBC_PKCS7: {
+ uint8_t final_block[16];
+
+ // Check buffer sizes.
+ if (alg == PSA_ALG_CBC_NO_PADDING) {
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ } else {
+ if (output_size < (input_length & ~0xF) + 16) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ }
+
+ if (iv_length != AES_IV_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Copy IV to tmp buf in order to avoid overwriting it with intermediate IV.
+ memcpy(tmp_buf, iv, AES_IV_SIZE);
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ iv_block = block_t_convert(tmp_buf, AES_IV_SIZE);
+ data_in = block_t_convert(input, input_length & ~0xF);
+ data_out = block_t_convert(output, input_length & ~0xF);
+
+ // Store last block (if non-blocksize input-length) to temporary buffer to be used in padding.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ memcpy(final_block,
+ &input[input_length & ~0xF],
+ input_length & 0xF);
+ }
+
+ if ((input_length & ~0xF) > 0) {
+ // CBC-encrypt all but the last block.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t *)&key,
+ (const block_t *)&data_in,
+ &data_out,
+ (const block_t *)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process final block.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ // Add PKCS7 padding.
+ memset(&final_block[input_length & 0xF],
+ 16 - (input_length & 0xF),
+ 16 - (input_length & 0xF));
+
+ // CBC-encrypt the last block.
+ data_in = block_t_convert(final_block, 16);
+ data_out = block_t_convert(final_block, 16);
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t *)&key,
+ (const block_t *)&data_in,
+ &data_out,
+ (const block_t *)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Copy to output.
+ memcpy(&output[(input_length & ~0xF)],
+ final_block,
+ 16);
+
+ *output_length = (input_length & ~0xF) + 16;
+ } else {
+ *output_length = input_length;
+ }
+ break;
+ }
+#endif // PSA_WANT_ALG_CBC_PKCS7 || PSA_WANT_ALG_CBC_NO_PADDING
+#endif /* MBEDTLS_PSA_CRYPTO_C */
+ default:
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_* && PSA_WANT_KEY_TYPE_AES
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_* && PSA_WANT_KEY_TYPE_AES
+}
+
+/** Decrypt a message using a symmetric cipher.
+ *
+ * This function decrypts a message encrypted with a symmetric cipher.
+ *
+ * \param handle Handle to the key to use for the operation.
+ * It must remain valid until the operation
+ * terminates.
+ * \param alg The cipher algorithm to compute
+ * (\c PSA_ALG_XXX value such that
+ * #PSA_ALG_IS_CIPHER(\p alg) is true).
+ * \param[in] input Buffer containing the message to decrypt.
+ * This consists of the IV followed by the
+ * ciphertext proper.
+ * \param input_length Size of the \p input buffer in bytes.
+ * \param[out] output Buffer where the plaintext is to be written.
+ * \param output_size Size of the \p output buffer in bytes.
+ * \param[out] output_length On success, the number of bytes
+ * that make up the output.
+ *
+ * \retval #PSA_SUCCESS
+ * Success.
+ * \retval #PSA_ERROR_INVALID_HANDLE
+ * \retval #PSA_ERROR_NOT_PERMITTED
+ * \retval #PSA_ERROR_INVALID_ARGUMENT
+ * \p handle is not compatible with \p alg.
+ * \retval #PSA_ERROR_NOT_SUPPORTED
+ * \p alg is not supported or is not a cipher algorithm.
+ * \retval #PSA_ERROR_BUFFER_TOO_SMALL
+ * \retval #PSA_ERROR_INSUFFICIENT_MEMORY
+ * \retval #PSA_ERROR_COMMUNICATION_FAILURE
+ * \retval #PSA_ERROR_HARDWARE_FAILURE
+ * \retval #PSA_ERROR_STORAGE_FAILURE
+ * \retval #PSA_ERROR_CORRUPTION_DETECTED
+ * \retval #PSA_ERROR_BAD_STATE
+ * The library has not been previously initialized by psa_crypto_init().
+ * It is implementation-dependent whether a failure to initialize
+ * results in this error code.
+ */
+psa_status_t sli_cryptoacc_transparent_cipher_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ psa_status_t status = PSA_ERROR_GENERIC_ERROR;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key;
+ block_t data_in;
+ block_t data_out;
+
+#if defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)
+ block_t iv_block;
+#endif
+#if defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)
+ uint8_t tmp_buf[16];
+#endif
+
+ // Argument check
+ if (key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check key type and size.
+ switch (alg) {
+ case PSA_ALG_ECB_NO_PADDING:
+#if defined(PSA_WANT_ALG_CTR)
+ case PSA_ALG_CTR:
+#endif
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+#endif
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+#endif
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+#endif
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+#endif
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+#endif
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (key_buffer_size < (psa_get_key_bits(attributes) / 8)
+ || !(psa_get_key_bits(attributes) == 128
+ || psa_get_key_bits(attributes) == 192
+ || psa_get_key_bits(attributes) == 256)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // 0-length encrypt/decrypt is allowed according to the unit tests in Mbed TLS.
+ if (input_length == 0) {
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+ // Only passing an IV should also be OK (all modes use an IV except ECB).
+ if ((input_length == AES_IV_SIZE)
+ && (alg != PSA_ALG_ECB_NO_PADDING)) {
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ switch (alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING: {
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // We cannot do ECB on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(output, input_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ecb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR: {
+ // Check buffer sizes.
+#if defined(PSA_WANT_ALG_CCM)
+ if (alg == PSA_ALG_CCM_STAR_NO_TAG) {
+ if (output_size < input_length - 13) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // AES-CCM*-no-tag is basically AES-CTR with preformatted IV
+ tmp_buf[0] = 1;
+ memcpy(&tmp_buf[1], input, 13);
+ tmp_buf[14] = 0;
+ tmp_buf[15] = 1;
+ iv_block = block_t_convert(tmp_buf, AES_IV_SIZE);
+
+ input += 13;
+ input_length -= 13;
+ } else
+#endif
+ {
+ if (output_size < input_length - AES_IV_SIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ iv_block = block_t_convert(input, AES_IV_SIZE);
+
+ input += AES_IV_SIZE;
+ input_length -= AES_IV_SIZE;
+ }
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(output, input_length);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ctr_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *output_length = input_length;
+ break;
+ }
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB: {
+ // Check buffer sizes.
+ if (output_size < input_length - AES_IV_SIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+
+ size_t input_length_full_blocks = ((input_length - AES_IV_SIZE) / 16) * 16;
+
+ // Process full blocks.
+ if (input_length_full_blocks > 0) {
+ iv_block = block_t_convert(input, AES_IV_SIZE);
+ data_in = block_t_convert(input + AES_IV_SIZE,
+ input_length_full_blocks);
+ data_out = block_t_convert(output, input_length_full_blocks);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cfb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process final bytes.
+ if (input_length % 16 != 0) {
+ iv_block = block_t_convert(input + input_length_full_blocks,
+ AES_IV_SIZE);
+ data_in = block_t_convert(input + AES_IV_SIZE + input_length_full_blocks,
+ 16);
+ data_out = block_t_convert(tmp_buf, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cfb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output + input_length_full_blocks,
+ tmp_buf,
+ input_length % 16);
+ }
+
+ *output_length = input_length - AES_IV_SIZE;
+ break;
+ }
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB: {
+ // Check buffer sizes.
+ if (output_size < input_length - AES_IV_SIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Move IV into tmp buffer in order to avoid messing up output (in case of overlap with input).
+ memcpy(tmp_buf, input, AES_IV_SIZE);
+
+ key = block_t_convert(key_buffer, key_buffer_size);
+ iv_block = block_t_convert(tmp_buf, AES_IV_SIZE);
+
+ size_t input_length_full_blocks = ((input_length - AES_IV_SIZE) / 16) * 16;
+
+ // Process full blocks.
+ if (input_length_full_blocks > 0) {
+ data_in = block_t_convert(input + AES_IV_SIZE,
+ input_length_full_blocks);
+ data_out = block_t_convert(output, input_length_full_blocks);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ofb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process final bytes.
+ if (input_length % 16 != 0) {
+ data_in = block_t_convert(input + AES_IV_SIZE + input_length_full_blocks,
+ 16);
+ data_out = block_t_convert(tmp_buf, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_ofb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output + input_length_full_blocks,
+ tmp_buf,
+ input_length % 16);
+ }
+
+ *output_length = input_length - AES_IV_SIZE;
+ break;
+ }
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING) || defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_NO_PADDING:
+ // fall through
+ case PSA_ALG_CBC_PKCS7: {
+ size_t input_length_full_blocks;
+ uint8_t iv_buf[AES_IV_SIZE];
+
+ // We cannot do CBC decryption on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (alg == PSA_ALG_CBC_NO_PADDING) {
+ if (output_size < input_length - AES_IV_SIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ input_length_full_blocks = ((input_length - AES_IV_SIZE) / 16) * 16;
+ } else {
+ // Check output has enough room for at least n-1 blocks.
+ if (input_length < AES_IV_SIZE + 16
+ || output_size < (input_length - AES_IV_SIZE - 16)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ input_length_full_blocks = ((input_length - AES_IV_SIZE - 16) / 16) * 16;
+ }
+
+ // Write IV to temporary buf to be used by sx_aes_cbc_decrypt_update.
+ memcpy(iv_buf, input, AES_IV_SIZE);
+ key = block_t_convert(key_buffer, key_buffer_size);
+ iv_block = block_t_convert(iv_buf, AES_IV_SIZE);
+
+ if (input_length_full_blocks > 0) {
+ data_in = block_t_convert(input + AES_IV_SIZE,
+ input_length_full_blocks);
+ data_out = block_t_convert(output, input_length_full_blocks);
+
+ // CBC-decrypt all but the last block.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t *)&key,
+ (const block_t *)&data_in,
+ &data_out,
+ (const block_t *)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Process final block.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ // Store last block to temporary buffer to be used in removing the padding.
+ memcpy(tmp_buf, &input[input_length - 16], 16);
+
+ data_in = block_t_convert(tmp_buf, 16);
+ data_out = block_t_convert(tmp_buf, 16);
+
+ // CBC-decrypt the last block.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t *)&key,
+ (const block_t *)&data_in,
+ &data_out,
+ (const block_t *)&iv_block,
+ &iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Check all padding bytes.
+ size_t pad_bytes = 0;
+ status = sli_psa_validate_pkcs7_padding(tmp_buf,
+ 16,
+ &pad_bytes);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (output_size < (input_length - AES_IV_SIZE - pad_bytes)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Copy non-padding bytes.
+ memcpy(&output[input_length_full_blocks], tmp_buf, 16 - pad_bytes);
+
+ *output_length = input_length - AES_IV_SIZE - pad_bytes;
+ } else {
+ *output_length = input_length - AES_IV_SIZE;
+ }
+ break;
+ }
+#endif // PSA_WANT_ALG_CBC_PKCS7 || PSA_WANT_ALG_CBC_NO_PADDING
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_* && PSA_WANT_KEY_TYPE_AES
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_* && PSA_WANT_KEY_TYPE_AES
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_encrypt_setup(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context.
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_cipher_operation_t));
+
+ // Set up context.
+ memcpy(&operation->alg, &alg, sizeof(alg));
+ operation->direction = SLI_AES_ENC;
+
+ // Validate combination of key and algorithm.
+ switch (alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CTR)
+ case PSA_ALG_CTR:
+#endif // PSA_WANT_ALG_CTR
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+#endif // PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+#endif // PSA_WANT_ALG_CBC_PKCS7
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Copy key into context.
+ switch (psa_get_key_bits(attributes)) {
+ case 128:
+ if (key_buffer_size < 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 16);
+ operation->key_len = 16;
+ break;
+ case 192:
+ if (key_buffer_size < 24) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 24);
+ operation->key_len = 24;
+ break;
+ case 256:
+ if (key_buffer_size < 32) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 32);
+ operation->key_len = 32;
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_decrypt_setup(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context.
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_cipher_operation_t));
+
+ // Set up context.
+ memcpy(&operation->alg, &alg, sizeof(alg));
+ operation->direction = SLI_AES_DEC;
+
+ // Validate combination of key and algorithm.
+ switch (alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CTR)
+ case PSA_ALG_CTR:
+#endif // PSA_WANT_ALG_CTR
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+#endif // PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+#endif // PSA_WANT_ALG_CBC_PKCS7
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Copy key into context.
+ switch (psa_get_key_bits(attributes)) {
+ case 128:
+ if (key_buffer_size < 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 16);
+ operation->key_len = 16;
+ break;
+ case 192:
+ if (key_buffer_size < 24) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 24);
+ operation->key_len = 24;
+ break;
+ case 256:
+ if (key_buffer_size < 32) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, 32);
+ operation->key_len = 32;
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_set_iv(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ if (operation == NULL || iv == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (iv_length > sizeof(operation->iv)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->iv_len != 0) {
+ // IV was set previously.
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (operation->key_len == 0) {
+ // context hasn't been properly initialised.
+ return PSA_ERROR_BAD_STATE;
+ }
+
+#if defined(PSA_WANT_ALG_CCM)
+ if (operation->alg == PSA_ALG_CCM_STAR_NO_TAG) {
+ // Preformat the IV for CCM*-no-tag here, such that the remainder
+ // of the processing for this algorithm boils down to AES-CTR
+ if (iv_length != 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ operation->iv[0] = 1;
+ memcpy(&operation->iv[1], iv, iv_length);
+ operation->iv[14] = 0;
+ operation->iv[15] = 1;
+ operation->iv_len = 16;
+ } else
+#endif // PSA_WANT_ALG_CCM
+ if (operation->alg != PSA_ALG_ECB_NO_PADDING) {
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ operation->iv_len = iv_length;
+ memcpy(operation->iv, iv, iv_length);
+ } else {
+ if (iv_length > 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+
+ (void)operation;
+ (void)iv;
+ (void)iv_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_update(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ psa_status_t status = PSA_ERROR_GENERIC_ERROR;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key;
+ block_t data_in;
+ block_t data_out;
+
+ // Argument check.
+ if (operation == NULL
+ || (input == NULL && input_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check if IV has been set.
+ if ((operation->alg != PSA_ALG_ECB_NO_PADDING)
+ && (operation->iv_len == 0)) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+#if defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB)
+ uint8_t tmp_buf[16];
+ block_t tmp_iv_block = block_t_convert(tmp_buf, 16);
+#endif
+#if defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)
+ block_t iv_block = block_t_convert(operation->iv, operation->iv_len);
+#endif
+
+ // Figure out whether the operation is on a lagging or forward-looking cipher
+ // Lagging: needs a full block of input data before being able to output
+ // Non-lagging: can output the same amount of data as getting fed
+ bool lagging = true;
+ switch (operation->alg) {
+ case PSA_ALG_ECB_NO_PADDING:
+ case PSA_ALG_CBC_NO_PADDING:
+ case PSA_ALG_CBC_PKCS7:
+ lagging = true;
+ break;
+ case PSA_ALG_CTR:
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ case PSA_ALG_CFB:
+ case PSA_ALG_OFB:
+ lagging = false;
+ break;
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ size_t bytes_to_boundary = 16 - (operation->processed_length % 16);
+ size_t actual_output_length = 0;
+ *output_length = 0;
+
+ if ( input_length == 0 ) {
+ return PSA_SUCCESS;
+ }
+
+ // We need to cache (not return) the whole last block for decryption with
+ // padding, otherwise it won't be possible to remove a potential padding block
+ // during finish.
+ bool cache_full_block = (operation->alg == PSA_ALG_CBC_PKCS7
+ && operation->direction == SLI_AES_DEC);
+
+ // Early processing if not getting to a full block for lagging ciphers.
+ if (lagging) {
+ if (cache_full_block
+ && bytes_to_boundary == 16
+ && operation->processed_length > 0) {
+ // Don't overwrite the streaming block yet if it's currently full.
+ } else if (input_length < bytes_to_boundary) {
+ memcpy(&operation->streaming_block[operation->processed_length % 16],
+ input,
+ input_length);
+ operation->processed_length += input_length;
+ *output_length = actual_output_length;
+ return PSA_SUCCESS;
+ }
+
+ // We know we'll be computing at least the completed streaming block
+ size_t output_blocks = 1;
+ if (input_length > bytes_to_boundary) {
+ // plus however many full blocks are left over after filling the stream buffer
+ output_blocks += (input_length - bytes_to_boundary) / 16;
+ // If we're caching and the sum of already-input and to-be-input data
+ // ends up at a block boundary, we won't be outputting the last block
+ if (cache_full_block && ((input_length - bytes_to_boundary) % 16 == 0)) {
+ output_blocks -= 1;
+ }
+ }
+
+ if (output_size < (output_blocks * 16)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ } else {
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ key = block_t_convert(operation->key, operation->key_len);
+
+ if (bytes_to_boundary != 16) {
+ // Read in up to full streaming input block.
+ memcpy(&operation->streaming_block[operation->processed_length % 16],
+ input,
+ bytes_to_boundary);
+
+ data_in = block_t_convert(operation->streaming_block, 16);
+ data_out = block_t_convert(operation->streaming_block, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (operation->direction == SLI_AES_ENC) {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+ sx_ret = sx_aes_ecb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ break;
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+ if (cache_full_block && (bytes_to_boundary == input_length)) {
+ // Don't process the streaming block if there is no more input data
+ sx_ret = CRYPTOLIB_SUCCESS;
+ } else {
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ }
+ break;
+#endif // PSA_WANT_ALG_CBC_PKCS7
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ } else {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+ sx_ret = sx_aes_ecb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ break;
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+ if (cache_full_block && (bytes_to_boundary == input_length)) {
+ // Don't process the streaming block if there is no more input data
+ sx_ret = CRYPTOLIB_SUCCESS;
+ } else {
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ }
+ break;
+#endif // PSA_WANT_ALG_CBC_PKCS7
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ }
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (lagging) {
+ memcpy(output, operation->streaming_block, 16);
+ // Don't increase output if no encryption/decryption was done
+ if (!(cache_full_block && (bytes_to_boundary == input_length))) {
+ output += 16;
+ actual_output_length += 16;
+ }
+ operation->processed_length += bytes_to_boundary;
+ input += bytes_to_boundary;
+ input_length -= bytes_to_boundary;
+ } else {
+ if (input_length < bytes_to_boundary) {
+ bytes_to_boundary = input_length;
+ }
+
+ memcpy(output, operation->streaming_block + (operation->processed_length % 16), bytes_to_boundary);
+ output += bytes_to_boundary;
+ actual_output_length += bytes_to_boundary;
+ operation->processed_length += bytes_to_boundary;
+ input += bytes_to_boundary;
+ input_length -= bytes_to_boundary;
+
+#if defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB)
+ // Only want to update IV if we actually finished an entire block.
+ if (operation->processed_length % 16 == 0) {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ if (operation->direction == SLI_AES_ENC) {
+ memcpy(operation->iv, output - 16, 16);
+ } else {
+ memcpy(operation->iv, input - 16, 16);
+ }
+ break;
+#endif
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_CTR:
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ case PSA_ALG_OFB:
+ memcpy(operation->iv, tmp_buf, 16);
+ break;
+#endif
+ }
+ }
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM || PSA_WANT_ALG_CFB || PSA_WANT_ALG_OFB
+ }
+ }
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ else if (cache_full_block && operation->processed_length > 0) {
+ // We know there's processing to be done, and that we haven't processed
+ // the full block in the streaming buffer yet. Process it now.
+ data_in = block_t_convert(operation->streaming_block, 16);
+ data_out = block_t_convert(operation->streaming_block, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output, operation->streaming_block, 16);
+ output += 16;
+ actual_output_length += 16;
+ }
+#endif
+
+ // Do multi-block operation if applicable.
+ if (input_length >= 16) {
+ size_t operation_size = (input_length / 16) * 16;
+
+ if (cache_full_block && (input_length % 16 == 0)) {
+ // Don't decrypt the last block until finish is called, so that we
+ // can properly remove the padding before returning it.
+ operation_size -= 16;
+ }
+
+ if (operation_size > 0) {
+ data_in = block_t_convert(input, operation_size);
+ data_out = block_t_convert(output, operation_size);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (operation->direction == SLI_AES_ENC) {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+ sx_ret = sx_aes_ecb_encrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ break;
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING) || defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_NO_PADDING:
+ // fall through
+ case PSA_ALG_CBC_PKCS7:
+ sx_ret = sx_aes_cbc_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CBC_NO_PADDING || PSA_WANT_ALG_CBC_PKCS7
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ } else {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING)
+ case PSA_ALG_ECB_NO_PADDING:
+ sx_ret = sx_aes_ecb_decrypt((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out);
+ break;
+#endif // PSA_WANT_ALG_ECB_NO_PADDING
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_OFB
+#if defined(PSA_WANT_ALG_CBC_NO_PADDING) || defined(PSA_WANT_ALG_CBC_PKCS7)
+ case PSA_ALG_CBC_NO_PADDING:
+ // fall through
+ case PSA_ALG_CBC_PKCS7:
+ sx_ret = sx_aes_cbc_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &iv_block);
+ break;
+#endif // PSA_WANT_ALG_CBC_NO_PADDING || PSA_WANT_ALG_CBC_PKCS7
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ }
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ input += operation_size;
+ input_length -= operation_size;
+ actual_output_length += operation_size;
+ output += operation_size;
+ operation->processed_length += operation_size;
+ }
+
+ // Process final block.
+ if (input_length > 0) {
+ if (!lagging) {
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_CFB) || defined(PSA_WANT_ALG_OFB)
+ data_in = block_t_convert(input, 16);
+ data_out = block_t_convert(operation->streaming_block, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (operation->direction == SLI_AES_ENC) {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_encrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_OFB
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ } else {
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Explicit fallthrough
+#endif // PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM)
+ case PSA_ALG_CTR:
+ sx_ret = sx_aes_ctr_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM
+#if defined(PSA_WANT_ALG_CFB)
+ case PSA_ALG_CFB:
+ sx_ret = sx_aes_cfb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_CFB
+#if defined(PSA_WANT_ALG_OFB)
+ case PSA_ALG_OFB:
+ sx_ret = sx_aes_ofb_decrypt_update((const block_t*)&key,
+ (const block_t*)&data_in,
+ &data_out,
+ (const block_t*)&iv_block,
+ &tmp_iv_block);
+ break;
+#endif // PSA_WANT_ALG_OFB
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ }
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ memcpy(output,
+ operation->streaming_block,
+ input_length);
+
+ actual_output_length += input_length;
+ operation->processed_length += input_length;
+#else
+ return PSA_ERROR_BAD_STATE;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM || PSA_WANT_ALG_CFB || PSA_WANT_ALG_OFB
+ } else {
+ if ((input_length >= 16 && !cache_full_block)
+ || (input_length > 16 && cache_full_block)) {
+ *output_length = 0;
+ return PSA_ERROR_BAD_STATE;
+ }
+ memcpy(operation->streaming_block,
+ input,
+ input_length);
+ operation->processed_length += input_length;
+ }
+ }
+
+ *output_length = actual_output_length;
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_finish(sli_cryptoacc_transparent_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ psa_status_t status = PSA_ERROR_GENERIC_ERROR;
+
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t key;
+ block_t iv_block;
+ block_t data_in;
+ block_t data_out;
+#endif // PSA_WANT_ALG_CBC_PKCS7
+
+ // Argument check.
+ if (operation == NULL) {
+ *output_length = 0;
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (operation->alg) {
+#if defined(PSA_WANT_ALG_ECB_NO_PADDING) || defined(PSA_WANT_ALG_CBC_NO_PADDING)
+ // Blocksize-only modes without padding.
+ case PSA_ALG_ECB_NO_PADDING:
+ case PSA_ALG_CBC_NO_PADDING:
+ // Can't finish if they haven't processed block-size input.
+ if (operation->processed_length % 16 != 0) {
+ status = PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ status = PSA_SUCCESS;
+ }
+ *output_length = 0;
+ break;
+#endif // PSA_WANT_ALG_ECB_NO_PADDING || PSA_WANT_ALG_CBC_NO_PADDING
+#if defined(PSA_WANT_ALG_CTR) || defined(PSA_WANT_ALG_CCM) || defined(PSA_WANT_ALG_CFB) || defined(PSA_WANT_ALG_OFB)
+ // Stream cipher modes.
+ case PSA_ALG_CTR:
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ case PSA_ALG_CFB:
+ case PSA_ALG_OFB:
+ status = PSA_SUCCESS;
+ *output_length = 0;
+ break;
+#endif // PSA_WANT_ALG_CTR || PSA_WANT_ALG_CCM || PSA_WANT_ALG_*FB
+#if defined(PSA_WANT_ALG_CBC_PKCS7)
+ // Padding mode.
+ case PSA_ALG_CBC_PKCS7:
+ if ((output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ key = block_t_convert(operation->key, operation->key_len);
+ iv_block = block_t_convert(operation->iv, operation->iv_len);
+ data_in = block_t_convert(operation->streaming_block, 16);
+ data_out = block_t_convert(output, 16);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (operation->direction == SLI_AES_ENC) {
+ if (output_size < 16) {
+ status = cryptoacc_management_release();
+ if (status == PSA_SUCCESS) {
+ status = PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ break;
+ }
+ size_t padding_bytes = 16 - (operation->processed_length % 16);
+ memset(&operation->streaming_block[16 - padding_bytes],
+ padding_bytes,
+ padding_bytes);
+
+ sx_ret = sx_aes_cbc_encrypt((const block_t *)&key,
+ (const block_t *)&data_in,
+ &data_out,
+ (const block_t *)&iv_block);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ *output_length = 16;
+ status = PSA_SUCCESS;
+ }
+ } else {
+ // Expect full-block input.
+ if (operation->processed_length % 16 != 0
+ || operation->processed_length < 16) {
+ status = PSA_ERROR_INVALID_ARGUMENT;
+ break;
+ }
+
+ uint8_t out_buf[16];
+ block_t out_buf_block = block_t_convert(&out_buf, 16);
+
+ // Decrypt the last block
+ sx_ret = sx_aes_cbc_decrypt((const block_t *)&key,
+ (const block_t *)&data_in,
+ &out_buf_block,
+ (const block_t *)&iv_block);
+
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ status = PSA_ERROR_HARDWARE_FAILURE;
+ break;
+ }
+
+ size_t padding_bytes = 0;
+ status = sli_psa_validate_pkcs7_padding(out_buf,
+ 16,
+ &padding_bytes);
+
+ if (status == PSA_SUCCESS) {
+ // The padding was valid.
+ if (output_size < 16 - padding_bytes) {
+ status = PSA_ERROR_BUFFER_TOO_SMALL;
+ break;
+ }
+ memcpy(output, out_buf, 16 - padding_bytes);
+ *output_length = 16 - padding_bytes;
+ }
+ }
+ break;
+#endif // PSA_WANT_ALG_CBC_PKCS7
+ default:
+ status = PSA_ERROR_BAD_STATE;
+ break;
+ }
+
+#if !defined(PSA_WANT_ALG_CBC_PKCS7)
+ (void)output;
+ (void)output_size;
+#endif // PSA_WANT_ALG_CBC_PKCS7
+
+ if (status != PSA_SUCCESS) {
+ *output_length = 0;
+ }
+
+ // Wipe context.
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_cipher_operation_t));
+
+ return status;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_*
+
+ (void)operation;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_*
+}
+
+psa_status_t sli_cryptoacc_transparent_cipher_abort(sli_cryptoacc_transparent_cipher_operation_t *operation)
+{
+#if (defined(PSA_WANT_KEY_TYPE_AES) \
+ && (defined(PSA_WANT_ALG_ECB_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CTR) \
+ || defined(PSA_WANT_ALG_CCM) \
+ || defined(PSA_WANT_ALG_CFB) \
+ || defined(PSA_WANT_ALG_OFB) \
+ || defined(PSA_WANT_ALG_CBC_NO_PADDING) \
+ || defined(PSA_WANT_ALG_CBC_PKCS7)))
+
+ if (operation != NULL) {
+ // Wipe context.
+ memset(operation, 0, sizeof(*operation));
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_AES && PSA_WANT_KEY_TYPE_AES
+}
+
+#endif // defined(CRYPTOACC_PRESENT)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_hash.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_hash.c
new file mode 100644
index 000000000..65b46eca0
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_hash.c
@@ -0,0 +1,490 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Hash functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sli_cryptoacc_transparent_types.h"
+#include "sli_cryptoacc_transparent_functions.h"
+
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+#include "cryptoacc_management.h"
+#include "sx_hash.h"
+#include "sx_errors.h"
+#include
+
+// Define all init vectors.
+#if defined(PSA_WANT_ALG_SHA_1)
+static const uint8_t init_state_sha1[32] = {
+ 0x67, 0x45, 0x23, 0x01,
+ 0xEF, 0xCD, 0xAB, 0x89,
+ 0x98, 0xBA, 0xDC, 0xFE,
+ 0x10, 0x32, 0x54, 0x76,
+ 0xC3, 0xD2, 0xE1, 0xF0,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00
+};
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+static const uint8_t init_state_sha224[32] = {
+ 0xC1, 0x05, 0x9E, 0xD8,
+ 0x36, 0x7C, 0xD5, 0x07,
+ 0x30, 0x70, 0xDD, 0x17,
+ 0xF7, 0x0E, 0x59, 0x39,
+ 0xFF, 0xC0, 0x0B, 0x31,
+ 0x68, 0x58, 0x15, 0x11,
+ 0x64, 0xF9, 0x8F, 0xA7,
+ 0xBE, 0xFA, 0x4F, 0xA4
+};
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+static const uint8_t init_state_sha256[32] = {
+ 0x6A, 0x09, 0xE6, 0x67,
+ 0xBB, 0x67, 0xAE, 0x85,
+ 0x3C, 0x6E, 0xF3, 0x72,
+ 0xA5, 0x4F, 0xF5, 0x3A,
+ 0x51, 0x0E, 0x52, 0x7F,
+ 0x9B, 0x05, 0x68, 0x8C,
+ 0x1F, 0x83, 0xD9, 0xAB,
+ 0x5B, 0xE0, 0xCD, 0x19
+};
+#endif // PSA_WANT_ALG_SHA_256
+
+#endif // PSA_WANT_ALG_SHA_*
+
+psa_status_t sli_cryptoacc_transparent_hash_setup(sli_cryptoacc_transparent_hash_operation_t *operation,
+ psa_algorithm_t alg)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (!PSA_ALG_IS_HASH(alg)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context.
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_hash_operation_t));
+
+ switch (alg) {
+#if defined(PSA_WANT_ALG_SHA_1)
+ case PSA_ALG_SHA_1:
+ operation->hash_type = e_SHA1;
+ memcpy(operation->state, init_state_sha1, SHA1_STATESIZE);
+ break;
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+ case PSA_ALG_SHA_224:
+ operation->hash_type = e_SHA224;
+ memcpy(operation->state, init_state_sha224, SHA224_STATESIZE);
+ break;
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+ case PSA_ALG_SHA_256:
+ operation->hash_type = e_SHA256;
+ memcpy(operation->state, init_state_sha256, SHA256_STATESIZE);
+ break;
+#endif // PSA_WANT_ALG_SHA_256
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ operation->total = 0;
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)operation;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+psa_status_t sli_cryptoacc_transparent_hash_update(sli_cryptoacc_transparent_hash_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ size_t blocks, fill, left;
+ block_t data_in;
+ block_t state;
+ uint32_t sx_ret;
+ psa_status_t status;
+
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (operation->hash_type) {
+#if defined(PSA_WANT_ALG_SHA_1)
+ case e_SHA1:
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+ case e_SHA224:
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+ case e_SHA256:
+#endif // PSA_WANT_ALG_SHA_256
+ break;
+ default:
+ // State must have not been initialized by the setup function.
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (input_length == 0) {
+ return PSA_SUCCESS;
+ }
+
+ state = block_t_convert((uint8_t*)operation->state,
+ sx_hash_get_state_size(operation->hash_type));
+
+ // Same blocksize for all of SHA-256, SHA-224, and SHA-256.
+ left = (operation->total & (SHA256_BLOCKSIZE - 1));
+ fill = SHA256_BLOCKSIZE - left;
+
+ operation->total += input_length;
+
+ if ((left > 0) && (input_length >= fill)) {
+ memcpy((void *)(operation->buffer + left), input, fill);
+
+ data_in = block_t_convert(operation->buffer, SHA256_BLOCKSIZE);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_hash_update_blk(operation->hash_type, state, data_in);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ input += fill;
+ input_length -= fill;
+ left = 0;
+ }
+
+ if (input_length >= SHA256_BLOCKSIZE) {
+ blocks = input_length / SHA256_BLOCKSIZE;
+
+ data_in = block_t_convert((uint8_t*)input, SHA256_BLOCKSIZE * blocks);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_hash_update_blk(operation->hash_type, state, data_in);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ input += SHA256_BLOCKSIZE * blocks;
+ input_length -= SHA256_BLOCKSIZE * blocks;
+ }
+
+ if (input_length > 0) {
+ memcpy((void *)(operation->buffer + left), input, input_length);
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+psa_status_t sli_cryptoacc_transparent_hash_finish(sli_cryptoacc_transparent_hash_operation_t *operation,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ psa_status_t status;
+ uint32_t sx_ret;
+ block_t state;
+ block_t data_in;
+ block_t data_out;
+
+ if (operation == NULL
+ || (hash_length == NULL && hash_size > 0)
+ || (hash == NULL && hash_size > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (operation->hash_type) {
+#if defined(PSA_WANT_ALG_SHA_1)
+ case e_SHA1:
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+ case e_SHA224:
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+ case e_SHA256:
+#endif // PSA_WANT_ALG_SHA_256
+ break;
+ default:
+ // State must have not been initialized by the setup function.
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (hash_size < sx_hash_get_digest_size(operation->hash_type)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ state = block_t_convert((uint8_t*)operation->state,
+ sx_hash_get_state_size(operation->hash_type));
+ data_in = block_t_convert((uint8_t*)operation->buffer,
+ (operation->total & (SHA256_BLOCKSIZE - 1)));
+
+ data_out = block_t_convert((uint8_t*)operation->state,
+ sx_hash_get_state_size(operation->hash_type));
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = sx_hash_finish_blk(operation->hash_type,
+ state,
+ data_in,
+ data_out,
+ operation->total);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *hash_length = sx_hash_get_digest_size(operation->hash_type);
+ memcpy(hash, operation->state, *hash_length);
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_hash_operation_t));
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)operation;
+ (void)hash;
+ (void)hash_size;
+ (void)hash_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+psa_status_t sli_cryptoacc_transparent_hash_abort(sli_cryptoacc_transparent_hash_operation_t *operation)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ if (operation != NULL) {
+ // Accelerator does not keep state, so just zero out the context and we're good.
+ memset(operation, 0, sizeof(sli_cryptoacc_transparent_hash_operation_t));
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+psa_status_t sli_cryptoacc_transparent_hash_compute(psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ psa_status_t status;
+ uint32_t sx_ret = CRYPTOLIB_INVALID_PARAM;
+ block_t data_in;
+ block_t data_out;
+
+ if ((input == NULL && input_length > 0)
+ || (hash == NULL && hash_size > 0)
+ || (hash_length == NULL && hash_size > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (alg) {
+#if defined(PSA_WANT_ALG_SHA_1)
+ case PSA_ALG_SHA_1:
+ if (hash_size < SHA1_DIGESTSIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ break;
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+ case PSA_ALG_SHA_224:
+ if (hash_size < SHA224_DIGESTSIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ break;
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+ case PSA_ALG_SHA_256:
+ if (hash_size < SHA256_DIGESTSIZE) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ break;
+#endif // PSA_WANT_ALG_SHA_256
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ data_in = block_t_convert(input, input_length);
+ data_out = block_t_convert(hash, hash_size);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ switch (alg) {
+#if defined(PSA_WANT_ALG_SHA_1)
+ case PSA_ALG_SHA_1:
+ sx_ret = sx_hash_blk(e_SHA1, data_in, data_out);
+ *hash_length = SHA1_DIGESTSIZE;
+ break;
+#endif // PSA_WANT_ALG_SHA_1
+#if defined(PSA_WANT_ALG_SHA_224)
+ case PSA_ALG_SHA_224:
+ sx_ret = sx_hash_blk(e_SHA224, data_in, data_out);
+ *hash_length = SHA224_DIGESTSIZE;
+ break;
+#endif // PSA_WANT_ALG_SHA_224
+#if defined(PSA_WANT_ALG_SHA_256)
+ case PSA_ALG_SHA_256:
+ sx_ret = sx_hash_blk(e_SHA256, data_in, data_out);
+ *hash_length = SHA256_DIGESTSIZE;
+ break;
+#endif // PSA_WANT_ALG_SHA_256
+ }
+
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ *hash_length = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)hash;
+ (void)hash_size;
+ (void)hash_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+psa_status_t sli_cryptoacc_transparent_hash_clone(const sli_cryptoacc_transparent_hash_operation_t *source_operation,
+ sli_cryptoacc_transparent_hash_operation_t *target_operation)
+{
+#if defined(PSA_WANT_ALG_SHA_1) \
+ || defined(PSA_WANT_ALG_SHA_224) \
+ || defined(PSA_WANT_ALG_SHA_256)
+
+ if (source_operation == NULL
+ || target_operation == NULL) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Source operation must be active (setup has been called)
+ if (source_operation->hash_type == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Target operation must be inactive (setup has not been called)
+ if (target_operation->hash_type != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // The operation context does not contain any pointers, and the target operation
+ // have already have been initialized, so we can do a direct copy.
+ *target_operation = *source_operation;
+
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_SHA_*
+
+ (void)source_operation;
+ (void)target_operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_SHA_*
+}
+
+#endif // defined(CRYPTOACC_PRESENT)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_derivation.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_derivation.c
new file mode 100644
index 000000000..ed9130497
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_derivation.c
@@ -0,0 +1,196 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Key Derivation functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "sli_psa_driver_common.h" // sli_psa_zeroize
+#include "sli_cryptoacc_transparent_types.h"
+#include "sli_cryptoacc_transparent_functions.h"
+#include "cryptoacc_management.h"
+// Replace inclusion of psa/crypto_xxx.h with the new psa driver commong
+// interface header file when it becomes available.
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+
+#include "sx_dh_alg.h"
+#include "sx_ecc_curves.h"
+#include "sx_errors.h"
+#include "cryptolib_types.h"
+#include
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_cryptoacc_transparent_key_agreement(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECDH)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || peer_key == NULL
+ || output == NULL
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ uint32_t curve_flags = 0;
+ block_t domain = NULL_blk;
+ uint8_t tmp_output_buf[64] = { 0 };
+ size_t key_bits = psa_get_key_bits(attributes);
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+
+ // Check that key_buffer contains private key.
+ if (PSA_KEY_TYPE_IS_PUBLIC_KEY(key_type)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Only accelerate ECDH over secp{192, 224, 256}r1 and secp256k1 curves.
+ if (!PSA_ALG_IS_ECDH(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (key_type != PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ curve_flags = sx_ecc_curve_p192.pk_flags;
+ domain = block_t_convert(sx_ecc_curve_p192.params.addr,
+ 6 * sx_ecc_curve_p192.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (key_type != PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ curve_flags = sx_ecc_curve_p224.pk_flags;
+ domain = block_t_convert(sx_ecc_curve_p224.params.addr,
+ 6 * sx_ecc_curve_p224.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ if (key_type == PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+ curve_flags = sx_ecc_curve_p256.pk_flags;
+ domain = block_t_convert(sx_ecc_curve_p256.params.addr,
+ 6 * sx_ecc_curve_p256.bytesize);
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ if (key_type == PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_K1)) {
+ curve_flags = sx_ecc_curve_p256k1.pk_flags;
+ domain = block_t_convert(sx_ecc_curve_p256k1.params.addr,
+ 6 * sx_ecc_curve_p256k1.bytesize);
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Check input-keys sizes.
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)
+ || peer_key_length < PSA_BITS_TO_BYTES(key_bits) * 2 + 1) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check sufficient output buffer size.
+ if (output_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ block_t priv = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ block_t pub = block_t_convert(peer_key + 1, PSA_BITS_TO_BYTES(key_bits) * 2);
+ block_t shared_key = block_t_convert(tmp_output_buf, PSA_BITS_TO_BYTES(key_bits) * 2);
+
+ // Check peer_key is a public key of correct format.
+ if (peer_key[0] != 0x04) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Compute shared key.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = dh_shared_key_ecdh(domain, priv, pub, shared_key, PSA_BITS_TO_BYTES(key_bits), curve_flags);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ // If the ECDH libcryptosoc operation failed, this is most likely due to
+ // the peer key being an invalid elliptic curve point. Other sources for
+ // failure should hopefully have been caught during parameter validation.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memcpy(output, tmp_output_buf, PSA_BITS_TO_BYTES(key_bits));
+ sli_psa_zeroize(tmp_output_buf, sizeof(tmp_output_buf));
+ *output_length = PSA_BITS_TO_BYTES(key_bits);
+
+ return PSA_SUCCESS;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECDH
+
+ (void) alg;
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) peer_key;
+ (void) peer_key_length;
+ (void) output;
+ (void) output_size;
+ (void) output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECDH
+}
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_management.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_management.c
new file mode 100644
index 000000000..db49f1db5
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_key_management.c
@@ -0,0 +1,484 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Key Management functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "psa/crypto.h"
+
+#include "cryptoacc_management.h"
+
+#include "sli_psa_driver_common.h"
+#include "sli_cryptoacc_driver_trng.h"
+
+#include "sx_errors.h"
+#include "sx_ecc_curves.h"
+#include "sx_ecc_keygen_alg.h"
+#include "sx_primitives.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_cryptoacc_transparent_generate_key(
+ const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_length)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || key_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ // Check key type. PSA Crypto defines generate_key to be an invalid call with a key type
+ // of public key.
+ if (!PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // We currently only support R1 or K1
+ if (curve_type != PSA_ECC_FAMILY_SECP_R1 && curve_type != PSA_ECC_FAMILY_SECP_K1) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Check sufficient buffer size.
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Grab the correct order for the requested curve
+ block_t n = NULL_blk;
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ // The order n is stored as the second element in the curve-parameter tuple
+ // consisting of (q, n, Gx, Gy, a, b). The length of the parameters is
+ // dependent on the length of the corresponding key.
+ n = block_t_convert(sx_ecc_curve_p192.params.addr + (1 * sx_ecc_curve_p192.bytesize),
+ sx_ecc_curve_p192.bytesize);
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ n = block_t_convert(sx_ecc_curve_p224.params.addr + (1 * sx_ecc_curve_p224.bytesize),
+ sx_ecc_curve_p224.bytesize);
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ switch (curve_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case PSA_ECC_FAMILY_SECP_R1:
+ n = block_t_convert(sx_ecc_curve_p256.params.addr + (1 * sx_ecc_curve_p256.bytesize),
+ sx_ecc_curve_p256.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ case PSA_ECC_FAMILY_SECP_K1:
+ n = block_t_convert(sx_ecc_curve_p256k1.params.addr + (1 * sx_ecc_curve_p256k1.bytesize),
+ sx_ecc_curve_p256k1.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ block_t priv = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+
+ // Get random number < n -> private key.
+ psa_status_t status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ uint32_t sx_ret = ecc_generate_private_key(n,
+ priv,
+ sli_cryptoacc_trng_wrapper);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *key_length = PSA_BITS_TO_BYTES(key_bits);
+
+ return PSA_SUCCESS;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) key_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECC
+}
+
+psa_status_t sli_cryptoacc_transparent_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || data == NULL
+ || data_size == 0
+ || data_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ // If the key is stored transparently and is already a public key,
+ // let the core handle it.
+ if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (!PSA_KEY_TYPE_IS_ECC(key_type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // We currently only support R1 or K1
+ if (curve_type != PSA_ECC_FAMILY_SECP_R1 && curve_type != PSA_ECC_FAMILY_SECP_K1) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check sufficient output buffer size.
+ if (data_size < PSA_BITS_TO_BYTES(key_bits) * 2 + 1) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ block_t *domain_ptr = NULL;
+ uint32_t curve_flags = 0;
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_flags = sx_ecc_curve_p192.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p192.params;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_flags = sx_ecc_curve_p224.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p224.params;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ switch (curve_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case PSA_ECC_FAMILY_SECP_R1:
+ curve_flags = sx_ecc_curve_p256.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p256.params;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ case PSA_ECC_FAMILY_SECP_K1:
+ curve_flags = sx_ecc_curve_p256k1.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p256k1.params;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ block_t priv = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ block_t pub = block_t_convert(data + 1, PSA_BITS_TO_BYTES(key_bits) * 2);
+
+ psa_status_t status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ uint32_t sx_ret = ecc_generate_public_key(*domain_ptr,
+ pub,
+ priv,
+ PSA_BITS_TO_BYTES(key_bits),
+ curve_flags);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ data[0] = 0x04;
+ *data_length = PSA_BITS_TO_BYTES(key_bits) * 2 + 1;
+
+ return PSA_SUCCESS;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) data;
+ (void) data_size;
+ (void) data_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECC
+}
+
+psa_status_t sli_cryptoacc_transparent_import_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ // Argument check.
+ if (attributes == NULL
+ || data == NULL
+ || data_length == 0
+ || bits == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status;
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+
+ // Transparent driver is not involved in validation of symmetric keys.
+ if (!PSA_KEY_TYPE_IS_ECC(key_type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // We currently only support R1 or K1
+ if (curve_type != PSA_ECC_FAMILY_SECP_R1 && curve_type != PSA_ECC_FAMILY_SECP_K1) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) { // Private key.
+ void *modulus_ptr = NULL;
+ *bits = psa_get_key_bits(attributes);
+
+ // Determine key bit-size
+ if (*bits == 0) {
+ *bits = data_length * 8;
+ } else {
+ if (PSA_BITS_TO_BYTES(*bits) != data_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ switch (*bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ // The order n is stored as the second element in the curve-parameter tuple
+ // consisting of (q, n, Gx, Gy, a, b). The length of the parameters is
+ // dependent on the length of the corresponding key.
+ modulus_ptr = sx_ecc_curve_p192.params.addr + (1 * sx_ecc_curve_p192.bytesize);
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ modulus_ptr = sx_ecc_curve_p224.params.addr + (1 * sx_ecc_curve_p224.bytesize);
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ switch (curve_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case PSA_ECC_FAMILY_SECP_R1:
+ modulus_ptr = sx_ecc_curve_p256.params.addr + (1 * sx_ecc_curve_p256.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ case PSA_ECC_FAMILY_SECP_K1:
+ modulus_ptr = sx_ecc_curve_p256k1.params.addr + (1 * sx_ecc_curve_p256k1.bytesize);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ status = sli_psa_validate_ecc_weierstrass_privkey(data,
+ modulus_ptr,
+ data_length);
+ } else { // Public key.
+ block_t *domain_ptr = NULL;
+ uint32_t curve_flags = 0;
+
+ // Check that uncompressed representation is given.
+ if (data[0] != 0x04) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Determine key bit size.
+ *bits = (data_length - 1) * 8 / 2;
+
+ switch (*bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_flags = sx_ecc_curve_p192.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p192.params;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_flags = sx_ecc_curve_p224.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p224.params;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ switch (curve_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case PSA_ECC_FAMILY_SECP_R1:
+ curve_flags = sx_ecc_curve_p256.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p256.params;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ case PSA_ECC_FAMILY_SECP_K1:
+ curve_flags = sx_ecc_curve_p256k1.pk_flags;
+ domain_ptr = (block_t*)&sx_ecc_curve_p256k1.params;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ block_t point = block_t_convert(data + 1, PSA_BITS_TO_BYTES(*bits) * 2);
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ uint32_t sx_ret = ecc_is_point_on_curve(*domain_ptr,
+ point,
+ PSA_BITS_TO_BYTES(*bits),
+ curve_flags);
+ status = cryptoacc_management_release();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ status = PSA_SUCCESS;
+ }
+ }
+
+ if ( status == PSA_SUCCESS ) {
+ if ( key_buffer_size >= data_length ) {
+ memcpy(key_buffer, data, data_length);
+ *key_buffer_length = data_length;
+ } else {
+ status = PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ }
+
+ return status;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void) attributes;
+ (void) data;
+ (void) data_length;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) key_buffer_length;
+ (void) bits;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECC
+}
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_mac.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_mac.c
new file mode 100644
index 000000000..109bb9dd9
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_mac.c
@@ -0,0 +1,740 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Mac functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "em_device.h"
+
+#if defined(CRYPTOACC_PRESENT)
+
+#include "sli_cryptoacc_transparent_functions.h"
+#include "sli_psa_driver_common.h"
+#include "cryptoacc_management.h"
+// Replace inclusion of psa/crypto_xxx.h with the new psa driver commong
+// interface header file when it becomes available.
+#include "psa/crypto_platform.h"
+#include "psa/crypto_sizes.h"
+#include "psa/crypto_struct.h"
+#include "sx_aes.h"
+#include "sx_hash.h"
+#include "sx_errors.h"
+#include
+
+#if defined(PSA_WANT_ALG_HMAC)
+static psa_status_t sli_cryptoacc_hmac_validate_key(
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg,
+ sx_hash_fct_t *hash_fct,
+ size_t *digest_length)
+{
+ // Check key type and output size
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_HMAC) {
+ // For HMAC, key type is strictly enforced
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (PSA_ALG_HMAC_GET_HASH(alg)) {
+ case PSA_ALG_SHA_1:
+ *hash_fct = e_SHA1;
+ *digest_length = 20;
+ break;
+ case PSA_ALG_SHA_224:
+ *hash_fct = e_SHA224;
+ *digest_length = 28;
+ break;
+ case PSA_ALG_SHA_256:
+ *hash_fct = e_SHA256;
+ *digest_length = 32;
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+}
+#endif // PSA_WANT_ALG_HMAC
+
+#if defined(PSA_WANT_ALG_CMAC)
+static psa_status_t sli_cryptoacc_cmac_validate_key(
+ const psa_key_attributes_t *attributes)
+{
+ // Check key type and size
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ // CMAC could be used with DES
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ switch (psa_get_key_bits(attributes) / 8) {
+ case 16:
+ case 24:
+ case 32:
+ break;
+ default:
+ // There's no other AES algorithm in existence
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+}
+#endif // PSA_WANT_ALG_CMAC
+
+psa_status_t sli_cryptoacc_transparent_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+#if defined(PSA_WANT_ALG_HMAC) || defined(PSA_WANT_ALG_CMAC)
+
+ if (key_buffer == NULL
+ || attributes == NULL
+ || mac == NULL
+ || mac_length == NULL
+ || ((input == NULL) && (input_length > 0))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status;
+ uint32_t sx_ret;
+ size_t key_size = psa_get_key_bits(attributes) / 8;
+
+#if defined(PSA_WANT_ALG_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ sx_hash_fct_t sx_hash_alg;
+ size_t digest_length;
+
+ status = sli_cryptoacc_hmac_validate_key(attributes, alg, &sx_hash_alg, &digest_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if ((PSA_MAC_TRUNCATED_LENGTH(alg) > 0)
+ && (PSA_MAC_TRUNCATED_LENGTH(alg) < digest_length)) {
+ digest_length = PSA_MAC_TRUNCATED_LENGTH(alg);
+ }
+
+ if (mac_size < digest_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Acquire exclusive access to the CRYPTOACC hardware
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Execute the HMAC operation
+ sx_ret = sx_hmac_blk(sx_hash_alg,
+ block_t_convert(key_buffer, key_size),
+ block_t_convert(input, input_length),
+ block_t_convert(mac, digest_length));
+
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Report generated hmac length
+ *mac_length = digest_length;
+ return PSA_SUCCESS;
+ }
+#endif // PSA_WANT_ALG_HMAC
+
+ // If not HMAC, continue with the regular MAC algos
+ switch (PSA_ALG_FULL_LENGTH_MAC(alg)) {
+#if defined(PSA_WANT_ALG_CMAC)
+ case PSA_ALG_CMAC:
+ {
+ status = sli_cryptoacc_cmac_validate_key(attributes);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t output_length = PSA_MAC_TRUNCATED_LENGTH(alg);
+ if (output_length == 0) {
+ output_length = 16;
+ } else if (output_length > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (mac_size < output_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ uint8_t sx_mac_buf[BLK_CIPHER_MAC_SIZE];
+
+ // Setup DMA descriptors
+ block_t key_sxblk = block_t_convert(key_buffer, key_size);
+ block_t input_sxblk = block_t_convert(input, input_length);
+ block_t mac_sxblk = block_t_convert(sx_mac_buf, BLK_CIPHER_MAC_SIZE);
+
+ // Acquire exclusive access to the CRYPTOACC hardware
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Execute the CMAC operation
+ sx_ret = sx_aes_cmac_generate((const block_t *)&key_sxblk,
+ (const block_t *)&input_sxblk,
+ &mac_sxblk);
+
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (status == PSA_SUCCESS) {
+ memcpy(mac, sx_mac_buf, output_length);
+ *mac_length = output_length;
+ } else {
+ *mac_length = 0;
+ }
+
+ memset(sx_mac_buf, 0, BLK_CIPHER_MAC_SIZE);
+ break;
+ }
+#endif // PSA_WANT_ALG_CMAC
+ default:
+ status = PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#if !defined(PSA_WANT_ALG_CMAC)
+ (void)key_buffer_size;
+#endif // !PSA_WANT_ALG_CMAC
+
+ return status;
+
+#else // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+}
+
+// Make sure that the two locations of 'alg' are in the same place, since we access them
+// interchangeably.
+#if defined(PSA_WANT_ALG_HMAC)
+_Static_assert(offsetof(sli_cryptoacc_transparent_mac_operation_t, hmac.alg)
+ == offsetof(sli_cryptoacc_transparent_mac_operation_t, cipher_mac.alg),
+ "hmac.alg and cipher_mac.alg are not aliases");
+#endif // PSA_WANT_ALG_HMAC
+
+psa_status_t sli_cryptoacc_transparent_mac_sign_setup(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+#if defined(PSA_WANT_ALG_HMAC) || defined(PSA_WANT_ALG_CMAC)
+
+ if (operation == NULL
+ || attributes == NULL
+ || (key_buffer == NULL && key_buffer_size > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t key_size = psa_get_key_bits(attributes) / 8;
+ psa_status_t status = PSA_ERROR_INVALID_ARGUMENT;
+
+ if (key_size > key_buffer_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+#if defined(PSA_WANT_ALG_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ sx_hash_fct_t sx_hash_alg;
+ size_t digest_length;
+ status = sli_cryptoacc_hmac_validate_key(attributes, alg, &sx_hash_alg, &digest_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > digest_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // CRYPTOACC does not support multipart HMAC. Construct it from hashing instead.
+ psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(alg);
+
+ // Reduce the key if larger than a block
+ if (key_size > sizeof(operation->hmac.opad)) {
+ status = sli_cryptoacc_transparent_hash_compute(
+ hash_alg,
+ key_buffer,
+ key_size,
+ operation->hmac.opad,
+ sizeof(operation->hmac.opad),
+ &key_size);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ } else if (key_size > 0) {
+ memcpy(operation->hmac.opad, key_buffer, key_size);
+ }
+
+ // Calculate inner padding in opad buffer and start a multipart hash with it
+ for (size_t i = 0; i < key_size; i++) {
+ operation->hmac.opad[i] ^= 0x36;
+ }
+ memset(&operation->hmac.opad[key_size], 0x36, sizeof(operation->hmac.opad) - key_size);
+
+ status = sli_cryptoacc_transparent_hash_setup(
+ &operation->hmac.hash_ctx,
+ hash_alg);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ status = sli_cryptoacc_transparent_hash_update(
+ &operation->hmac.hash_ctx,
+ operation->hmac.opad, sizeof(operation->hmac.opad));
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Calculate outer padding and store it for finalisation
+ for (size_t i = 0; i < sizeof(operation->hmac.opad); i++) {
+ operation->hmac.opad[i] ^= 0x36 ^ 0x5C;
+ }
+
+ operation->hmac.alg = alg;
+ return PSA_SUCCESS;
+ }
+#endif // PSA_WANT_ALG_HMAC
+
+ // If not HMAC, check other algos
+ switch (PSA_ALG_FULL_LENGTH_MAC(alg)) {
+#if defined(PSA_WANT_ALG_CMAC)
+ case PSA_ALG_CMAC:
+ status = sli_cryptoacc_cmac_validate_key(attributes);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memcpy(operation->cipher_mac.key, key_buffer, key_size);
+ operation->cipher_mac.key_len = key_size;
+
+ operation->cipher_mac.alg = alg;
+ status = PSA_SUCCESS;
+ break;
+#endif // PSA_WANT_ALG_CMAC
+ default:
+ status = PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+
+#if !defined(PSA_WANT_ALG_CMAC)
+ (void)key_buffer_size;
+#endif // !PSA_WANT_ALG_CMAC
+
+ return status;
+
+#else // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+}
+
+psa_status_t sli_cryptoacc_transparent_mac_verify_setup(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ // Since the PSA Crypto core exposes the verify functionality of the drivers without
+ // actually implementing the fallback to 'sign' when the driver doesn't support verify,
+ // we need to do this ourselves for the time being.
+ return sli_cryptoacc_transparent_mac_sign_setup(operation,
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg);
+}
+
+#if defined(PSA_WANT_ALG_CMAC)
+static psa_status_t cryptoacc_cmac_update_blk(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const uint8_t *input, size_t input_length)
+{
+ psa_status_t status;
+ uint32_t sx_ret;
+
+ const block_t key_blk = block_t_convert(operation->cipher_mac.key, operation->cipher_mac.key_len);
+ const block_t input_blk = block_t_convert(input, input_length);
+ block_t ctx_blk = block_t_convert(operation->cipher_mac.cmac_ctx, sizeof(operation->cipher_mac.cmac_ctx));
+
+ // Acquire exclusive access to the CRYPTOACC hardware
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // CMAC state context is already initialized, do update.
+ sx_ret = sx_aes_cmac_generate_update(&key_blk,
+ &input_blk,
+ (const block_t*)&ctx_blk,
+ &ctx_blk);
+
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ return PSA_SUCCESS;
+}
+#endif // PSA_WANT_ALG_CMAC
+
+psa_status_t sli_cryptoacc_transparent_mac_update(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+#if defined(PSA_WANT_ALG_HMAC) || defined(PSA_WANT_ALG_CMAC)
+
+ if (operation == NULL
+ || input == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (input_length == 0 ) {
+ return PSA_SUCCESS;
+ }
+
+#if defined(PSA_WANT_ALG_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->hmac.alg)) {
+ return sli_cryptoacc_transparent_hash_update(
+ &operation->hmac.hash_ctx,
+ input,
+ input_length);
+ }
+#endif // PSA_WANT_ALG_HMAC
+
+ switch (PSA_ALG_FULL_LENGTH_MAC(operation->cipher_mac.alg)) {
+#if defined(PSA_WANT_ALG_CMAC)
+ case PSA_ALG_CMAC:
+ {
+ psa_status_t status;
+ size_t current_block_len;
+
+ // if the potential last block include data
+ // we need to process them first
+ current_block_len = operation->cipher_mac.current_block_len;
+ if (current_block_len) {
+ size_t bytes_to_boundary = 16 - current_block_len;
+ // if the total of bytes is smaller than a block, just copy and return
+ // else fill up the potential last block
+ if (input_length < bytes_to_boundary) {
+ memcpy(&operation->cipher_mac.current_block[current_block_len], input, input_length);
+ operation->cipher_mac.current_block_len = current_block_len + input_length;
+ return PSA_SUCCESS;
+ } else {
+ // fill up the potential last block
+ memcpy(&operation->cipher_mac.current_block[current_block_len], input, bytes_to_boundary);
+ operation->cipher_mac.current_block_len = 16;
+ input_length -= bytes_to_boundary;
+ input += bytes_to_boundary;
+ }
+
+ // if there are more input data, the potential last block is not
+ // the last block, which means we can process it now,
+ if (input_length) {
+ // Execute CMAC operation on the single context block
+ status = cryptoacc_cmac_update_blk(operation, operation->cipher_mac.current_block, 16);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ operation->cipher_mac.current_block_len = 0;
+ }
+ }
+
+ // Process complete input blocks
+ if (input_length > 16) {
+ // Calculate the number of bytes in complete blocks to process.
+ // If the last block is complete we need to postpone processing it
+ // since it may be the last block which should go to sx_aes_cmac_generate_final.
+ size_t bytes_to_copy = (input_length - 1) & ~0xFUL;
+
+ // Execute CMAC operation on the single context block
+ status = cryptoacc_cmac_update_blk(operation, input, bytes_to_copy);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ input_length -= bytes_to_copy;
+ input += bytes_to_copy;
+ }
+
+ // Store remaining input bytes
+ if (input_length) {
+ memcpy(operation->cipher_mac.current_block, input, input_length);
+ operation->cipher_mac.current_block_len = input_length;
+ }
+
+ return PSA_SUCCESS;
+ }
+#endif // PSA_WANT_ALG_CMAC
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+#else // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+}
+
+psa_status_t sli_cryptoacc_transparent_mac_sign_finish(sli_cryptoacc_transparent_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+#if defined(PSA_WANT_ALG_HMAC) || defined(PSA_WANT_ALG_CMAC)
+
+ if (operation == NULL
+ || mac == NULL
+ || mac_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status;
+
+#if defined(PSA_WANT_ALG_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->hmac.alg)) {
+ uint8_t buffer[64 + 32];
+ size_t olen;
+
+ // Construct outer hash input from opad and hash result
+ memcpy(buffer, operation->hmac.opad, sizeof(operation->hmac.opad));
+ memset(operation->hmac.opad, 0, sizeof(operation->hmac.opad));
+
+ status = sli_cryptoacc_transparent_hash_finish(
+ &operation->hmac.hash_ctx,
+ &buffer[sizeof(operation->hmac.opad)],
+ sizeof(buffer) - sizeof(operation->hmac.opad),
+ &olen);
+
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Calculate HMAC
+ status = sli_cryptoacc_transparent_hash_compute(
+ PSA_ALG_HMAC_GET_HASH(operation->hmac.alg),
+ buffer,
+ sizeof(operation->hmac.opad) + olen,
+ buffer,
+ sizeof(buffer),
+ &olen);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Copy out a potentially truncated HMAC
+ size_t requested_length = PSA_MAC_TRUNCATED_LENGTH(operation->hmac.alg);
+ if (requested_length == 0) {
+ requested_length = olen;
+ }
+
+ if (requested_length > mac_size) {
+ memset(buffer, 0, sizeof(buffer));
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ memcpy(mac, buffer, requested_length);
+ *mac_length = requested_length;
+ memset(buffer, 0, sizeof(buffer));
+ return PSA_SUCCESS;
+ }
+#endif // PSA_WANT_ALG_HMAC
+
+ // Check algorithm and store if supported
+ switch (PSA_ALG_FULL_LENGTH_MAC(operation->cipher_mac.alg)) {
+#if defined(PSA_WANT_ALG_CMAC)
+ case PSA_ALG_CMAC:
+ {
+ // Check output size
+ size_t requested_length = PSA_MAC_TRUNCATED_LENGTH(operation->cipher_mac.alg);
+ if (requested_length == 0) {
+ requested_length = BLK_CIPHER_MAC_SIZE;
+ } else if (requested_length > BLK_CIPHER_MAC_SIZE) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (mac_size < requested_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Acquire exclusive access to the CRYPTOACC hardware
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Setup DMA descriptors
+ block_t input_blk = block_t_convert(operation->cipher_mac.current_block,
+ operation->cipher_mac.current_block_len);
+ const block_t key_blk = block_t_convert(operation->cipher_mac.key, operation->cipher_mac.key_len);
+ block_t ctx_blk = block_t_convert(operation->cipher_mac.cmac_ctx, sizeof(operation->cipher_mac.cmac_ctx));
+
+ // Execute the first CMAC operation.
+ // Receive the final mac in the cmac_ctx buffer and copy the requested
+ // number of bytes to the user buffer after.
+ uint32_t sx_ret = sx_aes_cmac_generate_final(&key_blk,
+ (const block_t *)&input_blk,
+ (const block_t *)&ctx_blk,
+ &ctx_blk);
+
+ status = cryptoacc_management_release();
+
+ if (sx_ret != CRYPTOLIB_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Copy the requested number of bytes (max 16 for CMAC) to the user buffer.
+ memcpy(mac, operation->cipher_mac.cmac_ctx, requested_length);
+ *mac_length = requested_length;
+
+ return PSA_SUCCESS;
+ }
+ break;
+#endif // PSA_WANT_ALG_CMAC
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+#else // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+
+ (void)operation;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+}
+
+psa_status_t sli_cryptoacc_transparent_mac_verify_finish(sli_cryptoacc_transparent_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length)
+{
+ // Since the PSA Crypto core exposes the verify functionality of the drivers without
+ // actually implementing the fallback to 'sign' when the driver doesn't support verify,
+ // we need to do this ourselves for the time being.
+ uint8_t calculated_mac[PSA_MAC_MAX_SIZE] = { 0 };
+ size_t calculated_length = PSA_MAC_MAX_SIZE;
+
+ psa_status_t status = sli_cryptoacc_transparent_mac_sign_finish(
+ operation,
+ calculated_mac, sizeof(calculated_mac), &calculated_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (mac_length > sizeof(calculated_mac)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (sli_psa_safer_memcmp(mac, calculated_mac, mac_length) != 0) {
+ status = PSA_ERROR_INVALID_SIGNATURE;
+ } else {
+ status = PSA_SUCCESS;
+ }
+
+ memset(calculated_mac, 0, sizeof(calculated_mac));
+ return status;
+}
+
+psa_status_t sli_cryptoacc_transparent_mac_abort(sli_cryptoacc_transparent_mac_operation_t *operation)
+{
+#if defined(PSA_WANT_ALG_HMAC) || defined(PSA_WANT_ALG_CMAC)
+
+ // There's no state in hardware that we need to preserve, so zeroing out the context suffices.
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+ return PSA_SUCCESS;
+
+#else // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // PSA_WANT_ALG_HMAC) || PSA_WANT_ALG_CMAC
+}
+
+#endif // defined(CRYPTOACC_PRESENT)
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_signature.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_signature.c
new file mode 100644
index 000000000..62471b12b
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_cryptoacc_transparent_driver_signature.c
@@ -0,0 +1,336 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Signature functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+
+#include "psa/crypto.h"
+
+#include "cryptoacc_management.h"
+
+#include "sli_cryptoacc_driver_trng.h"
+
+#include "sx_errors.h"
+#include "sx_ecdsa_alg.h"
+#include "sx_ecc_keygen_alg.h"
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_cryptoacc_transparent_sign_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || hash == NULL
+ || hash_length == 0
+ || signature == NULL
+ || signature_size == 0
+ || signature_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check the requested algorithm is ECDSA with randomized k.
+ if (!PSA_ALG_IS_RANDOMIZED_ECDSA(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (!PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) {
+ // Not able to sign using non-ECC keys, or using public keys.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sx_ecc_curve_t *curve = NULL;
+
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve = (sx_ecc_curve_t*)&sx_ecc_curve_p192;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve = (sx_ecc_curve_t*)&sx_ecc_curve_p224;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve = (sx_ecc_curve_t*)&sx_ecc_curve_p256;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ if (curve_type == PSA_ECC_FAMILY_SECP_K1) {
+ curve = (sx_ecc_curve_t*)&sx_ecc_curve_p256k1;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Check sufficient output buffer size.
+ if (signature_size < PSA_ECDSA_SIGNATURE_SIZE(key_bits)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ block_t priv = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ block_t data_in = block_t_convert(hash, hash_length);
+ block_t data_out = block_t_convert(signature, PSA_ECDSA_SIGNATURE_SIZE(key_bits));
+
+ psa_status_t status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ uint32_t sx_ret = ecdsa_generate_signature_digest(curve,
+ data_in,
+ priv,
+ data_out,
+ sli_cryptoacc_trng_wrapper);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ *signature_length = PSA_ECDSA_SIGNATURE_SIZE(key_bits);
+
+ return PSA_SUCCESS;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) hash;
+ (void) hash_length;
+ (void) signature;
+ (void) signature_size;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECDSA
+}
+
+psa_status_t sli_cryptoacc_transparent_verify_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+#if defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || hash == NULL
+ || hash_length == 0
+ || (signature == NULL && signature_length != 0) ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ if (!PSA_KEY_TYPE_IS_ECC(key_type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (PSA_ALG_IS_RSA_PSS(alg) || PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg)) {
+ // We shouldn't have a RSA-type alg for a ECC key.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (!PSA_ALG_IS_ECDSA(alg)) {
+ // We only support ECDSA.
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (signature_length == 0) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ uint32_t curve_flags = 0;
+ sx_ecc_curve_t *curve_ptr = NULL;
+
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_ptr = (sx_ecc_curve_t*)&sx_ecc_curve_p192;
+ curve_flags = sx_ecc_curve_p192.pk_flags;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_ptr = (sx_ecc_curve_t*)&sx_ecc_curve_p224;
+ curve_flags = sx_ecc_curve_p224.pk_flags;
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+ case 256:
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ if (curve_type == PSA_ECC_FAMILY_SECP_R1) {
+ curve_ptr = (sx_ecc_curve_t*)&sx_ecc_curve_p256;
+ curve_flags = sx_ecc_curve_p256.pk_flags;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256K1)
+ if (curve_type == PSA_ECC_FAMILY_SECP_K1) {
+ curve_ptr = (sx_ecc_curve_t*)&sx_ecc_curve_p256k1;
+ curve_flags = sx_ecc_curve_p256k1.pk_flags;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_P256K1
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (signature_length != PSA_ECDSA_SIGNATURE_SIZE(key_bits)) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ // Export public key if necessary.
+ psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
+ uint32_t sx_ret = CRYPTOLIB_CRYPTO_ERR;
+ block_t pub = NULL_blk;
+ uint8_t pub_buf[64] = { 0 };
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) {
+ block_t curve = block_t_convert(curve_ptr->params.addr, 6 * PSA_BITS_TO_BYTES(key_bits));
+ block_t priv = block_t_convert(key_buffer, PSA_BITS_TO_BYTES(key_bits));
+ pub = block_t_convert(pub_buf, PSA_ECDSA_SIGNATURE_SIZE(key_bits));
+
+ // Perform point multiplication in order to get public key.
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = ecc_generate_public_key(curve, pub, priv, PSA_BITS_TO_BYTES(key_bits), curve_flags);
+ status = cryptoacc_management_release();
+ if (sx_ret != CRYPTOLIB_SUCCESS
+ || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ } else {
+ pub = block_t_convert(key_buffer + 1, PSA_ECDSA_SIGNATURE_SIZE(key_bits));
+ }
+
+ block_t digest = block_t_convert(hash, hash_length);
+ block_t signature_internal = block_t_convert(signature, PSA_ECDSA_SIGNATURE_SIZE(key_bits));
+
+ status = cryptoacc_management_acquire();
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ sx_ret = ecdsa_verify_signature_digest(curve_ptr,
+ digest,
+ pub,
+ signature_internal);
+ status = cryptoacc_management_release();
+ if (sx_ret == CRYPTOLIB_INVALID_SIGN_ERR) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ if (sx_ret != CRYPTOLIB_SUCCESS || status != PSA_SUCCESS) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+
+#else // SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) hash;
+ (void) hash_length;
+ (void) signature;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECDSA
+}
+
+#endif // SLI_MBEDTLS_DEVICE_VSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_common.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_common.c
new file mode 100644
index 000000000..83c3e32ae
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_common.c
@@ -0,0 +1,65 @@
+/***************************************************************************/ /**
+ * @file
+ * @brief PSA Driver common utility functions
+ *******************************************************************************
+ * # License
+ * Copyright 2021 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_common.h"
+
+#include "constant_time_internal.h"
+#include "constant_time_impl.h"
+
+//------------------------------------------------------------------------------
+// Function definitions
+
+psa_status_t sli_psa_validate_pkcs7_padding(uint8_t *padded_data,
+ size_t padded_data_length,
+ size_t *padding_bytes)
+{
+ size_t i, pad_idx;
+ unsigned char padding_len;
+
+ padding_len = padded_data[padded_data_length - 1];
+ *padding_bytes = padding_len;
+
+ mbedtls_ct_condition_t bad =
+ mbedtls_ct_uint_gt(padding_len, padded_data_length);
+ bad = mbedtls_ct_bool_or(bad, mbedtls_ct_uint_eq(padding_len, 0));
+
+ // The number of bytes checked must be independent of padding_len, so pick
+ // input_len, which is 16 bytes (one block) for our use cases.
+ pad_idx = padded_data_length - padding_len;
+ for (i = 0; i < padded_data_length; i++) {
+ mbedtls_ct_condition_t in_padding = mbedtls_ct_uint_ge(i, pad_idx);
+ mbedtls_ct_condition_t different =
+ mbedtls_ct_uint_ne(padded_data[i], padding_len);
+ bad = mbedtls_ct_bool_or(bad, mbedtls_ct_bool_and(in_padding, different));
+ }
+
+ return (psa_status_t)mbedtls_ct_error_if_else_0(bad,
+ PSA_ERROR_INVALID_PADDING);
+}
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_ghash.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_ghash.c
new file mode 100644
index 000000000..d6d2a292d
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_ghash.c
@@ -0,0 +1,162 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA Driver software GHASH support
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_PSA_DRIVER_FEATURE_GCM_IV_CALCULATION)
+
+#include "psa/crypto.h"
+
+#include "sli_psa_driver_common.h"
+
+// -----------------------------------------------------------------------------
+// Macros
+
+#ifndef GET_UINT32_BE
+#define GET_UINT32_BE(n, b, i) \
+ { \
+ (n) = ( (uint32_t) (b)[(i)] << 24) \
+ | ( (uint32_t) (b)[(i) + 1] << 16) \
+ | ( (uint32_t) (b)[(i) + 2] << 8) \
+ | ( (uint32_t) (b)[(i) + 3]); \
+ }
+#endif
+
+#ifndef PUT_UINT32_BE
+#define PUT_UINT32_BE(n, b, i) \
+ { \
+ (b)[(i)] = (unsigned char) ( (n) >> 24); \
+ (b)[(i) + 1] = (unsigned char) ( (n) >> 16); \
+ (b)[(i) + 2] = (unsigned char) ( (n) >> 8); \
+ (b)[(i) + 3] = (unsigned char) ( (n) ); \
+ }
+#endif
+
+// -----------------------------------------------------------------------------
+// Static constants
+
+static const uint64_t last4[16] =
+{
+ 0x0000, 0x1c20, 0x3840, 0x2460,
+ 0x7080, 0x6ca0, 0x48c0, 0x54e0,
+ 0xe100, 0xfd20, 0xd940, 0xc560,
+ 0x9180, 0x8da0, 0xa9c0, 0xb5e0
+};
+
+// -----------------------------------------------------------------------------
+// Global functions
+
+void sli_psa_software_ghash_setup(const uint8_t Ek[16],
+ uint64_t HL[16],
+ uint64_t HH[16])
+{
+ int i, j;
+ uint64_t hi, lo;
+ uint64_t vl, vh;
+
+ /* pack Ek as two 64-bits ints, big-endian */
+ GET_UINT32_BE(hi, Ek, 0);
+ GET_UINT32_BE(lo, Ek, 4);
+ vh = (uint64_t) hi << 32 | lo;
+
+ GET_UINT32_BE(hi, Ek, 8);
+ GET_UINT32_BE(lo, Ek, 12);
+ vl = (uint64_t) hi << 32 | lo;
+
+ /* 8 = 1000 corresponds to 1 in GF(2^128) */
+ HL[8] = vl;
+ HH[8] = vh;
+
+ /* 0 corresponds to 0 in GF(2^128) */
+ HH[0] = 0;
+ HL[0] = 0;
+
+ for ( i = 4; i > 0; i >>= 1 ) {
+ uint32_t T = (vl & 1) * 0xe1000000U;
+ vl = (vh << 63) | (vl >> 1);
+ vh = (vh >> 1) ^ ( (uint64_t) T << 32);
+
+ HL[i] = vl;
+ HH[i] = vh;
+ }
+
+ for ( i = 2; i <= 8; i *= 2 ) {
+ uint64_t *HiL = HL + i, *HiH = HH + i;
+ vh = *HiH;
+ vl = *HiL;
+ for ( j = 1; j < i; j++ ) {
+ HiH[j] = vh ^ HH[j];
+ HiL[j] = vl ^ HL[j];
+ }
+ }
+}
+
+void sli_psa_software_ghash_multiply(const uint64_t HL[16],
+ const uint64_t HH[16],
+ uint8_t output[16],
+ const uint8_t input[16])
+{
+ int i = 0;
+ unsigned char lo, hi, rem;
+ uint64_t zh, zl;
+
+ lo = input[15] & 0xf;
+
+ zh = HH[lo];
+ zl = HL[lo];
+
+ for ( i = 15; i >= 0; i-- ) {
+ lo = input[i] & 0xf;
+ hi = (input[i] >> 4) & 0xf;
+
+ if ( i != 15 ) {
+ rem = (unsigned char) zl & 0xf;
+ zl = (zh << 60) | (zl >> 4);
+ zh = (zh >> 4);
+ zh ^= (uint64_t) last4[rem] << 48;
+ zh ^= HH[lo];
+ zl ^= HL[lo];
+ }
+
+ rem = (unsigned char) zl & 0xf;
+ zl = (zh << 60) | (zl >> 4);
+ zh = (zh >> 4);
+ zh ^= (uint64_t) last4[rem] << 48;
+ zh ^= HH[hi];
+ zl ^= HL[hi];
+ }
+
+ PUT_UINT32_BE(zh >> 32, output, 0);
+ PUT_UINT32_BE(zh, output, 4);
+ PUT_UINT32_BE(zl >> 32, output, 8);
+ PUT_UINT32_BE(zl, output, 12);
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_GCM_IV_CALCULATION
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_init.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_init.c
new file mode 100644
index 000000000..f53587736
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_driver_init.c
@@ -0,0 +1,114 @@
+/***************************************************************************//**
+ * @file
+ * @brief PSA Driver initialization interface.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#include "psa/crypto.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #include "sli_se_transparent_functions.h"
+ #include "sl_se_manager.h"
+ #include "sli_se_opaque_functions.h"
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+#if defined(SLI_MBEDTLS_DEVICE_VSE)
+ #include "sli_cryptoacc_transparent_functions.h"
+ #include "cryptoacc_management.h"
+#endif // SLI_MBEDTLS_DEVICE_VSE
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+psa_status_t sli_se_transparent_driver_init(void)
+{
+ sl_status_t sl_status = sl_se_init();
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+}
+
+psa_status_t sli_se_transparent_driver_deinit(void)
+{
+ sl_status_t sl_status = sl_se_deinit();
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#if defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+psa_status_t sli_se_opaque_driver_init(void)
+{
+ sl_status_t sl_status = sl_se_init();
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+}
+
+psa_status_t sli_se_opaque_driver_deinit(void)
+{
+ sl_status_t sl_status = sl_se_deinit();
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+
+#elif defined(SLI_MBEDTLS_DEVICE_VSE)
+
+psa_status_t sli_cryptoacc_transparent_driver_init(void)
+{
+ // Consider moving the clock init and etc. here, which is performed by the
+ // management functions.
+
+ #if defined(SLI_MBEDTLS_DEVICE_VSE_V2)
+ return cryptoacc_initialize_countermeasures();
+ #else
+ return PSA_SUCCESS;
+ #endif
+}
+
+psa_status_t sli_cryptoacc_transparent_driver_deinit(void)
+{
+ return PSA_SUCCESS;
+}
+
+#endif
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_trng.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_trng.c
new file mode 100644
index 000000000..88af97416
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_psa_trng.c
@@ -0,0 +1,160 @@
+/***************************************************************************//**
+ * @file
+ * @brief Default PSA TRNG hook for Silicon Labs devices.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
+
+#include "psa/crypto.h"
+#include "psa/crypto_extra.h"
+#include "psa/crypto_platform.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+ #include "sl_se_manager.h"
+ #include "sl_se_manager_entropy.h"
+#elif defined(SLI_MBEDTLS_DEVICE_VSE)
+ #include "sli_cryptoacc_driver_trng.h"
+#elif defined(SLI_TRNG_DEVICE_SI91X)
+ #include "sl_si91x_psa_trng.h"
+#endif
+
+// -----------------------------------------------------------------------------
+// Typedefs
+
+#if !defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
+typedef void mbedtls_psa_external_random_context_t;
+#endif
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+static psa_status_t se_get_random(unsigned char *output,
+ size_t len,
+ size_t *out_len)
+{
+ sl_status_t ret;
+ sl_se_command_context_t cmd_ctx;
+
+ // Initialize the SE manager.
+ ret = sl_se_init();
+ if (ret != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Initialize command context
+ ret = sl_se_init_command_context(&cmd_ctx);
+ if (ret != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Get entropy
+ ret = sl_se_get_random(&cmd_ctx, output, len);
+
+ if (ret == SL_STATUS_OK) {
+ *out_len = len;
+ return PSA_SUCCESS;
+ }
+
+ *out_len = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
+
+// -----------------------------------------------------------------------------
+// Global entry points
+
+psa_status_t mbedtls_psa_external_get_random(
+ mbedtls_psa_external_random_context_t *context,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ (void)context;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_TRNG)
+
+ psa_status_t entropy_status = PSA_ERROR_CORRUPTION_DETECTED;
+ *output_length = 0;
+
+ #if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+ entropy_status = se_get_random(output,
+ output_size,
+ output_length);
+
+ #elif defined(SLI_MBEDTLS_DEVICE_VSE)
+
+ entropy_status = sli_cryptoacc_trng_get_random(output, output_size);
+ if (entropy_status == PSA_SUCCESS) {
+ *output_length = output_size;
+ }
+
+ #else
+
+ size_t entropy_max_retries = 5;
+ while (entropy_max_retries > 0 && entropy_status != PSA_SUCCESS) {
+ size_t offset = *output_length;
+
+ // Read random bytes
+ #if defined(SLI_TRNG_DEVICE_SI91X)
+ entropy_status = sl_si91x_psa_get_random(&output[offset],
+ output_size - offset,
+ output_length);
+ #endif
+
+ *output_length += offset;
+
+ if (*output_length >= output_size) {
+ entropy_status = PSA_SUCCESS;
+ }
+
+ // Consume a retry before going through another loop
+ entropy_max_retries--;
+ }
+
+ #endif
+
+ return entropy_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_TRNG
+
+ (void) output;
+ (void) output_size;
+ (void) output_length;
+
+ return PSA_ERROR_HARDWARE_FAILURE;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_TRNG
+}
+
+#endif // MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG || MBEDTLS_ENTROPY_HARDWARE_ALT
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_aead.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_aead.c
new file mode 100644
index 000000000..781dbe161
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_aead.c
@@ -0,0 +1,1657 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver AEAD functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_psa_driver_common.h"
+#include "sli_se_driver_key_management.h"
+#include "sli_se_driver_aead.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_cipher.h"
+#include "sli_se_manager_internal.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_AEAD)
+
+static psa_status_t check_aead_parameters(const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg,
+ size_t nonce_length,
+ size_t additional_data_length)
+{
+ size_t tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ #if !defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ (void)additional_data_length;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ // verify key type
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ switch (psa_get_key_bits(attributes)) {
+ case 128: // Fallthrough
+ case 192: // Fallthrough
+ case 256:
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // verify nonce and tag lengths
+ if (tag_length < 4 || tag_length > 16 || tag_length % 2 != 0
+ || nonce_length < 7 || nonce_length > 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ // AD are limited to 2^64 bits, so 2^61 bytes.
+ // We need not check if SIZE_MAX (max of size_t) is less than 2^61.
+ #if SIZE_MAX > 0x2000000000000000ull
+ if (additional_data_length >> 61 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ #else
+ (void) additional_data_length;
+ #endif
+ // verify key type
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ switch (psa_get_key_bits(attributes)) {
+ case 128: // Fallthrough
+ case 192: // Fallthrough
+ case 256:
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // verify nonce and tag lengths
+ if ((tag_length < 4) || (tag_length > 16)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (nonce_length == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ #if !defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ if (nonce_length != 12) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ #endif
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHAPOLY)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0):
+ // verify key type
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_CHACHA20
+ || psa_get_key_bits(attributes) != 256) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // verify nonce and tag lengths
+ if (nonce_length != 12 || tag_length != 16) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHAPOLY
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_AEAD
+
+#if defined(SLI_PSA_DRIVER_FEATURE_GCM_IV_CALCULATION)
+
+// Do GCM in software in case the IV isn't 12 bytes, since that's the only
+// thing the accelerator supports.
+static psa_status_t sli_se_driver_software_gcm(sl_se_command_context_t *cmd_ctx,
+ sl_se_key_descriptor_t *key_desc,
+ const uint8_t* nonce,
+ size_t nonce_length,
+ const uint8_t* additional_data,
+ size_t additional_data_length,
+ const uint8_t* input,
+ uint8_t* output,
+ size_t plaintext_length,
+ size_t tag_length,
+ uint8_t* tag,
+ bool encrypt_ndecrypt)
+{
+ // Step 1: calculate H = Ek(0)
+ uint8_t Ek[16] = { 0 };
+ psa_status_t status = sl_se_aes_crypt_ecb(cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ sizeof(Ek),
+ (const unsigned char *)Ek,
+ Ek);
+
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Step 2: calculate IV = GHASH(H, {}, IV)
+ uint8_t iv[16] = { 0 };
+ uint64_t HL[16], HH[16];
+
+ sli_psa_software_ghash_setup(Ek, HL, HH);
+
+ for (size_t i = 0; i < nonce_length; i += 16) {
+ // Mix in IV
+ for (size_t j = 0; j < (nonce_length - i > 16 ? 16 : nonce_length - i); j++) {
+ iv[j] ^= nonce[i + j];
+ }
+ // Update result
+ sli_psa_software_ghash_multiply(HL, HH, iv, iv);
+ }
+
+ iv[12] ^= (nonce_length * 8) >> 24;
+ iv[13] ^= (nonce_length * 8) >> 16;
+ iv[14] ^= (nonce_length * 8) >> 8;
+ iv[15] ^= (nonce_length * 8) >> 0;
+
+ sli_psa_software_ghash_multiply(HL, HH, iv, iv);
+
+ // Step 3: Calculate first counter block for tag generation
+ uint8_t tagbuf[16] = { 0 };
+ status = sl_se_aes_crypt_ecb(cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ sizeof(iv),
+ (const unsigned char *)iv,
+ tagbuf);
+
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // If we're decrypting, mix in the to-be-checked tag value before transforming
+ if (!encrypt_ndecrypt) {
+ for (size_t i = 0; i < tag_length; i++) {
+ tagbuf[i] ^= tag[i];
+ }
+ }
+
+ // Step 4: increment IV (ripple increment)
+ for (size_t i = 0; i < 16; i++) {
+ iv[15 - i]++;
+
+ if (iv[15 - i] != 0) {
+ break;
+ }
+ }
+
+ // Step 5: Accumulate additional data
+ memset(Ek, 0, sizeof(Ek));
+ for (size_t i = 0; i < additional_data_length; i += 16) {
+ // Mix in additional data as much as we have
+ for (size_t j = 0;
+ j < (additional_data_length - i > 16 ? 16 : additional_data_length - i);
+ j++) {
+ Ek[j] ^= additional_data[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+
+ // Step 6: If we're decrypting, accumulate the ciphertext before it gets transformed
+ if (!encrypt_ndecrypt) {
+ for (size_t i = 0; i < plaintext_length; i += 16) {
+ // Mix in ciphertext
+ for (size_t j = 0;
+ j < (plaintext_length - i > 16 ? 16 : plaintext_length - i);
+ j++) {
+ Ek[j] ^= input[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+ }
+
+ // Step 7: transform data using AES-CTR
+ uint32_t nc = 0;
+ uint8_t nc_buff[16];
+ status = sl_se_aes_crypt_ctr(cmd_ctx,
+ key_desc,
+ plaintext_length,
+ &nc,
+ iv,
+ nc_buff,
+ input,
+ output);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Step 8: If we're encrypting, accumulate the ciphertext now
+ if (encrypt_ndecrypt) {
+ for (size_t i = 0; i < plaintext_length; i += 16) {
+ // Mix in ciphertext
+ for (size_t j = 0;
+ j < (plaintext_length - i > 16 ? 16 : plaintext_length - i);
+ j++) {
+ Ek[j] ^= output[i + j];
+ }
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+ }
+ }
+
+ // Step 9: add len(A) || len(C) block to tag calculation
+ uint64_t bitlen = additional_data_length * 8;
+ Ek[0] ^= bitlen >> 56;
+ Ek[1] ^= bitlen >> 48;
+ Ek[2] ^= bitlen >> 40;
+ Ek[3] ^= bitlen >> 32;
+ Ek[4] ^= bitlen >> 24;
+ Ek[5] ^= bitlen >> 16;
+ Ek[6] ^= bitlen >> 8;
+ Ek[7] ^= bitlen >> 0;
+
+ bitlen = plaintext_length * 8;
+ Ek[8] ^= bitlen >> 56;
+ Ek[9] ^= bitlen >> 48;
+ Ek[10] ^= bitlen >> 40;
+ Ek[11] ^= bitlen >> 32;
+ Ek[12] ^= bitlen >> 24;
+ Ek[13] ^= bitlen >> 16;
+ Ek[14] ^= bitlen >> 8;
+ Ek[15] ^= bitlen >> 0;
+
+ sli_psa_software_ghash_multiply(HL, HH, Ek, Ek);
+
+ // Step 10: calculate tag value
+ for (size_t i = 0; i < tag_length; i++) {
+ tagbuf[i] ^= Ek[i];
+ }
+
+ // Step 11: output tag for encrypt operation, check tag for decrypt
+ if (encrypt_ndecrypt) {
+ memcpy(tag, tagbuf, tag_length);
+ } else {
+ uint8_t accumulator = 0;
+ for (size_t i = 0; i < tag_length; i++) {
+ accumulator |= tagbuf[i];
+ }
+ if (accumulator != 0) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_GCM_IV_CALCULATION
+
+#if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+static psa_status_t aead_start(sli_se_driver_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ // Ephemeral contexts
+ sli_se_driver_aead_preinit_t preinit = operation->ctx.preinit;
+
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ uint8_t tag_length = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ psa_algorithm_t alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(operation->alg);
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_GCM:
+ status = sl_se_gcm_multipart_starts(&operation->ctx.gcm,
+ &cmd_ctx,
+ &operation->key_desc,
+ preinit.direction,
+ preinit.nonce,
+ preinit.nonce_length,
+ input,
+ input_length);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ operation->ad_len += input_length;
+ return PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_CCM:
+ status = sl_se_ccm_multipart_starts(&operation->ctx.ccm,
+ &cmd_ctx,
+ &operation->key_desc,
+ preinit.direction,
+ preinit.pt_length,
+ preinit.nonce,
+ preinit.nonce_length,
+ input,
+ input_length,
+ tag_length);
+
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ operation->ad_len += input_length;
+ return PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_driver_aead_encrypt_tag(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD)
+
+ if (key_buffer == NULL
+ || attributes == NULL
+ || nonce == NULL
+ || (additional_data == NULL && additional_data_length > 0)
+ || (plaintext == NULL && plaintext_length > 0)
+ || (plaintext_length > 0 && (ciphertext == NULL || ciphertext_size == 0))
+ || ciphertext_length == NULL || tag_length == NULL
+ || tag_size == 0 || tag == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sl_status_t status;
+ psa_status_t psa_status;
+ *tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ // Verify that the driver supports the given parameters
+ psa_status = check_aead_parameters(attributes,
+ alg,
+ nonce_length,
+ additional_data_length);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Check sufficient output buffer size.
+ if ((ciphertext_size < plaintext_length)
+ || (tag_size < *tag_length)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((ciphertext > plaintext) && (ciphertext < (plaintext + plaintext_length))) {
+ memmove(ciphertext, plaintext, plaintext_length);
+ plaintext = ciphertext;
+ }
+
+ psa_status = PSA_ERROR_BAD_STATE;
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ status = sl_se_ccm_encrypt_and_tag(&cmd_ctx,
+ &key_desc,
+ plaintext_length,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ ciphertext,
+ tag,
+ *tag_length);
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_OK) {
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (nonce_length == 12) {
+ status = sl_se_gcm_crypt_and_tag(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ plaintext_length,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ ciphertext,
+ *tag_length,
+ tag);
+
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_OK) {
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+ #if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ else {
+ psa_status = sli_se_driver_software_gcm(&cmd_ctx,
+ &key_desc,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ ciphertext,
+ plaintext_length,
+ *tag_length,
+ tag,
+ true);
+ }
+ #else // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ else {
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ }
+ #endif // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHAPOLY)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0):
+ {
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+ // EFR32xG21 doesn't support the special case where both the message
+ // and additional data length are zero.
+ if (plaintext_length == 0 && additional_data_length == 0) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ #endif
+
+ uint8_t tagbuf[16];
+
+ status = sl_se_chacha20_poly1305_encrypt_and_tag(&cmd_ctx,
+ &key_desc,
+ plaintext_length,
+ nonce,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ ciphertext,
+ tagbuf);
+
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_OK) {
+ memcpy(tag, tagbuf, *tag_length);
+ psa_status = PSA_SUCCESS;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHAPOLY
+ }
+
+ if (psa_status == PSA_SUCCESS) {
+ *ciphertext_length = plaintext_length;
+ } else {
+ *ciphertext_length = 0;
+ *tag_length = 0;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_size;
+ (void)tag_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD
+}
+
+psa_status_t sli_se_driver_aead_decrypt_tag(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ const uint8_t* tag,
+ size_t tag_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD)
+
+ if (attributes == NULL
+ || key_buffer == NULL
+ || nonce == NULL
+ || (additional_data == NULL && additional_data_length > 0)
+ || (ciphertext == NULL && ciphertext_length > 0)
+ || (plaintext == NULL && plaintext_size > 0)
+ || plaintext_length == NULL
+ || tag == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sl_status_t status;
+ psa_status_t psa_status;
+
+ // Verify that the driver supports the given parameters
+ psa_status = check_aead_parameters(attributes,
+ alg,
+ nonce_length,
+ additional_data_length);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Check sufficient output buffer size.
+ if (plaintext_size < ciphertext_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((plaintext > ciphertext) && (plaintext < (ciphertext + ciphertext_length))) {
+ memmove(plaintext, ciphertext, ciphertext_length);
+ ciphertext = plaintext;
+ }
+
+ psa_status = PSA_ERROR_BAD_STATE;
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ status = sl_se_ccm_auth_decrypt(&cmd_ctx,
+ &key_desc,
+ ciphertext_length,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ plaintext,
+ tag,
+ tag_length);
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_INVALID_SIGNATURE) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ } else if (status == SL_STATUS_OK) {
+ *plaintext_length = ciphertext_length;
+ psa_status = PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (nonce_length == 12) {
+ status = sl_se_gcm_auth_decrypt(&cmd_ctx,
+ &key_desc,
+ ciphertext_length,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ plaintext,
+ tag_length,
+ tag);
+
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_INVALID_SIGNATURE) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ } else if (status == SL_STATUS_OK) {
+ *plaintext_length = ciphertext_length;
+ psa_status = PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+ #if defined(SLI_PSA_SUPPORT_GCM_IV_CALCULATION)
+ else {
+ psa_status = sli_se_driver_software_gcm(&cmd_ctx,
+ &key_desc,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ plaintext,
+ ciphertext_length,
+ tag_length,
+ (uint8_t*) tag,
+ false);
+ if (psa_status == PSA_SUCCESS) {
+ *plaintext_length = ciphertext_length;
+ }
+ }
+ #else // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ else {
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ }
+ #endif // SLI_PSA_SUPPORT_GCM_IV_CALCULATION
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHAPOLY)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CHACHA20_POLY1305, 0):
+
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+ // EFR32xG21 doesn't support the special case where both the message
+ // and additional data length are zero.
+ if (ciphertext_length == 0 && additional_data_length == 0) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ #endif
+
+ // Vault devices currently do not support ChaCha20-Poly1305 with truncated
+ // tag lengths. RFC8439 also disallows truncating the tag.
+ if (tag_length != 16) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ status = sl_se_chacha20_poly1305_auth_decrypt(&cmd_ctx,
+ &key_desc,
+ ciphertext_length,
+ nonce,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ plaintext,
+ tag);
+
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_INVALID_SIGNATURE) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ } else if (status == SL_STATUS_OK) {
+ *plaintext_length = ciphertext_length;
+ psa_status = PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHAPOLY
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)ciphertext;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_length;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD
+}
+
+psa_status_t sli_se_driver_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD)
+
+ if (ciphertext_size <= plaintext_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ size_t tag_length = 0;
+ psa_status_t psa_status = sli_se_driver_aead_encrypt_tag(
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ plaintext_length,
+ ciphertext,
+ plaintext_length,
+ ciphertext_length,
+ &ciphertext[plaintext_length],
+ ciphertext_size - plaintext_length,
+ &tag_length);
+
+ if (psa_status == PSA_SUCCESS) {
+ *ciphertext_length += tag_length;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD
+}
+
+psa_status_t sli_se_driver_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD)
+
+ if (attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t tag_length = PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes),
+ psa_get_key_bits(attributes),
+ alg);
+
+ if (ciphertext_length < tag_length
+ || ciphertext == NULL
+ || (tag_length > 16)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Split the tag in its own buffer to avoid potential issues when the
+ // plaintext buffer extends into the tag area
+ uint8_t check_tag[16];
+ memcpy(check_tag, &ciphertext[ciphertext_length - tag_length], tag_length);
+
+ return sli_se_driver_aead_decrypt_tag(
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ ciphertext_length - tag_length,
+ check_tag,
+ tag_length,
+ plaintext,
+ plaintext_size,
+ plaintext_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)nonce;
+ (void)nonce_length;
+ (void)additional_data;
+ (void)additional_data_length;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+ (void)ciphertext;
+ (void)ciphertext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD
+}
+
+psa_status_t sli_se_driver_aead_encrypt_decrypt_setup(
+ sli_se_driver_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ sl_se_cipher_operation_t operation_direction,
+ uint8_t *key_storage_buffer,
+ size_t key_storage_buffer_size,
+ size_t key_storage_overhead)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ if (operation == NULL
+ || attributes == NULL
+ || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t key_bits = psa_get_key_bits(attributes);
+ size_t key_size = PSA_BITS_TO_BYTES(key_bits);
+
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Validate key type
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Validate tag length.
+ if ( PSA_AEAD_TAG_LENGTH(psa_get_key_type(attributes), key_bits, alg) > 16 ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ // Validate operation
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(alg, 0)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ operation->alg = alg;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ operation->alg = alg;
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Prepare key descriptor
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &(operation->key_desc));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Verify length and copy key material to context
+ uint32_t key_len = 0;
+ sl_status_t status = sli_key_get_size(&(operation->key_desc), &key_len);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ switch (key_len) {
+ case 16: // Fallthrough
+ case 24: // Fallthrough
+ case 32:
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (key_storage_buffer_size < key_storage_overhead + key_len) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(key_storage_buffer,
+ operation->key_desc.storage.location.buffer.pointer,
+ key_storage_overhead + key_len);
+
+ // Point key_descriptor at internal copy of key
+ operation->key_desc.storage.location.buffer.pointer = key_storage_buffer;
+
+ // Set direction of operation
+ operation->ctx.preinit.direction = operation_direction;
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)operation_direction;
+ (void)key_storage_buffer;
+ (void)key_storage_buffer_size;
+ (void)key_storage_overhead;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_set_nonce(
+ sli_se_driver_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ if (operation == NULL
+ || nonce == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Setting nonce twice isn't supported
+ if (operation->ctx.preinit.nonce_length != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ // Non-12-byte IV is not supported for multipart GCM
+ if (PSA_ALG_AEAD_WITH_SHORTENED_TAG(operation->alg, 0)
+ == PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0)) {
+ if (nonce_size != 12) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ }
+ #endif
+
+ if (nonce_size <= sizeof(operation->ctx.preinit.nonce)) {
+ memcpy(operation->ctx.preinit.nonce, nonce, nonce_size);
+ operation->ctx.preinit.nonce_length = nonce_size;
+ return PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)nonce;
+ (void)nonce_size;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_set_lengths(
+ sli_se_driver_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // To pass current PSA Crypto test suite, tag length encoded in the
+ // algorithm needs to be checked at this point.
+ switch (PSA_ALG_AEAD_WITH_SHORTENED_TAG(operation->alg, 0)) {
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_CCM, 0):
+ if ((PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) % 2 != 0)
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) < 4
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_AEAD_WITH_SHORTENED_TAG(PSA_ALG_GCM, 0):
+ if (PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) < 4
+ || PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (operation->ad_len != 0 || operation->pt_len != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ operation->ctx.preinit.ad_length = ad_length;
+ operation->ctx.preinit.pt_length = plaintext_length;
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)ad_length;
+ (void)plaintext_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_update_ad(
+ sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ const uint8_t *input,
+ size_t input_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ if (operation == NULL
+ || key_buffer == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (operation->ad_len > 0 || operation->pt_len > 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Start operation
+ if (input_length == 0) {
+ return PSA_SUCCESS;
+ }
+
+ return aead_start(operation, input, input_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)key_buffer;
+ (void)input;
+ (void)input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_update(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ (void)key_buffer;
+ sl_status_t status;
+ size_t final_data_length = 0;
+
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check output buffer size is not too small. The required size =
+ // input_length + residual data stored in context object from previous update
+ // The PSA Crypto tests require output buffer can hold the residual bytes in
+ // the last AES block even if these are not processed and written in this call
+ // ( they are postponed to the next call to update or finish ).
+ psa_algorithm_t alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(operation->alg);
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_GCM:
+ {
+ #if defined(_SILICON_LABS_32B_SERIES_2_CONFIG_1)
+ // On xG21 devices, if the final_data_length is 16 from the previous call
+ // to the sl_se_gcm_multipart_update function we should not count in the
+ // final_data since it should be processed already.
+ if (operation->ctx.gcm.final_data_length == 16) {
+ final_data_length = 0;
+ } else
+ #endif
+ {
+ final_data_length = operation->ctx.gcm.final_data_length;
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_CCM:
+ {
+ final_data_length = operation->ctx.ccm.final_data_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (output_size < input_length + final_data_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (((input == NULL || output == NULL) && input_length > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Start operation
+ if (input_length == 0) {
+ return PSA_SUCCESS;
+ }
+
+ psa_status_t psa_status;
+
+ // Operation isn't initialised unless we have either AD or PT, so if we are
+ // still at 0, we need to run the start step.
+ if (operation->ad_len == 0 && operation->pt_len == 0) {
+ psa_status = aead_start(operation, NULL, 0);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ }
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_GCM:
+ {
+ status = sl_se_gcm_multipart_update(&operation->ctx.gcm,
+ &cmd_ctx,
+ &operation->key_desc,
+ input_length,
+ input,
+ output,
+ output_length);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ psa_status = PSA_SUCCESS;
+ operation->pt_len += input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_CCM:
+ {
+ status = sl_se_ccm_multipart_update(&operation->ctx.ccm,
+ &cmd_ctx,
+ &operation->key_desc,
+ input_length,
+ input,
+ output,
+ output_length);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ psa_status = PSA_SUCCESS;
+ operation->pt_len += input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)key_buffer;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_finish(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ (void)key_buffer;
+
+ sl_status_t status;
+ psa_status_t psa_status;
+
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ uint32_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+
+ if (tag_size < tag_len) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ if (ciphertext_length == NULL
+ || tag == NULL
+ || tag_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ *ciphertext_length = 0;
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Operation isn't initialised unless we have either AD or PT, so if we are
+ // still at 0, we need to run the start step.
+ if (operation->ad_len == 0 && operation->pt_len == 0) {
+ psa_status = aead_start(operation, NULL, 0);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ }
+
+ psa_algorithm_t alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(operation->alg);
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_GCM:
+ if (operation->ctx.gcm.mode != SL_SE_ENCRYPT) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ status = sl_se_gcm_multipart_finish(&operation->ctx.gcm,
+ &cmd_ctx,
+ &operation->key_desc,
+ tag,
+ tag_len,
+ ciphertext,
+ ciphertext_size,
+ (uint8_t *)ciphertext_length);
+ if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ *tag_length = tag_len;
+ psa_status = PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_CCM:
+ if (operation->ctx.ccm.mode != SL_SE_ENCRYPT) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ status = sl_se_ccm_multipart_finish(&operation->ctx.ccm,
+ &cmd_ctx,
+ &operation->key_desc,
+ tag,
+ tag_len,
+ ciphertext,
+ ciphertext_size,
+ (uint8_t *)ciphertext_length);
+
+ if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ *tag_length = operation->ctx.ccm.tag_len;
+ psa_status = PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ default:
+ (void)tag_size;
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ goto exit;
+ }
+
+ exit:
+
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)key_buffer;
+ (void)ciphertext;
+ (void)ciphertext_size;
+ (void)ciphertext_length;
+ (void)tag;
+ (void)tag_size;
+ (void)tag_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+psa_status_t sli_se_driver_aead_verify(sli_se_driver_aead_operation_t *operation,
+ uint8_t *key_buffer,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART)
+
+ (void)key_buffer;
+
+ sl_status_t status;
+ psa_status_t psa_status;
+
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ if (operation == NULL || plaintext_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ *plaintext_length = 0;
+
+ if (tag == NULL || tag_length == 0 ) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ psa_algorithm_t alg = PSA_ALG_AEAD_WITH_DEFAULT_LENGTH_TAG(operation->alg);
+
+ if (operation->alg == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Operation isn't initialised unless we have either AD or PT, so if we are
+ // still at 0, we need to run the start step.
+ if (operation->ad_len == 0 && operation->pt_len == 0) {
+ psa_status = aead_start(operation, NULL, 0);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ }
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_GCM)
+ case PSA_ALG_GCM:
+ if (operation->ctx.gcm.mode != SL_SE_DECRYPT) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ status = sl_se_gcm_multipart_finish(&operation->ctx.gcm,
+ &cmd_ctx,
+ &operation->key_desc,
+ (uint8_t *)tag,
+ tag_length,
+ plaintext,
+ plaintext_size,
+ (uint8_t *)plaintext_length);
+ if (status == SL_STATUS_INVALID_SIGNATURE) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ } else if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ psa_status = PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_GCM
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CCM)
+ case PSA_ALG_CCM:
+ {
+ uint32_t tag_len = PSA_ALG_AEAD_GET_TAG_LENGTH(operation->alg);
+ if (tag_length != tag_len) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ }
+ if (operation->ctx.ccm.mode != SL_SE_DECRYPT) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ goto exit;
+ }
+ status = sl_se_ccm_multipart_finish(&operation->ctx.ccm,
+ &cmd_ctx,
+ &operation->key_desc,
+ (uint8_t *)tag,
+ tag_length,
+ plaintext,
+ plaintext_size,
+ (uint8_t *)plaintext_length);
+
+ if (status == SL_STATUS_INVALID_SIGNATURE) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ goto exit;
+ } else if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ psa_status = PSA_SUCCESS;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CCM
+
+ default:
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ goto exit;
+ }
+
+ exit:
+
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+
+ (void)operation;
+ (void)key_buffer;
+ (void)plaintext;
+ (void)plaintext_size;
+ (void)plaintext_length;
+ (void)tag;
+ (void)tag_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_AEAD_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_builtin_keys.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_builtin_keys.c
new file mode 100644
index 000000000..2172c7756
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_builtin_keys.c
@@ -0,0 +1,170 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Builtin key functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include
+
+#include "sli_se_opaque_types.h"
+#include "sl_psa_values.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+#if defined(SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS)
+
+psa_status_t sli_se_opaque_get_builtin_key(psa_drv_slot_number_t slot_number,
+ psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length)
+{
+ sli_se_opaque_key_context_header_t header;
+ memset(&header, 0, sizeof(header));
+
+ // Set key type and permissions according to key ID
+ switch ( slot_number ) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_ATTESTATION)
+ case SL_SE_KEY_SLOT_APPLICATION_ATTESTATION_KEY:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1) );
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH);
+ psa_set_key_algorithm(attributes, PSA_ALG_ECDSA(PSA_ALG_ANY_HASH));
+ break;
+ case SL_SE_KEY_SLOT_SE_ATTESTATION_KEY:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1) );
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_VERIFY_HASH);
+ psa_set_key_algorithm(attributes, PSA_ALG_ECDSA(PSA_ALG_ANY_HASH));
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_ATTESTATION
+ case SL_SE_KEY_SLOT_APPLICATION_SECURE_BOOT_KEY:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1) );
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_VERIFY_HASH);
+ psa_set_key_algorithm(attributes, PSA_ALG_ECDSA(PSA_ALG_ANY_HASH));
+ break;
+ case SL_SE_KEY_SLOT_APPLICATION_SECURE_DEBUG_KEY:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_ECC_PUBLIC_KEY(PSA_ECC_FAMILY_SECP_R1) );
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_VERIFY_HASH);
+ psa_set_key_algorithm(attributes, PSA_ALG_ECDSA(PSA_ALG_ANY_HASH));
+ break;
+ case SL_SE_KEY_SLOT_APPLICATION_AES_128_KEY:
+ psa_set_key_bits(attributes, 128);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(attributes, SL_SE_BUILTIN_KEY_AES128_ALG);
+ break;
+ case SL_SE_KEY_SLOT_TRUSTZONE_ROOT_KEY:
+ psa_set_key_bits(attributes, 256);
+ psa_set_key_type(attributes, PSA_KEY_TYPE_AES);
+ psa_set_key_usage_flags(attributes, PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT);
+ psa_set_key_algorithm(attributes, PSA_ALG_CMAC);
+ break;
+ default:
+ return(PSA_ERROR_DOES_NOT_EXIST);
+ }
+
+ psa_set_key_lifetime(attributes,
+ PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(
+ PSA_KEY_PERSISTENCE_READ_ONLY,
+ PSA_KEY_LOCATION_SLI_SE_OPAQUE) );
+
+ // Check the key buffer size after populating the key attributes:
+ // From mbedTLS, psa-driver-interface.md (snippet):
+ //
+ // This entry point may return the following status values:
+ // (...)
+ // * PSA_ERROR_BUFFER_TOO_SMALL: key_buffer_size is insufficient.
+ // In this case, the driver must pass the key's attributes in
+ // *attributes. In particular, get_builtin_key(slot_number,
+ // &attributes, NULL, 0) is a way for the core to obtain the
+ // key's attributes.
+ if (key_buffer_size < sizeof(sli_se_opaque_key_context_header_t)) {
+ return(PSA_ERROR_BUFFER_TOO_SMALL);
+ }
+
+ header.struct_version = SLI_SE_OPAQUE_KEY_CONTEXT_VERSION;
+ header.builtin_key_id = (uint8_t) slot_number;
+
+ memcpy(key_buffer, &header, sizeof(sli_se_opaque_key_context_header_t));
+ *key_buffer_length = sizeof(sli_se_opaque_key_context_header_t);
+
+ return(PSA_SUCCESS);
+}
+
+#if !defined(PSA_CRYPTO_DRIVER_TEST)
+
+psa_status_t mbedtls_psa_platform_get_builtin_key(
+ mbedtls_svc_key_id_t key_id,
+ psa_key_lifetime_t *lifetime,
+ psa_drv_slot_number_t *slot_number)
+{
+ switch (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key_id)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_ATTESTATION)
+ case SL_SE_BUILTIN_KEY_APPLICATION_ATTESTATION_ID:
+ *slot_number = SL_SE_KEY_SLOT_APPLICATION_ATTESTATION_KEY;
+ break;
+ case SL_SE_BUILTIN_KEY_SYSTEM_ATTESTATION_ID:
+ *slot_number = SL_SE_KEY_SLOT_SE_ATTESTATION_KEY;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_ATTESTATION
+ case SL_SE_BUILTIN_KEY_SECUREBOOT_ID:
+ *slot_number = SL_SE_KEY_SLOT_APPLICATION_SECURE_BOOT_KEY;
+ break;
+ case SL_SE_BUILTIN_KEY_SECUREDEBUG_ID:
+ *slot_number = SL_SE_KEY_SLOT_APPLICATION_SECURE_DEBUG_KEY;
+ break;
+ case SL_SE_BUILTIN_KEY_AES128_ID:
+ *slot_number = SL_SE_KEY_SLOT_APPLICATION_AES_128_KEY;
+ break;
+ case SL_SE_BUILTIN_KEY_TRUSTZONE_ID:
+ *slot_number = SL_SE_KEY_SLOT_TRUSTZONE_ROOT_KEY;
+ break;
+ default:
+ return(PSA_ERROR_DOES_NOT_EXIST);
+ }
+ *lifetime = PSA_KEY_LIFETIME_FROM_PERSISTENCE_AND_LOCATION(
+ PSA_KEY_PERSISTENCE_READ_ONLY,
+ PSA_KEY_LOCATION_SLI_SE_OPAQUE);
+
+ return(PSA_SUCCESS);
+}
+
+#endif // !PSA_CRYPTO_DRIVER_TEST
+
+#endif // SLI_PSA_DRIVER_FEATURE_BUILTIN_KEYS
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c
new file mode 100644
index 000000000..9e8103bbb
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_cipher.c
@@ -0,0 +1,1776 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Cipher functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+#include "psa/crypto_extra.h"
+
+#include "sli_psa_driver_common.h"
+
+#include "sli_se_driver_cipher.h"
+#include "sli_se_driver_key_management.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_cipher.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+/**
+ * @brief
+ * Validate that the given key desc has the correct properties
+ * to be used for a cipher operation
+ * @param key_desc
+ * Pointer to a key descriptor
+ * @return
+ * PSA_SUCCESS if all is good
+ * PSA_ERROR_INVALID_ARGUMENT otherwise
+ */
+static psa_status_t validate_key_type(const sl_se_key_descriptor_t *key_desc)
+{
+ sl_se_key_type_t sl_key_type = key_desc->type;
+ // Check with if (..) since switch does not support multiple equal entries
+ // (AES 256 and CHACHA20 has same sl_key_type value)
+ if (sl_key_type == SL_SE_KEY_TYPE_AES_128
+ || sl_key_type == SL_SE_KEY_TYPE_AES_192
+ || sl_key_type == SL_SE_KEY_TYPE_AES_256
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ || sl_key_type == SL_SE_KEY_TYPE_CHACHA20
+ #endif
+ ) {
+ return PSA_SUCCESS;
+ }
+
+ return PSA_ERROR_INVALID_ARGUMENT;
+}
+
+// Validate combination of key and algorithm
+static psa_status_t validate_key_algorithm_match(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes)
+{
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER)
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_ECB)
+ case PSA_ALG_ECB_NO_PADDING:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR)
+ case PSA_ALG_CTR:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CFB)
+ case PSA_ALG_CFB:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_OFB)
+ case PSA_ALG_OFB:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_NO_PADDING)
+ case PSA_ALG_CBC_NO_PADDING:
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+ #endif
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_BLOCK_CIPHER
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_CHACHA20) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_driver_cipher_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_OFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_NO_PADDING) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ uint8_t tmp_buf[16] = { 0 };
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_OFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_NO_PADDING) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7)
+ uint8_t final_block[16] = { 0 };
+ #endif
+
+ #endif // MBEDTLS_PSA_CRYPTO_C
+
+ // Argument check
+ if (key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || (iv == NULL && iv_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t psa_status = validate_key_algorithm_match(alg, attributes);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ psa_status = validate_key_type(&key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ if (input_length == 0) {
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_ECB)
+ case PSA_ALG_ECB_NO_PADDING:
+ // Check buffer sizes
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // We cannot do ECB on non-block sizes
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // do the operation
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ input_length,
+ input,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ *output_length = input_length;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_ECB
+
+ #if defined(MBEDTLS_PSA_CRYPTO_C)
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ case PSA_ALG_CCM_STAR_NO_TAG: // Explicit fallthrough
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT)
+ case PSA_ALG_CTR: {
+ uint8_t iv_buf[16] = { 0 };
+ // Check buffer sizes
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ if (alg == PSA_ALG_CCM_STAR_NO_TAG) {
+ if (iv_length != 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // AES-CCM*-no-tag is basically AES-CTR with preformatted IV
+ iv_buf[0] = 1;
+ memcpy(&iv_buf[1], iv, 13);
+ iv_buf[14] = 0;
+ iv_buf[15] = 1;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG
+ {
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Write nonce to temporary buf to be used internally by
+ // sl_se_aes_crypt_ctr.
+ memcpy(iv_buf, iv, 16);
+ }
+
+ // Store final block in a temporary buffer in order to avoid in being
+ // overwritten inside of sl_se_aes_crypt_ctr() (hence the separation
+ // into two calls).
+ if ((input_length & 0x0F) > 0) {
+ memcpy(final_block, &input[input_length & ~0x0F], 16);
+ }
+
+ // Do multi-block operation if applicable.
+ if ((input_length & ~0x0F) > 0) {
+ status = sl_se_aes_crypt_ctr(&cmd_ctx,
+ &key_desc,
+ input_length & ~0x0F,
+ NULL,
+ iv_buf,
+ tmp_buf,
+ input,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ }
+
+ // Encrypt final block if there is any.
+ if ((input_length & 0x0F) > 0) {
+ status = sl_se_aes_crypt_ctr(&cmd_ctx,
+ &key_desc,
+ input_length & 0x0F,
+ NULL,
+ iv_buf,
+ tmp_buf,
+ final_block,
+ &output[(input_length & ~0x0F)]);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ }
+
+ *output_length = input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CFB)
+ case PSA_ALG_CFB:
+ // Check buffer sizes
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_cbf128.
+ memcpy(tmp_buf, iv, 16);
+
+ // Store final block in a temporary buffer in order to avoid in being
+ // overwritten inside of sl_se_aes_crypt_ctr() (hence the separation
+ // into two calls).
+ if ((input_length & 0x0F) > 0) {
+ memcpy(final_block, &input[input_length & ~0x0F], 16);
+ }
+
+ // Do multi-block operation if applicable.
+ if ((input_length & ~0x0F) > 0) {
+ status = sl_se_aes_crypt_cfb128(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ input_length & ~0x0F,
+ NULL,
+ tmp_buf,
+ input,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ }
+
+ // Encrypt final block if there is any.
+ if ((input_length & 0x0F) > 0) {
+ status = sl_se_aes_crypt_cfb128(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ input_length & 0x0F,
+ NULL,
+ tmp_buf,
+ final_block,
+ &output[(input_length & ~0x0F)]);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ }
+
+ *output_length = input_length;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_OFB)
+ case PSA_ALG_OFB:
+ {
+ // Check buffer sizes
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_ecb.
+ memcpy(tmp_buf, iv, 16);
+
+ size_t data_length = input_length;
+ size_t n = 0;
+
+ // Use final_block as a temporary storage in order to avoid input being
+ // overwritten by the output (in case of buffer overlap).
+ memcpy(final_block, input, 16);
+
+ // Loop over input data to create output.
+ do {
+ if (n == 0) {
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ tmp_buf,
+ tmp_buf);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+ }
+ uint8_t tmp_input_val = final_block[n];
+ final_block[n] = input[16 + input_length - data_length];
+ output[input_length - data_length] = tmp_input_val ^ tmp_buf[n];
+ n = (n + 1) & 0x0F;
+ } while (data_length--);
+
+ *output_length = input_length;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_OFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT)
+ case PSA_ALG_CBC_NO_PADDING:
+ // We cannot do CBC without padding on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // fall through
+ case PSA_ALG_CBC_PKCS7:
+ // Check buffer sizes
+ if (alg == PSA_ALG_CBC_NO_PADDING) {
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ } else {
+ if (output_size < 16 + (input_length & ~0xF)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ }
+
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_cbf128.
+ memcpy(tmp_buf, iv, 16);
+
+ // Store last block (if non-blocksize input-length) to temporary
+ // buffer to be used in padding.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ memcpy(final_block, &input[input_length & ~0xF], input_length & 0xF);
+ }
+
+ // CBC-encrypt all but the last block
+ if (input_length >= 16) {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ input_length & ~0xF,
+ tmp_buf,
+ input,
+ output);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+ }
+
+ // Process final block.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ // Add PKCS7 padding.
+ memset(&final_block[input_length & 0xF],
+ 16 - (input_length & 0xF),
+ 16 - (input_length & 0xF));
+
+ // Store IV (last ciphertext block) in temp buffer to avoid messing
+ // up output.
+ if (input_length >= 16) {
+ memcpy(tmp_buf, &output[(input_length & ~0xF) - 16], 16);
+ }
+
+ // CBC-encrypt the last block.
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ tmp_buf,
+ final_block,
+ final_block);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ // Copy to output.
+ memcpy(&output[(input_length & ~0xF)], final_block, 16);
+ *output_length = (input_length & ~0xF) + 16;
+ } else {
+ *output_length = input_length;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_CHACHA20) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // check buffer sizes
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (iv_length != 12) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // PSA Crypto dictates that the initial counter for ChaCha20 starts
+ // at zero (unless using the multi-part API)
+ memset(tmp_buf, 0, 4);
+ memcpy(&tmp_buf[4], iv, 12);
+
+ status = sl_se_chacha20_crypt(&cmd_ctx,
+ SL_SE_ENCRYPT,
+ &key_desc,
+ input_length,
+ tmp_buf,
+ &tmp_buf[4],
+ input,
+ output);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ *output_length = input_length;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHA20
+
+ #endif // MBEDTLS_PSA_CRYPTO_C
+
+ default:
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ exit:
+ if (status != SL_STATUS_OK) {
+ memset(output, 0, output_size);
+ *output_length = 0;
+ if (status == SL_STATUS_FAIL) {
+ // This specific code maps to 'does not exist' for builtin keys
+ return PSA_ERROR_DOES_NOT_EXIST;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ } else {
+ return PSA_SUCCESS;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+psa_status_t sli_se_driver_cipher_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT)
+ uint8_t tmp_buf[16] = { 0 };
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_OFB) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_NO_PADDING) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ uint8_t iv_buf[16] = { 0 };
+ #endif
+
+ // Argument check.
+ if (key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t psa_status = validate_key_algorithm_match(alg, attributes);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Ephemeral contexts.
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ psa_status = validate_key_type(&key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ if (input_length == 0) {
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_ECB)
+ case PSA_ALG_ECB_NO_PADDING:
+ // Check buffer sizes.
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // We cannot do ECB on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Do the operation.
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ &key_desc,
+ SL_SE_DECRYPT,
+ input_length,
+ input,
+ output);
+
+ *output_length = input_length;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_ECB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ case PSA_ALG_CCM_STAR_NO_TAG: // Explicit fallthrough
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT)
+ case PSA_ALG_CTR:
+ // Check buffer sizes.
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ if (alg == PSA_ALG_CCM_STAR_NO_TAG) {
+ if (output_size < input_length - 13) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // AES-CCM*-no-tag is basically AES-CTR with preformatted IV
+ iv_buf[0] = 1;
+ memcpy(&iv_buf[1], input, 13);
+ iv_buf[14] = 0;
+ iv_buf[15] = 1;
+ input += 13;
+ input_length -= 13;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG
+ {
+ if (output_size < input_length - 16) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_ctr.
+ memcpy(iv_buf, input, 16);
+ input += 16;
+ input_length -= 16;
+ }
+
+ status = sl_se_aes_crypt_ctr(&cmd_ctx,
+ &key_desc,
+ input_length,
+ NULL,
+ iv_buf,
+ tmp_buf,
+ input,
+ output);
+
+ *output_length = input_length;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CFB)
+ case PSA_ALG_CFB:
+ // Check buffer sizes.
+ if (output_size < input_length - 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_cfb128.
+ memcpy(iv_buf, input, 16);
+
+ status = sl_se_aes_crypt_cfb128(&cmd_ctx,
+ &key_desc,
+ SL_SE_DECRYPT,
+ input_length - 16,
+ NULL,
+ iv_buf,
+ &input[16],
+ output);
+
+ *output_length = input_length - 16;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_OFB)
+ case PSA_ALG_OFB:
+ {
+ // Check buffer sizes.
+ if (output_size < input_length - 16) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_ecb.
+ memcpy(iv_buf, input, 16);
+
+ input += 16;
+ size_t data_length = input_length - 16;
+ size_t n = 0;
+
+ // Loop over input data to create output.
+ while (data_length--) {
+ if (n == 0) {
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ &key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ iv_buf,
+ iv_buf);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+ }
+ *output++ = *input++ ^ iv_buf[n];
+
+ n = (n + 1) & 0x0F;
+ }
+
+ *output_length = input_length - 16;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_OFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT)
+ case PSA_ALG_CBC_NO_PADDING:
+ // We cannot do CBC without padding on non-block sizes.
+ if (input_length % 16 != 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // fall through
+
+ case PSA_ALG_CBC_PKCS7: {
+ size_t full_blocks;
+ if (alg == PSA_ALG_CBC_NO_PADDING) {
+ if (output_size < input_length - 16) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ full_blocks = (input_length - 16) / 16;
+ } else {
+ // Check correct input amount
+ if (input_length < 32
+ || ((input_length & 0xF) != 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Check output has enough room for at least n-1 blocks.
+ if (output_size < (input_length - 32)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ full_blocks = (input_length - 32) / 16;
+ }
+
+ // Write IV to temporary buf to be used internally by
+ // sl_se_aes_crypt_cbc.
+ memcpy(iv_buf, input, 16);
+
+ // CBC-decrypt all but the last block.
+ if (full_blocks > 0) {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ &key_desc,
+ SL_SE_DECRYPT,
+ full_blocks * 16,
+ iv_buf,
+ &input[16],
+ output);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+ }
+
+ // Process final block.
+ if (alg == PSA_ALG_CBC_PKCS7) {
+ // Store last block to temporary buffer to be used in removing the
+ // padding.
+ memcpy(tmp_buf, &input[input_length - 16], 16);
+
+ // CBC-decrypt the last block.
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ &key_desc,
+ SL_SE_DECRYPT,
+ 16,
+ iv_buf,
+ tmp_buf,
+ tmp_buf);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ // Validate padding.
+ size_t pad_bytes = 0;
+ psa_status = sli_psa_validate_pkcs7_padding(tmp_buf,
+ 16,
+ &pad_bytes);
+ if (psa_status != PSA_SUCCESS) {
+ *output_length = 0;
+ return psa_status;
+ }
+
+ if (output_size < (input_length - 16 - pad_bytes)) {
+ *output_length = 0;
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Copy non-padding bytes.
+ memcpy(&output[full_blocks * 16], tmp_buf, 16 - pad_bytes);
+ *output_length = input_length - 16 - pad_bytes;
+ } else {
+ *output_length = input_length - 16;
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_CHACHA20) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // check buffer sizes.
+ if (output_size < input_length - 12) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // PSA Crypto dictates that the initial counter for ChaCha20 starts
+ // at zero (unless using the multi-part API)
+ memset(iv_buf, 0, 4);
+
+ status = sl_se_chacha20_crypt(&cmd_ctx,
+ SL_SE_DECRYPT,
+ &key_desc,
+ input_length - 12, // - 12 due to the nonce.
+ iv_buf,
+ input,
+ &input[12],
+ output);
+
+ *output_length = input_length - 12;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHA20
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT) \
+ || defined(SLI_PSA_DRIVER_FEATURE_AES_OFB)
+ exit:
+ #endif
+
+ if (status != SL_STATUS_OK) {
+ memset(output, 0, output_size);
+ *output_length = 0;
+ if (status == SL_STATUS_FAIL) {
+ // This specific code maps to 'does not exist' for builtin keys
+ return PSA_ERROR_DOES_NOT_EXIST;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ } else {
+ return PSA_SUCCESS;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+// -----------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_driver_cipher_encrypt_setup(
+ sli_se_driver_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ // Set up context
+ memcpy(&operation->alg, &alg, sizeof(alg));
+ operation->direction = SL_SE_ENCRYPT;
+
+ // Validate combination of key and algorithm
+ return validate_key_algorithm_match(alg, attributes);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_driver_cipher_decrypt_setup(
+ sli_se_driver_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ // Set up context
+ memcpy(&operation->alg, &alg, sizeof(alg));
+ operation->direction = SL_SE_DECRYPT;
+
+ // Validate combination of key and algorithm
+ return validate_key_algorithm_match(alg, attributes);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_driver_cipher_set_iv(
+ sli_se_driver_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || iv == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (iv_length > sizeof(operation->iv)) {
+ // IV can't be larger than what our state can store
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->iv_len != 0) {
+ // IV was set previously
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ switch (operation->alg) {
+ case PSA_ALG_ECB_NO_PADDING:
+ if (iv_length > 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ return PSA_SUCCESS;
+ }
+ break;
+
+ case PSA_ALG_CTR: // Explicit fallthrough
+ case PSA_ALG_CFB: // Explicit fallthrough
+ case PSA_ALG_OFB: // Explicit fallthrough
+ case PSA_ALG_CBC_NO_PADDING: // Explicit fallthrough
+ case PSA_ALG_CBC_PKCS7: // Explicit fallthrough
+ if (iv_length != 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->iv, iv, iv_length);
+ break;
+
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ // Preformat the IV for CCM*-no-tag here, such that the remainder
+ // of the processing for this algorithm boils down to AES-CTR
+ if (iv_length != 13) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ operation->iv[0] = 1;
+ memcpy(&operation->iv[1], iv, iv_length);
+ operation->iv[14] = 0;
+ operation->iv[15] = 1;
+ iv_length = 16;
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ // PSA Crypto supports multiple IV input lengths for ChaCha20
+ // refer to the doc for PSA_ALG_STREAM_CIPHER
+ if (iv_length == 12) {
+ // Set initial counter value to zero
+ memset(operation->iv, 0, 4);
+ memcpy(&operation->iv[4], iv, iv_length);
+ } else if (iv_length == 16) {
+ // Initial counter value is stored little-endian in the first four
+ // bytes. This makes our lives easier: since this driver will only
+ // run on little-endian machines, we can just cast it to a uint32.
+ memcpy(operation->iv, iv, iv_length);
+ } else if (iv_length == 8) {
+ // "Original" ChaCha20: 8-byte IV and 8-byte counter (0-initialised).
+ // We currently don't support this format.
+ return PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHA20
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ operation->iv_len = iv_length;
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)iv;
+ (void)iv_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_driver_cipher_update(
+ sli_se_driver_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ // Argument check
+ if (operation == NULL
+ || (input == NULL && input_length > 0)
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Key desc has been properly set by wrapper function
+ const sl_se_key_descriptor_t *key_desc = &operation->key_desc;
+ psa_status_t psa_status = validate_key_type(key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ bool lagging;
+ size_t bytes_to_boundary = 16 - (operation->processed_length % 16);
+ size_t actual_output_length = 0;
+
+ // We need to cache (not return) the whole last block for decryption with
+ // padding, otherwise it won't be possible to remove a potential padding
+ // block during finish.
+ bool cache_full_block = (operation->alg == PSA_ALG_CBC_PKCS7
+ && operation->direction == SL_SE_DECRYPT);
+
+ // Figure out whether the operation is on a lagging or forward-looking cipher
+ // Lagging: needs a full block of input data before being able to output
+ // Non-lagging: can output the same amount of data as getting fed
+ switch (operation->alg) {
+ case PSA_ALG_ECB_NO_PADDING:
+ case PSA_ALG_CBC_NO_PADDING:
+ case PSA_ALG_CBC_PKCS7:
+ lagging = true;
+ break;
+
+ case PSA_ALG_CTR:
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ case PSA_ALG_CFB:
+ case PSA_ALG_OFB:
+ lagging = false;
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ lagging = false;
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (input_length == 0) {
+ // We don't need to do anything if the input length is zero.
+ *output_length = 0;
+ return PSA_SUCCESS;
+ }
+
+ if (lagging) {
+ // Early processing if not getting to a full block
+ if (cache_full_block
+ && bytes_to_boundary == 16
+ && operation->processed_length > 0) {
+ // Don't overwrite the streaming block if it's currently full.
+ } else {
+ if (input_length < bytes_to_boundary) {
+ memcpy(&operation->streaming_block[operation->processed_length % 16],
+ input,
+ input_length);
+ operation->processed_length += input_length;
+ *output_length = actual_output_length;
+ return PSA_SUCCESS;
+ }
+ }
+
+ // We know we'll be computing and outputing at least the completed
+ // streaming block.
+ size_t output_blocks = 1;
+
+ if (input_length > bytes_to_boundary) {
+ // plus however many full blocks are left over after filling the stream buffer
+ output_blocks += (input_length - bytes_to_boundary) / 16;
+ // If we're caching and the sum of already-input and to-be-input data
+ // ends up at a block boundary, we won't be outputting the last block
+ if (cache_full_block && ((input_length - bytes_to_boundary) % 16 == 0)) {
+ output_blocks -= 1;
+ }
+ }
+
+ if (output_size < (output_blocks * 16)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ } else {
+ // Early failure if output buffer is too small
+ if (output_size < input_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Our drivers only support full or no overlap between input and output
+ // buffers. So in the case of partial overlap, copy the input buffer into
+ // the output buffer and process it in place as if the buffers fully
+ // overlapped.
+ if ((output > input) && (output < (input + input_length))) {
+ // Sanity check before copying. Some ciphers have a stricter requirement
+ // than this (if an IV is included), but no ciphers will have an output
+ // smaller than the input.
+ if (output_size < input_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memmove(output, input, input_length);
+ input = output;
+ }
+
+ switch (operation->alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_ECB)
+ case PSA_ALG_ECB_NO_PADDING:
+ // Read in up to full streaming input block
+ if (bytes_to_boundary != 16) {
+ memcpy(&operation->streaming_block[operation->processed_length % 16],
+ input,
+ bytes_to_boundary);
+ input += bytes_to_boundary;
+ input_length -= bytes_to_boundary;
+
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ 16,
+ operation->streaming_block,
+ output);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ output += 16;
+ actual_output_length += 16;
+ operation->processed_length += bytes_to_boundary;
+ }
+
+ // Do multi-block operation if applicable
+ if (input_length >= 16) {
+ size_t operation_size = (input_length / 16) * 16;
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ operation_size,
+ input,
+ output);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ input += operation_size;
+ input_length -= operation_size;
+ actual_output_length += operation_size;
+ operation->processed_length += operation_size;
+ }
+
+ // What's left over in the input buffer will be cleaned up after switch-case
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_ECB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT)
+ case PSA_ALG_CBC_NO_PADDING: // fall through
+ case PSA_ALG_CBC_PKCS7:
+ if (bytes_to_boundary != 16) {
+ memcpy(&operation->streaming_block[operation->processed_length % 16],
+ input,
+ bytes_to_boundary);
+ if (cache_full_block && (bytes_to_boundary == input_length)) {
+ // Don't process the streaming block if there is no more input data
+ } else {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ 16,
+ operation->iv,
+ operation->streaming_block,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ output += 16;
+ actual_output_length += 16;
+ }
+
+ input += bytes_to_boundary;
+ input_length -= bytes_to_boundary;
+ operation->processed_length += bytes_to_boundary;
+ } else if (input_length > 0
+ && cache_full_block
+ && operation->processed_length > 0) {
+ // We know there's processing to be done, and that we haven't processed
+ // the full block in the streaming buffer yet. Process it now.
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ 16,
+ operation->iv,
+ operation->streaming_block,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ output += 16;
+ actual_output_length += 16;
+ }
+
+ // Do multi-block operation if applicable
+ if (input_length >= 16) {
+ size_t operation_size = (input_length / 16) * 16;
+ if (cache_full_block && (input_length % 16 == 0)) {
+ // Don't decrypt the last block until finish is called, so that we
+ // can properly remove the padding before returning it.
+ operation_size -= 16;
+ }
+
+ if (operation_size > 0) {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ operation_size,
+ operation->iv,
+ input,
+ output);
+ if (status != PSA_SUCCESS) {
+ goto exit;
+ }
+ } else {
+ status = PSA_SUCCESS;
+ }
+
+ input += operation_size;
+ input_length -= operation_size;
+ actual_output_length += operation_size;
+ operation->processed_length += operation_size;
+ }
+
+ // What's left over in the input buffer will be cleaned up after switch-case
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG)
+ case PSA_ALG_CCM_STAR_NO_TAG: // Explicit fallthrough
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CCM_STAR_NO_TAG
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT)
+ case PSA_ALG_CTR:
+ {
+ uint32_t offset = operation->processed_length % 16;
+
+ status = sl_se_aes_crypt_ctr(&cmd_ctx,
+ key_desc,
+ input_length,
+ &offset,
+ operation->iv,
+ operation->streaming_block,
+ input,
+ output);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ input += input_length;
+ actual_output_length += input_length;
+ operation->processed_length += input_length;
+ input_length -= input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CTR_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CFB)
+ case PSA_ALG_CFB:
+ {
+ uint32_t offset = operation->processed_length % 16;
+ status = sl_se_aes_crypt_cfb128(&cmd_ctx,
+ key_desc,
+ operation->direction,
+ input_length,
+ &offset,
+ operation->iv,
+ input,
+ output);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ input += input_length;
+ actual_output_length += input_length;
+ operation->processed_length += input_length;
+ input_length -= input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_OFB)
+ case PSA_ALG_OFB:
+ {
+ size_t data_length = input_length;
+ size_t n = operation->processed_length % 16;
+
+ // loop over input data to create output
+ while (data_length--) {
+ if (n == 0) {
+ status = sl_se_aes_crypt_ecb(&cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ operation->iv,
+ operation->iv);
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+ }
+ *output++ = *input++ ^ operation->iv[n];
+
+ n = (n + 1) & 0x0F;
+ }
+
+ input += input_length;
+ actual_output_length += input_length;
+ operation->processed_length += input_length;
+ input_length -= input_length;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_OFB
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20)
+ case PSA_ALG_STREAM_CIPHER:
+ {
+ // counter value is at the start of the IV buffer
+ uint32_t ctr_value = *((uint32_t*)operation->iv);
+
+ // If the counter would wrap, refuse the operation
+ if (ctr_value > (ctr_value + (input_length / 64))) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if (operation->processed_length % 64 != 0) {
+ // Perform partial block operation until block boundary or end of input
+ uint8_t chacha20_block[64] = { 0 };
+ size_t offset_in_block = operation->processed_length
+ % sizeof(chacha20_block);
+ size_t length_in_block =
+ input_length < (sizeof(chacha20_block) - offset_in_block)
+ ? input_length
+ : (sizeof(chacha20_block) - offset_in_block);
+ uint32_t counter_bytes = __REV(ctr_value);
+
+ // Retrieve streaming block
+ status = sl_se_chacha20_crypt(&cmd_ctx,
+ SL_SE_ENCRYPT,
+ key_desc,
+ sizeof(chacha20_block),
+ (const unsigned char*)&counter_bytes,
+ &operation->iv[4],
+ chacha20_block,
+ chacha20_block);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ // Calculate stream output
+ for (size_t i = 0; i < length_in_block; i++) {
+ output[i] = input[i] ^ chacha20_block[offset_in_block + i];
+ }
+
+ input += length_in_block;
+ actual_output_length += length_in_block;
+ operation->processed_length += length_in_block;
+ input_length -= length_in_block;
+
+ // Update the counter if the block is complete
+ if (offset_in_block + length_in_block == sizeof(chacha20_block)) {
+ ctr_value++;
+ }
+ }
+
+ if (input_length > 0) {
+ // Perform remainder of operation in a single call
+ uint32_t counter_bytes = __REV(ctr_value);
+
+ status = sl_se_chacha20_crypt(&cmd_ctx,
+ SL_SE_ENCRYPT,
+ key_desc,
+ input_length,
+ (const unsigned char*)&counter_bytes,
+ &operation->iv[4],
+ input,
+ &output[actual_output_length]);
+
+ if (status != SL_STATUS_OK) {
+ goto exit;
+ }
+
+ // Update the counter with the amount of full blocks processed
+ ctr_value += input_length / 64;
+
+ input += input_length;
+ actual_output_length += input_length;
+ operation->processed_length += input_length;
+ input_length -= input_length;
+ }
+
+ // Store the updated counter number to the IV buffer
+ *((uint32_t*)operation->iv) = ctr_value;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHA20
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // If there's anything left in the input buffer, copy it to the context
+ // This'll only be the case for lagging ciphers
+ if (input_length > 0) {
+ if (!lagging
+ || (input_length >= 16 && !cache_full_block)
+ || (input_length > 16 && cache_full_block)) {
+ *output_length = 0;
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ memcpy(operation->streaming_block,
+ input,
+ input_length);
+ operation->processed_length += input_length;
+ }
+
+ exit:
+ if (status != SL_STATUS_OK) {
+ *output_length = 0;
+ if (status == SL_STATUS_FAIL) {
+ // This specific code maps to 'does not exist' for builtin keys
+ return PSA_ERROR_DOES_NOT_EXIST;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ } else {
+ *output_length = actual_output_length;
+ return PSA_SUCCESS;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_driver_cipher_finish(
+ sli_se_driver_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ // Finalize cipher operation. This will only output data for algorithms
+ // which include padding. This is currently only AES-CBC with PKCS#7.
+
+ // Argument check
+ if (operation == NULL
+ || (output == NULL && output_size > 0)
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Key desc has been properly set by wrapper function
+ const sl_se_key_descriptor_t *key_desc = &operation->key_desc;
+ psa_status_t psa_status = validate_key_type(key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ switch (operation->alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_ECB) || defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT)
+ case PSA_ALG_ECB_NO_PADDING: // Explicit fallthrough
+ case PSA_ALG_CBC_NO_PADDING:
+ // No-padding operations can't finish if they haven't processed block-size input
+ *output_length = 0;
+ if (operation->processed_length % 16 != 0) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_ECB || SLI_PSA_DRIVER_FEATURE_AES_CBC_VARIANT
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7)
+ case PSA_ALG_CBC_PKCS7:
+ {
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ break;
+ }
+
+ // Calculate padding, update, output final block
+ if (operation->direction == SL_SE_ENCRYPT) {
+ if (output_size < 16) {
+ psa_status = PSA_ERROR_BUFFER_TOO_SMALL;
+ break;
+ }
+ size_t padding_bytes = 16 - (operation->processed_length % 16);
+ memset(&operation->streaming_block[16 - padding_bytes],
+ padding_bytes,
+ padding_bytes);
+
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ operation->iv,
+ operation->streaming_block,
+ output);
+ if (status != SL_STATUS_OK) {
+ *output_length = 0;
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ *output_length = 16;
+ psa_status = PSA_SUCCESS;
+ }
+ } else {
+ // Expect full-block input
+ if (operation->processed_length % 16 != 0
+ || operation->processed_length < 16) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ break;
+ }
+
+ uint8_t out_buf[16];
+
+ // Decrypt the last block
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ SL_SE_DECRYPT,
+ 16,
+ operation->iv,
+ operation->streaming_block,
+ out_buf);
+
+ if (status != SL_STATUS_OK) {
+ *output_length = 0;
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ break;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+
+ size_t padding_bytes = 0;
+ psa_status = sli_psa_validate_pkcs7_padding(out_buf,
+ 16,
+ &padding_bytes);
+
+ if (psa_status == PSA_SUCCESS) {
+ // The padding was valid
+ if (output_size < 16 - padding_bytes) {
+ psa_status = PSA_ERROR_BUFFER_TOO_SMALL;
+ break;
+ }
+ memcpy(output, out_buf, 16 - padding_bytes);
+ *output_length = 16 - padding_bytes;
+ }
+ }
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_AES_CBC_PKCS7
+
+ case PSA_ALG_CTR:
+ case PSA_ALG_CCM_STAR_NO_TAG:
+ case PSA_ALG_CFB:
+ case PSA_ALG_OFB:
+ case PSA_ALG_STREAM_CIPHER:
+ // Actual stream ciphers: nothing to do here.
+ *output_length = 0;
+ psa_status = PSA_SUCCESS;
+ break;
+
+ default:
+ psa_status = PSA_ERROR_BAD_STATE;
+ }
+ if (psa_status != PSA_SUCCESS) {
+ *output_length = 0;
+ }
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c
new file mode 100644
index 000000000..ddc3b8aa9
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_derivation.c
@@ -0,0 +1,589 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Key Derivation functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sli_psa_driver_common.h" // sli_psa_zeroize()
+#include "sli_se_opaque_functions.h"
+#include "sli_se_driver_key_management.h"
+#include "sli_se_driver_key_derivation.h"
+#include "sli_se_version_dependencies.h"
+#include "psa/crypto.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_key_derivation.h"
+#include "sl_se_manager_util.h"
+#include "sli_se_manager_internal.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Custom SL PSA driver entry points
+
+#if defined(SLI_PSA_DRIVER_FEATURE_HKDF)
+
+psa_status_t sli_se_driver_single_shot_hkdf(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *key_in_attributes,
+ const uint8_t *key_in_buffer,
+ size_t key_in_buffer_size,
+ const uint8_t* info,
+ size_t info_length,
+ const uint8_t* salt,
+ size_t salt_length,
+ const psa_key_attributes_t *key_out_attributes,
+ uint8_t *key_out_buffer,
+ size_t key_out_buffer_size)
+{
+ // This driver function will not be called unless alg is of HKDF type.
+ sl_se_hash_type_t sl_hash_alg = SL_SE_HASH_NONE;
+ psa_algorithm_t psa_hash_alg = PSA_ALG_HKDF_GET_HASH(alg);
+ switch (psa_hash_alg) {
+ case PSA_ALG_SHA_1:
+ sl_hash_alg = SL_SE_HASH_SHA1;
+ break;
+ case PSA_ALG_SHA_224:
+ sl_hash_alg = SL_SE_HASH_SHA224;
+ break;
+ case PSA_ALG_SHA_256:
+ sl_hash_alg = SL_SE_HASH_SHA256;
+ break;
+ case PSA_ALG_SHA_384:
+ sl_hash_alg = SL_SE_HASH_SHA384;
+ break;
+ case PSA_ALG_SHA_512:
+ sl_hash_alg = SL_SE_HASH_SHA512;
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Create input key descriptor.
+ sl_se_key_descriptor_t key_in_desc = { 0 };
+ psa_status_t psa_status = sli_se_key_desc_from_input(key_in_attributes,
+ key_in_buffer,
+ key_in_buffer_size,
+ &key_in_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ size_t key_out_size = PSA_BITS_TO_BYTES(psa_get_key_bits(key_out_attributes));
+
+ // Check that we don't request more than 255 times the hash digest size.
+ // This limitation comes from RFC-5869.
+ if (key_out_size > 255 * PSA_HASH_LENGTH(psa_hash_alg)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Create output key descriptor.
+ sl_se_key_descriptor_t key_out_desc = { 0 };
+ psa_status = sli_se_key_desc_from_psa_attributes(
+ key_out_attributes,
+ key_out_size,
+ &key_out_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ psa_status = sli_se_set_key_desc_output(key_out_attributes,
+ key_out_buffer,
+ key_out_buffer_size,
+ key_out_size,
+ &key_out_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Prepare SE command context.
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_status_t sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Execute the SE command.
+ sl_status = sl_se_derive_key_hkdf(&cmd_ctx,
+ &key_in_desc,
+ sl_hash_alg,
+ salt,
+ salt_length,
+ info,
+ info_length,
+ &key_out_desc);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+
+ if (PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(key_out_attributes))
+ == PSA_KEY_LOCATION_SLI_SE_OPAQUE) {
+ // Add the key desc to the output array for opaque keys.
+ psa_status = store_key_desc_in_context(&key_out_desc,
+ key_out_buffer,
+ key_out_buffer_size);
+ }
+
+ return psa_status;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_HKDF
+
+#if defined(SLI_PSA_DRIVER_FEATURE_PBKDF2)
+
+psa_status_t sli_se_driver_single_shot_pbkdf2(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *key_in_attributes,
+ const uint8_t *key_in_buffer,
+ size_t key_in_buffer_size,
+ const uint8_t* salt,
+ size_t salt_length,
+ const psa_key_attributes_t *key_out_attributes,
+ uint32_t iterations,
+ uint8_t *key_out_buffer,
+ size_t key_out_buffer_size)
+{
+ sl_se_hash_type_t sl_prf = SL_SE_HASH_NONE;
+ psa_algorithm_t psa_hash_alg = PSA_ALG_GET_HASH(alg);
+
+ switch (psa_hash_alg) {
+ case PSA_ALG_SHA_1:
+ sl_prf = SL_SE_PRF_HMAC_SHA1;
+ break;
+ case PSA_ALG_SHA_224:
+ sl_prf = SL_SE_PRF_HMAC_SHA224;
+ break;
+ case PSA_ALG_SHA_256:
+ sl_prf = SL_SE_PRF_HMAC_SHA256;
+ break;
+ case PSA_ALG_SHA_384:
+ sl_prf = SL_SE_PRF_HMAC_SHA384;
+ break;
+ case PSA_ALG_SHA_512:
+ sl_prf = SL_SE_PRF_HMAC_SHA512;
+ break;
+ default:
+ if (alg == PSA_ALG_PBKDF2_AES_CMAC_PRF_128) {
+ sl_prf = SL_SE_PRF_AES_CMAC_128;
+ break;
+ }
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Create input key descriptor.
+ sl_se_key_descriptor_t key_in_desc = { 0 };
+ psa_status_t psa_status = sli_se_key_desc_from_input(key_in_attributes,
+ key_in_buffer,
+ key_in_buffer_size,
+ &key_in_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ size_t key_out_size = PSA_BITS_TO_BYTES(psa_get_key_bits(key_out_attributes));
+
+ if ( alg == PSA_ALG_PBKDF2_AES_CMAC_PRF_128 ) {
+ #define AES_CMAC_PRF_128_BLOCK_SIZE 128
+ // The out key length can atmost be 128 bits long.
+ if ( !key_out_size || (key_out_size > PSA_BITS_TO_BYTES(AES_CMAC_PRF_128_BLOCK_SIZE)) ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ } else { // HMAC based
+ // In conformance with rfc 8018 (sec 5.2), max output length should not exceed
+ // 2 ^ 32 -1 * hlen.
+ // Our max key size is limited by type of key bits in attributes, so no further
+ // validation is necessary.Our key out size is narrower than the rfc specification.
+ if ( !key_out_size ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ if ( !iterations ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Create output key descriptor.
+ sl_se_key_descriptor_t key_out_desc = { 0 };
+ psa_status = sli_se_key_desc_from_psa_attributes(
+ key_out_attributes,
+ key_out_size,
+ &key_out_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ psa_status = sli_se_set_key_desc_output(key_out_attributes,
+ key_out_buffer,
+ key_out_buffer_size,
+ key_out_size,
+ &key_out_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Prepare SE command context.
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_status_t sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Execute the SE command.
+ sl_status = sl_se_derive_key_pbkdf2(&cmd_ctx,
+ &key_in_desc,
+ sl_prf,
+ salt,
+ salt_length,
+ iterations,
+ &key_out_desc);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+
+ if (PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(key_out_attributes))
+ == PSA_KEY_LOCATION_SLI_SE_OPAQUE) {
+ // Add the key desc to the output array for opaque keys.
+ psa_status = store_key_desc_in_context(&key_out_desc,
+ key_out_buffer,
+ key_out_buffer_size);
+ }
+
+ return psa_status;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_PBKDF2
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_se_driver_key_agreement(psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECDH)
+
+ sl_se_key_descriptor_t priv_desc = { 0 };
+ sl_se_key_descriptor_t pub_desc = { 0 };
+ sl_se_key_descriptor_t shared_desc = { 0 };
+ sl_se_command_context_t cmd_ctx = SL_SE_COMMAND_CONTEXT_INIT;
+ sl_status_t sl_status = SL_STATUS_FAIL;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ size_t padding_bytes = 0;
+ uint8_t tmp_output_buf[SLI_SE_MAX_PADDED_ECP_PUBLIC_KEY_SIZE] = { 0 };
+ #else
+ uint8_t tmp_output_buf[SLI_SE_MAX_ECP_PUBLIC_KEY_SIZE] = { 0 };
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || peer_key == NULL
+ || output == NULL
+ || output_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ // Check that key_buffer contains private key.
+ if (PSA_KEY_TYPE_IS_PUBLIC_KEY(key_type)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Only accelerate ECDH.
+ if (!PSA_ALG_IS_ECDH(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Check private key buffer.
+ if (key_buffer_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check sufficient output buffer size.
+ if (output_size < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ #if defined(SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN)
+ sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ uint32_t se_version = 0;
+ sl_status = sl_se_get_se_version(&cmd_ctx, &se_version);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ se_version = SLI_VERSION_REMOVE_DIE_ID(se_version);
+
+ // External public key validation is required for older versions of SE FW.
+ if (SLI_SE_VERSION_PUBKEY_VALIDATION_REQUIRED(se_version)) {
+ #if defined(MBEDTLS_ECP_C) \
+ && defined(MBEDTLS_PSA_CRYPTO_C) \
+ && SL_SE_SUPPORT_FW_PRIOR_TO_1_2_2
+ psa_status = sli_se_driver_validate_pubkey_with_fallback(key_type,
+ key_bits,
+ peer_key,
+ peer_key_length);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ #else
+ // No fallback code is compiled in, cannot do public key validation.
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif
+ }
+ #endif // SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN
+
+ switch (key_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SECPR1)
+ case PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1):
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_P192;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_P224;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case 256:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_P256;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+ case 384:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_P384;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P384R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+ case 521:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_P521;
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ padding_bytes = SLI_SE_P521_PADDING_BYTES;
+ #endif
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P521R1
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Set key descriptor attributes.
+ // If padding is required, the descriptor will be set later as part of
+ // the padding. If padding is not required, set the descriptor here.
+ if (pub_desc.type != 0
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ && padding_bytes == 0
+ #endif
+ ) {
+ sli_se_key_descriptor_set_plaintext(&pub_desc,
+ peer_key + 1,
+ peer_key_length - 1);
+ sli_se_key_descriptor_set_plaintext(&shared_desc,
+ tmp_output_buf,
+ sizeof(tmp_output_buf));
+ shared_desc.size = PSA_BITS_TO_BYTES(key_bits) * 2;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_SECPR1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY)
+ case PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_MONTGOMERY):
+
+ // Check peer_key is of sufficient size.
+ if (peer_key_length < PSA_BITS_TO_BYTES(key_bits)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE25519)
+ case 255:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_X25519;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE25519
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE448)
+ case 448:
+ pub_desc.type = SL_SE_KEY_TYPE_ECC_X448;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE448
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Set key descriptor attributes.
+ sli_se_key_descriptor_set_plaintext(&pub_desc,
+ peer_key,
+ peer_key_length);
+ sli_se_key_descriptor_set_plaintext(&shared_desc,
+ output,
+ output_size);
+ shared_desc.size = PSA_BITS_TO_BYTES(key_bits);
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Generate a key descriptor for private key.
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &priv_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Panther crypto engine requires alignment on word boundries instead of byte
+ // boundaries which is used in the PSA crypto API.
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ uint8_t tmp_priv_padded_buf[SLI_SE_MAX_PADDED_ECP_PRIVATE_KEY_SIZE] = { 0 };
+ uint8_t tmp_pub_padded_buf[SLI_SE_MAX_PADDED_ECP_PUBLIC_KEY_SIZE] = { 0 };
+
+ // Should currently only happen for curve P521.
+ if (padding_bytes > 0) {
+ // Can only do padding on non-wrapped keys.
+ if (PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes))
+ == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ // Pad private key.
+ sli_se_pad_big_endian(tmp_priv_padded_buf, key_buffer,
+ PSA_BITS_TO_BYTES(key_bits));
+
+ // Re-set key descriptor attributes.
+ sli_se_key_descriptor_set_plaintext(&priv_desc,
+ tmp_priv_padded_buf,
+ sizeof(tmp_priv_padded_buf));
+ }
+
+ // Pad public key.
+ sli_se_pad_curve_point(tmp_pub_padded_buf, peer_key + 1,
+ PSA_BITS_TO_BYTES(key_bits));
+
+ // Set key descriptor attributes.
+ sli_se_key_descriptor_set_plaintext(&pub_desc,
+ tmp_pub_padded_buf,
+ sizeof(tmp_pub_padded_buf));
+ sli_se_key_descriptor_set_plaintext(&shared_desc,
+ tmp_output_buf,
+ sizeof(tmp_output_buf));
+ shared_desc.size = (PSA_BITS_TO_BYTES(key_bits) + padding_bytes) * 2;
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Set key descriptor attributes that are common to all supported curves.
+ pub_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ shared_desc.type = SL_SE_KEY_TYPE_SYMMETRIC;
+
+ // Re-init SE command context.
+ sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Perform key agreement algorithm (ECDH).
+ sl_status = sl_se_ecdh_compute_shared_secret(&cmd_ctx,
+ &priv_desc,
+ &pub_desc,
+ &shared_desc);
+ if (sl_status != SL_STATUS_OK) {
+ if (sl_status == SL_STATUS_COMMAND_IS_INVALID) {
+ // This error will be returned if the key type isn't supported.
+ return PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ // If the ECDH operation failed, this is most likely due to the peer key
+ // being an invalid elliptic curve point. Other sources for failure should
+ // hopefully have been caught during parameter validation.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // Remove padding bytes and clean up temporary key storage.
+ if (padding_bytes > 0) {
+ sli_se_unpad_curve_point(tmp_output_buf,
+ tmp_output_buf,
+ PSA_BITS_TO_BYTES(key_bits));
+ sli_psa_zeroize(tmp_priv_padded_buf, sizeof(tmp_priv_padded_buf));
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Montgomery curve computations do not require the temporary buffer to store the y-coord.
+ if (key_type == PSA_KEY_TYPE_ECC_KEY_PAIR(PSA_ECC_FAMILY_SECP_R1)) {
+ memcpy(output, tmp_output_buf, PSA_BITS_TO_BYTES(key_bits));
+ sli_psa_zeroize(tmp_output_buf, sizeof(tmp_output_buf));
+ }
+
+ *output_length = PSA_BITS_TO_BYTES(key_bits);
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECDH
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) peer_key;
+ (void) output;
+ (void) output_length;
+ (void) alg;
+ (void) key_buffer_size;
+ (void) peer_key_length;
+ (void) output_size;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECDH
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c
new file mode 100644
index 000000000..f105233e3
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_key_management.c
@@ -0,0 +1,1853 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Key Management functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_opaque_types.h"
+#include "sli_se_opaque_functions.h"
+#include "sli_se_driver_key_management.h"
+#include "sli_psa_driver_common.h" // sli_psa_zeroize()
+#include "sli_se_version_dependencies.h"
+
+#include "sl_se_manager_key_derivation.h"
+#include "sl_se_manager_internal_keys.h"
+#include "sl_se_manager_util.h"
+#include "sli_se_manager_internal.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static constants
+
+#if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+static const uint8_t ecc_p192_n[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x99, 0xde, 0xf8, 0x36, 0x14, 0x6b, 0xc9, 0xb1, 0xb4, 0xd2, 0x28, 0x31
+};
+#endif
+
+#if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+static const uint8_t ecc_p224_n[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x16, 0xa2, 0xe0, 0xb8, 0xf0, 0x3e, 0x13, 0xdd, 0x29, 0x45, 0x5c, 0x5c, 0x2a, 0x3d
+};
+#endif
+
+#if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+static const uint8_t ecc_p256_n[] = {
+ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xbc, 0xe6, 0xfa, 0xad, 0xa7, 0x17, 0x9e, 0x84, 0xf3, 0xb9, 0xca, 0xc2, 0xfc, 0x63, 0x25, 0x51
+};
+#endif
+
+#if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+static const uint8_t ecc_p384_n[] = {
+ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x63, 0x4d, 0x81, 0xf4, 0x37, 0x2d, 0xdf, 0x58, 0x1a, 0x0d, 0xb2, 0x48, 0xb0, 0xa7, 0x7a, 0xec, 0xec, 0x19, 0x6a, 0xcc, 0xc5, 0x29, 0x73
+};
+#endif
+
+#if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+static const uint8_t ecc_p521_n[] = {
+ 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x51, 0x86, 0x87, 0x83, 0xbf, 0x2f, 0x96, 0x6b, 0x7f, 0xcc, 0x01, 0x48, 0xf7, 0x09, 0xa5, 0xd0, 0x3b, 0xb5, 0xc9, 0xb8, 0x89, 0x9c, 0x47, 0xae, 0xbb, 0x6f, 0xb7, 0x1e, 0x91, 0x38, 0x64, 0x09
+};
+#endif
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+/**
+ * @brief
+ * Clamp if Montgomery or Twisted Edwards private key
+ *
+ * @param attributes
+ * The PSA attributes struct representing a key
+ * @param key_data
+ * Key data
+ * @param key_bits
+ * Key size in bits
+ * @returns
+ * N/A
+ */
+static void clamp_private_key_if_needed(const psa_key_attributes_t* attributes,
+ uint8_t *key_data,
+ size_t key_bits)
+{
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+
+ // Apply clamping
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)
+ && ((PSA_KEY_TYPE_ECC_GET_FAMILY(key_type) == PSA_ECC_FAMILY_MONTGOMERY))) {
+ switch (key_bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE25519)
+ case 255:
+ key_data[0] &= 248U;
+ key_data[31] &= 127U;
+ key_data[31] |= 64U;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE25519
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE448)
+ case 448:
+ key_data[0] &= 252U;
+ key_data[55] |= 128U;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE448
+
+ default:
+ (void) attributes;
+ (void) key_data;
+ (void) key_bits;
+ break;
+ }
+ }
+}
+
+/**
+ * @brief
+ * Validate that the key descriptor mathces the PSA attributes struct.
+ *
+ * @param attributes
+ * The PSA attributes struct representing a key
+ * @param key_size
+ * Size of the key
+ * @param key_desc
+ * The SE manager key struct representing the same key
+ * @returns
+ * PSA_SUCCESS if the structures match,
+ * PSA_ERROR_INVALID_ARGUMENT otherwise
+ */
+static psa_status_t validate_key_desc(const psa_key_attributes_t* attributes,
+ size_t key_size,
+ const sl_se_key_descriptor_t *key_desc)
+{
+ if (key_desc == NULL || attributes == NULL || key_size == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Build a new key descriptor from attributes and check that they match
+ sl_se_key_descriptor_t new_key_desc = { 0 };
+ psa_status_t status =
+ sli_se_key_desc_from_psa_attributes(attributes, key_size, &new_key_desc);
+ if (status != PSA_SUCCESS) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (new_key_desc.type != key_desc->type
+ || new_key_desc.size != key_desc->size
+ || new_key_desc.flags != key_desc->flags
+ || new_key_desc.password != key_desc->password
+ || new_key_desc.domain != key_desc->domain) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ return PSA_SUCCESS;
+}
+
+/**
+ * @brief
+ * Set the number of bytes of key buffer used for storing the key.
+ *
+ * @param attributes[in]
+ * The PSA attributes struct representing a key
+ * @param data_size[in]
+ * Size of the data that has been stored (excluding the 0x04 byte for public
+ * keys)
+ * @param key_buffer_length[out]
+ * Actually used key buffer space
+ * @returns
+ * PSA_SUCCESS if key_buffer_length can be set properly,
+ * PSA_ERROR_NOT_SUPPORTED if unsupported location is encountered.
+ */
+static psa_status_t set_key_buffer_length(
+ const psa_key_attributes_t *attributes,
+ size_t data_size,
+ size_t *key_buffer_length)
+{
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+ *key_buffer_length = 0;
+ switch (location) {
+ case PSA_KEY_LOCATION_LOCAL_STORAGE:
+ if (sli_se_has_format_byte(psa_get_key_type(attributes))) {
+ data_size++; // Add the format byte offset
+ }
+ *key_buffer_length = data_size;
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ case PSA_KEY_LOCATION_SLI_SE_OPAQUE:
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ data_size = sli_se_word_align(data_size);
+ #endif
+ *key_buffer_length = sizeof(sli_se_opaque_wrapped_key_context_t)
+ + data_size;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+static psa_status_t sli_se_driver_validate_ecc_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ size_t *bits)
+{
+ // Argument check.
+ if (attributes == NULL
+ || data == NULL
+ || data_length == 0
+ || bits == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t return_status = PSA_ERROR_CORRUPTION_DETECTED;
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+
+ psa_ecc_family_t curve_type = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+
+ switch (curve_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SECPR1)
+ case PSA_ECC_FAMILY_SECP_R1: {
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) { // Private key.
+ const void *modulus_ptr = NULL;
+ *bits = psa_get_key_bits(attributes);
+
+ // Determine key bit-size
+ if (*bits == 0) {
+ *bits = data_length * 8;
+ } else {
+ if (PSA_BITS_TO_BYTES(*bits) != data_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+
+ switch (*bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ modulus_ptr = ecc_p192_n;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ // Series-2-config-1 devices do not support SECP224R1.
+ case 224:
+ modulus_ptr = ecc_p224_n;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case 256:
+ modulus_ptr = ecc_p256_n;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+ case 384:
+ modulus_ptr = ecc_p384_n;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P384R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+ case 521:
+ modulus_ptr = ecc_p521_n;
+ break;
+ case 528:
+ // Maybe a 521 bit long key which has been padded to 66 bytes.
+ // Make sure the key size is not actually 528
+ if (psa_get_key_bits(attributes) == 528) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // Actually a 521 bit long key which has been padded to 66 bytes.
+ *bits = 521;
+ modulus_ptr = ecc_p521_n;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P521R1
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+
+ // Validate the private key.
+ return_status = sli_psa_validate_ecc_weierstrass_privkey(data,
+ modulus_ptr,
+ data_length);
+ } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) { // Public key.
+ // Check that uncompressed representation is given.
+ if (data[0] != 0x04) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Create ephemeral SE command context.
+ sl_se_command_context_t cmd_ctx = SL_SE_COMMAND_CONTEXT_INIT;
+ sl_status_t sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #if defined(SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN)
+ // SE version 1.2.2 is first version with public key validation
+ // inside of the SE.
+ uint32_t se_version = 0;
+ sl_status = sl_se_get_se_version(&cmd_ctx, &se_version);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ if ((se_version & 0x00FFFFFFU) < SLI_SE_OLDEST_VERSION_WITH_PUBLIC_KEY_VALIDATION) {
+ #if defined(MBEDTLS_ECP_C) \
+ && defined(MBEDTLS_PSA_CRYPTO_C) \
+ && SL_SE_SUPPORT_FW_PRIOR_TO_1_2_2
+ return_status = sli_se_driver_validate_pubkey_with_fallback(
+ key_type,
+ psa_get_key_bits(attributes),
+ data,
+ data_length);
+ #else
+ // No fallback code is compiled in, cannot do public key validation
+ return_status = PSA_ERROR_NOT_SUPPORTED;
+ #endif
+ break;
+ }
+ #endif // SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN
+
+ // Temporary buffer for storing ECDH input private key,
+ // possibly padded input public key, and output shared key.
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+
+ // If input public key requires padding, it will be stored
+ // starting from the third element. By doing this, and setting
+ // the first half-word equal to 1, we are guaranteed to not end up
+ // with a private key that is acidentally greater than the order
+ // n of the curve group (since the fields size q is greater than n).
+ uint8_t tmp_key_buffer[2 + SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ #else // SLI_SE_KEY_PADDING_REQUIRED
+ uint8_t tmp_key_buffer[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Make sure that ECDH private key is non-zero.
+ tmp_key_buffer[0] = 1;
+
+ // Input public key descriptor.
+ sl_se_key_descriptor_t input_public_key_desc = {
+ .storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT,
+ .storage.location.buffer.pointer = (uint8_t*)data + 1,
+ .storage.location.buffer.size = data_length - 1,
+ };
+
+ // Temporary private key descriptor.
+ sl_se_key_descriptor_t tmp_private_key_desc = {
+ .storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT,
+ .storage.location.buffer.pointer = tmp_key_buffer,
+ .storage.location.buffer.size = sizeof(tmp_key_buffer),
+ };
+
+ // Temporary shared key descriptor.
+ sl_se_key_descriptor_t tmp_shared_key_desc = {
+ .type = SL_SE_KEY_TYPE_SYMMETRIC,
+ .storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT,
+ .storage.location.buffer.pointer = tmp_key_buffer,
+ .storage.location.buffer.size = sizeof(tmp_key_buffer),
+ };
+
+ // Determine key bit size (including padding).
+ *bits = (data_length - 1) * 8 / 2;
+
+ uint8_t padding_bytes = 0;
+ switch (*bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192:
+ input_public_key_desc.type = SL_SE_KEY_TYPE_ECC_P192;
+ tmp_private_key_desc.type = SL_SE_KEY_TYPE_ECC_P192;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+
+ case 224:
+ #if defined(SLI_MBEDTLS_DEVICE_HSE_V1)
+ // Series-2-config-1 devices do not support SECP224R1.
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ #elif defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ input_public_key_desc.type = SL_SE_KEY_TYPE_ECC_P224;
+ tmp_private_key_desc.type = SL_SE_KEY_TYPE_ECC_P224;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case 256:
+ input_public_key_desc.type = SL_SE_KEY_TYPE_ECC_P256;
+ tmp_private_key_desc.type = SL_SE_KEY_TYPE_ECC_P256;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+
+ #if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH) && !defined(_SILICON_LABS_32B_SERIES_3)
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+ case 384:
+ input_public_key_desc.type = SL_SE_KEY_TYPE_ECC_P384;
+ tmp_private_key_desc.type = SL_SE_KEY_TYPE_ECC_P384;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P384R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+ case 528:
+ // Actually a 521 bit long key which has been padded to 66 bytes.
+ *bits = 521;
+ padding_bytes = SLI_SE_P521_PADDING_BYTES;
+ input_public_key_desc.type = SL_SE_KEY_TYPE_ECC_P521;
+ tmp_private_key_desc.type = SL_SE_KEY_TYPE_ECC_P521;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P521R1
+
+ #else // SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH && !defined(_SILICON_LABS_32B_SERIES_3)
+
+ case 384: // fall through
+ case 528:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+
+ #endif // SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH && !defined(_SILICON_LABS_32B_SERIES_3)
+
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ break;
+ }
+
+ // Set missing key descriptor attributes.
+ input_public_key_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ tmp_private_key_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PRIVATE_KEY;
+ tmp_shared_key_desc.size = (PSA_BITS_TO_BYTES(*bits) + padding_bytes) * 2;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // Should currently only happen for curve P521.
+ if (padding_bytes > 0) {
+ // Pad public key. Offset +2 in order to avoid problem with invalid private key.
+ sli_se_pad_curve_point(tmp_key_buffer + 2,
+ (uint8_t*)data + 1,
+ PSA_BITS_TO_BYTES(*bits));
+ sli_se_key_descriptor_set_plaintext(&input_public_key_desc,
+ tmp_key_buffer + 2,
+ sizeof(tmp_key_buffer) - 2);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Perform key agreement algorithm (ECDH).
+ sl_status = sl_se_ecdh_compute_shared_secret(&cmd_ctx,
+ &tmp_private_key_desc,
+ &input_public_key_desc,
+ &tmp_shared_key_desc);
+
+ // Zero out intermediate results.
+ if (padding_bytes == 0) {
+ sli_psa_zeroize(tmp_key_buffer, (PSA_BITS_TO_BYTES(*bits)) * 2);
+ }
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ else {
+ sli_psa_zeroize(tmp_key_buffer,
+ 2 + (PSA_BITS_TO_BYTES(*bits) + padding_bytes) * 2);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else {
+ return_status = PSA_SUCCESS;
+ }
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_SECPR1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY) || defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ case PSA_ECC_FAMILY_MONTGOMERY: // Explicit fallthrough
+ case PSA_ECC_FAMILY_TWISTED_EDWARDS:
+ // Determine key bit-size
+ if (*bits == 0) {
+ *bits = data_length * 8;
+ } else {
+ if (PSA_BITS_TO_BYTES(*bits) != data_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+ switch (*bits) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE25519) || defined(SLI_PSA_DRIVER_FEATURE_EDWARDS25519)
+ case 255:
+ return_status = PSA_SUCCESS;
+ break;
+ case 256:
+ // Maybe a 255 bit long key which has been padded to 32 bytes.
+ // Make sure the key size is not actually 256
+ if (psa_get_key_bits(attributes) == 256) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ *bits = 255;
+ return_status = PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE25519 || SLI_PSA_DRIVER_FEATURE_EDWARDS25519
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE448)
+ case 448:
+ return_status = PSA_SUCCESS;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE448
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY || SLI_PSA_DRIVER_FEATURE_EDWARDS
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+
+ return return_status;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+// -----------------------------------------------------------------------------
+// Global helper functions
+
+// -------------------------------------
+// Generic helper functions
+
+/**
+ * @brief
+ * Build a key descriptor from a PSA attributes struct
+ *
+ * @param attributes
+ * The PSA attributes struct representing a key
+ * @param key_size
+ * Size of the key
+ * @param key_desc
+ * The SE manager key struct representing the same key
+ * @returns
+ * PSA_SUCCESS on success
+ * PSA_ERROR_INVALID_ARGUMENT on invalid attributes
+ */
+psa_status_t sli_se_key_desc_from_psa_attributes(
+ const psa_key_attributes_t *attributes,
+ size_t key_size,
+ sl_se_key_descriptor_t *key_desc)
+{
+ size_t attributes_key_size =
+ PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ if (attributes_key_size != 0) {
+ // If attributes key size is nonzero, it must be equal to key_size
+ if (attributes_key_size != key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+ psa_key_type_t type = psa_get_key_type(attributes);
+ psa_key_usage_t usage = psa_get_key_usage_flags(attributes);
+ psa_key_lifetime_t lifetime = psa_get_key_lifetime(attributes);
+ psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime);
+
+ memset(key_desc, 0, sizeof(sl_se_key_descriptor_t));
+
+ switch (location) {
+ case PSA_KEY_LOCATION_LOCAL_STORAGE:
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT;
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ case PSA_KEY_LOCATION_SLI_SE_OPAQUE:
+ // For the time being, volatile keys directly in SE internal RAM are not
+ // supported. Once they are, use the persistence info from the key
+ // lifetime to switch between EXTERNAL_WRAPPED and INTERNAL_VOLATILE.
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_WRAPPED;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+
+ // Dont't accept zero-length keys
+ if (key_size == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (type == PSA_KEY_TYPE_RAW_DATA
+ || type == PSA_KEY_TYPE_HMAC
+ || type == PSA_KEY_TYPE_DERIVE) {
+ // Set attributes
+ key_desc->type = SL_SE_KEY_TYPE_SYMMETRIC;
+ key_desc->size = key_size;
+ } else
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_AES)
+ if (type == PSA_KEY_TYPE_AES) {
+ switch (key_size) {
+ case 16:
+ key_desc->type = SL_SE_KEY_TYPE_AES_128;
+ break;
+ case 24:
+ key_desc->type = SL_SE_KEY_TYPE_AES_192;
+ break;
+ case 32:
+ key_desc->type = SL_SE_KEY_TYPE_AES_256;
+ break;
+ default:
+ // SE doesn't support off-size AES keys
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ key_desc->size = key_size;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_AES
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CHACHA20) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CHACHAPOLY)
+ if (type == PSA_KEY_TYPE_CHACHA20) {
+ if (key_size != 0x20) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Set attributes
+ key_desc->type = SL_SE_KEY_TYPE_CHACHA20;
+ key_desc->size = 0x20;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_CHACHA20 || SLI_PSA_DRIVER_FEATURE_CHACHAPOLY
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ if (PSA_KEY_TYPE_IS_ECC(type)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SECPR1)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(type) == PSA_ECC_FAMILY_SECP_R1) {
+ // Find key size and set key type
+ switch (key_size) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 24:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_P192;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P192R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ // Series-2-config-1 devices do not support SECP224R1.
+ case 28:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_P224;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P224R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case 32:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_P256;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P256R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+ case 48:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_P384;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P384R1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+ case 66:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_P521;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_P521R1
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_SECPR1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(type) == PSA_ECC_FAMILY_MONTGOMERY) {
+ // Find key size and set key type
+ switch (key_size) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE25519)
+ case 32:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_X25519;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE25519
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CURVE448)
+ case 56:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_X448;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CURVE448
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(type) == PSA_ECC_FAMILY_TWISTED_EDWARDS) {
+ // Find key size and set key type
+ switch (key_size) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_EDWARDS25519)
+ case 32:
+ key_desc->type = SL_SE_KEY_TYPE_ECC_ED25519;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_EDWARDS25519
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_EDWARDS
+
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Set asymmetric args
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(type)) {
+ key_desc->flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PRIVATE_KEY;
+ } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(type)) {
+ key_desc->flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ } else {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Decide whether the key will be used for signing or derivation
+ bool is_signing = (usage & (PSA_KEY_USAGE_SIGN_HASH | PSA_KEY_USAGE_VERIFY_HASH | PSA_KEY_USAGE_SIGN_MESSAGE | PSA_KEY_USAGE_VERIFY_MESSAGE)) != 0;
+ bool is_deriving = (usage & (PSA_KEY_USAGE_DERIVE | PSA_KEY_USAGE_ENCRYPT | PSA_KEY_USAGE_DECRYPT)) != 0;
+
+ if (is_signing && !is_deriving) {
+ key_desc->flags |= SL_SE_KEY_FLAG_ASYMMMETRIC_SIGNING_ONLY;
+ } else if (!is_signing && is_deriving) {
+ key_desc->flags = (key_desc->flags & ~SL_SE_KEY_FLAG_ASYMMMETRIC_SIGNING_ONLY);
+ } else if (is_signing && is_deriving) {
+ // SE does not support a key to be used for both signing and derivation operations.
+ return PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ // ECC key is not setup for either signing or deriving. Default to not setting
+ // the 'sign' flag (legacy behaviour)
+ key_desc->flags = (key_desc->flags & ~SL_SE_KEY_FLAG_ASYMMMETRIC_SIGNING_ONLY);
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ // Add key restrictions. Only relevant for opaque drivers. If these properties
+ // are set for transparent drivers, key generation becomes illegal, as the SE
+ // does not allow writing a protected key to a plaintext buffer.
+ if (location != PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ bool can_export = usage & PSA_KEY_USAGE_EXPORT;
+ bool can_copy = usage & PSA_KEY_USAGE_COPY;
+
+ if (can_copy) {
+ // We do not support copying opaque keys (currently).
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (!can_export) {
+ key_desc->flags |= SL_SE_KEY_FLAG_NON_EXPORTABLE;
+ }
+ }
+ #else // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+ (void)usage;
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+ return PSA_SUCCESS;
+}
+
+/**
+ * @brief
+ * Get the key descriptor from the key buffer and attributes
+ */
+psa_status_t sli_se_key_desc_from_input(const psa_key_attributes_t* attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ sl_se_key_descriptor_t *key_desc)
+{
+ psa_key_lifetime_t lifetime = psa_get_key_lifetime(attributes);
+ psa_key_location_t location = PSA_KEY_LIFETIME_GET_LOCATION(lifetime);
+ uint32_t key_size = 0; // Retrieved in different ways for different locations
+ switch (location) {
+ case PSA_KEY_LOCATION_LOCAL_STORAGE:
+ {
+ uint8_t *actual_key_buffer = (uint8_t *)key_buffer;
+ size_t actual_key_buffer_size = key_buffer_size;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ // For ECC public keys, the attributes key size is always the factor
+ // determining the curve size
+ key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ if (sli_se_has_format_byte(key_type)) {
+ // Need to account for the format byte
+ if (*key_buffer != 0x04) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ actual_key_buffer += 1;
+ actual_key_buffer_size -= 1;
+ if (actual_key_buffer_size != 2 * key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY) \
+ || defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ } else if ((PSA_KEY_TYPE_ECC_GET_FAMILY(key_type)
+ == PSA_ECC_FAMILY_MONTGOMERY)
+ || (PSA_KEY_TYPE_ECC_GET_FAMILY(key_type)
+ == PSA_ECC_FAMILY_TWISTED_EDWARDS)) {
+ if (actual_key_buffer_size != key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY || SLI_PSA_DRIVER_FEATURE_EDWARDS
+ } else {
+ // No other curves supported yet.
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+ {
+ key_size = key_buffer_size;
+ }
+
+ // Fill the key desc from attributes
+ psa_status_t psa_status = sli_se_key_desc_from_psa_attributes(attributes,
+ key_size,
+ key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ sli_se_key_descriptor_set_plaintext(key_desc,
+ actual_key_buffer,
+ actual_key_buffer_size);
+ break;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+ case PSA_KEY_LOCATION_SLI_SE_OPAQUE:
+ {
+ if (key_buffer_size < sizeof(sli_se_opaque_key_context_header_t)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sli_se_opaque_key_context_header_t *key_context_header =
+ (sli_se_opaque_key_context_header_t *)key_buffer;
+
+ if (key_context_header->struct_version != SLI_SE_OPAQUE_KEY_CONTEXT_VERSION) {
+ return PSA_ERROR_STORAGE_FAILURE;
+ }
+
+ if (key_context_header->builtin_key_id != 0) {
+ sl_se_key_descriptor_t builtin_key_desc;
+ switch (key_context_header->builtin_key_id) {
+ case SL_SE_KEY_SLOT_APPLICATION_SECURE_BOOT_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_APPLICATION_SECURE_BOOT_KEY;
+ break;
+ case SL_SE_KEY_SLOT_APPLICATION_SECURE_DEBUG_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_APPLICATION_SECURE_DEBUG_KEY;
+ break;
+ case SL_SE_KEY_SLOT_APPLICATION_AES_128_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_APPLICATION_AES_128_KEY;
+ break;
+ case SL_SE_KEY_SLOT_TRUSTZONE_ROOT_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_TRUSTZONE_ROOT_KEY;
+ break;
+ #if defined(SLI_PSA_DRIVER_FEATURE_ATTESTATION)
+ case SL_SE_KEY_SLOT_APPLICATION_ATTESTATION_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_APPLICATION_ATTESTATION_KEY;
+ break;
+ case SL_SE_KEY_SLOT_SE_ATTESTATION_KEY:
+ builtin_key_desc = (sl_se_key_descriptor_t) SL_SE_SYSTEM_ATTESTATION_KEY;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_ATTESTATION
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ memcpy(key_desc, &builtin_key_desc, sizeof(*key_desc));
+ return PSA_SUCCESS;
+ } else {
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ if (key_buffer_size < sizeof(sli_se_opaque_wrapped_key_context_t)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reconstruct key_desc from the key context
+ memset(key_desc, 0, sizeof(sl_se_key_descriptor_t));
+
+ // Refer to wrapped key context in input
+ sli_se_opaque_wrapped_key_context_t key_context_temp;
+ sli_se_opaque_wrapped_key_context_t *key_context =
+ (sli_se_opaque_wrapped_key_context_t *)key_buffer;
+ key_desc->storage.location.buffer.pointer =
+ (uint8_t *)&(key_context->wrapped_buffer);
+
+ // If the key buffer is unaligned, copy the content into a
+ // temporary buffer in order to prevent hardfaults caused by
+ // instructions that do not support unaligned words (e.g. LDRD, LDM).
+ if ((uintptr_t)key_buffer & 0x3) {
+ memcpy(&key_context_temp, key_buffer, sizeof(sli_se_opaque_wrapped_key_context_t));
+ key_context = &key_context_temp;
+ }
+
+ key_desc->type = key_context->key_type;
+ key_desc->size = key_context->key_size;
+ key_desc->flags = key_context->key_flags;
+
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_WRAPPED;
+ key_desc->storage.location.buffer.size =
+ key_buffer_size - offsetof(sli_se_opaque_wrapped_key_context_t,
+ wrapped_buffer);
+
+ // Clear temporary key context
+ if ((uintptr_t)key_buffer & 0x3) {
+ memset(&key_context_temp, 0, sizeof(sli_se_opaque_wrapped_key_context_t));
+ }
+
+ if (sli_key_get_size(key_desc, &key_size) != SL_STATUS_OK) {
+ memset(key_desc, 0, sizeof(sl_se_key_descriptor_t));
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ uint32_t key_full_size = key_size;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SECPR1)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(attributes))
+ == PSA_ECC_FAMILY_SECP_R1
+ && PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(psa_get_key_type(attributes))) {
+ key_full_size = 2 * key_full_size;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_SECPR1
+
+ if (key_desc->storage.location.buffer.size < key_full_size + SLI_SE_WRAPPED_KEY_OVERHEAD) {
+ memset(key_desc, 0, sizeof(sl_se_key_descriptor_t));
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
+
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+
+ // Run a general validation routine once the key desc has been populated
+ psa_status_t status = validate_key_desc(attributes, key_size, key_desc);
+ if (status != PSA_SUCCESS) {
+ memset(key_desc, 0, sizeof(sl_se_key_descriptor_t));
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ return PSA_SUCCESS;
+}
+
+/**
+ * @brief
+ * Set the relevant location field of the key descriptor
+ */
+psa_status_t sli_se_set_key_desc_output(const psa_key_attributes_t* attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t key_size,
+ sl_se_key_descriptor_t *key_desc)
+{
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+ switch (location) {
+ case PSA_KEY_LOCATION_LOCAL_STORAGE:
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ key_desc->storage.location.buffer.pointer = key_buffer;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ key_buffer_size = sli_se_word_align(key_buffer_size);
+ #endif
+
+ key_desc->storage.location.buffer.size = key_buffer_size;
+ break;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ case PSA_KEY_LOCATION_SLI_SE_OPAQUE:
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ key_size = sli_se_word_align(key_size);
+ #endif
+
+ if (key_buffer_size < sizeof(sli_se_opaque_wrapped_key_context_t)
+ + key_size) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+ key_desc->storage.location.buffer.pointer =
+ key_buffer + offsetof(sli_se_opaque_wrapped_key_context_t,
+ wrapped_buffer);
+ key_desc->storage.location.buffer.size =
+ key_size + SLI_SE_WRAPPED_KEY_OVERHEAD;
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+ default:
+ return PSA_ERROR_DOES_NOT_EXIST;
+ }
+ return PSA_SUCCESS;
+}
+
+#if defined(SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN) \
+ && defined(MBEDTLS_ECP_C) \
+ && defined(MBEDTLS_PSA_CRYPTO_C) \
+ && SL_SE_SUPPORT_FW_PRIOR_TO_1_2_2
+
+#include "mbedtls/ecp.h"
+#include "psa_crypto_core.h"
+#include "mbedtls/psa_util.h"
+
+psa_status_t sli_se_driver_validate_pubkey_with_fallback(psa_key_type_t key_type,
+ size_t key_bits,
+ const uint8_t *data,
+ size_t data_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+ mbedtls_ecp_group_id grp_id = MBEDTLS_ECP_DP_NONE;
+
+ mbedtls_ecp_group pubkey_grp;
+ mbedtls_ecp_point pubkey_point;
+
+ mbedtls_ecp_group_init(&pubkey_grp);
+ mbedtls_ecp_point_init(&pubkey_point);
+
+ // Get software-defined curve structure
+ grp_id = mbedtls_ecc_group_from_psa(PSA_KEY_TYPE_ECC_GET_FAMILY(key_type),
+ key_bits);
+ if (grp_id == MBEDTLS_ECP_DP_NONE) {
+ goto exit;
+ }
+
+ psa_status = mbedtls_to_psa_error(mbedtls_ecp_group_load(&pubkey_grp,
+ grp_id));
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ // Load public key into mbed TLS structure
+ psa_status = mbedtls_to_psa_error(mbedtls_ecp_point_read_binary(
+ &pubkey_grp,
+ &pubkey_point,
+ data,
+ data_length) );
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ // Validate key.
+ psa_status = mbedtls_to_psa_error(mbedtls_ecp_check_pubkey(&pubkey_grp,
+ &pubkey_point));
+
+ exit:
+ mbedtls_ecp_group_free(&pubkey_grp);
+ mbedtls_ecp_point_free(&pubkey_point);
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void) key_type;
+ (void) key_bits;
+ (void) data;
+ (void) data_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+}
+
+#endif // SLI_SE_VERSION_ECDH_PUBKEY_VALIDATION_UNCERTAIN ...
+
+// -------------------------------------
+// Opaque helper functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+
+/**
+ * @brief
+ * Store the required parts of the key descriptor in the context placed the
+ * start of the given key buffer.
+ */
+psa_status_t store_key_desc_in_context(sl_se_key_descriptor_t *key_desc,
+ uint8_t *key_buffer,
+ size_t key_buffer_size)
+{
+ if (key_buffer_size < sizeof(sli_se_opaque_wrapped_key_context_t)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ sli_se_opaque_wrapped_key_context_t *key_context =
+ (sli_se_opaque_wrapped_key_context_t *)key_buffer;
+ key_context->header.struct_version = SLI_SE_OPAQUE_KEY_CONTEXT_VERSION;
+ key_context->header.builtin_key_id = 0;
+ memset(&key_context->header.reserved, 0, sizeof(key_context->header.reserved));
+ key_context->key_type = key_desc->type;
+ key_context->key_size = key_desc->size;
+ key_context->key_flags = key_desc->flags;
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+// -----------------------------------------------------------------------------
+// Driver entry points
+
+// -------------------------------------
+// Generic driver entry points
+
+psa_status_t sli_se_driver_generate_key(const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length)
+{
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t key_bits = psa_get_key_bits(attributes);
+ size_t key_size = PSA_BITS_TO_BYTES(key_bits);
+ if (key_size == 0) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ if (PSA_KEY_TYPE_IS_UNSTRUCTURED(key_type)
+ && ((key_bits & 0x7) != 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ } else if (PSA_KEY_TYPE_IS_PUBLIC_KEY(key_type)) {
+ // PSA Crypto defines generate_key to be an invalid call with a key type
+ // of public key.
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Generate a key desc
+ sl_se_key_descriptor_t key_desc = { 0 };
+ psa_status_t psa_status =
+ sli_se_key_desc_from_psa_attributes(attributes,
+ key_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ psa_status = sli_se_set_key_desc_output(attributes,
+ key_buffer,
+ key_buffer_size,
+ key_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Generate the key using SE manager
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_status_t sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sl_status = sl_se_generate_key(&cmd_ctx, &key_desc);
+ if (sl_status != SL_STATUS_OK) {
+ if (sl_status == SL_STATUS_COMMAND_IS_INVALID) {
+ // This error will be returned if the key type isn't supported.
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ goto exit;
+ } else {
+ if (PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes))
+ == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ // Apply clamping if this is a Montgomery key.
+ clamp_private_key_if_needed(attributes, key_buffer, key_bits);
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+ else {
+ // Add the key desc to the output array for opaque keys.
+ psa_status = store_key_desc_in_context(&key_desc,
+ key_buffer,
+ key_buffer_size);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+ psa_status = set_key_buffer_length(attributes, key_size, key_buffer_length);
+ }
+ // Cleanup
+ exit:
+ sl_status = sl_se_deinit_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ return psa_status;
+}
+
+psa_status_t sli_se_driver_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || data == NULL
+ || data_size == 0
+ || data_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Build key descs for the private key
+ sl_se_key_descriptor_t priv_key_desc = { 0 };
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &priv_key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // ECC public keys are written in uncompressed format with a preceeding 0x04
+ // format byte. This byte should however not be present for Montgomery keys
+ uint32_t prepend_format_byte = 1;
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY) || defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ if ((PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(attributes))
+ == PSA_ECC_FAMILY_MONTGOMERY)
+ || (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(attributes))
+ == PSA_ECC_FAMILY_TWISTED_EDWARDS)) {
+ prepend_format_byte = 0;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY || SLI_PSA_DRIVER_FEATURE_EDWARDS
+
+ sl_se_key_descriptor_t pub_key_desc = priv_key_desc;
+ size_t padding = 0;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // Since we were able to successfully build a key desc, we know that the key
+ // is supported. However, we must also account for non-word-aligned keys
+ uint8_t temp_pub_buffer[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ uint8_t temp_priv_buffer[SLI_SE_MAX_PADDED_KEY_PAIR_SIZE] = { 0 };
+ size_t priv_key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ if (PSA_KEY_TYPE_IS_ECC(psa_get_key_type(attributes))) {
+ padding = sli_se_get_padding(PSA_BITS_TO_BYTES(psa_get_key_bits(attributes)));
+ }
+ if (padding > 0) {
+ if (priv_key_desc.storage.method == SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT) {
+ // We must only fix the padding for plaintext private keys. Opaque padding
+ // is already handled in import_key
+ if (key_buffer_size < priv_key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_big_endian(temp_priv_buffer, key_buffer, priv_key_size);
+ sli_se_key_descriptor_set_plaintext(&priv_key_desc,
+ temp_priv_buffer,
+ sizeof(temp_priv_buffer));
+ }
+ // Point the key desc to the temp buffer
+ sli_se_key_descriptor_set_plaintext(&pub_key_desc,
+ temp_pub_buffer,
+ sizeof(temp_pub_buffer));
+ } else
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ {
+ // Account for format byte where applicable
+ sli_se_key_descriptor_set_plaintext(&pub_key_desc,
+ data + prepend_format_byte,
+ data_size - prepend_format_byte);
+ }
+
+ // Clear non exportable and private key flags from the public key desc,
+ // And set the public flag
+ pub_key_desc.flags &= ~(SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PRIVATE_KEY
+ | SL_SE_KEY_FLAG_NON_EXPORTABLE);
+ pub_key_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ uint32_t storage_size = 0;
+ sl_status_t sl_status =
+ sli_key_get_storage_size(&pub_key_desc, &storage_size);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ // We must fit entire output key + possibly a format byte
+ // We don't have to fit the padding bytes into the data buffer.
+ storage_size = storage_size + prepend_format_byte - (2 * padding);
+ if (data_size < storage_size) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #if defined(SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED)
+ psa_status = sli_se_check_eddsa_errata(attributes, &cmd_ctx);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ #endif // SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED
+
+ sl_status = sl_se_export_public_key(&cmd_ctx, &priv_key_desc, &pub_key_desc);
+ if (sl_status == SL_STATUS_FAIL) {
+ // This specific code maps to 'does not exist' for builtin keys
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else if (sl_status != SL_STATUS_OK) {
+ if (sl_status == SL_STATUS_COMMAND_IS_INVALID) {
+ // This error will be returned if the key type isn't supported.
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ } else {
+ psa_status = PSA_SUCCESS;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ if (padding > 0) {
+ // Now it is time to copy the actual ket from the temp buffer to the
+ // output buffer. Write to an offset if applicable, to account for the
+ // format byte
+ sli_se_unpad_curve_point(temp_pub_buffer,
+ data + prepend_format_byte,
+ (storage_size - prepend_format_byte) / 2);
+ sli_psa_zeroize(temp_priv_buffer, priv_key_size);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Write the uncompressed format byte and actual data length
+ if (prepend_format_byte == 1) {
+ *data = 0x04;
+ }
+ *data_length = storage_size;
+ }
+
+ // Cleanup
+ sl_status = sl_se_deinit_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) data;
+ (void) data_size;
+ (void) data_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+}
+
+// -------------------------------------
+// Opaque driver entry points
+
+psa_status_t sli_se_opaque_generate_key(const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length)
+{
+ return sli_se_driver_generate_key(attributes,
+ key_buffer,
+ key_buffer_size,
+ key_buffer_length);
+}
+
+psa_status_t sli_se_opaque_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length)
+{
+ return sli_se_driver_export_public_key(attributes,
+ key_buffer,
+ key_buffer_size,
+ data,
+ data_size,
+ data_length);
+}
+
+#if defined(SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS)
+
+psa_status_t sli_se_opaque_copy_key(const psa_key_attributes_t *attributes,
+ const uint8_t *source_key,
+ size_t source_key_length,
+ uint8_t *target_key_buffer,
+ size_t target_key_buffer_size,
+ size_t *target_key_buffer_length)
+{
+ size_t bits = 0;
+ return sli_se_opaque_import_key(attributes,
+ source_key,
+ source_key_length,
+ target_key_buffer,
+ target_key_buffer_size,
+ target_key_buffer_length,
+ &bits);
+}
+
+psa_status_t sli_se_opaque_import_key(const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits)
+{
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || data == NULL
+ || data_length == 0
+ || key_buffer_length == NULL
+ || bits == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ *key_buffer_length = 0;
+
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+
+ // Store bits value for imported key
+ *bits = 8 * data_length;
+
+ switch (PSA_KEY_TYPE_ECC_GET_FAMILY(key_type)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SECPR1)
+ case PSA_ECC_FAMILY_SECP_R1:
+ if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ *bits -= 8;
+ *bits /= 2;
+ }
+ if (*bits == PSA_BITS_TO_BYTES(521) * 8) {
+ *bits = 521;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_SECPR1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_MONTGOMERY) || defined(SLI_PSA_DRIVER_FEATURE_EDWARDS)
+ case PSA_ECC_FAMILY_MONTGOMERY:
+ case PSA_ECC_FAMILY_TWISTED_EDWARDS:
+ if (data_length == 32) {
+ *bits = 255;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_MONTGOMERY || SLI_PSA_DRIVER_FEATURE_EDWARDS
+
+ default:
+ break;
+ }
+
+ size_t offset = 0;
+ size_t padding = 0;
+ size_t key_size = 0;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ if (PSA_KEY_TYPE_IS_ECC(key_type)) {
+ // Validate key and get size.
+ psa_status = sli_se_driver_validate_ecc_key(attributes,
+ data,
+ data_length,
+ &key_size);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ key_size = PSA_BITS_TO_BYTES(key_size);
+ if (sli_se_has_format_byte(key_type)) {
+ data_length -= 1;
+ data += 1;
+ }
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(key_type) == PSA_ECC_FAMILY_SECP_R1) {
+ // We must add some padding if offset is nonzero
+ offset = sli_se_get_padding(key_size);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+ {
+ key_size = data_length;
+ }
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // Size must at least fit max ECC key size plus padding
+ uint8_t temp_buffer[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ #endif
+
+ // Create a key desc that will represent the wrapped key
+ sl_se_key_descriptor_t imported_key_desc = { 0 };
+ psa_status =
+ sli_se_key_desc_from_psa_attributes(attributes,
+ key_size,
+ &imported_key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ // Create a key desc representing the plaintext input key
+ sl_se_key_descriptor_t plaintext_key_desc = imported_key_desc;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ if (offset == 0) {
+ sli_se_key_descriptor_set_plaintext(&plaintext_key_desc, data, data_length);
+ } else {
+ // We must account for the offset.
+ // Write the key data to offset position in temp buffer
+ if (sizeof(temp_buffer) < data_length + 2 * offset) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(key_type) == PSA_ECC_FAMILY_SECP_R1) {
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) {
+ sli_se_pad_big_endian(temp_buffer, data, key_size);
+ padding = offset;
+ } else {
+ // Must be public key
+ sli_se_pad_curve_point(temp_buffer, data, key_size);
+ padding = 2 * offset;
+ }
+ sli_se_key_descriptor_set_plaintext(&plaintext_key_desc,
+ temp_buffer,
+ data_length + padding);
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+ {
+ return PSA_ERROR_CORRUPTION_DETECTED;
+ }
+ }
+ #else // SLI_SE_KEY_PADDING_REQUIRED
+ (void)offset;
+ sli_se_key_descriptor_set_plaintext(&plaintext_key_desc, data, data_length);
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ sl_se_command_context_t cmd_ctx = SL_SE_COMMAND_CONTEXT_INIT;
+ sl_status_t sl_status = SL_STATUS_OK;
+ // Set location specific properties for the output key buffer
+ psa_status = sli_se_set_key_desc_output(attributes,
+ key_buffer,
+ key_buffer_size,
+ data_length + padding,
+ &imported_key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+
+ // Call SE manager to import the key
+ sl_status = sl_se_import_key(&cmd_ctx,
+ &plaintext_key_desc,
+ &imported_key_desc);
+ if (sl_status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ // Add the key desc parameters to the output array
+ psa_status = store_key_desc_in_context(&imported_key_desc,
+ key_buffer,
+ key_buffer_size);
+ if (psa_status != PSA_SUCCESS) {
+ goto exit;
+ }
+
+ psa_status = set_key_buffer_length(attributes,
+ data_length + padding,
+ key_buffer_length);
+ }
+
+ // Cleanup
+ sl_status = sl_se_deinit_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ exit:
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ sli_psa_zeroize(temp_buffer, sizeof(temp_buffer));
+ #endif
+
+ return psa_status;
+}
+
+psa_status_t sli_se_opaque_export_key(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length)
+{
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || data == NULL
+ || data_size == 0
+ || data_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Check that key can be exported
+ if (!(psa_get_key_usage_flags(attributes) & PSA_KEY_USAGE_EXPORT)) {
+ return PSA_ERROR_NOT_PERMITTED;
+ }
+
+ sl_se_key_descriptor_t imported_key = { 0 };
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &imported_key);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Create a plaintext key for the output
+ sl_se_key_descriptor_t plaintext_key = imported_key;
+ uint32_t storage_size = 0;
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ sl_status_t sl_status = sli_key_get_storage_size(&plaintext_key, &storage_size);
+ uint32_t prepend_format_byte = sli_se_has_format_byte(key_type);
+ if (prepend_format_byte == 1) {
+ // Make room for the format byte
+ *data = 0x04;
+ data += 1;
+ data_size -= 1;
+ }
+
+ size_t key_bits = psa_get_key_bits(attributes);
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // We must handle non-word-aligned keys with a temporary buffer
+ uint8_t temp_key_buffer[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ size_t padding = 0;
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ size_t key_size = PSA_BITS_TO_BYTES(key_bits);
+ if (PSA_KEY_TYPE_IS_ECC(key_type)) {
+ padding = sli_se_get_padding(key_size);
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+ if (padding > 0) {
+ if (storage_size > sizeof(temp_key_buffer)) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ sli_se_key_descriptor_set_plaintext(&plaintext_key,
+ temp_key_buffer,
+ sizeof(temp_key_buffer));
+ storage_size -= padding;
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ // Padding must be applied twice for public keys
+ storage_size -= padding;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+ } else {
+ if ((storage_size - imported_key.size) < 4) {
+ // SE manager has rounded the storage size up for word-alignment
+ storage_size = imported_key.size;
+ }
+ sli_se_key_descriptor_set_plaintext(&plaintext_key, data, data_size);
+ }
+ #else // SLI_SE_KEY_PADDING_REQUIRED
+ sli_se_key_descriptor_set_plaintext(&plaintext_key, data, data_size);
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (storage_size > data_size) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ // Export key
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_status = sl_se_init_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ sl_status = sl_se_export_key(&cmd_ctx, &imported_key, &plaintext_key);
+ if (sl_status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ psa_status = PSA_SUCCESS;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // Handle padding.
+ if (padding > 0) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+ // Copy out the padded key
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(key_type)) {
+ sli_se_unpad_big_endian(temp_key_buffer, data, key_size);
+ sli_psa_zeroize(temp_key_buffer, key_size);
+ } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(key_type)) {
+ sli_se_unpad_curve_point(temp_key_buffer, data, key_size);
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+ {
+ // This should never happen
+ return PSA_ERROR_BAD_STATE;
+ }
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ // Apply clamping if this is a Montgomery key.
+ clamp_private_key_if_needed(attributes, data, key_bits);
+
+ // Successful operation. Set ouput length
+ *data_length = storage_size + prepend_format_byte;
+ }
+
+ // Cleanup
+ sl_status = sl_se_deinit_command_context(&cmd_ctx);
+ if (sl_status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ return psa_status;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_WRAPPED_KEYS
+
+// -------------------------------------
+// Transparent driver entry points
+
+psa_status_t sli_se_transparent_generate_key(
+ const psa_key_attributes_t *attributes,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length)
+{
+ psa_key_type_t type = psa_get_key_type(attributes);
+
+ // We don't support generating symmetric keys with transparent drivers;
+ // it should be done by the core instead.
+ if (PSA_KEY_TYPE_IS_UNSTRUCTURED(type)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return sli_se_driver_generate_key(attributes,
+ key_buffer,
+ key_buffer_size,
+ key_buffer_length);
+}
+
+psa_status_t sli_se_transparent_export_public_key(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ uint8_t *data,
+ size_t data_size,
+ size_t *data_length)
+{
+ // If the key is stored transparently and is already a public key,
+ // let the core handle it.
+ if (PSA_KEY_TYPE_IS_PUBLIC_KEY(psa_get_key_type(attributes))) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return sli_se_driver_export_public_key(attributes,
+ key_buffer,
+ key_buffer_size,
+ data,
+ data_size,
+ data_length);
+}
+
+psa_status_t sli_se_transparent_import_key(const psa_key_attributes_t *attributes,
+ const uint8_t *data,
+ size_t data_length,
+ uint8_t *key_buffer,
+ size_t key_buffer_size,
+ size_t *key_buffer_length,
+ size_t *bits)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECC)
+
+ // Our driver only handles ECC keys (since they are better done accelerated).
+ if (PSA_KEY_TYPE_IS_ECC(psa_get_key_type(attributes))) {
+ psa_status_t status = sli_se_driver_validate_ecc_key(attributes,
+ data,
+ data_length,
+ bits);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if ( key_buffer_size < data_length ) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ memcpy(key_buffer, data, data_length);
+ clamp_private_key_if_needed(attributes, key_buffer, *bits);
+ *key_buffer_length = data_length;
+
+ return PSA_SUCCESS;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECC
+
+ (void)attributes;
+ (void)data;
+ (void)data_length;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)key_buffer_length;
+ (void)bits;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECC
+
+ return PSA_ERROR_NOT_SUPPORTED;
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_mac.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_mac.c
new file mode 100644
index 000000000..3c580a32b
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_mac.c
@@ -0,0 +1,582 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver Mac functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "sli_psa_driver_common.h" // sli_psa_zeroize()
+#include "psa/crypto.h"
+
+#include "mbedtls/platform.h"
+
+#include "sli_se_driver_mac.h"
+#include "sli_se_manager_internal.h"
+#include "sli_se_driver_key_management.h"
+#include "sli_psa_driver_common.h"
+
+#include
+
+//------------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+
+sl_se_hash_type_t sli_se_hash_type_from_psa_hmac_alg(psa_algorithm_t alg,
+ size_t *length)
+{
+ if (!PSA_ALG_IS_HMAC(alg)) {
+ return SL_SE_HASH_NONE;
+ }
+
+ psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(alg);
+ switch (hash_alg) {
+ case PSA_ALG_SHA_1:
+ *length = 20;
+ return SL_SE_HASH_SHA1;
+ case PSA_ALG_SHA_224:
+ *length = 28;
+ return SL_SE_HASH_SHA224;
+ case PSA_ALG_SHA_256:
+ *length = 32;
+ return SL_SE_HASH_SHA256;
+
+ #if defined(SLI_MBEDTLS_DEVICE_HSE_VAULT_HIGH)
+ case PSA_ALG_SHA_384:
+ *length = 48;
+ return SL_SE_HASH_SHA384;
+ case PSA_ALG_SHA_512:
+ *length = 64;
+ return SL_SE_HASH_SHA512;
+ #endif
+
+ default:
+ return SL_SE_HASH_NONE;
+ }
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+//------------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_driver_mac_compute(sl_se_key_descriptor_t *key_desc,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC)
+
+ if (mac == NULL
+ || mac_length == NULL
+ || key_desc == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sl_status_t status;
+ psa_status_t psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_STATE_64)
+ uint8_t tmp_hmac[64];
+ #else
+ uint8_t tmp_hmac[32];
+ #endif
+
+ size_t requested_length = 0;
+ sl_se_hash_type_t hash_type =
+ sli_se_hash_type_from_psa_hmac_alg(alg, &requested_length);
+ if (hash_type == SL_SE_HASH_NONE) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > requested_length) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > 0) {
+ requested_length = PSA_MAC_TRUNCATED_LENGTH(alg);
+ }
+
+ if (mac_size < requested_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ uint8_t *temp_key_buf = NULL;
+ uint32_t key_buffer_size = key_desc->storage.location.buffer.size;
+ size_t padding = sli_se_get_padding(key_buffer_size);
+ size_t word_aligned_buffer_size = 0;
+
+ if (padding > 0u) {
+ // We can only manipulate the transparent keys.
+ if (key_desc->storage.method == SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT) {
+ word_aligned_buffer_size
+ = sli_se_word_align(key_desc->storage.location.buffer.size);
+ temp_key_buf = mbedtls_calloc(1, word_aligned_buffer_size);
+ if (temp_key_buf == NULL) {
+ return PSA_ERROR_INSUFFICIENT_MEMORY;
+ }
+
+ // Since we know that this must be a plaintext key, we can freely
+ // modify the key descriptor
+ memcpy(temp_key_buf,
+ key_desc->storage.location.buffer.pointer,
+ key_desc->storage.location.buffer.size);
+ key_desc->storage.location.buffer.pointer = temp_key_buf;
+ key_desc->storage.location.buffer.size = word_aligned_buffer_size;
+ }
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ status = sl_se_hmac(&cmd_ctx,
+ key_desc,
+ hash_type,
+ input,
+ input_length,
+ tmp_hmac,
+ sizeof(tmp_hmac));
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ if (padding > 0u) {
+ sli_psa_zeroize(temp_key_buf, word_aligned_buffer_size);
+ mbedtls_free(temp_key_buf);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ if (status == PSA_SUCCESS) {
+ memcpy(mac, tmp_hmac, requested_length);
+ *mac_length = requested_length;
+ } else {
+ *mac_length = 0;
+ }
+
+ sli_psa_zeroize(tmp_hmac, sizeof(tmp_hmac));
+
+ goto exit;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC) \
+ && (defined(SLI_PSA_DRIVER_FEATURE_CMAC) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC))
+ else
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ {
+ size_t output_length = PSA_MAC_TRUNCATED_LENGTH(alg);
+ if (output_length == 0) {
+ output_length = 16;
+ } else if (output_length > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (mac_size < output_length) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ switch (PSA_ALG_FULL_LENGTH_MAC(alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ case PSA_ALG_CBC_MAC: {
+ uint8_t tmp_buf[16] = { 0 };
+ uint8_t tmp_mac[16] = { 0 };
+
+ if (input_length % 16 != 0 || input_length < 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Do an AES-CBC encrypt with zero IV, keeping only the last block.
+ while (input_length > 0) {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ tmp_mac,
+ input,
+ tmp_buf);
+
+ input_length -= 16;
+ input += 16;
+ }
+
+ // Copy the requested number of bytes (max 16) to the user buffer.
+ if (status == SL_STATUS_OK) {
+ memcpy(mac, tmp_mac, output_length);
+ sli_psa_zeroize(tmp_mac, sizeof(tmp_mac));
+ *mac_length = output_length;
+ }
+
+ goto exit;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC)
+ case PSA_ALG_CMAC: {
+ uint8_t tmp_mac[16] = { 0 };
+
+ status = sl_se_cmac(&cmd_ctx,
+ key_desc,
+ input,
+ input_length,
+ tmp_mac);
+
+ // Copy the requested number of bytes (max 16) to the user buffer.
+ if (status == SL_STATUS_OK) {
+ memcpy(mac, tmp_mac, output_length);
+ sli_psa_zeroize(tmp_mac, sizeof(tmp_mac));
+ *mac_length = output_length;
+ }
+
+ goto exit;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ break;
+ }
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ exit:
+
+ if (status == SL_STATUS_INVALID_PARAMETER) {
+ psa_status = PSA_ERROR_INVALID_ARGUMENT;
+ } else if (status == SL_STATUS_FAIL) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ } else {
+ psa_status = PSA_SUCCESS;
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC
+
+ (void)key_desc;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC
+}
+
+//------------------------------------------------------------------------------
+// Multi-part driver entry points
+
+#if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+
+psa_status_t sli_se_driver_mac_sign_setup(
+ sli_se_driver_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg)
+{
+ if (operation == NULL
+ || attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ switch (PSA_ALG_FULL_LENGTH_MAC(alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ case PSA_ALG_CBC_MAC:
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC)
+ case PSA_ALG_CMAC:
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_AES) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ operation->alg = alg;
+ return PSA_SUCCESS;
+}
+
+psa_status_t sli_se_driver_mac_update(sli_se_driver_mac_operation_t *operation,
+ sl_se_key_descriptor_t *key_desc,
+ const uint8_t *input,
+ size_t input_length)
+{
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ psa_status_t psa_status = PSA_ERROR_NOT_SUPPORTED;
+ switch (PSA_ALG_FULL_LENGTH_MAC(operation->alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ case PSA_ALG_CBC_MAC:
+ if (input_length == 0) {
+ psa_status = PSA_SUCCESS;
+ goto exit;
+ }
+
+ // Add bytes to the streaming buffer up to the next block boundary
+ if (operation->ctx.cbcmac.processed_length % 16 != 0) {
+ size_t bytes_to_boundary
+ = 16 - operation->ctx.cbcmac.processed_length % 16;
+ if (input_length < bytes_to_boundary) {
+ memcpy(&operation->ctx.cbcmac.streaming_block[16 - bytes_to_boundary],
+ input,
+ input_length);
+ operation->ctx.cbcmac.processed_length += input_length;
+ psa_status = PSA_SUCCESS;
+ goto exit;
+ }
+
+ memcpy(&operation->ctx.cbcmac.streaming_block[16 - bytes_to_boundary],
+ input,
+ bytes_to_boundary);
+ input_length -= bytes_to_boundary;
+ input += bytes_to_boundary;
+ operation->ctx.cbcmac.processed_length += bytes_to_boundary;
+
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ operation->ctx.cbcmac.iv,
+ operation->ctx.cbcmac.streaming_block,
+ operation->ctx.cbcmac.iv);
+
+ if (status == SL_STATUS_FAIL) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ } else if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ }
+
+ // Draw all full blocks
+ while (input_length >= 16) {
+ status = sl_se_aes_crypt_cbc(&cmd_ctx,
+ key_desc,
+ SL_SE_ENCRYPT,
+ 16,
+ operation->ctx.cbcmac.iv,
+ input,
+ operation->ctx.cbcmac.iv);
+
+ if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+
+ operation->ctx.cbcmac.processed_length += 16;
+ input += 16;
+ input_length -= 16;
+ }
+
+ if (input_length > 0) {
+ memcpy(operation->ctx.cbcmac.streaming_block,
+ input,
+ input_length);
+ operation->ctx.cbcmac.processed_length += input_length;
+ }
+
+ psa_status = PSA_SUCCESS;
+ goto exit;
+ #endif // SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC)
+ case PSA_ALG_CMAC:
+ if (input_length == 0) {
+ psa_status = PSA_SUCCESS;
+ goto exit;
+ }
+
+ status = sl_se_cmac_multipart_update(&operation->ctx.cmac,
+ &cmd_ctx,
+ key_desc,
+ input,
+ input_length);
+ if (status == SL_STATUS_FAIL) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ goto exit;
+ } else if (status != SL_STATUS_OK) {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ goto exit;
+ }
+ psa_status = PSA_SUCCESS;
+ goto exit;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC
+
+ default:
+ psa_status = PSA_ERROR_BAD_STATE;
+ goto exit;
+ }
+
+ exit:
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+}
+
+psa_status_t sli_se_driver_mac_sign_finish(
+ sli_se_driver_mac_operation_t *operation,
+ sl_se_key_descriptor_t *key_desc,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ if (operation == NULL
+ || mac == NULL
+ || mac_size == 0
+ || mac_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Set maximum output size to 16 or truncated length
+ if (mac_size > 16) {
+ mac_size = 16;
+ }
+
+ size_t truncated_length = PSA_MAC_TRUNCATED_LENGTH(operation->alg);
+ if (truncated_length != 0
+ && mac_size > truncated_length) {
+ mac_size = truncated_length;
+ }
+
+ switch (PSA_ALG_FULL_LENGTH_MAC(operation->alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ case PSA_ALG_CBC_MAC: {
+ (void)key_desc;
+
+ if (operation->ctx.cbcmac.processed_length % 16 != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Copy the requested number of bytes (max 16) to the user buffer.
+ memcpy(mac, operation->ctx.cbcmac.iv, mac_size);
+ *mac_length = mac_size;
+
+ return PSA_SUCCESS;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC)
+ case PSA_ALG_CMAC: {
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ uint8_t tmp_mac[16] = { 0 };
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ status = sl_se_cmac_multipart_finish(&operation->ctx.cmac,
+ &cmd_ctx,
+ key_desc,
+ tmp_mac);
+ if (status != SL_STATUS_OK) {
+ *mac_length = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ *mac_length = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Copy the requested number of bytes (max 16) to the user buffer.
+ memcpy(mac, tmp_mac, mac_size);
+ *mac_length = mac_size;
+
+ return PSA_SUCCESS;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_signature.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_signature.c
new file mode 100644
index 000000000..23873cad2
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_driver_signature.c
@@ -0,0 +1,1065 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Secure Engine Signature Driver functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_psa_driver_common.h" // sli_psa_zeroize()
+#include "sli_se_transparent_types.h"
+#include "sli_se_transparent_functions.h"
+#include "sli_se_driver_key_management.h"
+#include "sli_se_version_dependencies.h"
+
+#include "sl_se_manager.h"
+#include "sli_se_manager_internal.h"
+#include "sl_se_manager_signature.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+// -------------------------------------
+// Helpers
+
+#if defined(SLI_PSA_DRIVER_FEATURE_SIGNATURE)
+
+/**
+ * @brief
+ * Validate that the curve and algorithm combination is supported by hardware
+ */
+static psa_status_t check_curve_availability(
+ const psa_key_attributes_t *attributes,
+ psa_algorithm_t alg)
+{
+ psa_key_type_t key_type = psa_get_key_type(attributes);
+ psa_ecc_family_t curvetype = PSA_KEY_TYPE_ECC_GET_FAMILY(key_type);
+
+ if (PSA_ALG_IS_RSA_PSS(alg) || PSA_ALG_IS_RSA_PKCS1V15_SIGN(alg)) {
+ // We shouldn't have a RSA-type alg for a ECC key.
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ if (curvetype == PSA_ECC_FAMILY_SECP_R1) {
+ switch (psa_get_key_bits(attributes)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_P192R1)
+ case 192: // Intentional
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_P224R1)
+ case 224: // Intentional
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_P256R1)
+ case 256: // Intentional
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_P384R1)
+ case 384: // Intentional
+ #endif
+ #if defined(SLI_PSA_DRIVER_FEATURE_P521R1)
+ case 521:
+ #endif
+ // Only randomized ECDSA is supported on secp-r1 curves
+ if (!PSA_ALG_IS_RANDOMIZED_ECDSA(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break; // This break catches all the supported curves
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else if (curvetype == PSA_ECC_FAMILY_SECP_K1) {
+ // Only randomized ECDSA is supported on secp-k1 curves
+ if (!PSA_ALG_IS_RANDOMIZED_ECDSA(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ // TODO: introduce custom domains to enable secpxxxk1
+ return PSA_ERROR_NOT_SUPPORTED;
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_EDDSA)
+ if (curvetype == PSA_ECC_FAMILY_TWISTED_EDWARDS) {
+ switch (psa_get_key_bits(attributes)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_EDWARDS25519)
+ case 255:
+ // Only Ed25519 is supported (and only in context of EdDSA)
+ if (alg != PSA_ALG_PURE_EDDSA) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ #endif // SLI_PSA_DRIVER_FEATURE_EDWARDS25519
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ } else
+ #endif // SLI_PSA_DRIVER_FEATURE_EDDSA
+
+ {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ return PSA_SUCCESS;
+}
+
+static sl_se_hash_type_t get_hash_for_algorithm(psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_EDDSA)
+ if (alg == PSA_ALG_PURE_EDDSA) {
+ // The hash alg parameter is ignored for EdDSA, as it is decided uniqely by
+ // the alorithm. Return magic value which isn't SL_SE_HASH_NONE.
+ return (sl_se_hash_type_t)255;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_EDDSA
+
+ switch (PSA_ALG_SIGN_GET_HASH(alg)) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA1)
+ case PSA_ALG_SHA_1:
+ return SL_SE_HASH_SHA1;
+ #endif // SLI_PSA_DRIVER_FEATURE_SHA1
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA224)
+ case PSA_ALG_SHA_224:
+ return SL_SE_HASH_SHA224;
+ #endif // SLI_PSA_DRIVER_FEATURE_SHA224
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA256)
+ case PSA_ALG_SHA_256:
+ return SL_SE_HASH_SHA256;
+ #endif // SLI_PSA_DRIVER_FEATURE_SHA256
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA384)
+ case PSA_ALG_SHA_384:
+ return SL_SE_HASH_SHA384;
+ #endif // SLI_PSA_DRIVER_FEATURE_SHA384
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA512)
+ case PSA_ALG_SHA_512:
+ return SL_SE_HASH_SHA512;
+ #endif // SLI_PSA_DRIVER_FEATURE_SHA512
+
+ default:
+ return SL_SE_HASH_NONE;
+ }
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_SIGNATURE
+
+// -------------------------------------
+// Generic (indirect) driver entry points
+
+static psa_status_t sli_se_sign_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_SIGNATURE)
+
+ uint8_t* tmp_signature_p = signature;
+ size_t tmp_signature_size = signature_size;
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ // Argument check
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || signature == NULL
+ || signature_size == 0
+ || signature_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check the requested algorithm is supported
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(psa_get_key_type(attributes))) {
+ psa_status = check_curve_availability(attributes, alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ } else {
+ // Not able to sign using non-ECC keys, or using public keys
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check the requested hashing algorithm is supported
+ if (get_hash_for_algorithm(alg) == SL_SE_HASH_NONE) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ // Initialize key descriptor and verify key buffer size
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Validate that the output buffer can contain the full signature.
+ // Both ECDSA and EdDSA share the same signature size.
+ if (signature_size
+ < PSA_ECDSA_SIGNATURE_SIZE(psa_get_key_bits(attributes))) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ size_t key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ size_t offset = sli_se_get_padding(key_size);
+ #else
+ size_t offset = 0;
+ #endif
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED) && defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ // P-521 (or any curve size that's not word-multiple) requires alignment on
+ // word boundaries, instead of byte boundaries such as PSA Crypto defines as
+ // input here.
+ uint8_t temp_key_buf[SLI_SE_MAX_PADDED_KEY_PAIR_SIZE] = { 0 };
+ uint8_t temp_signature_buffer[SLI_SE_MAX_PADDED_SIGNATURE_SIZE] = { 0 };
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+
+ if (offset > 0) {
+ // We can only manipulate the input key for transparent keys.
+ // For opaque keys, we will just have to rely on the key import operation
+ // handling this
+ if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ if ((offset + key_buffer_size) > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_big_endian(temp_key_buf, key_buffer, key_buffer_size);
+ // Since we know that this must be a plaintext key, we can freely
+ // modify the key descriptor
+ key_desc.storage.location.buffer.pointer = temp_key_buf;
+ key_desc.storage.location.buffer.size = sizeof(temp_key_buf);
+ }
+
+ tmp_signature_p = temp_signature_buffer;
+ tmp_signature_size = sizeof(temp_signature_buffer);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED || SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ if (tmp_signature_size < 2 * (offset + key_size)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ tmp_signature_size = 2 * (offset + key_size);
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #if defined(SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED)
+ psa_status = sli_se_check_eddsa_errata(attributes, &cmd_ctx);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ #endif // SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED
+
+ // Run signature generation
+ status = sl_se_ecc_sign(&cmd_ctx,
+ &key_desc,
+ get_hash_for_algorithm(alg),
+ false,
+ input,
+ input_length,
+ tmp_signature_p,
+ tmp_signature_size
+ );
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED) && defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ if (offset > 0) {
+ sli_psa_zeroize(temp_key_buf, sizeof(temp_key_buf));
+ // Copy over from temp signature
+ sli_se_unpad_curve_point(temp_signature_buffer, signature, key_size);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED && SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ if (status == SL_STATUS_OK) {
+ *signature_length = PSA_ECDSA_SIGNATURE_SIZE(psa_get_key_bits(attributes));
+ psa_status = PSA_SUCCESS;
+ } else {
+ if (status == SL_STATUS_FAIL) {
+ // Will be returned for missing built-in keys.
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else if (status == SL_STATUS_COMMAND_IS_INVALID) {
+ // Will be returned if a key type is not supported (for example).
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_SIGNATURE
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) input;
+ (void) input_length;
+ (void) signature;
+ (void) signature_size;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_SIGNATURE
+}
+
+static psa_status_t sli_se_sign_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ uint8_t* tmp_signature_p = signature;
+ size_t tmp_signature_size = signature_size;
+
+ // Argument check
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || hash == NULL
+ || hash_length == 0
+ || signature == NULL
+ || signature_size == 0
+ || signature_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Check the requested algorithm is ECDSA with randomized k
+ if (!PSA_ALG_IS_RANDOMIZED_ECDSA(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ // Initialize key descriptor and verify key buffer size
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Verify and set key attributes
+ psa_key_type_t keytype = psa_get_key_type(attributes);
+
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(keytype)) {
+ // Validate that the input
+ psa_status = check_curve_availability(attributes, alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ if (signature_size
+ < PSA_ECDSA_SIGNATURE_SIZE(psa_get_key_bits(attributes))) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+ } else {
+ // Not able to sign using non-ECC keys, or using public keys
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t key_bits = psa_get_key_bits(attributes);
+ size_t key_size = PSA_BITS_TO_BYTES(key_bits);
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ size_t offset = sli_se_get_padding(key_size);
+ #else
+ size_t offset = 0;
+ #endif
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ // P-521 (or any curve size that's not word-multiple) requires alignment on
+ // word boundaries, instead of byte boundaries such as PSA Crypto defines as
+ // input here.
+ uint8_t temp_key_buf[SLI_SE_MAX_PADDED_KEY_PAIR_SIZE] = { 0 };
+ uint8_t temp_signature_buffer[SLI_SE_MAX_PADDED_SIGNATURE_SIZE] = { 0 };
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+
+ if (offset > 0) {
+ // We can only manipulate the input key for transparent keys.
+ // For opaque keys, we will just have to rely on the key import operation
+ // handling this
+ if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ if ((offset + key_buffer_size) > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_big_endian(temp_key_buf, key_buffer, key_buffer_size);
+ // Since we know that this must be a plaintext key, we can freely
+ // modify the key descriptor
+ key_desc.storage.location.buffer.pointer = temp_key_buf;
+ key_desc.storage.location.buffer.size = sizeof(temp_key_buf);
+ }
+
+ tmp_signature_p = temp_signature_buffer;
+ tmp_signature_size = sizeof(temp_signature_buffer);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ if (tmp_signature_size < 2 * (offset + key_size)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ tmp_signature_size = 2 * (offset + key_size);
+
+ sl_status_t status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Run signature generation
+ status = sl_se_ecc_sign(&cmd_ctx,
+ &key_desc,
+ SL_SE_HASH_NONE,
+ true,
+ hash,
+ hash_length,
+ tmp_signature_p,
+ tmp_signature_size);
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ if (offset > 0) {
+ sli_psa_zeroize(temp_key_buf, sizeof(temp_key_buf));
+ // Copy over from temp signature
+ sli_se_unpad_curve_point(temp_signature_buffer, signature, key_size);
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED
+
+ if (status == SL_STATUS_OK) {
+ *signature_length = PSA_ECDSA_SIGNATURE_SIZE(key_bits);
+ psa_status = PSA_SUCCESS;
+ } else {
+ if (status == SL_STATUS_FAIL) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) hash;
+ (void) hash_length;
+ (void) signature;
+ (void) signature_size;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECDSA
+}
+
+static psa_status_t sli_se_verify_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_SIGNATURE)
+
+ psa_status_t psa_status = PSA_ERROR_CORRUPTION_DETECTED;
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || (input == NULL && input_length > 0)
+ || (signature == NULL && signature_length != 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Verify can happen with a public or private key
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(psa_get_key_type(attributes))
+ || PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(psa_get_key_type(attributes))) {
+ // Check the requested algorithm is supported and matches the key type
+ psa_status = check_curve_availability(attributes, alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ } else {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Check the requested hashing algorithm is supported
+ if (get_hash_for_algorithm(alg) == SL_SE_HASH_NONE) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (signature_length == 0) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Validate that the signature input is of the expected length.
+ // Both ECDSA and EdDSA share the same signature size.
+ if (signature_length
+ != PSA_ECDSA_SIGNATURE_SIZE(psa_get_key_bits(attributes))) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ // Verify and set key attributes
+ uint8_t temp_key_buf[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ psa_key_type_t keytype = psa_get_key_type(attributes);
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED) && defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ // P-521 (or any curve size that's not word-multiple) requires alignment on word
+ // boundaries, instead of byte boundaries such as PSA Crypto defines as input here.
+ uint8_t temp_signature_buffer[SLI_SE_MAX_PADDED_SIGNATURE_SIZE] = { 0 };
+ size_t key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ size_t offset = sli_se_get_padding(key_size);
+ if (offset > 0) {
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+
+ // Only pad transparent keys.
+ if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(keytype)) {
+ if (offset + key_size > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_big_endian(temp_key_buf,
+ key_desc.storage.location.buffer.pointer,
+ key_size);
+ } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(keytype)) {
+ if ((2 * (offset + key_size)) > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_curve_point(temp_key_buf,
+ key_desc.storage.location.buffer.pointer,
+ key_size);
+ } else {
+ return PSA_ERROR_CORRUPTION_DETECTED;
+ }
+ key_desc.storage.location.buffer.pointer = temp_key_buf;
+ key_desc.storage.location.buffer.size = sizeof(temp_key_buf);
+ }
+
+ // Always pad signature
+ if ((2 * (offset + key_size)) > sizeof(temp_signature_buffer)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_curve_point(temp_signature_buffer, signature, key_size);
+
+ signature = temp_signature_buffer;
+ signature_length = signature_length + 2 * offset;
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED && SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ // SE manager only accepts public keys for signature verification,
+ // so we must generate a public key if we are passed a private one
+ sl_status_t status = SL_STATUS_INVALID_PARAMETER;
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(keytype)) {
+ #if defined(SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED)
+ psa_status = sli_se_check_eddsa_errata(attributes, &cmd_ctx);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ #endif // SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED
+
+ // Create similar key descriptor for temporary public key.
+ sl_se_key_descriptor_t pubkey_desc = key_desc;
+ pubkey_desc.flags &= ~SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PRIVATE_KEY;
+ pubkey_desc.flags &= ~SL_SE_KEY_FLAG_IS_RESTRICTED;
+ pubkey_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ sli_se_key_descriptor_set_plaintext(&pubkey_desc, temp_key_buf, sizeof(temp_key_buf));
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ status = sl_se_export_public_key(&cmd_ctx, &key_desc, &pubkey_desc);
+ if (status != SL_STATUS_OK) {
+ if (status == SL_STATUS_COMMAND_IS_INVALID) {
+ // This error will be returned if the key type isn't supported.
+ return PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ }
+
+ // Set the key desc to the public key, and move on.
+ key_desc = pubkey_desc;
+ }
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Run signature verification
+ status = sl_se_ecc_verify(&cmd_ctx,
+ &key_desc,
+ get_hash_for_algorithm(alg),
+ false,
+ input,
+ input_length,
+ signature,
+ signature_length);
+
+ if (status == SL_STATUS_OK) {
+ psa_status = PSA_SUCCESS;
+ } else if (status == SL_STATUS_INVALID_SIGNATURE) {
+ // Signature was invalid.
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ } else if (status == SL_STATUS_FAIL) {
+ // Built-in key does not exist.
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else if (status == SL_STATUS_COMMAND_IS_INVALID) {
+ // Key type is not supported.
+ psa_status = PSA_ERROR_NOT_SUPPORTED;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_SIGNATURE
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) input;
+ (void) input_length;
+ (void) signature;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_SIGNATURE
+}
+
+static psa_status_t sli_se_verify_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+
+ // Argument check.
+ if (attributes == NULL
+ || key_buffer == NULL
+ || key_buffer_size == 0
+ || hash == NULL
+ || hash_length == 0
+ || (signature == NULL && signature_length != 0) ) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (signature_length == 0) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+
+ // Check the requested algorithm is ECDSA with randomized k
+ if (!PSA_ALG_IS_RANDOMIZED_ECDSA(alg)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Ephemeral contexts
+ sl_se_command_context_t cmd_ctx = { 0 };
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Verify and set key attributes
+ if (signature_length
+ != PSA_ECDSA_SIGNATURE_SIZE(psa_get_key_bits(attributes))) {
+ return PSA_ERROR_INVALID_SIGNATURE;
+ }
+ psa_status = check_curve_availability(attributes, alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ uint8_t temp_key_buf[SLI_SE_MAX_PADDED_PUBLIC_KEY_SIZE] = { 0 };
+ psa_key_type_t keytype = psa_get_key_type(attributes);
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED) && defined(SLI_PSA_DRIVER_FEATURE_ECDSA)
+ // P-521 (or any curve size that's not word-multiple) requires alignment on word
+ // boundaries, instead of byte boundaries such as PSA Crypto defines as input here.
+ uint8_t temp_signature_buffer[SLI_SE_MAX_PADDED_SIGNATURE_SIZE] = { 0 };
+ size_t key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ size_t offset = sli_se_get_padding(key_size);
+ if (offset > 0) {
+ psa_key_location_t location =
+ PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes));
+
+ // Only pad transparent keys.
+ if (location == PSA_KEY_LOCATION_LOCAL_STORAGE) {
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(keytype)) {
+ if (offset + key_size > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_big_endian(temp_key_buf,
+ key_desc.storage.location.buffer.pointer,
+ key_size);
+ } else if (PSA_KEY_TYPE_IS_ECC_PUBLIC_KEY(keytype)) {
+ if ((2 * (offset + key_size)) > sizeof(temp_key_buf)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_curve_point(temp_key_buf,
+ key_desc.storage.location.buffer.pointer,
+ key_size);
+ } else {
+ return PSA_ERROR_CORRUPTION_DETECTED;
+ }
+ key_desc.storage.location.buffer.pointer = temp_key_buf;
+ key_desc.storage.location.buffer.size = sizeof(temp_key_buf);
+ }
+
+ // Always pad signature
+ if ((2 * (offset + key_size)) > sizeof(temp_signature_buffer)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ sli_se_pad_curve_point(temp_signature_buffer, signature, key_size);
+
+ signature = temp_signature_buffer;
+ signature_length = signature_length + 2 * offset;
+ }
+ #endif // SLI_SE_KEY_PADDING_REQUIRED && SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ // SE manager only accepts public keys for signature verification,
+ // so we must generate a public key if we are passed a private one
+ sl_status_t status = SL_STATUS_INVALID_PARAMETER;
+ if (PSA_KEY_TYPE_IS_ECC_KEY_PAIR(keytype)) {
+ sl_se_key_descriptor_t pubkey_desc = key_desc;
+ // Unset private key flag and set public
+ pubkey_desc.flags &= ~SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PRIVATE_KEY;
+ pubkey_desc.flags &= ~SL_SE_KEY_FLAG_IS_RESTRICTED;
+ pubkey_desc.flags |= SL_SE_KEY_FLAG_ASYMMETRIC_BUFFER_HAS_PUBLIC_KEY;
+ sli_se_key_descriptor_set_plaintext(&pubkey_desc, temp_key_buf, sizeof(temp_key_buf));
+ // Same input output region
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ status = sl_se_export_public_key(&cmd_ctx, &key_desc, &pubkey_desc);
+ if (sl_se_deinit_command_context(&cmd_ctx) != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ if (status) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ // Set the key desc to the public key, and go on
+ key_desc = pubkey_desc;
+ }
+
+ status = sl_se_init_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Run signature verification
+ status = sl_se_ecc_verify(&cmd_ctx,
+ &key_desc,
+ SL_SE_HASH_NONE,
+ true,
+ hash,
+ hash_length,
+ signature,
+ signature_length);
+
+ if (status == SL_STATUS_OK) {
+ psa_status = PSA_SUCCESS;
+ } else if (status == SL_STATUS_INVALID_SIGNATURE) {
+ psa_status = PSA_ERROR_INVALID_SIGNATURE;
+ } else if (status == SL_STATUS_FAIL) {
+ psa_status = PSA_ERROR_DOES_NOT_EXIST;
+ } else {
+ psa_status = PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ // Cleanup
+ status = sl_se_deinit_command_context(&cmd_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_ECDSA
+
+ (void) attributes;
+ (void) key_buffer;
+ (void) key_buffer_size;
+ (void) alg;
+ (void) hash;
+ (void) hash_length;
+ (void) signature;
+ (void) signature_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_ECDSA
+}
+
+// -----------------------------------------------------------------------------
+// Opaque driver entry points
+
+psa_status_t sli_se_opaque_sign_message(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ return sli_se_sign_message(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ signature,
+ signature_size,
+ signature_length);
+}
+
+psa_status_t sli_se_opaque_sign_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ return sli_se_sign_hash(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ hash,
+ hash_length,
+ signature,
+ signature_size,
+ signature_length);
+}
+
+psa_status_t sli_se_opaque_verify_message(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t * input,
+ size_t input_length,
+ const uint8_t * signature,
+ size_t signature_length)
+{
+ return sli_se_verify_message(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ signature,
+ signature_length);
+}
+
+psa_status_t sli_se_opaque_verify_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+ return sli_se_verify_hash(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ hash,
+ hash_length,
+ signature,
+ signature_length);
+}
+
+// -----------------------------------------------------------------------------
+// Transparent driver entry points
+
+psa_status_t sli_se_transparent_sign_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ return sli_se_sign_message(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ signature,
+ signature_size,
+ signature_length);
+}
+
+psa_status_t sli_se_transparent_sign_hash(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ uint8_t *signature,
+ size_t signature_size,
+ size_t *signature_length)
+{
+ return sli_se_sign_hash(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ hash,
+ hash_length,
+ signature,
+ signature_size,
+ signature_length);
+}
+
+psa_status_t sli_se_transparent_verify_message(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+ return sli_se_verify_message(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ signature,
+ signature_length);
+}
+
+psa_status_t sli_se_transparent_verify_hash(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *hash,
+ size_t hash_length,
+ const uint8_t *signature,
+ size_t signature_length)
+{
+ return sli_se_verify_hash(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ hash,
+ hash_length,
+ signature,
+ signature_length);
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c
new file mode 100644
index 000000000..db683cc51
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_aead.c
@@ -0,0 +1,278 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver AEAD functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) && defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+#include "psa/crypto.h"
+
+#include "sli_se_opaque_types.h"
+#include "sli_se_opaque_functions.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_opaque_aead_encrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length)
+{
+ return sli_se_driver_aead_encrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ plaintext_length,
+ ciphertext,
+ ciphertext_size,
+ ciphertext_length);
+}
+
+psa_status_t sli_se_opaque_aead_decrypt(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ return sli_se_driver_aead_decrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ ciphertext_length,
+ plaintext,
+ plaintext_size,
+ plaintext_length);
+}
+
+// -----------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_opaque_aead_encrypt_setup(
+ sli_se_opaque_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ // Setup generic context struct
+ return sli_se_driver_aead_encrypt_decrypt_setup(&(operation->operation),
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ SL_SE_ENCRYPT,
+ operation->key,
+ sizeof(operation->key),
+ SLI_SE_WRAPPED_KEY_OVERHEAD);
+}
+
+psa_status_t sli_se_opaque_aead_decrypt_setup(
+ sli_se_opaque_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ // Setup generic context struct
+ return sli_se_driver_aead_encrypt_decrypt_setup(&(operation->operation),
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ SL_SE_DECRYPT,
+ operation->key,
+ sizeof(operation->key),
+ SLI_SE_WRAPPED_KEY_OVERHEAD);
+}
+
+psa_status_t sli_se_opaque_aead_set_nonce(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_set_nonce(&(operation->operation),
+ nonce,
+ nonce_size);
+}
+
+psa_status_t sli_se_opaque_aead_set_lengths(
+ sli_se_opaque_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_set_lengths(&(operation->operation),
+ ad_length,
+ plaintext_length);
+}
+
+psa_status_t sli_se_opaque_aead_update_ad(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_update_ad(&(operation->operation),
+ operation->key,
+ input,
+ input_length);
+}
+
+psa_status_t sli_se_opaque_aead_update(
+ sli_se_opaque_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_update(&(operation->operation),
+ operation->key,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+}
+
+psa_status_t sli_se_opaque_aead_finish(
+ sli_se_opaque_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_finish(&(operation->operation),
+ operation->key,
+ ciphertext,
+ ciphertext_size,
+ ciphertext_length,
+ tag,
+ tag_size,
+ tag_length);
+}
+
+psa_status_t sli_se_opaque_aead_verify(
+ sli_se_opaque_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_verify(&(operation->operation),
+ operation->key,
+ plaintext,
+ plaintext_size,
+ plaintext_length,
+ tag,
+ tag_length);
+}
+
+psa_status_t sli_se_opaque_aead_abort(
+ sli_se_opaque_aead_operation_t *operation)
+{
+ // No state is ever left in HW, so zeroing context should do the trick
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE && SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c
new file mode 100644
index 000000000..1e7675eca
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_cipher.c
@@ -0,0 +1,417 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver Cipher functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) && defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+#include "psa/crypto.h"
+
+#include "sli_se_opaque_types.h"
+#include "sli_se_opaque_functions.h"
+
+#include "sli_se_driver_cipher.h"
+#include "sli_se_driver_key_management.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_cipher.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+static void update_key_from_context(sli_se_opaque_cipher_operation_t* ctx)
+{
+ // Point the key to the buffer
+ ctx->operation.key_desc.storage.location.buffer.pointer = ctx->key;
+}
+
+static psa_status_t initialize_key_in_context(
+ const psa_key_attributes_t *attributes,
+ sli_se_opaque_cipher_operation_t *operation,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size)
+{
+ // Double check that the location of the key actually is
+ // as expected for this driver.
+ if (PSA_KEY_LIFETIME_GET_LOCATION(psa_get_key_lifetime(attributes))
+ != PSA_KEY_LOCATION_SLI_SE_OPAQUE) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ // Initialize the key descriptor.
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &operation->operation.key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Copy the key material -- could be either a built-in or a wrapped key.
+ sli_se_opaque_key_context_header_t *key_context_header =
+ (sli_se_opaque_key_context_header_t *)key_buffer;
+ if (key_context_header->builtin_key_id != 0) { // Built-in key.
+ memcpy(operation->key,
+ key_buffer,
+ sizeof(sli_se_opaque_key_context_header_t));
+ operation->key_len = sizeof(sli_se_opaque_key_context_header_t);
+ } else { // Wrapped key.
+ size_t key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ size_t offset = offsetof(sli_se_opaque_wrapped_key_context_t, wrapped_buffer);
+ if (key_buffer_size < key_size + sizeof(sli_se_opaque_wrapped_key_context_t)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (sizeof(operation->key) < key_size + SLI_SE_WRAPPED_KEY_OVERHEAD) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key,
+ key_buffer + offset,
+ key_size + SLI_SE_WRAPPED_KEY_OVERHEAD);
+ operation->key_len = key_size + SLI_SE_WRAPPED_KEY_OVERHEAD;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_opaque_cipher_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined (SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ return sli_se_driver_cipher_encrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ iv,
+ iv_length,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+psa_status_t sli_se_opaque_cipher_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined (SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ return sli_se_driver_cipher_decrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+// -----------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_opaque_cipher_encrypt_setup(
+ sli_se_opaque_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ psa_status_t psa_status = sli_se_driver_cipher_encrypt_setup(&operation->operation,
+ attributes,
+ alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Copy key into context
+ psa_status = initialize_key_in_context(attributes,
+ operation,
+ key_buffer,
+ key_buffer_size);
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_opaque_cipher_decrypt_setup(
+ sli_se_opaque_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ psa_status_t psa_status = sli_se_driver_cipher_decrypt_setup(&operation->operation,
+ attributes,
+ alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Copy key into context
+ psa_status = initialize_key_in_context(attributes,
+ operation,
+ key_buffer,
+ key_buffer_size);
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_opaque_cipher_set_iv(
+ sli_se_opaque_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->key_len == 0) {
+ // context hasn't been properly initialised
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ return sli_se_driver_cipher_set_iv(&operation->operation, iv, iv_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)iv;
+ (void)iv_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_opaque_cipher_update(
+ sli_se_opaque_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ // Argument check
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // For wrapped keys, set the key correctly
+ sli_se_opaque_key_context_header_t *key_context_header =
+ (sli_se_opaque_key_context_header_t *)operation->key;
+ if (key_context_header->builtin_key_id == 0) {
+ update_key_from_context(operation);
+ }
+
+ // Compute
+ return sli_se_driver_cipher_update(&operation->operation,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_opaque_cipher_finish(
+ sli_se_opaque_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // For wrapped keys, set the key correctly
+ sli_se_opaque_key_context_header_t *key_context_header =
+ (sli_se_opaque_key_context_header_t *)operation->key;
+ if (key_context_header->builtin_key_id == 0) {
+ update_key_from_context(operation);
+ }
+
+ // Compute
+ return sli_se_driver_cipher_finish(&operation->operation,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_opaque_cipher_abort(
+ sli_se_opaque_cipher_operation_t *operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation != NULL) {
+ // Wipe context
+ memset(operation, 0, sizeof(sli_se_opaque_cipher_operation_t));
+ }
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE && SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c
new file mode 100644
index 000000000..37555326e
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_driver_mac.c
@@ -0,0 +1,426 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver Mac functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) && defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+#include "psa/crypto.h"
+
+#include "sli_se_driver_key_management.h"
+#include "sli_se_opaque_types.h"
+#include "sli_se_opaque_functions.h"
+#include "sli_se_manager_internal.h"
+#include "sli_psa_driver_common.h"
+
+#include
+
+//------------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_opaque_mac_compute(const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC)
+
+ if (key_buffer == NULL
+ || attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Ephemeral contexts
+ sl_se_key_descriptor_t key_desc = { 0 };
+ psa_status_t psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ return sli_se_driver_mac_compute(&key_desc,
+ alg,
+ input,
+ input_length,
+ mac,
+ mac_size,
+ mac_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC
+}
+
+//------------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_opaque_mac_sign_setup(
+ sli_se_opaque_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || attributes == NULL
+ || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t psa_status;
+
+ // start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ // Add support for one-shot HMAC through the multipart interface
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ // SE does not support multipart HMAC. Construct it from hashing instead.
+ // Check key type and output size
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_HMAC) {
+ // For HMAC, key type is strictly enforced
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ size_t output_size = 0;
+ sl_se_hash_type_t hash = sli_se_hash_type_from_psa_hmac_alg(alg,
+ &output_size);
+ if (hash == SL_SE_HASH_NONE) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (output_size > sizeof(operation->operation.ctx.hmac.hmac_result)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ operation->operation.alg = alg;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC) \
+ && (defined(SLI_PSA_DRIVER_FEATURE_CMAC) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC))
+ else
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ {
+ psa_status = sli_se_driver_mac_sign_setup(&(operation->operation),
+ attributes,
+ alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ psa_status = sli_se_key_desc_from_input(attributes,
+ key_buffer,
+ key_buffer_size,
+ &(operation->key_desc));
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ size_t padding = 0;
+ operation->key_len = psa_get_key_bits(attributes) / 8;
+
+ #if defined(SLI_SE_KEY_PADDING_REQUIRED)
+ padding = sli_se_get_padding(operation->key_len);
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ if ((operation->key_len < sizeof(uint32_t))
+ || ((operation->key_len + padding)
+ > (sizeof(operation->key) - SLI_SE_WRAPPED_KEY_OVERHEAD))) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC) \
+ && (defined(SLI_PSA_DRIVER_FEATURE_CMAC) \
+ || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC))
+ else
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ {
+ switch (operation->key_len) {
+ case 16: // Fallthrough
+ case 24: // Fallthrough
+ case 32:
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ if (operation->key_desc.storage.location.buffer.size
+ < (SLI_SE_WRAPPED_KEY_OVERHEAD + operation->key_len + padding)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memcpy(operation->key,
+ operation->key_desc.storage.location.buffer.pointer,
+ SLI_SE_WRAPPED_KEY_OVERHEAD + operation->key_len + padding);
+
+ // Point key_descriptor at internal copy of key
+ operation->key_desc.storage.location.buffer.pointer = operation->key;
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif
+}
+
+psa_status_t sli_se_opaque_mac_verify_setup(
+ sli_se_opaque_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ // Since the PSA Crypto core exposes the verify functionality of the drivers
+ // without actually implementing the fallback to 'sign' when the driver
+ // doesn't support verify, we need to do this ourselves for the time being.
+ return sli_se_opaque_mac_sign_setup(operation,
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg);
+}
+
+psa_status_t sli_se_opaque_mac_update(sli_se_opaque_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->operation.alg)) {
+ if ( operation->operation.ctx.hmac.hmac_len > 0 ) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ return sli_se_driver_mac_compute(
+ &(operation->key_desc),
+ operation->operation.alg,
+ input,
+ input_length,
+ operation->operation.ctx.hmac.hmac_result,
+ sizeof(operation->operation.ctx.hmac.hmac_result),
+ &operation->operation.ctx.hmac.hmac_len);
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ return sli_se_driver_mac_update(&(operation->operation),
+ &(operation->key_desc),
+ input,
+ input_length);
+ #else
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_opaque_mac_sign_finish(
+ sli_se_opaque_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || mac == NULL
+ || mac_size == 0
+ || mac_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->operation.alg)) {
+ if ( operation->operation.ctx.hmac.hmac_len == 0 ) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ if ( mac_size < operation->operation.ctx.hmac.hmac_len ) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ memcpy(mac,
+ operation->operation.ctx.hmac.hmac_result,
+ operation->operation.ctx.hmac.hmac_len);
+ *mac_length = operation->operation.ctx.hmac.hmac_len;
+
+ return PSA_SUCCESS;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ return sli_se_driver_mac_sign_finish(&(operation->operation),
+ &(operation->key_desc),
+ mac,
+ mac_size,
+ mac_length);
+ #else
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_opaque_mac_verify_finish(
+ sli_se_opaque_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ // Since the PSA Crypto core exposes the verify functionality of the drivers
+ // without actually implementing the fallback to 'sign' when the driver
+ // doesn't support verify, we need to do this ourselves for the time being.
+ uint8_t calculated_mac[PSA_MAC_MAX_SIZE] = { 0 };
+ size_t calculated_length = PSA_MAC_MAX_SIZE;
+
+ psa_status_t status = sli_se_opaque_mac_sign_finish(operation,
+ calculated_mac,
+ sizeof(calculated_mac),
+ &calculated_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (mac_length > sizeof(calculated_mac)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (sli_psa_safer_memcmp(mac, calculated_mac, mac_length) != 0) {
+ status = PSA_ERROR_INVALID_SIGNATURE;
+ } else {
+ status = PSA_SUCCESS;
+ }
+
+ sli_psa_zeroize(calculated_mac, sizeof(calculated_mac));
+
+ return status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)mac;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_opaque_mac_abort(sli_se_opaque_mac_operation_t *operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ // There's no state in hardware that we need to preserve, so zeroing out the
+ // context suffices.
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE && SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c
new file mode 100644
index 000000000..40773ddac
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_opaque_key_derivation.c
@@ -0,0 +1,63 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Opaque Driver Key Derivation functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE) && defined(SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS)
+
+#include "psa/crypto.h"
+
+#include "sli_se_driver_key_derivation.h"
+
+//------------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_se_opaque_key_agreement(psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ return sli_se_driver_key_agreement(alg,
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ peer_key,
+ peer_key_length,
+ output,
+ output_size,
+ output_length);
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE && SLI_PSA_DRIVER_FEATURE_OPAQUE_KEYS
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_aead.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_aead.c
new file mode 100644
index 000000000..d22e18707
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_aead.c
@@ -0,0 +1,279 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver AEAD functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_transparent_types.h"
+#include "sli_se_transparent_functions.h"
+
+#include
+
+//------------------------------------------------------------------------------
+// One-shot driver entry points
+
+psa_status_t sli_se_transparent_aead_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *plaintext,
+ size_t plaintext_length,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length)
+{
+ return sli_se_driver_aead_encrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ plaintext,
+ plaintext_length,
+ ciphertext,
+ ciphertext_size,
+ ciphertext_length);
+}
+
+psa_status_t sli_se_transparent_aead_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *nonce,
+ size_t nonce_length,
+ const uint8_t *additional_data,
+ size_t additional_data_length,
+ const uint8_t *ciphertext,
+ size_t ciphertext_length,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length)
+{
+ return sli_se_driver_aead_decrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ nonce,
+ nonce_length,
+ additional_data,
+ additional_data_length,
+ ciphertext,
+ ciphertext_length,
+ plaintext,
+ plaintext_size,
+ plaintext_length);
+}
+
+//------------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_transparent_aead_encrypt_setup(
+ sli_se_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ // Setup generic context struct
+ return sli_se_driver_aead_encrypt_decrypt_setup(&(operation->operation),
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ SL_SE_ENCRYPT,
+ operation->key,
+ sizeof(operation->key),
+ 0);
+}
+
+psa_status_t sli_se_transparent_aead_decrypt_setup(
+ sli_se_transparent_aead_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ // Setup generic context struct
+ return sli_se_driver_aead_encrypt_decrypt_setup(&(operation->operation),
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ SL_SE_DECRYPT,
+ operation->key,
+ sizeof(operation->key),
+ 0);
+}
+
+psa_status_t sli_se_transparent_aead_set_nonce(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *nonce,
+ size_t nonce_size)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_set_nonce(&(operation->operation),
+ nonce,
+ nonce_size);
+}
+
+psa_status_t sli_se_transparent_aead_set_lengths(
+ sli_se_transparent_aead_operation_t *operation,
+ size_t ad_length,
+ size_t plaintext_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_set_lengths(&(operation->operation),
+ ad_length,
+ plaintext_length);
+}
+
+psa_status_t sli_se_transparent_aead_update_ad(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ return sli_se_driver_aead_update_ad(&(operation->operation),
+ operation->key,
+ input,
+ input_length);
+}
+
+psa_status_t sli_se_transparent_aead_update(
+ sli_se_transparent_aead_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ return sli_se_driver_aead_update(&(operation->operation),
+ operation->key,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+}
+
+psa_status_t sli_se_transparent_aead_finish(
+ sli_se_transparent_aead_operation_t *operation,
+ uint8_t *ciphertext,
+ size_t ciphertext_size,
+ size_t *ciphertext_length,
+ uint8_t *tag,
+ size_t tag_size,
+ size_t *tag_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_finish(&(operation->operation),
+ operation->key,
+ ciphertext,
+ ciphertext_size,
+ ciphertext_length,
+ tag,
+ tag_size,
+ tag_length);
+}
+
+psa_status_t sli_se_transparent_aead_verify(
+ sli_se_transparent_aead_operation_t *operation,
+ uint8_t *plaintext,
+ size_t plaintext_size,
+ size_t *plaintext_length,
+ const uint8_t *tag,
+ size_t tag_length)
+{
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return sli_se_driver_aead_verify(&(operation->operation),
+ operation->key,
+ plaintext,
+ plaintext_size,
+ plaintext_length,
+ tag,
+ tag_length);
+}
+
+psa_status_t sli_se_transparent_aead_abort(
+ sli_se_transparent_aead_operation_t *operation)
+{
+ // No state is ever left in HW, so zeroing context should do the trick
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c
new file mode 100644
index 000000000..14ec4478d
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_cipher.c
@@ -0,0 +1,388 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Cipher functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_transparent_types.h"
+#include "sli_se_transparent_functions.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_cipher.h"
+
+#include "sli_se_driver_cipher.h"
+#include "sli_se_driver_key_management.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+static void update_key_from_context(
+ sli_se_transparent_cipher_operation_t* operation)
+{
+ // Point to transparent key buffer as storage location
+ sli_se_key_descriptor_set_plaintext(&operation->operation.key_desc,
+ operation->key,
+ sizeof(operation->key));
+}
+
+static psa_status_t initialize_key_in_context(
+ const psa_key_attributes_t *attributes,
+ sli_se_transparent_cipher_operation_t *operation,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size)
+{
+ const size_t key_size = PSA_BITS_TO_BYTES(psa_get_key_bits(attributes));
+ psa_status_t psa_status =
+ sli_se_key_desc_from_psa_attributes(attributes,
+ key_size,
+ &operation->operation.key_desc);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+ if (key_buffer_size < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ if (sizeof(operation->key) < key_size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->key, key_buffer, key_size);
+ operation->key_len = key_size;
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_transparent_cipher_encrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *iv,
+ size_t iv_length,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ return sli_se_driver_cipher_encrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ iv,
+ iv_length,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)iv;
+ (void)iv_length;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+psa_status_t sli_se_transparent_cipher_decrypt(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER)
+
+ return sli_se_driver_cipher_decrypt(attributes,
+ key_buffer,
+ key_buffer_size,
+ alg,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER
+}
+
+// -----------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_transparent_cipher_encrypt_setup(
+ sli_se_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ psa_status_t psa_status =
+ sli_se_driver_cipher_encrypt_setup(&operation->operation,
+ attributes,
+ alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Copy key into context
+ psa_status = initialize_key_in_context(attributes,
+ operation,
+ key_buffer,
+ key_buffer_size);
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_transparent_cipher_decrypt_setup(
+ sli_se_transparent_cipher_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL || attributes == NULL || key_buffer == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reset context
+ memset(operation, 0, sizeof(*operation));
+
+ psa_status_t psa_status =
+ sli_se_driver_cipher_decrypt_setup(&operation->operation,
+ attributes,
+ alg);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ // Copy key into context
+ psa_status = initialize_key_in_context(attributes,
+ operation,
+ key_buffer,
+ key_buffer_size);
+ return psa_status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_transparent_cipher_set_iv(
+ sli_se_transparent_cipher_operation_t *operation,
+ const uint8_t *iv,
+ size_t iv_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (operation->key_len == 0) {
+ // context hasn't been properly initialised
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ return sli_se_driver_cipher_set_iv(&operation->operation, iv, iv_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)iv;
+ (void)iv_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_transparent_cipher_update(
+ sli_se_transparent_cipher_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ // Argument check
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Set the key correctly
+ update_key_from_context(operation);
+
+ // Compute
+ return sli_se_driver_cipher_update(&operation->operation,
+ input,
+ input_length,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_transparent_cipher_finish(
+ sli_se_transparent_cipher_operation_t *operation,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ update_key_from_context(operation);
+ return sli_se_driver_cipher_finish(&operation->operation,
+ output,
+ output_size,
+ output_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+ (void)output;
+ (void)output_size;
+ (void)output_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+psa_status_t sli_se_transparent_cipher_abort(
+ sli_se_transparent_cipher_operation_t *operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART)
+
+ if (operation != NULL) {
+ // Wipe context
+ memset(operation, 0, sizeof(sli_se_transparent_cipher_operation_t));
+ }
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_CIPHER_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c
new file mode 100644
index 000000000..45dad46d9
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_hash.c
@@ -0,0 +1,409 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Hash functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_transparent_types.h"
+#include "sli_se_transparent_functions.h"
+
+#include "sl_se_manager.h"
+#include "sl_se_manager_hash.h"
+
+#include
+
+// -----------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_transparent_hash_compute(psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH)
+
+ if ((input == NULL && input_length > 0)
+ || (hash == NULL && hash_size > 0)
+ || hash_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ sl_se_hash_type_t hash_type;
+ sl_se_command_context_t ephemeral_se_ctx;
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA1)
+ case PSA_ALG_SHA_1:
+ hash_type = SL_SE_HASH_SHA1;
+ *hash_length = 20;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA224)
+ case PSA_ALG_SHA_224:
+ hash_type = SL_SE_HASH_SHA224;
+ *hash_length = 28;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA256)
+ case PSA_ALG_SHA_256:
+ hash_type = SL_SE_HASH_SHA256;
+ *hash_length = 32;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA384)
+ case PSA_ALG_SHA_384:
+ hash_type = SL_SE_HASH_SHA384;
+ *hash_length = 48;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA512)
+ case PSA_ALG_SHA_512:
+ hash_type = SL_SE_HASH_SHA512;
+ *hash_length = 64;
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (hash_size < *hash_length) {
+ *hash_length = 0;
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ sl_status_t status = sl_se_init_command_context(&ephemeral_se_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ status = sl_se_hash(&ephemeral_se_ctx,
+ hash_type,
+ input,
+ input_length,
+ hash,
+ hash_size);
+
+ if (status == SL_STATUS_OK) {
+ return PSA_SUCCESS;
+ } else {
+ *hash_length = 0;
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH
+
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)hash;
+ (void)hash_size;
+ (void)hash_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH
+}
+
+// -----------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_transparent_hash_setup(
+ sli_se_transparent_hash_operation_t *operation,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART)
+
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // reset context
+ memset(&operation->streaming_contexts, 0, sizeof(operation->streaming_contexts));
+
+ // create ephemeral contexts
+ sl_se_command_context_t ephemeral_se_ctx;
+ sl_status_t status = SL_STATUS_INVALID_PARAMETER;
+
+ switch (alg) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA1)
+ case PSA_ALG_SHA_1:
+ operation->hash_type = SL_SE_HASH_SHA1;
+ status = sl_se_hash_sha1_multipart_starts(&(operation->streaming_contexts.sha1_context),
+ &ephemeral_se_ctx);
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA224)
+ case PSA_ALG_SHA_224:
+ operation->hash_type = SL_SE_HASH_SHA224;
+ status = sl_se_hash_sha224_multipart_starts(&(operation->streaming_contexts.sha224_context),
+ &ephemeral_se_ctx);
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA256)
+ case PSA_ALG_SHA_256:
+ operation->hash_type = SL_SE_HASH_SHA256;
+ status = sl_se_hash_sha256_multipart_starts(&(operation->streaming_contexts.sha256_context),
+ &ephemeral_se_ctx);
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA384)
+ case PSA_ALG_SHA_384:
+ operation->hash_type = SL_SE_HASH_SHA384;
+ status = sl_se_hash_sha384_multipart_starts(&(operation->streaming_contexts.sha384_context),
+ &ephemeral_se_ctx);
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA512)
+ case PSA_ALG_SHA_512:
+ operation->hash_type = SL_SE_HASH_SHA512;
+ status = sl_se_hash_sha512_multipart_starts(&(operation->streaming_contexts.sha512_context),
+ &ephemeral_se_ctx);
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+
+ if (status == SL_STATUS_OK) {
+ return PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+
+ (void) operation;
+ (void) alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+}
+
+psa_status_t sli_se_transparent_hash_update(
+ sli_se_transparent_hash_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART)
+
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // create ephemeral contexts
+ sl_se_command_context_t ephemeral_se_ctx;
+ sl_status_t status = sl_se_init_command_context(&ephemeral_se_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ status = sl_se_hash_multipart_update((void*)&(operation->streaming_contexts),
+ &ephemeral_se_ctx,
+ input,
+ input_length);
+
+ if (status == SL_STATUS_OK) {
+ return PSA_SUCCESS;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+
+ (void) operation;
+ (void) input;
+ (void) input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+}
+
+psa_status_t sli_se_transparent_hash_finish(
+ sli_se_transparent_hash_operation_t *operation,
+ uint8_t *hash,
+ size_t hash_size,
+ size_t *hash_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART)
+
+ if (operation == NULL
+ || (hash == NULL && hash_size > 0)
+ || hash_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // create ephemeral contexts
+ sl_se_command_context_t ephemeral_se_ctx;
+ sl_status_t status = sl_se_init_command_context(&ephemeral_se_ctx);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ status = sl_se_hash_multipart_finish((void*)&(operation->streaming_contexts),
+ &ephemeral_se_ctx,
+ hash,
+ hash_size);
+
+ // reset context
+ memset(&operation->streaming_contexts,
+ 0,
+ sizeof(operation->streaming_contexts));
+
+ if (status == SL_STATUS_OK) {
+ switch (operation->hash_type) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA1)
+ case SL_SE_HASH_SHA1:
+ *hash_length = 20;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA224)
+ case SL_SE_HASH_SHA224:
+ *hash_length = 28;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA256)
+ case SL_SE_HASH_SHA256:
+ *hash_length = 32;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA384)
+ case SL_SE_HASH_SHA384:
+ *hash_length = 48;
+ break;
+ #endif
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_SHA512)
+ case SL_SE_HASH_SHA512:
+ *hash_length = 64;
+ break;
+ #endif
+
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+ return PSA_SUCCESS;
+ } else if ( status == SL_STATUS_INVALID_PARAMETER) {
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ } else {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+
+ (void) operation;
+ (void) hash;
+ (void) hash_size;
+ (void) hash_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+}
+
+psa_status_t sli_se_transparent_hash_abort(
+ sli_se_transparent_hash_operation_t *operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART)
+
+ if (operation != NULL) {
+ // Accelerator does not keep state, so just zero out the context and we're good
+ memset(operation, 0, sizeof(sli_se_transparent_hash_operation_t));
+ }
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+
+ (void) operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+}
+
+psa_status_t sli_se_transparent_hash_clone(
+ const sli_se_transparent_hash_operation_t *source_operation,
+ sli_se_transparent_hash_operation_t *target_operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART)
+
+ if (source_operation == NULL
+ || target_operation == NULL) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Source operation must be active (setup has been called)
+ if (source_operation->hash_type == 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // Target operation must be inactive (setup has not been called)
+ if (target_operation->hash_type != 0) {
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ // The operation context does not contain any pointers, and the target
+ // operation have already have been initialized, so we can do a direct copy.
+ *target_operation = *source_operation;
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+
+ (void) source_operation;
+ (void) target_operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_HASH_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c
new file mode 100644
index 000000000..1beee7b2e
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_driver_mac.c
@@ -0,0 +1,598 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Mac functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_transparent_types.h"
+#include "sli_se_transparent_functions.h"
+#include "sli_psa_driver_common.h"
+
+#include
+
+//------------------------------------------------------------------------------
+// Static asserts
+
+// Make sure that the two locations of 'alg' are in the same place, since we
+// access them interchangeably.
+#if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+_Static_assert(offsetof(sli_se_transparent_mac_operation_t, hmac.alg)
+ == offsetof(sli_se_transparent_mac_operation_t,
+ cipher_mac.operation.alg),
+ "hmac.alg and cipher_mac.oepration.alg are not aliases");
+#endif // SLI_PSA_DRIVER_FEATURE_MAC
+
+//------------------------------------------------------------------------------
+// Static functions
+
+#if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+
+static psa_status_t sli_se_transparent_driver_symmetric_key_from_context(
+ sl_se_key_descriptor_t* key_desc,
+ sli_se_transparent_mac_operation_t* operation)
+{
+ // Point to transparent key buffer as storage location
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT;
+ key_desc->storage.location.buffer.pointer = operation->cipher_mac.key;
+ key_desc->storage.location.buffer.size = sizeof(operation->cipher_mac.key);
+ key_desc->size = operation->cipher_mac.key_len;
+
+ switch (PSA_ALG_FULL_LENGTH_MAC(operation->cipher_mac.operation.alg)) {
+ case PSA_ALG_CBC_MAC:
+ case PSA_ALG_CMAC:
+ if (key_desc->size == 16) {
+ key_desc->type = SL_SE_KEY_TYPE_AES_128;
+ } else if (key_desc->size == 24) {
+ key_desc->type = SL_SE_KEY_TYPE_AES_192;
+ } else if (key_desc->size == 32) {
+ key_desc->type = SL_SE_KEY_TYPE_AES_256;
+ } else {
+ return PSA_ERROR_BAD_STATE;
+ }
+ break;
+ default:
+ return PSA_ERROR_BAD_STATE;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+#if defined(SLI_PSA_DRIVER_FEATURE_MAC)
+
+static psa_status_t sli_se_transparent_driver_symmetric_key_from_psa(
+ sl_se_key_descriptor_t* key_desc,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size)
+{
+ // Point to transparent key buffer as storage location
+ key_desc->storage.method = SL_SE_KEY_STORAGE_EXTERNAL_PLAINTEXT;
+ key_desc->storage.location.buffer.pointer = (uint8_t *)key_buffer;
+ key_desc->storage.location.buffer.size = key_buffer_size;
+
+ // Verify and set key attributes
+ psa_key_type_t keytype = psa_get_key_type(attributes);
+
+ switch (keytype) {
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ case PSA_KEY_TYPE_AES: {
+ switch (psa_get_key_bits(attributes)) {
+ case 128:
+ key_desc->size = 16;
+ key_desc->type = SL_SE_KEY_TYPE_AES_128;
+ break;
+ case 192:
+ key_desc->size = 24;
+ key_desc->type = SL_SE_KEY_TYPE_AES_192;
+ break;
+ case 256:
+ key_desc->size = 32;
+ key_desc->type = SL_SE_KEY_TYPE_AES_256;
+ break;
+ default:
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ case PSA_KEY_TYPE_HMAC: {
+ key_desc->size = psa_get_key_bits(attributes) / 8;
+ key_desc->type = SL_SE_KEY_TYPE_SYMMETRIC;
+ break;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ break;
+ }
+
+ if (key_buffer_size < key_desc->size) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_PSA_DRIVER_FEATURE_MAC
+
+//------------------------------------------------------------------------------
+// Single-shot driver entry points
+
+psa_status_t sli_se_transparent_mac_compute(
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg,
+ const uint8_t *input,
+ size_t input_length,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC)
+
+ if (key_buffer == NULL
+ || attributes == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Ephemeral contexts
+ sl_se_key_descriptor_t key_desc = { 0 };
+ psa_status_t psa_status
+ = sli_se_transparent_driver_symmetric_key_from_psa(&key_desc,
+ attributes,
+ key_buffer,
+ key_buffer_size);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ return sli_se_driver_mac_compute(&key_desc,
+ alg,
+ input,
+ input_length,
+ mac,
+ mac_size,
+ mac_length);
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC
+
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+ (void)input;
+ (void)input_length;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC
+}
+
+//------------------------------------------------------------------------------
+// Multi-part driver entry points
+
+psa_status_t sli_se_transparent_mac_sign_setup(
+ sli_se_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || attributes == NULL
+ || (key_buffer == NULL && key_buffer_size > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_status_t status;
+
+ // start by resetting context
+ memset(operation, 0, sizeof(*operation));
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(alg)) {
+ // SE does not support multipart HMAC. Construct it from hashing instead.
+ // Check key type and output size
+ if (psa_get_key_type(attributes) != PSA_KEY_TYPE_HMAC) {
+ // For HMAC, key type is strictly enforced
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(alg);
+ size_t digest_len = PSA_HASH_LENGTH(hash_alg);
+
+ if (PSA_MAC_TRUNCATED_LENGTH(alg) > digest_len) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Setup the hash accumulator first, such that we can return early for non-
+ // supported hash functions and avoid potentially overflowing buffer lengths.
+ status = sli_se_transparent_hash_setup(&operation->hmac.hash_ctx,
+ hash_alg);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ size_t keylen = psa_get_key_bits(attributes) / 8;
+ size_t blocklen
+ = (hash_alg == PSA_ALG_SHA_384 || hash_alg == PSA_ALG_SHA_512) ? 128 : 64;
+
+ if (key_buffer_size < keylen) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ // Reduce the key if larger than a block
+ if (keylen > blocklen) {
+ status = sli_se_transparent_hash_compute(
+ hash_alg,
+ key_buffer,
+ keylen,
+ operation->hmac.opad,
+ sizeof(operation->hmac.opad),
+ &keylen);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+ } else if (keylen > 0) {
+ memcpy(operation->hmac.opad, key_buffer, keylen);
+ }
+
+ // Calculate inner padding in opad buffer and start a multipart hash with it
+ for (size_t i = 0; i < keylen; i++) {
+ operation->hmac.opad[i] ^= 0x36;
+ }
+ memset(&operation->hmac.opad[keylen], 0x36, blocklen - keylen);
+
+ status = sli_se_transparent_hash_update(
+ &operation->hmac.hash_ctx,
+ operation->hmac.opad, blocklen);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Calculate outer padding and store it for finalisation
+ for (size_t i = 0; i < blocklen; i++) {
+ operation->hmac.opad[i] ^= 0x36 ^ 0x5C;
+ }
+
+ operation->hmac.alg = alg;
+ return PSA_SUCCESS;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ status = sli_se_driver_mac_sign_setup(&(operation->cipher_mac.operation),
+ attributes,
+ alg);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ operation->cipher_mac.key_len = psa_get_key_bits(attributes) / 8;
+ switch (operation->cipher_mac.key_len) {
+ case 16:
+ if (key_buffer_size < 16) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->cipher_mac.key, key_buffer, 16);
+ break;
+ case 24:
+ if (key_buffer_size < 24) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->cipher_mac.key, key_buffer, 24);
+ break;
+ case 32:
+ if (key_buffer_size < 32) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+ memcpy(operation->cipher_mac.key, key_buffer, 32);
+ break;
+ default:
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ return PSA_SUCCESS;
+ #else // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)attributes;
+ (void)key_buffer;
+ (void)key_buffer_size;
+ (void)alg;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_transparent_mac_verify_setup(
+ sli_se_transparent_mac_operation_t *operation,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ psa_algorithm_t alg)
+{
+ // Since the PSA Crypto core exposes the verify functionality of the drivers
+ // without actually implementing the fallback to 'sign' when the driver
+ // doesn't support verify, we need to do this ourselves for the time being.
+ return sli_se_transparent_mac_sign_setup(operation,
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ alg);
+}
+
+psa_status_t sli_se_transparent_mac_update(
+ sli_se_transparent_mac_operation_t *operation,
+ const uint8_t *input,
+ size_t input_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || (input == NULL && input_length > 0)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->hmac.alg)) {
+ return sli_se_transparent_hash_update(
+ &operation->hmac.hash_ctx,
+ input,
+ input_length);
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ // Ephemeral contexts
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ psa_status_t psa_status
+ = sli_se_transparent_driver_symmetric_key_from_context(&key_desc,
+ operation);
+ if (psa_status != PSA_SUCCESS) {
+ return psa_status;
+ }
+
+ return sli_se_driver_mac_update(&(operation->cipher_mac.operation),
+ &key_desc,
+ input,
+ input_length);
+ #else // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)input;
+ (void)input_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_transparent_mac_sign_finish(
+ sli_se_transparent_mac_operation_t *operation,
+ uint8_t *mac,
+ size_t mac_size,
+ size_t *mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ if (operation == NULL
+ || mac == NULL
+ || mac_size == 0
+ || mac_length == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_HMAC)
+ if (PSA_ALG_IS_HMAC(operation->hmac.alg)) {
+ uint8_t buffer[sizeof(operation->hmac.opad)
+ + (sizeof(operation->hmac.opad) / 2)];
+ size_t olen = 0;
+ psa_algorithm_t hash_alg = PSA_ALG_HMAC_GET_HASH(operation->hmac.alg);
+
+ #if !defined(SLI_PSA_DRIVER_FEATURE_HASH_STATE_64)
+ if (hash_alg == PSA_ALG_SHA_384 || hash_alg == PSA_ALG_SHA_512) {
+ // Could only reach here if the programmer has made some errors. Take the
+ // safe approach of checking just in case, in order to avoid certain
+ // buffer overflows.
+ return PSA_ERROR_BAD_STATE;
+ }
+ size_t blocklen = 64;
+ #else
+ size_t blocklen
+ = (hash_alg == PSA_ALG_SHA_384 || hash_alg == PSA_ALG_SHA_512) ? 128 : 64;
+ #endif
+
+ // Construct outer hash input from opad and hash result
+ memcpy(buffer, operation->hmac.opad, blocklen);
+ memset(operation->hmac.opad, 0, sizeof(operation->hmac.opad));
+
+ psa_status_t status = sli_se_transparent_hash_finish(
+ &operation->hmac.hash_ctx,
+ &buffer[blocklen],
+ sizeof(buffer) - blocklen,
+ &olen);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Calculate HMAC
+ status = sli_se_transparent_hash_compute(
+ hash_alg,
+ buffer,
+ blocklen + olen,
+ buffer,
+ sizeof(buffer),
+ &olen);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ // Copy out a potentially truncated HMAC
+ size_t requested_length = PSA_MAC_TRUNCATED_LENGTH(operation->hmac.alg);
+ if (requested_length == 0) {
+ requested_length = olen;
+ }
+
+ if (requested_length > mac_size) {
+ memset(buffer, 0, sizeof(buffer));
+ return PSA_ERROR_BUFFER_TOO_SMALL;
+ }
+
+ memcpy(mac, buffer, requested_length);
+ *mac_length = requested_length;
+ memset(buffer, 0, sizeof(buffer));
+ return PSA_SUCCESS;
+ }
+ #endif // SLI_PSA_DRIVER_FEATURE_HMAC
+
+ #if defined(SLI_PSA_DRIVER_FEATURE_CMAC) || defined(SLI_PSA_DRIVER_FEATURE_CBC_MAC)
+ // Ephemeral contexts
+ sl_se_key_descriptor_t key_desc = { 0 };
+
+ psa_status_t status = sli_se_transparent_driver_symmetric_key_from_context(
+ &key_desc,
+ operation);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ return sli_se_driver_mac_sign_finish(&(operation->cipher_mac.operation),
+ &key_desc,
+ mac,
+ mac_size,
+ mac_length);
+ #else // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_CMAC || SLI_PSA_DRIVER_FEATURE_CBC_MAC
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)mac;
+ (void)mac_size;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_transparent_mac_verify_finish(
+ sli_se_transparent_mac_operation_t *operation,
+ const uint8_t *mac,
+ size_t mac_length)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ // Since the PSA Crypto core exposes the verify functionality of the drivers
+ // without actually implementing the fallback to 'sign' when the driver
+ // doesn't support verify, we need to do this ourselves for the time being.
+ uint8_t calculated_mac[PSA_MAC_MAX_SIZE] = { 0 };
+ size_t calculated_length = PSA_MAC_MAX_SIZE;
+
+ psa_status_t status = sli_se_transparent_mac_sign_finish(
+ operation,
+ calculated_mac, sizeof(calculated_mac), &calculated_length);
+ if (status != PSA_SUCCESS) {
+ return status;
+ }
+
+ if (mac_length > sizeof(calculated_mac)) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ if (sli_psa_safer_memcmp(mac, calculated_mac, mac_length) != 0) {
+ status = PSA_ERROR_INVALID_SIGNATURE;
+ } else {
+ status = PSA_SUCCESS;
+ }
+
+ memset(calculated_mac, 0, sizeof(calculated_mac));
+ return status;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+ (void)mac;
+ (void)mac_length;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+psa_status_t sli_se_transparent_mac_abort(
+ sli_se_transparent_mac_operation_t *operation)
+{
+ #if defined(SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART)
+
+ // There's no state in hardware that we need to preserve, so zeroing out the
+ // context suffices.
+ if (operation == NULL) {
+ return PSA_ERROR_INVALID_ARGUMENT;
+ }
+
+ memset(operation, 0, sizeof(*operation));
+
+ return PSA_SUCCESS;
+
+ #else // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+
+ (void)operation;
+
+ return PSA_ERROR_NOT_SUPPORTED;
+ #endif // SLI_PSA_DRIVER_FEATURE_MAC_MULTIPART
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c
new file mode 100644
index 000000000..8c04078a5
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_transparent_key_derivation.c
@@ -0,0 +1,64 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Transparent Driver Key derivation functions.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_driver_key_derivation.h"
+
+//------------------------------------------------------------------------------
+// Driver entry points
+
+psa_status_t sli_se_transparent_key_agreement(
+ psa_algorithm_t alg,
+ const psa_key_attributes_t *attributes,
+ const uint8_t *key_buffer,
+ size_t key_buffer_size,
+ const uint8_t *peer_key,
+ size_t peer_key_length,
+ uint8_t *output,
+ size_t output_size,
+ size_t *output_length)
+{
+ return sli_se_driver_key_agreement(alg,
+ attributes,
+ key_buffer,
+ key_buffer_size,
+ peer_key,
+ peer_key_length,
+ output,
+ output_size,
+ output_length);
+}
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_version_dependencies.c b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_version_dependencies.c
new file mode 100644
index 000000000..4713902e3
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sl_psa_driver/src/sli_se_version_dependencies.c
@@ -0,0 +1,72 @@
+/***************************************************************************//**
+ * @file
+ * @brief Silicon Labs PSA Crypto Driver SE Version Dependencies.
+ *******************************************************************************
+ * # License
+ * Copyright 2020 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#include "sli_psa_driver_features.h"
+
+#if defined(SLI_MBEDTLS_DEVICE_HSE)
+
+#include "psa/crypto.h"
+
+#include "sli_se_version_dependencies.h"
+#include "sli_se_driver_key_management.h"
+
+#include "sl_se_manager_util.h"
+
+// -----------------------------------------------------------------------------
+// Global functions
+
+#if defined(SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED)
+
+// Check for an errata causing the SE to emit a faulty EdDSA public key for
+// operations where only a private key is provided. Assumes that an already
+// initalized SE command context is passed as input.
+psa_status_t sli_se_check_eddsa_errata(const psa_key_attributes_t* attributes,
+ sl_se_command_context_t* cmd_ctx)
+{
+ if (PSA_KEY_TYPE_ECC_GET_FAMILY(psa_get_key_type(attributes))
+ == PSA_ECC_FAMILY_TWISTED_EDWARDS) {
+ uint32_t se_version = 0;
+ sl_status_t status = sl_se_get_se_version(cmd_ctx, &se_version);
+ if (status != SL_STATUS_OK) {
+ return PSA_ERROR_HARDWARE_FAILURE;
+ }
+ se_version = SLI_VERSION_REMOVE_DIE_ID(se_version);
+
+ if (SLI_SE_VERSION_ED25519_BROKEN(se_version)) {
+ return PSA_ERROR_NOT_SUPPORTED;
+ }
+ }
+
+ return PSA_SUCCESS;
+}
+
+#endif // SLI_SE_VERSION_ED25519_ERRATA_CHECK_REQUIRED
+
+#endif // SLI_MBEDTLS_DEVICE_HSE
diff --git a/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto.h b/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto.h
new file mode 100644
index 000000000..f948449fc
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto.h
@@ -0,0 +1,206 @@
+/***************************************************************************//**
+ * @file
+ * @brief Provides hardware accelerated cryptographic primitives.
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_CRYPTO_H
+#define SLI_CRYPTO_H
+
+#include "em_device.h"
+#if defined(_SILICON_LABS_32B_SERIES_2)
+ #include "sli_crypto_s2.h"
+#elif defined(_SILICON_LABS_32B_SERIES_3)
+ #include "sli_crypto_s3.h"
+#elif
+ #error Unsupported device.
+#endif
+#include "sl_status.h"
+#include
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/***************************************************************************//**
+ * @brief CCM buffer authenticated decryption optimized for BLE
+ *
+ * @param key_descriptor AES key descriptor
+ * @param data Input/output buffer of payload data of BLE packet
+ * @param length length of input data
+ * @param iv nonce (initialization vector)
+ * must be 13 bytes
+ * @param header header of BLE packet (1 byte)
+ * @param tag authentication tag of BLE packet (4 bytes)
+ *
+ * @return SL_STATUS_OK if successful and authenticated,
+ * SL_STATUS_INVALID_SIGNATURE if tag does not match payload,
+ * relevant status code on other error
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_auth_decrypt_ble(sli_crypto_descriptor_t *key_descriptor,
+ unsigned char *data,
+ size_t length,
+ const unsigned char *iv,
+ unsigned char header,
+ unsigned char *tag);
+
+/***************************************************************************//**
+ * @brief CCM buffer encryption optimized for BLE
+ *
+ * @param key_descriptor AES key descriptor
+ * @param data Input/output buffer of payload data of BLE packet
+ * @param length length of input data
+ * @param iv nonce (initialization vector)
+ * must be 13 bytes
+ * @param header header of BLE packet (1 byte)
+ * @param tag buffer where the BLE packet tag (4 bytes) will be written
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_encrypt_and_tag_ble(sli_crypto_descriptor_t *key_descriptor,
+ unsigned char *data,
+ size_t length,
+ const unsigned char *iv,
+ unsigned char header,
+ unsigned char *tag);
+
+/***************************************************************************//**
+ * @brief CCM buffer authenticated decryption optimized for Zigbee
+ *
+ * @param key_descriptor AES key descriptor
+ * @param encrypt Encrypt operation
+ * @param data_in Input buffer of payload data (decrypt-in-place)
+ * @param data_out output buffer of payload data (decrypt-in-place)
+ * @param length length of input data
+ * @param iv nonce (initialization vector)
+ * must be 13 bytes
+ * @param aad Input buffer of Additional Authenticated Data
+ * @param aad_len Length of buffer aad
+ * @param tag authentication tag
+ * @param tag_len Length of authentication tag
+ *
+ * @return SL_STATUS_OK if successful and authenticated,
+ * SL_STATUS_INVALID_SIGNATURE if tag does not match payload,
+ * relevant status code on other error
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_zigbee(sli_crypto_descriptor_t *key_descriptor,
+ bool encrypt,
+ const unsigned char *data_in,
+ unsigned char *data_out,
+ size_t length,
+ const unsigned char *iv,
+ const unsigned char *aad,
+ size_t aad_len,
+ unsigned char *tag,
+ size_t tag_len);
+
+/***************************************************************************//**
+ * @brief Process a table of BLE RPA device keys and look for a
+ * match against the supplied hash
+ *
+ * @param key_descriptor SLI crypto descriptor. If plaintext keys are used the
+ * descriptor provides a pointer to an array of AES-128 keys.
+ * If KSU stored keys are used, the descriptor provides the
+ * starting key slot ID of the KSU RAM where the IRK list is
+ * located
+ * @param irk_len Number of IRK to be resolved for the RPA operation
+ * @param keymask Bitmask indicating with key indices in key table are valid
+ * @param prand 24-bit BLE nonce to encrypt with each key and match against
+ * hash
+ * @param hash BLE RPA hash to match against (last 24 bits of AES result)
+ * @param irk_index 0-based index of matching key if a match is found,
+ * -1 for no match or error
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_crypto_process_rpa(sli_crypto_descriptor_t *key_descriptor,
+ size_t irk_len,
+ uint64_t keymask,
+ uint32_t prand,
+ uint32_t hash,
+ int *irk_index);
+
+/***************************************************************************//**
+ * @brief AES-CTR block encryption/decryption optimized for radio
+ *
+ * @param key_descriptor AES key descriptor
+ * @param keybits must be 128 or 256
+ * @param input 16-byte input block
+ * @param iv_in 16-byte counter/IV starting value
+ * @param iv_out 16-byte counter/IV output after block round
+ * @param output 16-byte output block
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_crypto_aes_ctr_radio(sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char input[SLI_CRYPTO_AES_BLOCK_SIZE],
+ const unsigned char iv_in[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char iv_out[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE]);
+
+/***************************************************************************//**
+ * @brief AES-ECB block encryption/decryption optimized for radio
+ *
+ * @param encrypt true for encryption, false for decryption
+ * @param key_descriptor AES key descriptor
+ * @param keybits must be 128 or 256
+ * @param input 16-byte input block
+ * @param output 16-byte output block
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_crypto_aes_ecb_radio(bool encrypt,
+ sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char input[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE]);
+
+/***************************************************************************//**
+ * @brief AES-CMAC calculation optimized for radio
+ *
+ * @param key_descriptor AES key descriptor
+ * @param keybits Must be 128 or 256
+ * @param input Input buffer containing the message to be signed
+ * @param length Amount of bytes in the input buffer
+ * @param output 16-byte output block for calculated CMAC
+ *
+ * @return SL_STATUS_OK if successful, relevant status code on error
+ ******************************************************************************/
+sl_status_t sli_crypto_aes_cmac_radio(sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char *input,
+ unsigned int length,
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE]);
+// #endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_CRYPTO_H
diff --git a/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto_s2.h b/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto_s2.h
new file mode 100644
index 000000000..79a2431e1
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_crypto/inc/sli_crypto_s2.h
@@ -0,0 +1,83 @@
+/***************************************************************************//**
+ * @file
+ * @brief Hardware accelerated cryptographic defintions specific to series-2
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#ifndef SLI_CRYPTO_S2_H
+#define SLI_CRYPTO_S2_H
+
+#include
+#include
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/// Standard buffer size in bytes
+#define SLI_CRYPTO_AES_BLOCK_SIZE 16
+/// Location value for keys stored in plaintext
+#define SLI_CRYPTO_KEY_LOCATION_PLAINTEXT ((sli_crypto_key_location_t)0x00000000UL)
+/// The SLI Crypto API supports only the RADIOAES crypto engine on Series-2
+#define SLI_CRYPTO_ENGINE_RADIOAES ((sli_crypto_engine_t)0x00000001UL)
+#define SLI_CRYPTO_ENGINE_DEFAULT (SLI_CRYPTO_ENGINE_RADIOAES)
+
+/// Used to choose a crypto engine.
+/// @ref SLI_CRYPTO_LPWAES.
+typedef uint32_t sli_crypto_engine_t;
+
+/// Key storage location. Can either
+/// @ref SLI_CRYPTO_KEY_LOCATION_PLAINTEXT
+typedef uint32_t sli_crypto_key_location_t;
+
+/// Describes where the plaintext key is stored
+typedef struct {
+ uint8_t* pointer; ///< Pointer to a key buffer.
+ uint32_t size; ///< Size of buffer.
+} sli_crypto_key_buffer_t;
+
+/// Describes the plaintext key
+typedef struct {
+ sli_crypto_key_buffer_t buffer; ///< Key buffer.
+ uint32_t key_size; ///< Key size.
+} sli_crypto_plaintext_key_t;
+
+typedef struct {
+ /// Key storage location.
+ sli_crypto_key_location_t location;
+ /// Crypto engine.
+ sli_crypto_engine_t engine;
+ /// Describes key storage location.
+ union {
+ sli_crypto_plaintext_key_t plaintext_key;
+ } key;
+} sli_crypto_descriptor_t;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_CRYPTO_S2_H
diff --git a/simplicity_sdk/platform/security/sl_component/sli_crypto/src/sl_crypto_s2.c b/simplicity_sdk/platform/security/sl_component/sli_crypto/src/sl_crypto_s2.c
new file mode 100644
index 000000000..aeef1df65
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_crypto/src/sl_crypto_s2.c
@@ -0,0 +1,220 @@
+/***************************************************************************//**
+ * @file
+ * @brief Provides hardware accelerated cryptographic primitives for series-2.
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+#include "em_device.h"
+#include "sli_crypto.h"
+#include "sl_assert.h"
+#include "sli_protocol_crypto.h"
+
+/***************************************************************************//**
+ * @brief CCM buffer authenticated decryption optimized for BLE
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_auth_decrypt_ble(sli_crypto_descriptor_t *key_descriptor,
+ unsigned char *data,
+ size_t length,
+ const unsigned char *iv,
+ unsigned char header,
+ unsigned char *tag)
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(data != NULL);
+ EFM_ASSERT(iv != NULL);
+ EFM_ASSERT(tag != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_ccm_auth_decrypt_ble(data,
+ length,
+ (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ iv,
+ header,
+ tag);
+}
+
+/***************************************************************************//**
+ * @brief CCM buffer encryption optimized for BLE
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_encrypt_and_tag_ble(sli_crypto_descriptor_t *key_descriptor,
+ unsigned char *data,
+ size_t length,
+ const unsigned char *iv,
+ unsigned char header,
+ unsigned char *tag)
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(data != NULL);
+ EFM_ASSERT(iv != NULL);
+ EFM_ASSERT(tag != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_ccm_encrypt_and_tag_ble(data,
+ length,
+ (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ iv,
+ header,
+ tag);
+}
+
+/***************************************************************************//**
+ * @brief CCM buffer authenticated decryption optimized for Zigbee
+ ******************************************************************************/
+sl_status_t sli_crypto_ccm_zigbee(sli_crypto_descriptor_t *key_descriptor,
+ bool encrypt,
+ const unsigned char *data_in,
+ unsigned char *data_out,
+ size_t length,
+ const unsigned char *iv,
+ const unsigned char *aad,
+ size_t aad_len,
+ unsigned char *tag,
+ size_t tag_len)
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(data_in != NULL);
+ EFM_ASSERT(iv != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_ccm_zigbee(encrypt,
+ data_in,
+ data_out,
+ length,
+ (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ iv,
+ aad,
+ aad_len,
+ tag,
+ tag_len);
+}
+
+/***************************************************************************//**
+ * @brief Process a table of BLE RPA device keys and look for a
+ * match against the supplied hash
+ ******************************************************************************/
+sl_status_t sli_crypto_process_rpa(sli_crypto_descriptor_t *key_descriptor,
+ size_t irk_len,
+ uint64_t keymask,
+ uint32_t prand,
+ uint32_t hash,
+ int *irk_index)
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(irk_index != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+ (void)irk_len;
+ const unsigned char *keytable
+ = (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer;
+ *irk_index = sli_process_ble_rpa(keytable,
+ (uint32_t)keymask,
+ prand,
+ hash);
+ if (*irk_index == -1) {
+ return SL_STATUS_FAIL;
+ }
+
+ return SL_STATUS_OK;
+}
+
+// /***************************************************************************//**
+// * @brief AES-CTR block encryption/decryption optimized for radio
+// *******************************************************************************/
+sl_status_t sli_crypto_aes_ctr_radio(sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char input[SLI_CRYPTO_AES_BLOCK_SIZE],
+ const unsigned char iv_in[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char iv_out[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE])
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(keybits == 128 || keybits == 192 || keybits == 256);
+ EFM_ASSERT(input != NULL);
+ EFM_ASSERT(iv_in != NULL);
+ EFM_ASSERT(output != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.key_size == keybits / 8);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_aes_crypt_ctr_radio( (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ keybits,
+ input,
+ iv_in,
+ iv_out,
+ output);
+}
+
+/***************************************************************************//**
+ * @brief AES-ECB block encryption/decryption optimized for radio
+ ********************************************************************************/
+sl_status_t sli_crypto_aes_ecb_radio(bool encrypt,
+ sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char input[SLI_CRYPTO_AES_BLOCK_SIZE],
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE])
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(keybits == 128 || keybits == 192 || keybits == 256);
+ EFM_ASSERT(input != NULL);
+ EFM_ASSERT(output != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.key_size == keybits / 8);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_aes_crypt_ecb_radio(encrypt,
+ (const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ keybits,
+ input,
+ output);
+}
+
+/***************************************************************************//**
+ * @brief AES-CMAC calculation optimized for radio
+ ********************************************************************************/
+sl_status_t sli_crypto_aes_cmac_radio(sli_crypto_descriptor_t *key_descriptor,
+ unsigned int keybits,
+ const unsigned char *input,
+ unsigned int length,
+ volatile unsigned char output[SLI_CRYPTO_AES_BLOCK_SIZE])
+{
+ EFM_ASSERT(key_descriptor != NULL);
+ EFM_ASSERT(keybits == 128 || keybits == 192 || keybits == 256);
+ EFM_ASSERT(input != NULL);
+ EFM_ASSERT(length == SLI_CRYPTO_AES_BLOCK_SIZE);
+ EFM_ASSERT(output != NULL);
+ EFM_ASSERT(key_descriptor->location == SLI_CRYPTO_KEY_LOCATION_PLAINTEXT);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.key_size == keybits / 8);
+ EFM_ASSERT(key_descriptor->key.plaintext_key.buffer.pointer != NULL);
+
+ return sli_aes_cmac_radio((const unsigned char *)key_descriptor->key.plaintext_key.buffer.pointer,
+ keybits,
+ input,
+ length,
+ output);
+}
diff --git a/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal.h b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal.h
new file mode 100644
index 000000000..1f2faf478
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal.h
@@ -0,0 +1,57 @@
+/**************************************************************************/ /**
+ * @file
+ * @brief OS abstraction layer primitives for the platform/security components.
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSEC_OSAL_H
+#define SLI_PSEC_OSAL_H
+
+// -----------------------------------------------------------------------------
+// Includes
+
+#if defined(SLI_PSEC_CONFIG_FILE)
+ #include SLI_PSEC_CONFIG_FILE
+#endif
+
+#if defined (SL_COMPONENT_CATALOG_PRESENT)
+ #include "sl_component_catalog.h"
+#endif
+
+#if defined(__ZEPHYR__)
+ #include "sli_psec_osal_zephyr.h"
+ #define SLI_PSEC_THREADING
+#elif defined(SL_CATALOG_MICRIUMOS_KERNEL_PRESENT) || defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
+// Include CMSIS RTOS2 kernel abstraction layer:
+ #include "sli_psec_osal_cmsis_rtos2.h"
+ #define SLI_PSEC_THREADING
+#else
+// Include bare metal abstraction layer:
+ #include "sli_psec_osal_baremetal.h"
+#endif
+
+#endif // SLI_PSEC_OSAL_H
diff --git a/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_baremetal.h b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_baremetal.h
new file mode 100644
index 000000000..fef28f8a5
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_baremetal.h
@@ -0,0 +1,166 @@
+/**************************************************************************/ /**
+ * @file
+ * @brief OS abstraction primitives for the platform/security components
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSEC_OSAL_BAREMETAL_H
+#define SLI_PSEC_OSAL_BAREMETAL_H
+
+// -----------------------------------------------------------------------------
+// Includes
+#include "sl_common.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// -----------------------------------------------------------------------------
+// Defines
+
+/// In order to wait forever in blocking functions the user can pass the
+/// following value.
+#define SLI_PSEC_OSAL_WAIT_FOREVER (-1)
+/// In order to return immediately in blocking functions the user can pass the
+/// following value.
+#define SLI_PSEC_OSAL_NON_BLOCKING (0)
+
+// -----------------------------------------------------------------------------
+// Typedefs
+
+/// Completion type used to wait for and signal end of operation.
+typedef volatile unsigned int sli_psec_osal_completion_t;
+
+/// SLI PSEC lock definition for Baremetal.
+typedef volatile unsigned int sli_psec_osal_lock_t;
+
+// -----------------------------------------------------------------------------
+// Globals
+
+#if defined(SLI_PSEC_OSAL_TEST)
+/// Global variable to keep track of ticks in bare metal test apps.
+extern unsigned int sli_sli_psec_test_ticks;
+#endif
+
+// -----------------------------------------------------------------------------
+// Functions
+
+/***************************************************************************//**
+ * @brief Initialize a completion object.
+ *
+ * @param p_comp Pointer to an sli_psec_osal_completion_t object allocated
+ * by the user.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_init_completion(sli_psec_osal_completion_t *p_comp)
+{
+ *p_comp = 0;
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * @brief Free a completion object.
+ *
+ * @param p_comp Pointer to an sli_psec_osal_completion_t object.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_free_completion(sli_psec_osal_completion_t *p_comp)
+{
+ *p_comp = 0;
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * @brief Wait for completion event.
+ *
+ * @param p_comp Pointer to completion object which must be initialized by
+ * calling sli_psec_osal_completion_init before calling this
+ * function.
+ *
+ * @param ticks Ticks to wait for the completion.
+ * Pass a value of SLI_PSEC_OSAL_WAIT_FOREVER in order to
+ * wait forever.
+ * Pass a value of SLI_PSEC_OSAL_NON_BLOCKING in order to
+ * return immediately.
+ *
+ * @return Status code, @ref sl_status.h. Typcally SL_STATUS_OK if success,
+ * or SL_STATUS_TIMEOUT if no completion within the given ticks.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t
+sli_psec_osal_wait_completion(sli_psec_osal_completion_t *p_comp, int ticks)
+{
+ int ret = SL_STATUS_TIMEOUT;
+
+ if (ticks == SLI_PSEC_OSAL_WAIT_FOREVER) {
+ while ( *p_comp == 0 ) {
+#if defined(SLI_PSEC_OSAL_TEST)
+ sli_sli_psec_test_ticks++;
+#endif
+ }
+ *p_comp = 0;
+ ret = SL_STATUS_OK;
+ } else {
+ while ((*p_comp == 0) && (ticks > 0)) {
+ ticks--;
+#if defined(SLI_PSEC_OSAL_TEST)
+ sli_sli_psec_test_ticks++;
+#endif
+ }
+ if (*p_comp == 1) {
+ *p_comp = 0;
+ ret = SL_STATUS_OK;
+ }
+ }
+
+ return ret;
+}
+
+/***************************************************************************//**
+ * @brief Signal completion.
+ *
+ * @param p_comp Pointer to completion object which must be initialized by
+ * calling sli_psec_osal_completion_init before calling this
+ * function.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_complete(sli_psec_osal_completion_t* p_comp)
+{
+ *p_comp = 1;
+ return SL_STATUS_OK;
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_PSEC_OSAL_BAREMETAL_H
diff --git a/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_cmsis_rtos2.h b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_cmsis_rtos2.h
new file mode 100644
index 000000000..6c388aab2
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/inc/sli_psec_osal_cmsis_rtos2.h
@@ -0,0 +1,358 @@
+/**************************************************************************/ /**
+ * @file
+ * @brief OS abstraction layer primitives for platform/security on CMSIS RTOS2
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+#ifndef SLI_PSEC_OSAL_CMSIS_RTOS_H
+#define SLI_PSEC_OSAL_CMSIS_RTOS_H
+
+// -----------------------------------------------------------------------------
+// Includes
+#include "sl_common.h"
+#include "sl_status.h"
+#include "cmsis_os2.h"
+#include "sl_core.h"
+#include "sl_code_classification.h"
+
+#if defined (SL_COMPONENT_CATALOG_PRESENT)
+ #include "sl_component_catalog.h"
+#endif
+
+#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT)
+ #include "FreeRTOSConfig.h"
+ #if (configSUPPORT_STATIC_ALLOCATION == 1)
+ #include "FreeRTOS.h" // StaticSemaphore_t
+ #include
+ #endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+// -----------------------------------------------------------------------------
+// Defines
+
+/// In order to wait forever in blocking functions the user can pass the
+/// following value.
+#define SLI_PSEC_OSAL_WAIT_FOREVER (osWaitForever)
+/// In order to return immediately in blocking functions the user can pass the
+/// following value.
+#define SLI_PSEC_OSAL_NON_BLOCKING (0)
+
+// Checks if kernel is running
+#define SLI_PSEC_OSAL_KERNEL_RUNNING (osKernelGetState() == osKernelRunning)
+
+// Lock kernel (task scheduler) to enter critical section
+#define SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_START \
+ int32_t kernel_lock_state = 0; \
+ osKernelState_t kernel_state = osKernelGetState(); \
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) { \
+ kernel_lock_state = osKernelLock(); \
+ if (kernel_lock_state < 0) { \
+ return SL_STATUS_FAIL; \
+ } \
+ }
+
+// Resume kernel to exit critical section
+#define SLI_PSEC_OSAL_KERNEL_CRITICAL_SECTION_END \
+ if (kernel_state != osKernelInactive && kernel_state != osKernelReady) { \
+ if (osKernelRestoreLock(kernel_lock_state) < 0) { \
+ return SL_STATUS_FAIL; \
+ } \
+ }
+
+// -----------------------------------------------------------------------------
+// Typedefs
+
+/// Completion object used to wait for and signal end of an operation.
+typedef struct sli_psec_osal_completion {
+#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
+ osSemaphoreAttr_t semaphore_attr;
+ StaticSemaphore_t static_sem_object;
+#endif
+ osSemaphoreId_t semaphore_ID;
+} sli_psec_osal_completion_t;
+
+/// SLI PSEC lock definition for CMSIS RTOS2.
+typedef struct sli_psec_osal_lock {
+#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
+ StaticSemaphore_t static_sem_object;
+#endif
+ osMutexAttr_t mutex_attr;
+ osMutexId_t mutex_ID;
+} sli_psec_osal_lock_t;
+
+// -----------------------------------------------------------------------------
+// Functions
+
+/***************************************************************************//**
+ * @brief Set recursive attribute of lock
+ *
+ * @details If recursive lock is needed, this function must be called
+ * before calling sli_psec_osal_init_lock.
+ *
+ * @param lock Pointer to the lock
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_set_recursive_lock(sli_psec_osal_lock_t *lock)
+{
+ if (lock == NULL) {
+ return SL_STATUS_INVALID_PARAMETER;
+ }
+ lock->mutex_attr.attr_bits |= osMutexRecursive;
+ return SL_STATUS_OK;
+}
+
+/***************************************************************************//**
+ * @brief Initialize a given lock
+ *
+ * @param lock Pointer to the lock needing initialization
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t sli_psec_osal_init_lock(sli_psec_osal_lock_t *lock)
+{
+ if (lock == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
+ // Zeroize all members of the lock attributes object and setup the static control block.
+ lock->mutex_attr.cb_mem = &lock->static_sem_object;
+ lock->mutex_attr.cb_size = sizeof(lock->static_sem_object);
+#endif
+
+ lock->mutex_ID = osMutexNew(&lock->mutex_attr);
+
+ return (lock->mutex_ID == NULL ? SL_STATUS_FAIL : SL_STATUS_OK);
+}
+
+/***************************************************************************//**
+ * @brief Free a given lock
+ *
+ * @param lock Pointer to the lock being freed
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t sli_psec_osal_free_lock(sli_psec_osal_lock_t *lock)
+{
+ if (lock == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osMutexDelete(lock->mutex_ID);
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
+
+/***************************************************************************//**
+ * @brief Pend on a lock with timeout
+ *
+ * @param lock Pointer to the lock being pended on
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PSEC_OSAL, SL_CODE_CLASS_TIME_CRITICAL)
+sl_status_t sli_psec_osal_take_lock_timeout(sli_psec_osal_lock_t *lock,
+ uint32_t timeout);
+
+/***************************************************************************//**
+ * @brief Pend on a lock forever
+ *
+ * @param lock Pointer to the lock being pended on
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t sli_psec_osal_take_lock(sli_psec_osal_lock_t *lock)
+{
+ return sli_psec_osal_take_lock_timeout(lock, SLI_PSEC_OSAL_WAIT_FOREVER);
+}
+
+/***************************************************************************//**
+ * @brief Try to acquire ownership of a lock without waiting.
+ *
+ * @param lock Pointer to the lock being tested
+ *
+ * @return SL_STATUS_OK on success (= lock successfully owned),
+ * error code otherwise.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_take_lock_non_blocking(sli_psec_osal_lock_t *lock)
+{
+ return sli_psec_osal_take_lock_timeout(lock, SLI_PSEC_OSAL_NON_BLOCKING);
+}
+
+/***************************************************************************//**
+ * @brief Release a lock
+ *
+ * @param lock Pointer to the lock being released
+ *
+ * @return SL_STATUS_OK on success, error code otherwise.
+ *****************************************************************************/
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PSEC_OSAL, SL_CODE_CLASS_TIME_CRITICAL)
+sl_status_t sli_psec_osal_give_lock(sli_psec_osal_lock_t *lock);
+
+/***************************************************************************//**
+ * @brief Initialize a completion object.
+ *
+ * @param p_comp Pointer to an sli_psec_osal_completion_t object allocated
+ * by the user.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t
+sli_psec_osal_init_completion(sli_psec_osal_completion_t *p_comp)
+{
+ if (p_comp == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+#if defined(SL_CATALOG_FREERTOS_KERNEL_PRESENT) && (configSUPPORT_STATIC_ALLOCATION == 1)
+ // Zeroize all members of the semaphore attributes object and setup the static control block.
+ memset(&p_comp->semaphore_attr, 0, sizeof(p_comp->semaphore_attr));
+ p_comp->semaphore_attr.cb_mem = &p_comp->static_sem_object;
+ p_comp->semaphore_attr.cb_size = sizeof(p_comp->static_sem_object);
+ p_comp->semaphore_ID = osSemaphoreNew(1u, 0u, &p_comp->semaphore_attr);
+#else
+ p_comp->semaphore_ID = osSemaphoreNew(1u, 0u, NULL);
+#endif
+
+ return (p_comp->semaphore_ID == NULL ? SL_STATUS_FAIL : SL_STATUS_OK);
+}
+
+/***************************************************************************//**
+ * @brief Free a completion object.
+ *
+ * @param p_comp Pointer to an sli_psec_osal_completion_t object.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t
+sli_psec_osal_free_completion(sli_psec_osal_completion_t *p_comp)
+{
+ if (p_comp == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osSemaphoreDelete(p_comp->semaphore_ID);
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
+
+/***************************************************************************//**
+ * @brief Wait for completion event.
+ *
+ * @param p_comp Pointer to completion object which must be initialized by
+ * calling sli_psec_osal_completion_init before calling this
+ * function.
+ *
+ * @param ticks Ticks to wait for the completion.
+ * Pass a value of SLI_PSEC_OSAL_WAIT_FOREVER in order to
+ * wait forever.
+ * Pass a value of SLI_PSEC_OSAL_NON_BLOCKING in order to
+ * return immediately.
+ *
+ * @return Status code, @ref sl_status.h. Typcally SL_STATUS_OK if success,
+ * or SL_STATUS_TIMEOUT if no completion within the given ticks.
+ *****************************************************************************/
+__STATIC_INLINE sl_status_t
+sli_psec_osal_wait_completion(sli_psec_osal_completion_t *p_comp, int ticks)
+{
+ if (p_comp == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osOK;
+ if (osKernelGetState() == osKernelRunning) {
+ status = osSemaphoreAcquire(p_comp->semaphore_ID,
+ (uint32_t)ticks);
+ }
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
+
+/***************************************************************************//**
+ * @brief Signal completion.
+ *
+ * @param p_comp Pointer to completion object which must be initialized by
+ * calling sli_psec_osal_completion_init before calling this
+ * function.
+ *
+ * @return Status code, @ref sl_status.h.
+ *****************************************************************************/
+__STATIC_INLINE
+sl_status_t sli_psec_osal_complete(sli_psec_osal_completion_t* p_comp)
+{
+ if (p_comp == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osOK;
+ osKernelState_t state = osKernelGetState();
+ if ((state == osKernelRunning) || (state == osKernelLocked)) {
+ status = osSemaphoreRelease(p_comp->semaphore_ID);
+ }
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
+
+/***************************************************************************//**
+ * @brief Lock the RTOS Kernel scheduler.
+ *
+ * @return Status code, @ref cmsis_os2.h
+ *****************************************************************************/
+__STATIC_INLINE int32_t sli_psec_osal_kernel_lock(void)
+{
+ return osKernelLock();
+}
+
+/***************************************************************************//**
+ * @brief Restore the RTOS Kernel scheduler lock state.
+ *
+ * @return Status code, @ref cmsis_os2.h
+ *****************************************************************************/
+__STATIC_INLINE int32_t sli_psec_osal_kernel_restore_lock(int32_t lock)
+{
+ return osKernelRestoreLock(lock);
+}
+
+/***************************************************************************//**
+ * @brief Get current RTOS kernel state.
+ *
+ * @return Status code, @ref cmsis_os2.h
+ *****************************************************************************/
+__STATIC_INLINE osKernelState_t
+sli_psec_osal_kernel_get_state(void)
+{
+ return osKernelGetState();
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif // SLI_PSEC_OSAL_CMSIS_RTOS_H
diff --git a/simplicity_sdk/platform/security/sl_component/sli_psec_osal/src/sli_psec_osal_cmsis_rtos2.c b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/src/sli_psec_osal_cmsis_rtos2.c
new file mode 100644
index 000000000..f0e8d63d8
--- /dev/null
+++ b/simplicity_sdk/platform/security/sl_component/sli_psec_osal/src/sli_psec_osal_cmsis_rtos2.c
@@ -0,0 +1,102 @@
+/**************************************************************************/ /**
+ * @file
+ * @brief OS abstraction layer primitives for platform/security on CMSIS RTOS2
+ *******************************************************************************
+ * # License
+ * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
+ *******************************************************************************
+ *
+ * SPDX-License-Identifier: Zlib
+ *
+ * The licensor of this software is Silicon Laboratories Inc.
+ *
+ * This software is provided 'as-is', without any express or implied
+ * warranty. In no event will the authors be held liable for any damages
+ * arising from the use of this software.
+ *
+ * Permission is granted to anyone to use this software for any purpose,
+ * including commercial applications, and to alter it and redistribute it
+ * freely, subject to the following restrictions:
+ *
+ * 1. The origin of this software must not be misrepresented; you must not
+ * claim that you wrote the original software. If you use this software
+ * in a product, an acknowledgment in the product documentation would be
+ * appreciated but is not required.
+ * 2. Altered source versions must be plainly marked as such, and must not be
+ * misrepresented as being the original software.
+ * 3. This notice may not be removed or altered from any source distribution.
+ *
+ ******************************************************************************/
+
+// -----------------------------------------------------------------------------
+// Includes
+#include "sl_common.h"
+#include "sli_psec_osal_cmsis_rtos2.h"
+
+// -----------------------------------------------------------------------------
+// Functions
+
+/// Check if lock is open for calling thread
+SL_CODE_CLASSIFY(SL_CODE_COMPONENT_PSEC_OSAL, SL_CODE_CLASS_TIME_CRITICAL)
+sl_status_t sli_psec_osal_lock_is_accessible(sli_psec_osal_lock_t *lock)
+{
+ sl_status_t sl_status;
+ CORE_DECLARE_IRQ_STATE;
+ if (lock == NULL) {
+ return SL_STATUS_FAIL;
+ }
+ CORE_ENTER_CRITICAL();
+ osThreadId_t mutex_owner = osMutexGetOwner(lock->mutex_ID);
+ if (mutex_owner == NULL) {
+ sl_status = SL_STATUS_OK;
+ } else {
+ if (mutex_owner != osThreadGetId()) {
+ sl_status = SL_STATUS_FAIL;
+ } else {
+ if (lock->mutex_attr.attr_bits & osMutexRecursive) {
+ sl_status = SL_STATUS_OK;
+ } else {
+ sl_status = SL_STATUS_FAIL;
+ }
+ }
+ }
+ CORE_EXIT_CRITICAL();
+ return sl_status;
+}
+
+/// Attempt to take ownership or lock. Wait until available if already locked, or timeout.
+sl_status_t sli_psec_osal_take_lock_timeout(sli_psec_osal_lock_t *lock, uint32_t timeout)
+{
+ if (lock == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osOK;
+ if (osKernelGetState() == osKernelRunning) {
+ if (CORE_IRQ_DISABLED()) {
+ return sli_psec_osal_lock_is_accessible(lock);
+ } else {
+ status = osMutexAcquire(lock->mutex_ID, timeout);
+ }
+ }
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
+
+/// Release ownership of a lock.
+sl_status_t sli_psec_osal_give_lock(sli_psec_osal_lock_t *lock)
+{
+ if (lock == NULL) {
+ return SL_STATUS_FAIL;
+ }
+
+ osStatus_t status = osOK;
+ if (osKernelGetState() == osKernelRunning) {
+ if (CORE_IRQ_DISABLED()) {
+ return sli_psec_osal_lock_is_accessible(lock);
+ } else {
+ status = osMutexRelease(lock->mutex_ID);
+ }
+ }
+
+ return (status == osOK ? SL_STATUS_OK : SL_STATUS_FAIL);
+}
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_tree_config.h
deleted file mode 100644
index 924916d18..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,217 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// HCLK
-// HFRCOEM23
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_HCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_HCLK
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// HFRCOEM23
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// HFRCOEM23
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_tree_config.h
deleted file mode 100644
index ef8ba96ee..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index cd8e16413..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 76800000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 76800000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_tree_config.h
deleted file mode 100644
index 30e358fff..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG22/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPBCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// CLKIN0
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPBCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUARTCLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// Selection of the Clock source for EUARTCLK
-// CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_EUART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUART0CLK_SOURCE CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_tree_config.h
deleted file mode 100644
index 5a5097c54..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_tree_config.h
deleted file mode 100644
index ac5e7bd6c..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG28/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 191a766fe..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 80000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 80000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3999
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3999
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index cd8e16413..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 76800000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 76800000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_tree_config.h
deleted file mode 100644
index 30e358fff..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG22/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPBCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// CLKIN0
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPBCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUARTCLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// Selection of the Clock source for EUARTCLK
-// CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_EUART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUART0CLK_SOURCE CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_tree_config.h
deleted file mode 100644
index ef8ba96ee..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_tree_config.h
deleted file mode 100644
index 5a5097c54..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_tree_config.h
deleted file mode 100644
index c0a51b65c..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLED
-// SYSCLK
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPBCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// CLKIN0
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPBCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index cd8e16413..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 76800000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 76800000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_tree_config.h
deleted file mode 100644
index 30e358fff..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG22/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPBCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// CLKIN0
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPBCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUARTCLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// Selection of the Clock source for EUARTCLK
-// CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_EUART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUART0CLK_SOURCE CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_tree_config.h
deleted file mode 100644
index d3fa48fcf..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG23/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index cd8e16413..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 76800000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 76800000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_tree_config.h
deleted file mode 100644
index 30e358fff..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG22/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPBCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// CLKIN0
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPBCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPBCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUARTCLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// Selection of the Clock source for EUARTCLK
-// CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_EUART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUART0CLK_SOURCE CMU_EUART0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index bbceeee43..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_tree_config.h
deleted file mode 100644
index ef8ba96ee..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG24/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,282 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index bbceeee43..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_tree_config.h
deleted file mode 100644
index 5a5097c54..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG26/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// DISABLE
-// SYSCLK
-// HFRCOEM23
-// HFRCODPLLRT
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
-#endif
-
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV3
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index cd8e16413..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 76800000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 76800000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 191a766fe..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,229 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 38400000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 80000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 80000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3999
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3999
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_tree_config.h
deleted file mode 100644
index 5f860fef7..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MR21/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// Clock Source Selection for TRACECLK branch
-// HCLK
-// HFRCOEM23
-// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_HCLK
-#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_HCLK
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// HFRCOEM23
-// FSRCO
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for RTCCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_RTCCCLK_SOURCE
-#define SL_CLOCK_MANAGER_RTCCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_tree_config.h
deleted file mode 100644
index d3fa48fcf..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG23/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_tree_config.h
deleted file mode 100644
index d3fa48fcf..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG23/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-// EM23GRPACLK
-// PCNTS0
-// Selection of the Clock source for PCNT0CLK
-// CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#ifndef SL_CLOCK_MANAGER_PCNT0CLK_SOURCE
-#define SL_CLOCK_MANAGER_PCNT0CLK_SOURCE CMU_PCNT0CLKCTRL_CLKSEL_EM23GRPACLK
-#endif
-
-//
-
-// Mixed Frequency Clock Branch Settings
-// Clock Source Selection for EUSART0CLK branch
-// DISABLED
-// EM01GRPCCLK
-// HFRCOEM23
-// LFRCO
-// LFXO
-// Selection of the Clock source for EUSART0CLK
-// CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#ifndef SL_CLOCK_MANAGER_EUSART0CLK_SOURCE
-#define SL_CLOCK_MANAGER_EUSART0CLK_SOURCE CMU_EUSART0CLKCTRL_CLKSEL_EM01GRPCCLK
-#endif
-
-// Clock Source Selection for SYSTICKCLK branch
-// <0=> HCLK
-// <1=> EM23GRPACLK
-// Selection of the Clock source for SYSTICKCLK
-// 0
-#ifndef SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSTICKCLK_SOURCE 0
-#endif
-
-// Clock Source Selection for VDAC0CLK branch
-// DISABLED
-// EM01GRPACLK
-// EM23GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for VDAC0CLK
-// CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_VDAC0CLK_SOURCE
-#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-//
-//
-
-#endif /* SL_CLOCK_MANAGER_TREE_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_oscillator_config.h
similarity index 82%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_oscillator_config.h
index 191a766fe..e156b6ee8 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -50,7 +72,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 38400000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
@@ -62,12 +84,12 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
#endif
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -141,7 +163,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 80000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -167,6 +189,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -222,8 +245,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_tree_config.h
similarity index 93%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_tree_config.h
index 924916d18..ab95b171d 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG21/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG21/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -92,9 +106,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_oscillator_config.h
similarity index 83%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_oscillator_config.h
index 5998ff54e..517d85a1c 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -50,7 +72,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 38400000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
@@ -62,12 +84,12 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
#endif
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -141,7 +163,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 76800000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -224,8 +246,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_tree_config.h
similarity index 93%
rename from simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_tree_config.h
index 30e358fff..36636df03 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG22/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_oscillator_config.h
similarity index 87%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_oscillator_config.h
index bbceeee43..0c9f5747e 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG26/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -51,7 +73,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 39000000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
@@ -63,7 +85,7 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
@@ -140,7 +162,7 @@
#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
#endif
//
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -214,7 +236,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 78000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -240,6 +262,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -295,27 +318,25 @@
#endif
//
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
#endif
//
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_tree_config.h
similarity index 95%
rename from simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_tree_config.h
index d3fa48fcf..c12324894 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG23/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG23/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_oscillator_config.h
similarity index 88%
rename from simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_oscillator_config.h
index bbceeee43..20cc0d452 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFM32PG26/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -51,7 +73,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 39000000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
@@ -63,7 +85,7 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
@@ -140,7 +162,7 @@
#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
#endif
//
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -214,7 +236,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 78000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -240,6 +262,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -314,8 +337,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_tree_config.h
similarity index 91%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_tree_config.h
index ac5e7bd6c..472741a24 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32ZG28/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG24/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
@@ -167,15 +181,6 @@
#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
#endif
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
//
// Low Frequency Clock Branches Settings
@@ -237,17 +242,6 @@
#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
#endif
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
// Clock Source Selection for PCNT0CLK branch
// DISABLED
// EM23GRPACLK
@@ -294,6 +288,18 @@
#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
#endif
+// Clock Source Selection for VDAC1CLK branch
+// DISABLED
+// EM01GRPACLK
+// EM23GRPACLK
+// FSRCO
+// HFRCOEM23
+// Selection of the Clock source for VDAC1CLK
+// CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK
+#ifndef SL_CLOCK_MANAGER_VDAC1CLK_SOURCE
+#define SL_CLOCK_MANAGER_VDAC1CLK_SOURCE CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK
+#endif
+
//
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_oscillator_config.h
similarity index 89%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_oscillator_config.h
index c1819debf..d18036a86 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -51,7 +73,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 39000000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
@@ -63,7 +85,7 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
@@ -140,7 +162,7 @@
#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
#endif
//
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -215,7 +237,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 78000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -241,6 +263,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -357,8 +380,25 @@
//
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_tree_config.h
similarity index 95%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_tree_config.h
index 279832813..992643d9c 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG25/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG25/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// RFFPLL0SYS
// Selection of the Clock source for SYSCLK
// CMU_SYSCLKCTRL_CLKSEL_RFFPLL0SYS
@@ -95,9 +109,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_oscillator_config.h
similarity index 88%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_oscillator_config.h
index bbceeee43..20cc0d452 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG24/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -51,7 +73,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 39000000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
@@ -63,7 +85,7 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
@@ -140,7 +162,7 @@
#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
#endif
//
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -214,7 +236,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 78000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -240,6 +262,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -314,8 +337,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_tree_config.h
similarity index 91%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_tree_config.h
index ac5e7bd6c..6ec4ee981 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32SG28/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG26/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
@@ -167,15 +181,6 @@
#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
#endif
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
//
// Low Frequency Clock Branches Settings
@@ -294,6 +299,18 @@
#define SL_CLOCK_MANAGER_VDAC0CLK_SOURCE CMU_VDAC0CLKCTRL_CLKSEL_EM01GRPACLK
#endif
+// Clock Source Selection for VDAC1CLK branch
+// DISABLED
+// EM01GRPACLK
+// EM23GRPACLK
+// FSRCO
+// HFRCOEM23
+// Selection of the Clock source for VDAC1CLK
+// CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK
+#ifndef SL_CLOCK_MANAGER_VDAC1CLK_SOURCE
+#define SL_CLOCK_MANAGER_VDAC1CLK_SOURCE CMU_VDAC1CLKCTRL_CLKSEL_EM01GRPACLK
+#endif
+
//
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_oscillator_config.h
similarity index 83%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_oscillator_config.h
index cd8e16413..517d85a1c 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG27/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -50,7 +72,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 38400000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
@@ -62,12 +84,12 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
#endif
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -141,7 +163,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 76800000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -167,6 +189,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -223,8 +246,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_tree_config.h
similarity index 94%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_tree_config.h
index c0a51b65c..3f788869d 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG27/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG27/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_oscillator_config.h
similarity index 87%
rename from simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_oscillator_config.h
index bbceeee43..0c9f5747e 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM24/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -51,7 +73,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 39000000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
@@ -63,7 +85,7 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
@@ -140,7 +162,7 @@
#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
#endif
//
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -214,7 +236,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 78000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -240,6 +262,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -295,27 +318,25 @@
#endif
//
-// LFRCO Settings
-// Precision Mode
-// Precision mode uses hardware to automatically re-calibrate the LFRCO
-// against a crystal driven by the HFXO. Hardware detects temperature
-// changes and initiates a re-calibration of the LFRCO as needed when
-// operating in EM0, EM1, or EM2. If a re-calibration is necessary and the
-// HFXO is not active, the precision mode hardware will automatically
-// enable HFXO for a short time to perform the calibration. EM4 operation is
-// not allowed while precision mode is enabled.
-// If high precision is selected on devices that do not support it, default
-// precision will be used.
-// Default precision
-// High precision
-// cmuPrecisionDefault
-#ifndef SL_CLOCK_MANAGER_LFRCO_PRECISION
-#define SL_CLOCK_MANAGER_LFRCO_PRECISION cmuPrecisionDefault
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
#endif
//
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_tree_config.h
similarity index 95%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_tree_config.h
index ac5e7bd6c..7f8119fb7 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32FG28/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG28/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -94,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_oscillator_config.h
similarity index 83%
rename from simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_oscillator_config.h
index cd8e16413..517d85a1c 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM22/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -50,7 +72,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 38400000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
@@ -62,12 +84,12 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
#endif
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -141,7 +163,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 76800000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -167,6 +189,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -223,8 +246,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_tree_config.h
similarity index 94%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_tree_config.h
index 3b4980f6b..850679a7d 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32MG29/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XG29/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -95,9 +108,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
@@ -108,9 +121,9 @@
// SYSCLK
// HFRCODPLLRT
// Selection of the Clock source for TRACECLK
-// CMU_TRACECLKCTRL_CLKSEL_DISABLED
+// CMU_TRACECLKCTRL_CLKSEL_SYSCLK
#ifndef SL_CLOCK_MANAGER_TRACECLK_SOURCE
-#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_DISABLED
+#define SL_CLOCK_MANAGER_TRACECLK_SOURCE CMU_TRACECLKCTRL_CLKSEL_SYSCLK
#endif
// TRACECLK branch Divider
diff --git a/simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_oscillator_config.h
similarity index 82%
rename from simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_oscillator_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_oscillator_config.h
index 191a766fe..e156b6ee8 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/BGM21/sl_clock_manager_oscillator_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_oscillator_config.h
@@ -28,17 +28,39 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+ #ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
+// Internal Defines: DO NOT MODIFY
+#define SL_CLOCK_MANAGER_HFXO_EN_ENABLE 1
+#define SL_CLOCK_MANAGER_HFXO_EN_DISABLE 0
+
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_ENABLE
+#else
+#define SL_CLOCK_MANAGER_HFXO_EN_AUTO SL_CLOCK_MANAGER_HFXO_EN_DISABLE
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Oscillators Settings
-// HFXO Settings (if High Frequency crystal is used)
+// HFXO Settings (if High Frequency crystal is used)
+
+// Enable
// Enable to configure HFXO
+// AUTO enables HFXO if a radio is used
+// AUTO
+// ENABLE
+// DISABLE
+// SL_CLOCK_MANAGER_HFXO_EN_AUTO
#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
+#define SL_CLOCK_MANAGER_HFXO_EN SL_CLOCK_MANAGER_HFXO_EN_AUTO
#endif
// Mode
@@ -50,7 +72,7 @@
#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
#endif
-// Frequency <38000000-40000000>
+// Frequency in Hz <38000000-40000000>
// 38400000
#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
#define SL_CLOCK_MANAGER_HFXO_FREQ 38400000
@@ -62,12 +84,12 @@
#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
#endif
-// Precision <0-65535>
+// Precision in PPM <0-65535>
// 50
#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
#endif
-//
+//
// LFXO Settings (if Low Frequency crystal is used)
// Enable to configure LFXO
@@ -141,7 +163,7 @@
#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
#endif
-// Target Frequency <1000000-80000000>
+// Target Frequency in Hz <1000000-80000000>
// DPLL target frequency
// 80000000
#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
@@ -167,6 +189,7 @@
// DISABLED
// HFXO
// LFXO
+// CLKIN0
// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
@@ -222,8 +245,25 @@
#endif
//
+// CLKIN0 Settings
+// Frequency in Hz <1000000-38000000>
+// 38000000
+#ifndef SL_CLOCK_MANAGER_CLKIN0_FREQ
+#define SL_CLOCK_MANAGER_CLKIN0_FREQ 38000000
+#endif
//
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
+//
// <<< end of configuration section >>>
+
+// <<< sl:start pin_tool >>>
+
+// SL_CLOCK_MANAGER_CLKIN0
+// $[CMU_SL_CLOCK_MANAGER_CLKIN0]
+
+// [CMU_SL_CLOCK_MANAGER_CLKIN0]$
+
+// <<< sl:end pin_tool >>>
+
+#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
diff --git a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_tree_config.h
similarity index 93%
rename from simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_tree_config.h
rename to simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_tree_config.h
index 924916d18..47a508dee 100644
--- a/simplicity_sdk/platform/service/clock_manager/config/EFR32BG21/sl_clock_manager_tree_config.h
+++ b/simplicity_sdk/platform/service/clock_manager/config/EFX32XR21/sl_clock_manager_tree_config.h
@@ -28,11 +28,14 @@
*
******************************************************************************/
-// <<< Use Configuration Wizard in Context Menu >>>
-
#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
#define SL_CLOCK_MANAGER_TREE_CONFIG_H
+#if defined(SL_COMPONENT_CATALOG_PRESENT)
+#include "sl_component_catalog.h"
+
+#endif
+
// Internal Defines: DO NOT MODIFY
// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
// selection of each clock branch to the right HW register value.
@@ -43,16 +46,26 @@
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
+#if defined(SL_CATALOG_RAIL_LIB_PRESENT)
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO
+#else
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#endif
+
+// <<< Use Configuration Wizard in Context Menu >>>
+
// Clock Tree Settings
// Default Clock Source Selection for HF clock branches
+// AUTO
// HFRCODPLL
// HFXO
// FSRCO
// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+// AUTO uses HFXO if a radio is used and HFRCODPLL otherwise
+// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
+#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_AUTO
#endif
// Default Clock Source Selection for LF clock branches
@@ -72,6 +85,7 @@
// FSRCO
// HFRCODPLL
// HFXO
+// CLKIN0
// Selection of the Clock source for SYSCLK
// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
@@ -92,9 +106,9 @@
// DIV1
// DIV2
// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+// CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
+#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV1
#endif
//
@@ -126,16 +140,6 @@
#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
#endif
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// HFRCOEM23
-// FSRCO
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
//
// Low Frequency Clock Branches Settings
diff --git a/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_oscillator_config.h b/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_oscillator_config.h
deleted file mode 100644
index 46d50f675..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_oscillator_config.h
+++ /dev/null
@@ -1,302 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Oscillators configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-#define SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H
-
-// Oscillators Settings
-
-// HFXO Settings (if High Frequency crystal is used)
-// Enable to configure HFXO
-#ifndef SL_CLOCK_MANAGER_HFXO_EN
-#define SL_CLOCK_MANAGER_HFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// EXTCLK
-// EXTCLKPKDET
-// HFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_HFXO_MODE
-#define SL_CLOCK_MANAGER_HFXO_MODE HFXO_CFG_MODE_XTAL
-#endif
-
-// Frequency <38000000-40000000>
-// 39000000
-#ifndef SL_CLOCK_MANAGER_HFXO_FREQ
-#define SL_CLOCK_MANAGER_HFXO_FREQ 39000000
-#endif
-
-// CTUNE <0-255>
-// 140
-#ifndef SL_CLOCK_MANAGER_HFXO_CTUNE
-#define SL_CLOCK_MANAGER_HFXO_CTUNE 140
-#endif
-
-// Precision <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_HFXO_PRECISION
-#define SL_CLOCK_MANAGER_HFXO_PRECISION 50
-#endif
-
-// HFXO crystal sharing feature
-// Enable to configure HFXO crystal sharing leader or follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_EN 0
-#endif
-
-// Crystal sharing leader
-// Enable to configure HFXO crystal sharing leader
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN 0
-#endif
-
-// Crystal sharing leader minimum startup delay
-// If enabled, BUFOUT does not start until timeout set in
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP expires.
-// This prevents waste of power if BUFOUT is ready too early.
-// 1
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_MIN_STARTUP_DELAY_EN 1
-#endif
-
-// Wait duration of oscillator startup sequence
-//
-// T42US
-// T83US
-// T108US
-// T133US
-// T158US
-// T183US
-// T208US
-// T233US
-// T258US
-// T283US
-// T333US
-// T375US
-// T417US
-// T458US
-// T500US
-// T667US
-// HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_TIMEOUT_STARTUP HFXO_BUFOUTCTRL_TIMEOUTSTARTUP_T208US
-#endif
-//
-//
-
-// Crystal sharing follower
-// Enable to configure HFXO crystal sharing follower
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN 0
-#endif
-//
-
-// GPIO Port
-// Bufout request GPIO port. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this port will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this port
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PORT 0
-#endif
-
-// GPIO Pin
-// Bufout request GPIO pin. If SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_LEADER_EN
-// is enabled, this pin will be used to receive the BUFOUT request. If
-// SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_FOLLOWER_EN is enabled this pin
-// will be used to request BUFOUT from the crystal sharing leader.
-#ifndef SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN
-#define SL_CLOCK_MANAGER_HFXO_CRYSTAL_SHARING_GPIO_PIN 10
-#endif
-//
-//
-
-// LFXO Settings (if Low Frequency crystal is used)
-// Enable to configure LFXO
-#ifndef SL_CLOCK_MANAGER_LFXO_EN
-#define SL_CLOCK_MANAGER_LFXO_EN 0
-#endif
-
-// Mode
-//
-// XTAL
-// BUFEXTCLK
-// DIGEXTCLK
-// LFXO_CFG_MODE_XTAL
-#ifndef SL_CLOCK_MANAGER_LFXO_MODE
-#define SL_CLOCK_MANAGER_LFXO_MODE LFXO_CFG_MODE_XTAL
-#endif
-
-// CTUNE <0-127>
-// 63
-#ifndef SL_CLOCK_MANAGER_LFXO_CTUNE
-#define SL_CLOCK_MANAGER_LFXO_CTUNE 63
-#endif
-
-// LFXO precision in PPM <0-65535>
-// 50
-#ifndef SL_CLOCK_MANAGER_LFXO_PRECISION
-#define SL_CLOCK_MANAGER_LFXO_PRECISION 50
-#endif
-
-// Startup Timeout Delay
-//
-// CYCLES2
-// CYCLES256
-// CYCLES1K
-// CYCLES2K
-// CYCLES4K
-// CYCLES8K
-// CYCLES16K
-// CYCLES32K
-// LFXO_CFG_TIMEOUT_CYCLES4K
-#ifndef SL_CLOCK_MANAGER_LFXO_TIMEOUT
-#define SL_CLOCK_MANAGER_LFXO_TIMEOUT LFXO_CFG_TIMEOUT_CYCLES4K
-#endif
-//
-
-// HFRCO and DPLL Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 7 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 38 MHz
-// 48 MHz
-// 56 MHz
-// 64 MHz
-// 80 MHz
-// cmuHFRCODPLLFreq_80M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCO_BAND
-#define SL_CLOCK_MANAGER_HFRCO_BAND cmuHFRCODPLLFreq_80M0Hz
-#endif
-
-// Use DPLL
-// Enable to use the DPLL with HFRCO
-#ifndef SL_CLOCK_MANAGER_HFRCO_DPLL_EN
-#define SL_CLOCK_MANAGER_HFRCO_DPLL_EN 0
-#endif
-
-// Target Frequency <1000000-80000000>
-// DPLL target frequency
-// 78000000
-#ifndef SL_CLOCK_MANAGER_DPLL_FREQ
-#define SL_CLOCK_MANAGER_DPLL_FREQ 78000000
-#endif
-
-// Numerator (N) <300-4095>
-// Value of N for output frequency calculation fout = fref * (N+1) / (M+1)
-// 3839
-#ifndef SL_CLOCK_MANAGER_DPLL_N
-#define SL_CLOCK_MANAGER_DPLL_N 3839
-#endif
-
-// Denominator (M) <0-4095>
-// Value of M for output frequency calculation fout = fref * (N+1) / (M+1)
-// 1919
-#ifndef SL_CLOCK_MANAGER_DPLL_M
-#define SL_CLOCK_MANAGER_DPLL_M 1919
-#endif
-
-// Reference Clock
-// Reference clock source for DPLL
-// DISABLED
-// HFXO
-// LFXO
-// CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#ifndef SL_CLOCK_MANAGER_DPLL_REFCLK
-#define SL_CLOCK_MANAGER_DPLL_REFCLK CMU_DPLLREFCLKCTRL_CLKSEL_HFXO
-#endif
-
-// Reference Clock Edge Detect
-// Edge detection for reference clock
-// Falling Edge
-// Rising Edge
-// cmuDPLLEdgeSel_Fall
-#ifndef SL_CLOCK_MANAGER_DPLL_EDGE
-#define SL_CLOCK_MANAGER_DPLL_EDGE cmuDPLLEdgeSel_Fall
-#endif
-
-// DPLL Lock Mode
-// Lock mode
-// Frequency-Lock Loop
-// Phase-Lock Loop
-// cmuDPLLLockMode_Freq
-#ifndef SL_CLOCK_MANAGER_DPLL_LOCKMODE
-#define SL_CLOCK_MANAGER_DPLL_LOCKMODE cmuDPLLLockMode_Phase
-#endif
-
-// Automatic Lock Recovery
-// 1
-#ifndef SL_CLOCK_MANAGER_DPLL_AUTORECOVER
-#define SL_CLOCK_MANAGER_DPLL_AUTORECOVER 1
-#endif
-
-// Enable Dither
-// 0
-#ifndef SL_CLOCK_MANAGER_DPLL_DITHER
-#define SL_CLOCK_MANAGER_DPLL_DITHER 0
-#endif
-//
-//
-
-// HFRCOEM23 Settings
-// Frequency Band
-// RC Oscillator Frequency Band
-// 1 MHz
-// 2 MHz
-// 4 MHz
-// 13 MHz
-// 16 MHz
-// 19 MHz
-// 26 MHz
-// 32 MHz
-// 40 MHz
-// cmuHFRCOEM23Freq_19M0Hz
-#ifndef SL_CLOCK_MANAGER_HFRCOEM23_BAND
-#define SL_CLOCK_MANAGER_HFRCOEM23_BAND cmuHFRCOEM23Freq_19M0Hz
-#endif
-//
-
-//
-
-#endif /* SL_CLOCK_MANAGER_OSCILLATOR_CONFIG_H */
-
-// <<< end of configuration section >>>
diff --git a/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_tree_config.h b/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_tree_config.h
deleted file mode 100644
index d3fa48fcf..000000000
--- a/simplicity_sdk/platform/service/clock_manager/config/FGM23/sl_clock_manager_tree_config.h
+++ /dev/null
@@ -1,290 +0,0 @@
-/***************************************************************************//**
- * @file
- * @brief Clock Manager - Clock Tree configuration file.
- *******************************************************************************
- * # License
- * Copyright 2024 Silicon Laboratories Inc. www.silabs.com
- *******************************************************************************
- *
- * SPDX-License-Identifier: Zlib
- *
- * The licensor of this software is Silicon Laboratories Inc.
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would be
- * appreciated but is not required.
- * 2. Altered source versions must be plainly marked as such, and must not be
- * misrepresented as being the original software.
- * 3. This notice may not be removed or altered from any source distribution.
- *
- ******************************************************************************/
-
-// <<< Use Configuration Wizard in Context Menu >>>
-
-#ifndef SL_CLOCK_MANAGER_TREE_CONFIG_H
-#define SL_CLOCK_MANAGER_TREE_CONFIG_H
-
-// Internal Defines: DO NOT MODIFY
-// Those defines are used internally to help converting the DEFAULT_HF_CLOCK_SOURCE and DEFAULT_LF_CLOCK_SOURCE
-// selection of each clock branch to the right HW register value.
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL 0xFF
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFXO 0xFE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_FSRCO 0xFD
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO 0xFC
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFXO 0xFB
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_ULFRCO 0xFA
-
-// Clock Tree Settings
-
-// Default Clock Source Selection for HF clock branches
-// HFRCODPLL
-// HFXO
-// FSRCO
-// Selection of the high frequency clock source. HF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#ifndef SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE_HFRCODPLL
-#endif
-
-// Default Clock Source Selection for LF clock branches
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the low frequency clock source. LF clock branches can select this value by chosing the DEFAULT_HF value.
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#ifndef SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#define SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE_LFRCO
-#endif
-
-// System Clock Branch Settings
-
-// Clock Source Selection for SYSCLK branch
-// DEFAULT_HF
-// FSRCO
-// HFRCODPLL
-// HFXO
-// Selection of the Clock source for SYSCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// HCLK branch divider
-// DIV1
-// DIV2
-// DIV4
-// DIV8
-// DIV16
-// HCLK branch is derived from SYSCLK. This clock drives the AHB bus interface.
-// CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_HCLK_DIVIDER
-#define SL_CLOCK_MANAGER_HCLK_DIVIDER CMU_SYSCLKCTRL_HCLKPRESC_DIV1
-#endif
-
-// PCLK branch divider
-// DIV1
-// DIV2
-// PCLK branch is derived from HCLK. This clock drives the APB bus interface.
-// CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#ifndef SL_CLOCK_MANAGER_PCLK_DIVIDER
-#define SL_CLOCK_MANAGER_PCLK_DIVIDER CMU_SYSCLKCTRL_PCLKPRESC_DIV2
-#endif
-
-//
-
-// Trace Clock Branches Settings
-// TRACECLK branch Divider
-// DIV1
-// DIV2
-// DIV4
-// Selection of the divider value for TRACECLK branch
-// CMU_TRACECLKCTRL_PRESC_DIV1
-#ifndef SL_CLOCK_MANAGER_TRACECLK_DIVIDER
-#define SL_CLOCK_MANAGER_TRACECLK_DIVIDER CMU_TRACECLKCTRL_PRESC_DIV1
-#endif
-
-//
-
-// High Frequency Clock Branches Settings
-// Each HF Clock Tree branch can be customized, else the same clock source as for SYSCLK will be used when possible
-// EM01GRPACLK clock the Timer peripherals
-// Clock Source Selection for EM01GRPACLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM01GRPCCLK branch
-// DEFAULT_HF
-// HFRCODPLL
-// HFXO
-// FSRCO
-// HFRCOEM23
-// HFRCODPLLRT
-// HFXORT
-// Selection of the Clock source for EM01GRPCCLK
-// SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE
-#define SL_CLOCK_MANAGER_EM01GRPCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_HF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for IADCCLK branch
-// EM01GRPACLK
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for IADCCLK
-// CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#ifndef SL_CLOCK_MANAGER_IADCCLK_SOURCE
-#define SL_CLOCK_MANAGER_IADCCLK_SOURCE CMU_IADCCLKCTRL_CLKSEL_EM01GRPACLK
-#endif
-
-// Clock Source Selection for LESENSEHFCLK branch
-// FSRCO
-// HFRCOEM23
-// Selection of the Clock source for LESENSEHFCLK
-// CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#ifndef SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE
-#define SL_CLOCK_MANAGER_LESENSEHFCLK_SOURCE CMU_LESENSEHFCLKCTRL_CLKSEL_FSRCO
-#endif
-
-//
-
-// Low Frequency Clock Branches Settings
-
-// Clock Source Selection for EM23GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM23GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM23GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for EM4GRPACLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for EM4GRPACLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE
-#define SL_CLOCK_MANAGER_EM4GRPACLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for SYSRTCCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for SYSRTCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE
-#define SL_CLOCK_MANAGER_SYSRTCCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG0CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG0CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG0CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG0CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for WDOG1CLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// HCLKDIV1024
-// Selection of the Clock source for WDOG1CLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_WDOG1CLK_SOURCE
-#define SL_CLOCK_MANAGER_WDOG1CLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for LCDCLK branch
-// DEFAULT_LF
-// LFRCO
-// LFXO
-// ULFRCO
-// Selection of the Clock source for LDCCLK
-// SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#ifndef SL_CLOCK_MANAGER_LCDCLK_SOURCE
-#define SL_CLOCK_MANAGER_LCDCLK_SOURCE SL_CLOCK_MANAGER_DEFAULT_LF_CLOCK_SOURCE
-#endif
-
-// Clock Source Selection for PCNT0CLK branch
-// DISABLED
-//